Product Order Open API

concept brazil Updated Sep 10, 2026 331 min read tmf622_product_ordering-api.md
Raw file servicenow.com

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.

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

Version 3.0 updates

The Product Order POST endpoint now supports creation of account, consumer, contact, location, billing accounts and payment profiles, and inline creation of related party entities within order requests. See Product Order Open API - POST /sn_ind_tmt_orm/order/productOrder for more details. These features are available with version 3.0 and newer releases.

The relatedParty field's structure changed between V2 and V3. See endpoints for a side-by-side comparison.

Note: This API's productCharacteristic.valueType field always returns the backend value (for example, choice) and is unaffected by the Product Inventory Open API's sn_prd_invt.enableseamlessvaluetype system property, which lets that API match this format.

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]

v3 updates for GET/LIST operations

When you retrieve product orders using GET or LIST operations in TMF 622 V3, the response now includes payment profile details and billing account information for each order line item. These new fields provide complete visibility into the payment methods and billing relationships associated with your orders, enabling you to manage billing, fulfillment, and reconciliation processes with comprehensive order data in a single API call.

URL format

Default URL: /api/sn_ind_tmt_orm/order/productOrder

Supported request parameters

Name

Description

api_version

Optional. Version of the endpoint to access. For example, v1 or v2. Only specify this value to use an endpoint version other than the latest. Data type: String

Name

Description

account

Filter product orders by the associated account. Use this to retrieve all orders for a specific customer account or business unit.Data type: String

consumer (relatedParty)

Filter product orders by the consumer or end-user. Use this to retrieve orders for a specific consumer within a customer account, useful in multi-party or wholesale scenarios.Data type: String

contact

Filter product orders by an associated contact. Use this to find all orders linked to a specific person (like order coordinator, and billing contact).Data type: String

externalId

Filter product orders by external identifier. Use this to locate orders using identifiers from external systems or legacy integrations (like legacy order numbers, or third-party reference IDs).Data type: String

fields

List 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

offset

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

Default: 0

state

Filter 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.

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

Headers

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

Header Description
None

Header

Description

Content-Range

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

Content-Type

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

X-Total-Count

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

### Status codes

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

Status code

Description

200

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

206

Partial resource returned in response (with pagination).

400

Bad request. Possible reasons:

  • Invalid path parameter
  • Invalid URI

404

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

### Response body parameters \(JSON\)

Name

Description

@type

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

channel

List of channels to use for selling the products.Stored in: sn_ind_tmt_orm_order

Data type: Array of Objects

Text
"channel": [  {    "id": "String",    "name": "String"  }]

channel.id

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

Stored in: The channel field of the sn_ind_tmt_orm_order table.

channel.name

Name of the channel to use to sell the associated products.Possible channel names are defined on the list tab in the Channel Dictionary Entry of the sn_ind_tmt_orm_order table.

Data type: String

committedDueDate

Date and time when the action must be performed on the order.Stored in: committed_due_date field of the sn_ind_tmt_orm_order table.

Format: ISO 8601 (Example: 2021-05-02T08:13:59.506Z)

Data type: String

externalId

External identifier for the customer order, such as a purchase order number. This value is determined by an external system. Stored in: external_id field of the sn_ind_tmt_orm_order table.

Data type: String

externalSystem

External system identifier that originated the order request, appended with TMF622. Data Type: String

href

Relative link to the resource record.Data type: String

note

Additional notes made by the customer when ordering. Stored in: sn_ind_tmt_orm_order

Data type: Array of Objects

Text
"note": [  {    "text": "String"  }]

note.text

Additional notes/comments made by the customer while ordering.Stored in: The comments field of the sn_ind_tmt_orm_order table.

Data type: String

orderCurrency

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

orderDate

Date and time when the order was created.Data type: String

Format: ISO 8601 (Example: 2021-05-02T08:13:59.506Z)

orderId

Sys_id of the order.Stored in the Inbound Queue [sn_tmt_core_inbound_queue] table on a schedule to be processed.

Data type: String

productOrderItem

Items associated with the product order and their associated action. Data type: Array of Objects

JavaScript
"productOrderItem": [  {    "action": "String",    "actionReason": "String",    "billingAccount": {Object},    "committedDueDate": "String",    "externalProductInventory": [Array],    "id": "String",    "itemPrice": [Array],    "payment": {Object},    "product": {Object},    "productOffering": {Object},    "productOrderItemRelationship": [Array],    "quantity": Number,    "@type": "String"  }]

Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

productOrderItem.@type

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

productOrderItem.action

Required. Action to carry out on the product. Possible actions are defined on the list tab in the Action Dictionary Entry of the sn_ind_tmt_orm_order_line_item table. Possible values:

  • add
  • change

Note: Submitting a change payload that includes a new service location via productOrderItem.product.place.id is processed as a move order.

  • delete
  • no-change
  • resume
  • suspend

Data type: String

Stored in: The action field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table.

productOrderItem.actionReason

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.

productOrderItem.billingAccount

Required. Identifies the billing account and determines how the account is processed.- When an existing billing account ID is passed, the API returns just the matching account's sys_id and type.

  • When a billing account ID is passed that doesn't match an existing record, the API creates a new billing account with the provided ID as the external_id. The object includes conditional attributes associated with the new record.

Data type: Object

Example reference structure:

Text
"billingAccount": {          "id": "sys_id_billing_account_456",          "@type": "BillingAccountRef"        }

Example creation structure:

JSON
"billingAccount": {          "id": "billingID",          "name": "Project 1234 Billing",          "@type": "BillingAccountRef",          "status": "Active",          "active": true        }

productOrderItem.billingAccount.@type

Conditional, required only for account creation. Must always be BillingAccountRef. This indicates that the object is a reference to a billing account record.Data type: String

productOrderItem.billingAccount.active

Conditional, required only for account creation. Flag that indicates whether the billing account is active. This field is used when creating a new billing account, and is ignored when referencing an existing billing account.

Valid values:

  • true: Billing account is active.
  • false: Billing account isn't active.

Default: If not provided during creation, the system uses the default active value configured in your instance

productOrderItem.billingAccount.id

Required. Sys_id or external_id of the billing account to reference or create inline.Data type: String

productOrderItem.billingAccount.name

Conditional, required only for account creation. Display name of the billing account. This field is used when creating a new billing account. If not provided during creation, the system uses a default name pattern. This field is ignored when referencing an existing billing account.

Example: "Main Office Billing", "Project 2024 Billing"

Data type: String

productOrderItem.billingAccount.status

Conditional, required only for account creation. The status of the billing account. This field is used when creating a new billing account. Valid values depend on your instance configuration. If not provided during creation, the system uses the default status value configured in your instance. This field is ignored when referencing an existing billing account.

Example: "Active", "Inactive", "Suspended"

Data type: String

productOrderItem.committedDueDate

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

Data type: String

Format: ISO 8601 (Example: 2021-05-02T08:13:59.506Z)

Stored in: The committed_due_date field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table.

productOrderItem.externalProductInventory.externalProductInventoryId

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.

productOrderItem.externalProductInventory

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

Text
"externalProductInventory": [  {    "externalProductInventoryId": "String"  }]

productOrderItem.id

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: empty string

productOrderItem.itemPrice

Price associated with the product. Data type: Array of Objects

CSS
"itemPrice": [  {    "price": {Object},    "priceType": "String",    "recurringChargePeriod": "String"  }]

Stored in: sn_ind_tmt_orm_order

Default: empty string

productOrderItem.itemPrice.price

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

Text
"price": {  "taxIncludedAmount": {Object}}

Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

Default: empty string

productOrderItem.itemPrice.price.taxIncludedAmount

Description of the price of the associated product, including the tax. Data type: Object

JavaScript
"taxIncludedAmount": {  "unit": "String",  "value": Number}

Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

productOrderItem.itemPrice.price.taxIncludedAmount.unit

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

productOrderItem.itemPrice.price.taxIncludedAmount.value

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

productOrderItem.itemPrice.priceType

Specifies whether the price of the item is recurring or non-recurring. Data type: String

productOrderItem.itemPrice.recurringChargePeriod

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

productOrderItem.payment

Required. Identifies the payment profile. - If the passed profile ID already exists, the API returns just the matching payment profile's sys_Id.

  • If the passed ID doesn't already exist, the API returns the new payment profile's sys_id and associated attributes.

Data type: Object

Reference structure:

Text
"payment": {  "id": "String"}

Creation structure:

JSON
"payment": {  "id": "String",  "paymentMethod": "String",  "paymentMethodType": "String",  "paymentReferenceId": "String"}

See the 'Examples' section for POST requests demonstrating both reference and creation patterns.

productOrderItem.payment.id

Sys_id or external_id of an existing payment profile record.Data type: String

productOrderItem.payment.paymentMethod

Returned only for profile creation. A choice field representing the payment method category. This field is validated against configured payment method choices in your instance. This field is ignored when referencing an existing profile.Example: "Credit Card", "Bank Transfer", "Check", "Digital Wallet"

Data type: String

productOrderItem.payment.paymentMethodType

Returned only for profile creation. A choice field representing the specific payment method type.Example: Visa", "MasterCard", "American Express" for credit cards; "ACH" or "Wire" for bank transfers

Data type: String

productOrderItem.payment.paymentReferenceId

Returned only for profile creation. An external reference identifier for the payment profile.Example: "REF-2024-001", "CARD-XXXX-5678"

Data type: String

productOrderItem.product

Instance details of the product purchased by the customer.Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

Data type: Object

JavaScript
"product": {  "id": "String",  "place": {Object},  "productCharacteristic": [Array],  "productSpecification": {Object},  "relatedParty": {Object},  "@type": "String"}

productOrderItem.product.@type

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

productOrderItem.product.id

Unique identifier of the product sold. Data type: String

Table: In the sys_id or sn_ind_tmt_orm_external_id field of the Product Inventory [sn_ind_tmt_orm_product_inventory] table.

productOrderItem.product.place

Maps of the locations on which to install the product. Data type: Object

Text
"place": {  "id": "String",  "@type": "String"}

Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

productOrderItem.product.place.@type

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

productOrderItem.product.place.id

Required. Sys_id of the associated location record.Data type: String

Table: Location [cmn_location]

Stored in: The location field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table.

productOrderItem.product.productCharacteristic

Characteristics of the associated product.Stored in: sn_ind_tmt_orm_order_characteristic_value

Data type: Array of Objects

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

productOrderItem.product.productCharacteristic.name

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.

productOrderItem.product.productCharacteristic.previousValue

Previous characteristic option values if the update is for 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

Stored in: The previous_characteristic_option_value field of the sn_ind_tmt_orm_order_characteristic_value table.

Default: empty string

productOrderItem.product.productCharacteristic.value

Characteristic option values associated with the product. For additional information on characteristic option values, see Create product characteristics and characteristic options. Data type: String

Stored in: The characteristic_option_value field of the sn_ind_tmt_orm_order_characteristic_value table.

Default: empty string

productOrderItem.product.productCharacteristic.valueType

Type of characteristic value.Accepted values:

  • address
  • array.date
  • array.datetime
  • array.decimal
  • array.integer
  • array.object
  • array.single_line_text
  • attachment
  • checkbox
  • choice
  • date
  • date_time
  • decimal
  • duration
  • email
  • integer
  • object
  • single_line_text
  • yes_no

Data type: String

productOrderItem.product.productSpecification

Description of the product specification associated with the product. Note: Change orders (productOrderItem.action is change) are processed differently based on the value of the sn_ind_tmt_orm.allowSpecVersionUpdateInChangeOrder 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.

  • true: 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.
  • false: If the product inventory is a different version than indicated in the order, the order fails due to the version mismatch.

Data type: Object

JSON
"productSpecification": {  "id": "String",  "internalVersion": "String",  "name": "String",  "version": "String",  "@type": "String"}

Stored in: sn_ind_tmt_orm_order_line_item

productOrderItem.product.productSpecification.@type

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

productOrderItem.product.productSpecification.id

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]

productOrderItem.product.productSpecification.internalVersion

Internal version of the service specification. Must match the value of version otherwise an error is thrown.Data Type: String

Table: In the version field of the Product Specification [sn_prd_pm_product_specification] table.

productOrderItem.product.productSpecification.name

Name of the product specification. Data type: String

Table: Product Specification [sn_prd_pm_product_specification]

productOrderItem.product.productSpecification.version

External version of the service specification. Must match the value of internalVersion otherwise an error is thrown.Data Type: String

Table: In the external_version field of the Product Specification [sn_prd_pm_product_specification] table.

productOrderItem.product.relatedParty

List of party roles linked to an OrderLineItemContact. Data type: Array of Objects

JSON
"relatedParty": [  {    "email": "String",    "firstName": "String",    "lastName": "String",    "phone": "String",    "@referredType": "String",    "@type": "String"  }]

Stored in: sn_ind_tmt_orm_order_line_item_contact

productOrderItem.product.relatedParty.@referredType

Required. Type of customer. Possible value: OrderLineItemContact

Data type: String

productOrderItem.product.relatedParty.@type

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

productOrderItem.product.relatedParty.email

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: empty string

productOrderItem.product.relatedParty.firstName

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: empty string

productOrderItem.product.relatedParty.lastName

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: empty string

productOrderItem.product.relatedParty.phone

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: empty string

productOrderItem.productOffering

Required. Description of the product offering associated with the product. Data type: Object

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

Stored in: sn_ind_tmt_orm_order_line_item

productOrderItem.productOffering.id

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]

productOrderItem.productOffering.internalVersion

Version of the product offering.Data type: String

Table: In the version field of the Product Offering [sn_prd_pm_product_offering] table.

productOrderItem.productOffering.name

Name of the product offering.Data type: String

Table: Product Offering [sn_prd_pm_product_offering]

productOrderItem.productOffering.version

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.

productOrderItem.productOrderItem.quantity

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

productOrderItem.productOrderItemRelationship

List that describes the parent/child relationship between order items. Data type: Array of Objects

Text
"productOrderItemRelationship": [  {    "id": "String",    "relationshipType": "String"  }]

Stored in: sn_ind_tmt_orm_order_line_item

productOrderItem.productOrderItemRelationship.id

Same as the productOrderItem.id value. Used for parent/child relationship Data type: String

Stored in: The parent_line_item field of the sn_ind_tmt_orm_order_line_item table.

Default: empty string

productOrderItem.productOrderItemRelationship.relationshipType

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

  • HasChild
  • HasParent

Data type: String

productOrderItem.quantity

Number of items ordered.Data type: Number

Stored in: The quantity field of the sn_ind_tmt_orm_order table.

Default: empty string

relatedParty

List of contacts for the order containing customer account or consumer account information. Supports reference and inline creation patterns (Account, Contact, Location). Data type: Array of Objects

CSS
"relatedParty": [ {  "role": "String",  "@type": "String",  "partyOrPartyRole": {Object} }]

realtedParty.role

Business role that the referenced party plays in the order context. Matches the relatedParty.@type value.Possible values:

  • Account
  • Contact
  • Customer
  • Location

Data type: String

relatedParty.@type

Record type of the party. Matches the relatedParty.role value.Data type: String

relatedParty.partyOrPartyRole

Object containing the specific reference details about the party.- If the passed ID already exists, the API returns just the @type and id fields of the matching party.

  • If the passed ID doesn't already exist, the API returns a the new Account, Contact, or Location ID with its conditional attributes, which vary based on the @type value.

Data type: Object

Reference pattern:

Text
"partyOrPartyRole": {  "@type": "PartyRef",  "id": "String"}

Account creation:

JSON
"partyOrPartyRole": {  "@type": "PartyRef",  "id": "String",  "accountNumber": "String",  "status": "String"}

Contact creation:

JSON
"partyOrPartyRole": {  "@type": "PartyRef",  "id": "String",  "firstName": "String",  "lastName": "String",  "email": "String" }

Location creation:

JSON
"partyOrPartyRole": {  "@type": "PartyRef",  "id": "String",  "name": "String",  "address": "String",  "city": "String",  "postalCode": "String",  "country": "String" }

relatedParty.partyOrPartyRole.@type

Indicates the type of reference being provided. Value is always PartyRef.Data type: String

relatedParty.partyOrPartyRole.accountNumber

Returned for Account party types. External reference number or identifier for the Account.Data type: String

relatedParty.partyOrPartyRole.address

Returned for Location party types. Street address of the location.Example: "123 Main Street"

Data type: String

relatedParty.partyOrPartyRole.city

Returned for Location party types. City or municipality name for the location.Example: "San Francisco", "New York"

Data type: String

relatedParty.partyOrPartyRole.country

Returned for Location party types. Country where the location is physically situated or where the contact is based.Data type: String

relatedParty.partyOrPartyRole.email

Returned for Contact party types. Contact person's primary email address.Data type: String

relatedParty.partyOrPartyRole.firstName

Returned for Contact party types. Contact person's first name or given name.Data type: String

relatedParty.partyOrPartyRole.id

Sys_id or external_id of the party record.Data type: String

Table: Account [customer_account], Contact [customer_contact] table, or Location [location]

relatedParty.partyOrPartyRole.lastName

Returned for Contact party types. Contact person's last name or given name.Data type: String

relatedParty.partyOrPartyRole.name

Returned for Account, Contact, and Location types. Name of the account, contact, or location. Data type: String

relatedParty.partyOrPartyRole.postalCode

Required for Location party types. Postal code, ZIP code, or PIN code for the location.Data type: String

relatedParty.partyOrPartyRole.status

Returned for Account party types. Current status of the account. Possible values for the status field depend on how your instance is configured.Common values include:

  • Active: Account is in normal operation
  • Inactive: Account is not currently conducting business
  • Suspended: Account is temporarily restricted
  • Pending: Account is awaiting activation
  • Archived: Historical accounts
  • Under Review: Account is being evaluated

Data type: String

relatedParty.role

Business role that the referenced party plays in the order context. Matches the relatedParty.@type value.Possible values:

  • Account: parties representing a customer or business entity
  • Contact: parties representing a contact person
  • Customer: parties representing an end consumer or individual
  • Location: parties representing a service address or fulfillment location

Data type: String

requestedCompletionDate

Delivery date requested by the customer. Data type: String

Format: ISO 8601 (Example: 2021-05-02T08:13:59.506Z)

Stored in: expected_end_date field of the sn_ind_tmt_orm_order table.

requestedStartDate

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

Format: ISO 8601 (Example: 2021-05-02T08:13:59.506Z)

Stored in: expected_start_date field of the sn_ind_tmt_orm_order table.

state

Current state of the order.Data type: String

productOrderItem

Items associated with the product order and their associated action.Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

Data type: Array of Objects

JavaScript
"productOrderItem": [  {    "action": "String",    "actionReason": "String",    "billingAccount": {Object},    "committedDueDate": "String",    "externalProductInventory": [Array],    "id": "String",    "itemPrice": [Array],    "payment": {Object},    "product": {Object},    "productOffering": {Object},    "productOrderItemRelationship": [Array],    "quantity": Number,    "@type": "String"  }]

productOrderItem.@type

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

productOrderItem.action

Action carried out on the product.Possible values:

  • add
  • change
  • delete
  • no-change
  • resume
  • suspend

Data type: String

Stored in: action field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table.

productOrderItem.actionReason

Description of the reason for the order line item.Data type: String

Stored in: action_reason field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table.

productOrderItem.billingAccount

Identifies the billing account and determines how the account is processed.- When you provide a billing.id that matches an existing billing account, the API uses the reference pattern to link the account to the order line item. Other billing account fields you include (name, status, active) are ignored. The system uses only the ID to find and link the existing billing account.

  • When you provide a billing.id that doesn't match an existing billing account, the API creates a new billing account with the provided ID as the external_id. Billing account fields (name, status, active) are required.

Data type: Object

Reference structure:

Text
"billingAccount": {          "id": "sys_id_billing_account_456",          "@type": "BillingAccountRef"        }

Creation structure:

JSON
"billingAccount": {          "id": "billingID",          "name": "Project 1234 Billing",          "@type": "BillingAccountRef",          "status": "Active",          "active": true        }

productOrderItem.billingAccount.@type

Returned for account creation. Must always be BillingAccountRef. This indicates that the object is a reference to a billing account record.Data type: String

productOrderItem.billingAccount.active

Returned only for account creation. Flag that indicates whether the billing account is active. This field is used when creating a new billing account, and is ignored when referencing an existing billing account.

Valid values:

  • true: Billing account is active.
  • false: Billing account isn't active.

productOrderItem.billingAccount.id

Sys_id or external_id of the billing account to reference or create inline.Data type: String

productOrderItem.billingAccount.name

Returned for account creation. Display name of the billing account.Example: "Main Office Billing", "Project 2024 Billing"

Data type: String

productOrderItem.billingAccount.status

Returned for account creation. The status of the billing account. Possible values depend on your instance configuration. Example: "Active", "Inactive", "Suspended"

Data type: String

productOrderItem.committedDueDate

Date and time when the action must be performed on the order line item.Data type: String

Format: ISO 8601 (Example: 2021-05-02T08:13:59.506Z)

Stored in: The committed_due_date field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table.

productOrderItem.externalProductInventory.externalProductInventoryId

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.

productOrderItem.externalProductInventory

External IDs which map to the product inventories created for the order.Data type: Array of Objects

Text
"externalProductInventory": [  {    "externalProductInventoryId": "String"  }]

productOrderItem.id

Required. Unique identifier of the line item. Stored in: The external_id field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table.

Data type: String

productOrderItem.itemPrice

Price associated with the product. Stored in: sn_ind_tmt_orm_order

Data type: Array of Objects

CSS
"itemPrice": [  {    "price": {Object},    "priceType": "String",    "recurringChargePeriod": "String"  }]

productOrderItem.itemPrice.price

Description of the price of the associated product. Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

Data type: Object

Text
"price": {  "taxIncludedAmount": {Object}}

productOrderItem.itemPrice.price.taxIncludedAmount

Description of the price of the associated product, including the tax. Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

Data type: Object

JavaScript
"taxIncludedAmount": {  "unit": "String",  "value": Number}

productOrderItem.itemPrice.price.taxIncludedAmount.unit

Currency code in which the price is expressed.Stored in: The mrc or nrc field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table

Data type: String

productOrderItem.itemPrice.price.taxIncludedAmount.value

Price of product, including any tax. Stored in: The mrc or nrc field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table

Data type: Number

productOrderItem.itemPrice.priceType

Specifies whether the price of the item is recurring or non-recurring. Data type: String

productOrderItem.itemPrice.recurringChargePeriod

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

productOrderItem.payment

Details about the payment profile.Data type: Object

JSON
"payment": {  "id": "String",  "paymentMethod": "String",  "paymentMethodType": "String",  "paymentReferenceId": "String"}

productOrderItem.payment.id

Sys_id or external_id of an existing payment profile record.Data type: String

productOrderItem.payment.paymentMethod

Returned for profile creation. A choice field representing the payment method category. This field is validated against configured payment method choices in your instance.Example: "Credit Card", "Bank Transfer", "Check", "Digital Wallet"

Data type: String

productOrderItem.payment.paymentMethodType

Returned for profile creation. A choice field representing the specific payment method type. This field is validated against configured payment method type choices and is typically dependent on the selected paymentMethod.Example: Visa", "MasterCard", "American Express" for credit cards; "ACH" or "Wire" for bank transfers

Data type: String

productOrderItem.payment.paymentReferenceId

Returned for profile creation. External reference identifier for the payment profile.Example: "REF-2024-001", "CARD-XXXX-5678"

Data type: String

productOrderItem.product

Returned if productOrderItem.action is change or delete. Instance details of the product purchased by the customer.Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

Data type: Object

JavaScript
"product": {  "id": "String",  "place": {Object},  "productCharacteristic": [Array],  "productSpecification": {Object},  "relatedParty": {Object},  "@type": "String"}

productOrderItem.product.@type

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

productOrderItem.product.id

Returned if productOrderItem.action is change or delete. Unique identifier of the product sold. Table: 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.place

Maps of the locations on which to install the product. Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

Data type: Object

Text
"place": {  "id": "String",  "@type": "String"}

productOrderItem.product.place.@type

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

productOrderItem.product.place.id

Sys_id of the associated location record. Table: Location [cmn_location]

Stored in: The location field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table.

Data type: String

productOrderItem.product.productCharacteristic

Characteristics of the associated product. Stored in: sn_ind_tmt_orm_order_characteristic_value

Data type: Array of Objects

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

productOrderItem.product.productCharacteristic.name

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.

productOrderItem.product.productCharacteristic.previousValue

Previous characteristic option values if the update is for 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

Stored in: The previous_characteristic_option_value field of the sn_ind_tmt_orm_order_characteristic_value table.

productOrderItem.product.productCharacteristic.value

Characteristic option values associated with the product. For additional information on characteristic option values, see Create product characteristics and characteristic options. Data type: String

Stored in: The characteristic_option_value field of the sn_ind_tmt_orm_order_characteristic_value table.

productOrderItem.product.productCharacteristic.valueType

Type of characteristic value.Accepted values:

  • address
  • array.date
  • array.datetime
  • array.decimal
  • array.integer
  • array.object
  • array.single_line_text
  • attachment
  • checkbox
  • choice
  • date
  • date_time
  • decimal
  • duration
  • email
  • integer
  • object
  • single_line_text
  • yes_no

Data type: String

productOrderItem.product.productSpecification

Specification details associated with the product. Stored in: sn_ind_tmt_orm_order_line_item

Data type: Object

JSON
"productSpecification": {  "id": "String",  "internalVersion": "String",  "name": "String",  "version": "String",  "@type": "String"}

productOrderItem.product.productSpecification.@type

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

productOrderItem.product.productSpecification.id

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]

productOrderItem.product.productSpecification.internalVersion

Internal version of the service specification. Matches the value of version.Data Type: String

Table: In the version field of the Product Specification [sn_prd_pm_product_specification] table.

productOrderItem.product.productSpecification.name

Name of the product specification. Data type: String

Table: Product Specification [sn_prd_pm_product_specification]

productOrderItem.product.productSpecification.version

External version of the service specification. Matches the value of internalVersion.Data Type: String

Table: In the external_version field of the Product Specification [sn_prd_pm_product_specification] table.

productOrderItem.product.relatedParty

List of party roles linked to an Order Line Item Contact. Stored in: sn_ind_tmt_orm_order_line_item_contact

Data type: Array of Objects

JSON
"relatedParty": [  {    "email": "String",    "firstName": "String",    "lastName": "String",    "phone": "String",    "@referredType": "String",    "@type": "String"  }]

productOrderItem.product.relatedParty.@referredType

Required. Type of customer. Possible value: OrderLineItemContact

Data type: String

productOrderItem.product.relatedParty.@type

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

productOrderItem.product.relatedParty.email

Email address of the contact. Stored in: The email field of the sn_ind_tmt_orm_order_line_item_contact table.

Data type: String

productOrderItem.product.relatedParty.firstName

First name of the contact.Stored in: The first_name field of the sn_ind_tmt_orm_order_line_item_contact table.

Data type: String

productOrderItem.product.relatedParty.lastName

Last name of the contact.Stored in: The lastName field of the sn_ind_tmt_orm_order_line_item_contact table.

Data type: String

productOrderItem.product.relatedParty.phone

Business phone number of the contact. Stored in: The business_phone field of the sn_ind_tmt_orm_order_line_item_contact table.

Data type: String

productOrderItem.productOffering

Details of the product offering associated with the product.Stored in: sn_ind_tmt_orm_order_line_item

Data type: Object

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

productOrderItem.productOffering.id

Initial version or external ID of the product offering. The initial version is the sys_id of the first version of the offering.Table: Product Offering [sn_prd_pm_product_offering]

Data type: String

productOrderItem.productOffering.internalVersion

Version of the product offering.Data type: String

Table: In the version field of the Product Offering [sn_prd_pm_product_offering] table.

productOrderItem.productOffering.name

Name of the product offering.Data type: String

Table: Product Offering [sn_prd_pm_product_offering]

productOrderItem.productOffering.version

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.

productOrderItem.productOrderItem.quantity

Number of the associated items to order. Stored in: The quantity field of the sn_ind_tmt_orm_order table.

Data type: Number

productOrderItem.productOrderItemRelationship

Required. List that describes the parent/child relationship between order items. Data type: Array of Objects

Text
"productOrderItemRelationship": [  {    "id": "String",    "relationshipType": "String"  }]

Stored in: sn_ind_tmt_orm_order_line_item

productOrderItem.productOrderItemRelationship.id

Same as the productOrderItem.id value. Used for parent/child relationship Stored in: The parent_line_item field of the sn_ind_tmt_orm_order_line_item table.

Data type: String

productOrderItem.productOrderItemRelationship.relationshipType

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

  • HasChild
  • HasParent

Data type: String

productOrderItem.quantity

Number of items ordered.Data type: Number

Stored in: The quantity field of the sn_ind_tmt_orm_order table.

### cURL request

This example retrieves all product orders.

Shell
curl --location --request GET 'https://instance.service-now.com/api/sn_ind_tmt_orm/order/productOrder' \--user 'username':'password'

Response body.

JSON
[   {      "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"   }]

GET response with TMF 622 V3 parameters (relatedParty, billingAccount and payment)

JSON
[  {    "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",        "billingAccount": {          "id": "sys_id_ba_001",          "name": "Funco Intl - Main Billing",          "@type": "BillingAccountRef",          "status": "Active",          "active": true        },        "payment": {          "id": "sys_id_payment_001",          "paymentMethod": "Credit Card",          "paymentMethodType": "Visa",          "paymentReferenceId": "REF-2024-001"        },        "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",        "billingAccount": {          "id": "sys_id_ba_002",          "name": "Funco Intl - Service Billing",          "@type": "BillingAccountRef",          "status": "Active",          "active": true        },        "payment": {          "id": "sys_id_payment_002",          "paymentMethod": "Bank Transfer",          "paymentMethodType": "ACH",          "paymentReferenceId": "REF-2024-002"        },        "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",        "billingAccount": {          "id": "sys_id_ba_003",          "name": "Funco Intl - Equipment Billing",          "@type": "BillingAccountRef",          "status": "Active",          "active": true        },        "payment": {          "id": "sys_id_payment_003",          "paymentMethod": "Credit Card",          "paymentMethodType": "MasterCard",          "paymentReferenceId": "REF-2024-003"        },        "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",        "billingAccount": {          "id": "sys_id_ba_002",          "name": "Funco Intl - Service Billing",          "@type": "BillingAccountRef",          "status": "Active",          "active": true        },        "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": [      {        "role": "Contact",        "@type": "Contact",        "partyOrPartyRole": {          "@type": "PartyRef",          "id": "eaf68911c35420105252716b7d40ddde",          "name": "Sally Thomas",          "email": "sally.thomas@funcointl.com"        }      },      {        "role": "Account",        "@type": "Account",        "partyOrPartyRole": {          "@type": "PartyRef",          "id": "ffc68911c35420105252716b7d40dd55",          "name": "Funco Intl"        }      },      {        "role": "Consumer",        "@type": "Consumer",        "partyOrPartyRole": {          "@type": "PartyRef",          "id": "59f16de1c3b67110ff00ed23a140dd9e",          "name": "Funco External"        }      }    ],    "state": "in_progress",    "version": "1",    "@type": "ProductOrder"  }]

Reading Payment Information from Orders

When you retrieve an order using GET or LIST operations, the payment object is included in the order line item response only if a payment profile is actively linked. If an order line item (OLI) does not have a linked payment profile, the payment field is not included in the response. When the payment object is present, it contains all four fields (id, paymentMethod, paymentMethodType, paymentReferenceId) representing the complete profile details.

Example GET response:

JSON
{  "productOrder": {    "id": "order_001",    "orderItem": [      {        "id": "order_line_001",        "product": {          "id": "prod_123"        },        "billingAccount": {          "id": "ba_456"        },        "payment": {          "id": "sys_id_payment_profile_123",          "paymentMethod": "Credit Card",          "paymentMethodType": "Visa",          "paymentReferenceId": "REF-2024-001"        }      }    ]  }}

Example GET response without payment profile:

JSON
{  "productOrder": {    "id": "order_003",    "orderItem": [      {        "id": "order_line_003",        "product": {          "id": "prod_789"        },        "billingAccount": {          "id": "ba_999"        }      }    ]  }}

Reading Billing Account Information from Orders

When you retrieve an order using GET or LIST operations, the billingAccount field is included in the order line item response with the system ID reference and any available billing account details.

Example GET response with billing account reference:

JSON
{  "productOrder": {    "id": "order_001",    "orderItem": [      {        "id": "order_line_001",        "product": {          "id": "prod_123"        },        "billingAccount": {          "id": "sys_id_billing_account_456",          "name": "Project 2024 Billing",          "@type": "BillingAccountRef",          "status": "Active",          "active": true        }      }    ]  }}

Example GET response with newly created billing account:

JSON
{  "productOrder": {    "id": "order_002",    "orderItem": [      {        "id": "order_line_002",        "product": {          "id": "prod_456"        },        "billingAccount": {          "id": "sys_id_billing_account_789",          "name": "Project 2024 Billing",          "@type": "BillingAccountRef",          "status": "Active",          "active": true        }      }    ]  }}

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.

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]

v3 updates for GET/LIST operations

When you retrieve product orders using GET or LIST operations in TMF 622 V3, the response now includes payment profile details and billing account information for each order line item. These new fields provide complete visibility into the payment methods and billing relationships associated with your orders, enabling you to manage billing, fulfillment, and reconciliation processes with comprehensive order data in a single API call.

URL format

Default URL: /api/sn_ind_tmt_orm/productorder

Supported request parameters

Name

Description

api_version

Optional. Version of the endpoint to access. For example, v1 or v2. Only specify this value to use an endpoint version other than the latest. Data type: String

Name

Description

account

Filter product orders by the associated account. Use this to retrieve all orders for a specific customer account or business unit.Data type: String

consumer (relatedParty)

Filter product orders by the consumer or end-user. Use this to retrieve orders for a specific consumer within a customer account, useful in multi-party or wholesale scenarios.Data type: String

contact

Filter product orders by an associated contact. Use this to find all orders linked to a specific person (like order coordinator, and billing contact).Data type: String

externalId

Filter product orders by external identifier. Use this to locate orders using identifiers from external systems or legacy integrations (like legacy order numbers, or third-party reference IDs).Data type: String

fields

List 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

offset

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

Default: 0

state

Filter 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.

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

Headers

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

Header Description
None

Header

Description

Content-Range

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

Content-Type

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

X-Total-Count

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

### Status codes

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

Status code

Description

200

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

206

Partial resource returned in response (with pagination).

400

Bad request. Possible reasons:

  • Invalid path parameter
  • Invalid URI

404

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

### Response body parameters \(JSON\)

Name

Description

@type

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

channel

List of channels to use for selling the products.Stored in: sn_ind_tmt_orm_order

Data type: Array of Objects

Text
"channel": [  {    "id": "String",    "name": "String"  }]

channel.id

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

Stored in: The channel field of the sn_ind_tmt_orm_order table.

channel.name

Name of the channel to use to sell the associated products.Possible channel names are defined on the list tab in the Channel Dictionary Entry of the sn_ind_tmt_orm_order table.

Data type: String

committedDueDate

Date and time when the action must be performed on the order.Stored in: committed_due_date field of the sn_ind_tmt_orm_order table.

Format: ISO 8601 (Example: 2021-05-02T08:13:59.506Z)

Data type: String

externalId

External identifier for the customer order, such as a purchase order number. This value is determined by an external system. Stored in: external_id field of the sn_ind_tmt_orm_order table.

Data type: String

externalSystem

External system identifier that originated the order request, appended with TMF622. Data Type: String

href

Relative link to the resource record.Data type: String

note

Additional notes made by the customer when ordering. Stored in: sn_ind_tmt_orm_order

Data type: Array of Objects

Text
"note": [  {    "text": "String"  }]

note.text

Additional notes/comments made by the customer while ordering.Stored in: The comments field of the sn_ind_tmt_orm_order table.

Data type: String

orderCurrency

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

orderDate

Date and time when the order was created.Data type: String

Format: ISO 8601 (Example: 2021-05-02T08:13:59.506Z)

orderId

Sys_id of the order.Stored in the Inbound Queue [sn_tmt_core_inbound_queue] table on a schedule to be processed.

Data type: String

productOrderItem

Items associated with the product order and their associated action. Data type: Array of Objects

JavaScript
"productOrderItem": [  {    "action": "String",    "actionReason": "String",    "billingAccount": {Object},    "committedDueDate": "String",    "externalProductInventory": [Array],    "id": "String",    "itemPrice": [Array],    "payment": {Object},    "product": {Object},    "productOffering": {Object},    "productOrderItemRelationship": [Array],    "quantity": Number,    "@type": "String"  }]

Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

productOrderItem.@type

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

productOrderItem.action

Required. Action to carry out on the product. Possible actions are defined on the list tab in the Action Dictionary Entry of the sn_ind_tmt_orm_order_line_item table. Possible values:

  • add
  • change

Note: Submitting a change payload that includes a new service location via productOrderItem.product.place.id is processed as a move order.

  • delete
  • no-change
  • resume
  • suspend

Data type: String

Stored in: The action field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table.

productOrderItem.actionReason

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.

productOrderItem.billingAccount

Required. Identifies the billing account and determines how the account is processed.- When an existing billing account ID is passed, the API returns just the matching account's sys_id and type.

  • When a billing account ID is passed that doesn't match an existing record, the API creates a new billing account with the provided ID as the external_id. The object includes conditional attributes associated with the new record.

Data type: Object

Example reference structure:

Text
"billingAccount": {          "id": "sys_id_billing_account_456",          "@type": "BillingAccountRef"        }

Example creation structure:

JSON
"billingAccount": {          "id": "billingID",          "name": "Project 1234 Billing",          "@type": "BillingAccountRef",          "status": "Active",          "active": true        }

productOrderItem.billingAccount.@type

Conditional, required only for account creation. Must always be BillingAccountRef. This indicates that the object is a reference to a billing account record.Data type: String

productOrderItem.billingAccount.active

Conditional, required only for account creation. Flag that indicates whether the billing account is active. This field is used when creating a new billing account, and is ignored when referencing an existing billing account.

Valid values:

  • true: Billing account is active.
  • false: Billing account isn't active.

Default: If not provided during creation, the system uses the default active value configured in your instance

productOrderItem.billingAccount.id

Required. Sys_id or external_id of the billing account to reference or create inline.Data type: String

productOrderItem.billingAccount.name

Conditional, required only for account creation. Display name of the billing account. This field is used when creating a new billing account. If not provided during creation, the system uses a default name pattern. This field is ignored when referencing an existing billing account.

Example: "Main Office Billing", "Project 2024 Billing"

Data type: String

productOrderItem.billingAccount.status

Conditional, required only for account creation. The status of the billing account. This field is used when creating a new billing account. Valid values depend on your instance configuration. If not provided during creation, the system uses the default status value configured in your instance. This field is ignored when referencing an existing billing account.

Example: "Active", "Inactive", "Suspended"

Data type: String

productOrderItem.committedDueDate

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

Data type: String

Format: ISO 8601 (Example: 2021-05-02T08:13:59.506Z)

Stored in: The committed_due_date field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table.

productOrderItem.externalProductInventory.externalProductInventoryId

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.

productOrderItem.externalProductInventory

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

Text
"externalProductInventory": [  {    "externalProductInventoryId": "String"  }]

productOrderItem.id

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: empty string

productOrderItem.itemPrice

Price associated with the product. Data type: Array of Objects

CSS
"itemPrice": [  {    "price": {Object},    "priceType": "String",    "recurringChargePeriod": "String"  }]

Stored in: sn_ind_tmt_orm_order

Default: empty string

productOrderItem.itemPrice.price

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

Text
"price": {  "taxIncludedAmount": {Object}}

Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

Default: empty string

productOrderItem.itemPrice.price.taxIncludedAmount

Description of the price of the associated product, including the tax. Data type: Object

JavaScript
"taxIncludedAmount": {  "unit": "String",  "value": Number}

Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

productOrderItem.itemPrice.price.taxIncludedAmount.unit

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

productOrderItem.itemPrice.price.taxIncludedAmount.value

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

productOrderItem.itemPrice.priceType

Specifies whether the price of the item is recurring or non-recurring. Data type: String

productOrderItem.itemPrice.recurringChargePeriod

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

productOrderItem.payment

Required. Identifies the payment profile. - If the passed profile ID already exists, the API returns just the matching payment profile's sys_Id.

  • If the passed ID doesn't already exist, the API returns the new payment profile's sys_id and associated attributes.

Data type: Object

Reference structure:

Text
"payment": {  "id": "String"}

Creation structure:

JSON
"payment": {  "id": "String",  "paymentMethod": "String",  "paymentMethodType": "String",  "paymentReferenceId": "String"}

See the 'Examples' section for POST requests demonstrating both reference and creation patterns.

productOrderItem.payment.id

Sys_id or external_id of an existing payment profile record.Data type: String

productOrderItem.payment.paymentMethod

Returned only for profile creation. A choice field representing the payment method category. This field is validated against configured payment method choices in your instance. This field is ignored when referencing an existing profile.Example: "Credit Card", "Bank Transfer", "Check", "Digital Wallet"

Data type: String

productOrderItem.payment.paymentMethodType

Returned only for profile creation. A choice field representing the specific payment method type.Example: Visa", "MasterCard", "American Express" for credit cards; "ACH" or "Wire" for bank transfers

Data type: String

productOrderItem.payment.paymentReferenceId

Returned only for profile creation. An external reference identifier for the payment profile.Example: "REF-2024-001", "CARD-XXXX-5678"

Data type: String

productOrderItem.product

Instance details of the product purchased by the customer.Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

Data type: Object

JavaScript
"product": {  "id": "String",  "place": {Object},  "productCharacteristic": [Array],  "productSpecification": {Object},  "relatedParty": {Object},  "@type": "String"}

productOrderItem.product.@type

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

productOrderItem.product.id

Unique identifier of the product sold. Data type: String

Table: In the sys_id or sn_ind_tmt_orm_external_id field of the Product Inventory [sn_ind_tmt_orm_product_inventory] table.

productOrderItem.product.place

Maps of the locations on which to install the product. Data type: Object

Text
"place": {  "id": "String",  "@type": "String"}

Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

productOrderItem.product.place.@type

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

productOrderItem.product.place.id

Required. Sys_id of the associated location record.Data type: String

Table: Location [cmn_location]

Stored in: The location field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table.

productOrderItem.product.productCharacteristic

Characteristics of the associated product.Stored in: sn_ind_tmt_orm_order_characteristic_value

Data type: Array of Objects

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

productOrderItem.product.productCharacteristic.name

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.

productOrderItem.product.productCharacteristic.previousValue

Previous characteristic option values if the update is for 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

Stored in: The previous_characteristic_option_value field of the sn_ind_tmt_orm_order_characteristic_value table.

Default: empty string

productOrderItem.product.productCharacteristic.value

Characteristic option values associated with the product. For additional information on characteristic option values, see Create product characteristics and characteristic options. Data type: String

Stored in: The characteristic_option_value field of the sn_ind_tmt_orm_order_characteristic_value table.

Default: empty string

productOrderItem.product.productCharacteristic.valueType

Type of characteristic value.Accepted values:

  • address
  • array.date
  • array.datetime
  • array.decimal
  • array.integer
  • array.object
  • array.single_line_text
  • attachment
  • checkbox
  • choice
  • date
  • date_time
  • decimal
  • duration
  • email
  • integer
  • object
  • single_line_text
  • yes_no

Data type: String

productOrderItem.product.productSpecification

Description of the product specification associated with the product. Note: Change orders (productOrderItem.action is change) are processed differently based on the value of the sn_ind_tmt_orm.allowSpecVersionUpdateInChangeOrder 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.

  • true: 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.
  • false: If the product inventory is a different version than indicated in the order, the order fails due to the version mismatch.

Data type: Object

JSON
"productSpecification": {  "id": "String",  "internalVersion": "String",  "name": "String",  "version": "String",  "@type": "String"}

Stored in: sn_ind_tmt_orm_order_line_item

productOrderItem.product.productSpecification.@type

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

productOrderItem.product.productSpecification.id

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]

productOrderItem.product.productSpecification.internalVersion

Internal version of the service specification. Must match the value of version otherwise an error is thrown.Data Type: String

Table: In the version field of the Product Specification [sn_prd_pm_product_specification] table.

productOrderItem.product.productSpecification.name

Name of the product specification. Data type: String

Table: Product Specification [sn_prd_pm_product_specification]

productOrderItem.product.productSpecification.version

External version of the service specification. Must match the value of internalVersion otherwise an error is thrown.Data Type: String

Table: In the external_version field of the Product Specification [sn_prd_pm_product_specification] table.

productOrderItem.product.relatedParty

List of party roles linked to an OrderLineItemContact. Data type: Array of Objects

JSON
"relatedParty": [  {    "email": "String",    "firstName": "String",    "lastName": "String",    "phone": "String",    "@referredType": "String",    "@type": "String"  }]

Stored in: sn_ind_tmt_orm_order_line_item_contact

productOrderItem.product.relatedParty.@referredType

Required. Type of customer. Possible value: OrderLineItemContact

Data type: String

productOrderItem.product.relatedParty.@type

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

productOrderItem.product.relatedParty.email

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: empty string

productOrderItem.product.relatedParty.firstName

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: empty string

productOrderItem.product.relatedParty.lastName

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: empty string

productOrderItem.product.relatedParty.phone

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: empty string

productOrderItem.productOffering

Required. Description of the product offering associated with the product. Data type: Object

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

Stored in: sn_ind_tmt_orm_order_line_item

productOrderItem.productOffering.id

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]

productOrderItem.productOffering.internalVersion

Version of the product offering.Data type: String

Table: In the version field of the Product Offering [sn_prd_pm_product_offering] table.

productOrderItem.productOffering.name

Name of the product offering.Data type: String

Table: Product Offering [sn_prd_pm_product_offering]

productOrderItem.productOffering.version

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.

productOrderItem.productOrderItem.quantity

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

productOrderItem.productOrderItemRelationship

List that describes the parent/child relationship between order items. Data type: Array of Objects

Text
"productOrderItemRelationship": [  {    "id": "String",    "relationshipType": "String"  }]

Stored in: sn_ind_tmt_orm_order_line_item

productOrderItem.productOrderItemRelationship.id

Same as the productOrderItem.id value. Used for parent/child relationship Data type: String

Stored in: The parent_line_item field of the sn_ind_tmt_orm_order_line_item table.

Default: empty string

productOrderItem.productOrderItemRelationship.relationshipType

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

  • HasChild
  • HasParent

Data type: String

productOrderItem.quantity

Number of items ordered.Data type: Number

Stored in: The quantity field of the sn_ind_tmt_orm_order table.

Default: empty string

relatedParty

List of contacts for the order containing customer account or consumer account information. Supports reference and inline creation patterns (Account, Contact, Location). Data type: Array of Objects

CSS
"relatedParty": [ {  "role": "String",  "@type": "String",  "partyOrPartyRole": {Object} }]

realtedParty.role

Business role that the referenced party plays in the order context. Matches the relatedParty.@type value.Possible values:

  • Account
  • Contact
  • Customer
  • Location

Data type: String

relatedParty.@type

Record type of the party. Matches the relatedParty.role value.Data type: String

relatedParty.partyOrPartyRole

Object containing the specific reference details about the party.- If the passed ID already exists, the API returns just the @type and id fields of the matching party.

  • If the passed ID doesn't already exist, the API returns a the new Account, Contact, or Location ID with its conditional attributes, which vary based on the @type value.

Data type: Object

Reference pattern:

Text
"partyOrPartyRole": {  "@type": "PartyRef",  "id": "String"}

Account creation:

JSON
"partyOrPartyRole": {  "@type": "PartyRef",  "id": "String",  "accountNumber": "String",  "status": "String"}

Contact creation:

JSON
"partyOrPartyRole": {  "@type": "PartyRef",  "id": "String",  "firstName": "String",  "lastName": "String",  "email": "String" }

Location creation:

JSON
"partyOrPartyRole": {  "@type": "PartyRef",  "id": "String",  "name": "String",  "address": "String",  "city": "String",  "postalCode": "String",  "country": "String" }

relatedParty.partyOrPartyRole.@type

Indicates the type of reference being provided. Value is always PartyRef.Data type: String

relatedParty.partyOrPartyRole.accountNumber

Returned for Account party types. External reference number or identifier for the Account.Data type: String

relatedParty.partyOrPartyRole.address

Returned for Location party types. Street address of the location.Example: "123 Main Street"

Data type: String

relatedParty.partyOrPartyRole.city

Returned for Location party types. City or municipality name for the location.Example: "San Francisco", "New York"

Data type: String

relatedParty.partyOrPartyRole.country

Returned for Location party types. Country where the location is physically situated or where the contact is based.Data type: String

relatedParty.partyOrPartyRole.email

Returned for Contact party types. Contact person's primary email address.Data type: String

relatedParty.partyOrPartyRole.firstName

Returned for Contact party types. Contact person's first name or given name.Data type: String

relatedParty.partyOrPartyRole.id

Sys_id or external_id of the party record.Data type: String

Table: Account [customer_account], Contact [customer_contact] table, or Location [location]

relatedParty.partyOrPartyRole.lastName

Returned for Contact party types. Contact person's last name or given name.Data type: String

relatedParty.partyOrPartyRole.name

Returned for Account, Contact, and Location types. Name of the account, contact, or location. Data type: String

relatedParty.partyOrPartyRole.postalCode

Required for Location party types. Postal code, ZIP code, or PIN code for the location.Data type: String

relatedParty.partyOrPartyRole.status

Returned for Account party types. Current status of the account. Possible values for the status field depend on how your instance is configured.Common values include:

  • Active: Account is in normal operation
  • Inactive: Account is not currently conducting business
  • Suspended: Account is temporarily restricted
  • Pending: Account is awaiting activation
  • Archived: Historical accounts
  • Under Review: Account is being evaluated

Data type: String

relatedParty.role

Business role that the referenced party plays in the order context. Matches the relatedParty.@type value.Possible values:

  • Account: parties representing a customer or business entity
  • Contact: parties representing a contact person
  • Customer: parties representing an end consumer or individual
  • Location: parties representing a service address or fulfillment location

Data type: String

requestedCompletionDate

Delivery date requested by the customer. Data type: String

Format: ISO 8601 (Example: 2021-05-02T08:13:59.506Z)

Stored in: expected_end_date field of the sn_ind_tmt_orm_order table.

requestedStartDate

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

Format: ISO 8601 (Example: 2021-05-02T08:13:59.506Z)

Stored in: expected_start_date field of the sn_ind_tmt_orm_order table.

state

Current state of the order.Data type: String

productOrderItem

Items associated with the product order and their associated action.Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

Data type: Array of Objects

JavaScript
"productOrderItem": [  {    "action": "String",    "actionReason": "String",    "billingAccount": {Object},    "committedDueDate": "String",    "externalProductInventory": [Array],    "id": "String",    "itemPrice": [Array],    "payment": {Object},    "product": {Object},    "productOffering": {Object},    "productOrderItemRelationship": [Array],    "quantity": Number,    "@type": "String"  }]

productOrderItem.@type

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

productOrderItem.action

Action carried out on the product.Possible values:

  • add
  • change
  • delete
  • no-change
  • resume
  • suspend

Data type: String

Stored in: action field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table.

productOrderItem.actionReason

Description of the reason for the order line item.Data type: String

Stored in: action_reason field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table.

productOrderItem.billingAccount

Identifies the billing account and determines how the account is processed.- When you provide a billing.id that matches an existing billing account, the API uses the reference pattern to link the account to the order line item. Other billing account fields you include (name, status, active) are ignored. The system uses only the ID to find and link the existing billing account.

  • When you provide a billing.id that doesn't match an existing billing account, the API creates a new billing account with the provided ID as the external_id. Billing account fields (name, status, active) are required.

Data type: Object

Reference structure:

Text
"billingAccount": {          "id": "sys_id_billing_account_456",          "@type": "BillingAccountRef"        }

Creation structure:

JSON
"billingAccount": {          "id": "billingID",          "name": "Project 1234 Billing",          "@type": "BillingAccountRef",          "status": "Active",          "active": true        }

productOrderItem.billingAccount.@type

Returned for account creation. Must always be BillingAccountRef. This indicates that the object is a reference to a billing account record.Data type: String

productOrderItem.billingAccount.active

Returned only for account creation. Flag that indicates whether the billing account is active. This field is used when creating a new billing account, and is ignored when referencing an existing billing account.

Valid values:

  • true: Billing account is active.
  • false: Billing account isn't active.

productOrderItem.billingAccount.id

Sys_id or external_id of the billing account to reference or create inline.Data type: String

productOrderItem.billingAccount.name

Returned for account creation. Display name of the billing account.Example: "Main Office Billing", "Project 2024 Billing"

Data type: String

productOrderItem.billingAccount.status

Returned for account creation. The status of the billing account. Possible values depend on your instance configuration. Example: "Active", "Inactive", "Suspended"

Data type: String

productOrderItem.committedDueDate

Date and time when the action must be performed on the order line item.Data type: String

Format: ISO 8601 (Example: 2021-05-02T08:13:59.506Z)

Stored in: The committed_due_date field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table.

productOrderItem.externalProductInventory.externalProductInventoryId

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.

productOrderItem.externalProductInventory

External IDs which map to the product inventories created for the order.Data type: Array of Objects

Text
"externalProductInventory": [  {    "externalProductInventoryId": "String"  }]

productOrderItem.id

Required. Unique identifier of the line item. Stored in: The external_id field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table.

Data type: String

productOrderItem.itemPrice

Price associated with the product. Stored in: sn_ind_tmt_orm_order

Data type: Array of Objects

CSS
"itemPrice": [  {    "price": {Object},    "priceType": "String",    "recurringChargePeriod": "String"  }]

productOrderItem.itemPrice.price

Description of the price of the associated product. Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

Data type: Object

Text
"price": {  "taxIncludedAmount": {Object}}

productOrderItem.itemPrice.price.taxIncludedAmount

Description of the price of the associated product, including the tax. Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

Data type: Object

JavaScript
"taxIncludedAmount": {  "unit": "String",  "value": Number}

productOrderItem.itemPrice.price.taxIncludedAmount.unit

Currency code in which the price is expressed.Stored in: The mrc or nrc field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table

Data type: String

productOrderItem.itemPrice.price.taxIncludedAmount.value

Price of product, including any tax. Stored in: The mrc or nrc field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table

Data type: Number

productOrderItem.itemPrice.priceType

Specifies whether the price of the item is recurring or non-recurring. Data type: String

productOrderItem.itemPrice.recurringChargePeriod

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

productOrderItem.payment

Details about the payment profile.Data type: Object

JSON
"payment": {  "id": "String",  "paymentMethod": "String",  "paymentMethodType": "String",  "paymentReferenceId": "String"}

productOrderItem.payment.id

Sys_id or external_id of an existing payment profile record.Data type: String

productOrderItem.payment.paymentMethod

Returned for profile creation. A choice field representing the payment method category. This field is validated against configured payment method choices in your instance.Example: "Credit Card", "Bank Transfer", "Check", "Digital Wallet"

Data type: String

productOrderItem.payment.paymentMethodType

Returned for profile creation. A choice field representing the specific payment method type. This field is validated against configured payment method type choices and is typically dependent on the selected paymentMethod.Example: Visa", "MasterCard", "American Express" for credit cards; "ACH" or "Wire" for bank transfers

Data type: String

productOrderItem.payment.paymentReferenceId

Returned for profile creation. External reference identifier for the payment profile.Example: "REF-2024-001", "CARD-XXXX-5678"

Data type: String

productOrderItem.product

Returned if productOrderItem.action is change or delete. Instance details of the product purchased by the customer.Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

Data type: Object

JavaScript
"product": {  "id": "String",  "place": {Object},  "productCharacteristic": [Array],  "productSpecification": {Object},  "relatedParty": {Object},  "@type": "String"}

productOrderItem.product.@type

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

productOrderItem.product.id

Returned if productOrderItem.action is change or delete. Unique identifier of the product sold. Table: 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.place

Maps of the locations on which to install the product. Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

Data type: Object

Text
"place": {  "id": "String",  "@type": "String"}

productOrderItem.product.place.@type

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

productOrderItem.product.place.id

Sys_id of the associated location record. Table: Location [cmn_location]

Stored in: The location field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table.

Data type: String

productOrderItem.product.productCharacteristic

Characteristics of the associated product. Stored in: sn_ind_tmt_orm_order_characteristic_value

Data type: Array of Objects

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

productOrderItem.product.productCharacteristic.name

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.

productOrderItem.product.productCharacteristic.previousValue

Previous characteristic option values if the update is for 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

Stored in: The previous_characteristic_option_value field of the sn_ind_tmt_orm_order_characteristic_value table.

productOrderItem.product.productCharacteristic.value

Characteristic option values associated with the product. For additional information on characteristic option values, see Create product characteristics and characteristic options. Data type: String

Stored in: The characteristic_option_value field of the sn_ind_tmt_orm_order_characteristic_value table.

productOrderItem.product.productCharacteristic.valueType

Type of characteristic value.Accepted values:

  • address
  • array.date
  • array.datetime
  • array.decimal
  • array.integer
  • array.object
  • array.single_line_text
  • attachment
  • checkbox
  • choice
  • date
  • date_time
  • decimal
  • duration
  • email
  • integer
  • object
  • single_line_text
  • yes_no

Data type: String

productOrderItem.product.productSpecification

Specification details associated with the product. Stored in: sn_ind_tmt_orm_order_line_item

Data type: Object

JSON
"productSpecification": {  "id": "String",  "internalVersion": "String",  "name": "String",  "version": "String",  "@type": "String"}

productOrderItem.product.productSpecification.@type

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

productOrderItem.product.productSpecification.id

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]

productOrderItem.product.productSpecification.internalVersion

Internal version of the service specification. Matches the value of version.Data Type: String

Table: In the version field of the Product Specification [sn_prd_pm_product_specification] table.

productOrderItem.product.productSpecification.name

Name of the product specification. Data type: String

Table: Product Specification [sn_prd_pm_product_specification]

productOrderItem.product.productSpecification.version

External version of the service specification. Matches the value of internalVersion.Data Type: String

Table: In the external_version field of the Product Specification [sn_prd_pm_product_specification] table.

productOrderItem.product.relatedParty

List of party roles linked to an Order Line Item Contact. Stored in: sn_ind_tmt_orm_order_line_item_contact

Data type: Array of Objects

JSON
"relatedParty": [  {    "email": "String",    "firstName": "String",    "lastName": "String",    "phone": "String",    "@referredType": "String",    "@type": "String"  }]

productOrderItem.product.relatedParty.@referredType

Required. Type of customer. Possible value: OrderLineItemContact

Data type: String

productOrderItem.product.relatedParty.@type

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

productOrderItem.product.relatedParty.email

Email address of the contact. Stored in: The email field of the sn_ind_tmt_orm_order_line_item_contact table.

Data type: String

productOrderItem.product.relatedParty.firstName

First name of the contact.Stored in: The first_name field of the sn_ind_tmt_orm_order_line_item_contact table.

Data type: String

productOrderItem.product.relatedParty.lastName

Last name of the contact.Stored in: The lastName field of the sn_ind_tmt_orm_order_line_item_contact table.

Data type: String

productOrderItem.product.relatedParty.phone

Business phone number of the contact. Stored in: The business_phone field of the sn_ind_tmt_orm_order_line_item_contact table.

Data type: String

productOrderItem.productOffering

Details of the product offering associated with the product.Stored in: sn_ind_tmt_orm_order_line_item

Data type: Object

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

productOrderItem.productOffering.id

Initial version or external ID of the product offering. The initial version is the sys_id of the first version of the offering.Table: Product Offering [sn_prd_pm_product_offering]

Data type: String

productOrderItem.productOffering.internalVersion

Version of the product offering.Data type: String

Table: In the version field of the Product Offering [sn_prd_pm_product_offering] table.

productOrderItem.productOffering.name

Name of the product offering.Data type: String

Table: Product Offering [sn_prd_pm_product_offering]

productOrderItem.productOffering.version

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.

productOrderItem.productOrderItem.quantity

Number of the associated items to order. Stored in: The quantity field of the sn_ind_tmt_orm_order table.

Data type: Number

productOrderItem.productOrderItemRelationship

Required. List that describes the parent/child relationship between order items. Data type: Array of Objects

Text
"productOrderItemRelationship": [  {    "id": "String",    "relationshipType": "String"  }]

Stored in: sn_ind_tmt_orm_order_line_item

productOrderItem.productOrderItemRelationship.id

Same as the productOrderItem.id value. Used for parent/child relationship Stored in: The parent_line_item field of the sn_ind_tmt_orm_order_line_item table.

Data type: String

productOrderItem.productOrderItemRelationship.relationshipType

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

  • HasChild
  • HasParent

Data type: String

productOrderItem.quantity

Number of items ordered.Data type: Number

Stored in: The quantity field of the sn_ind_tmt_orm_order table.

### cURL request

This example retrieves all product orders.

Shell
curl --location --request GET 'https://instance.servicenow.com/api/sn_ind_tmt_orm/productorder' \--user 'username':'password'

Response body.

JSON
[   {      "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"   }]

GET response with TMF 622 V3 parameters (relatedParty, billingAccount and payment)

JSON
[  {    "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",        "billingAccount": {          "id": "ext_ba_funco_security",          "name": "Funco Intl - Security Services",          "@type": "BillingAccountRef",          "status": "Active",          "active": true        },        "payment": {          "paymentMethod": "Credit Card",          "paymentMethodType": "Visa",          "paymentReferenceId": "REF-2024-SD-SECURITY"        },        "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",        "billingAccount": {          "id": "ext_ba_funco_service",          "name": "Funco Intl - Service Package",          "@type": "BillingAccountRef",          "status": "Active",          "active": true        },        "payment": {          "paymentMethod": "Bank Transfer",          "paymentMethodType": "ACH",          "paymentReferenceId": "REF-2024-SD-SERVICE"        },        "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",        "billingAccount": {          "id": "ext_ba_funco_equipment",          "name": "Funco Intl - Equipment Billing",          "@type": "BillingAccountRef",          "status": "Active",          "active": true        },        "payment": {          "paymentMethod": "Credit Card",          "paymentMethodType": "MasterCard",          "paymentReferenceId": "REF-2024-SD-EQUIPMENT"        },        "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",        "billingAccount": {          "id": "sys_id_ba_existing_controller",          "@type": "BillingAccountRef"        },        "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": [      {        "role": "Contact",        "@type": "Contact",        "partyOrPartyRole": {          "@type": "PartyRef",          "id": "eaf68911c35420105252716b7d40ddde"        }      },      {        "role": "Account",        "@type": "Account",        "partyOrPartyRole": {          "@type": "PartyRef",          "id": "ffc68911c35420105252716b7d40dd55"        }      },      {        "role": "Consumer",        "@type": "Consumer",        "partyOrPartyRole": {          "@type": "PartyRef",          "id": "59f16de1c3b67110ff00ed23a140dd9e"        }      }    ],    "state": "in_progress",    "version": "1",    "@type": "ProductOrder"  }]

Reading Payment Information from Orders

When you retrieve an order using GET or LIST operations, the payment object is included in the order line item response only if a payment profile is actively linked. If an order line item (OLI) does not have a linked payment profile, the payment field is not included in the response. When the payment object is present, it contains all four fields (id, paymentMethod, paymentMethodType, paymentReferenceId) representing the complete profile details.

Example GET response:

JSON
{  "productOrder": {    "id": "order_001",    "orderItem": [      {        "id": "order_line_001",        "product": {          "id": "prod_123"        },        "billingAccount": {          "id": "ba_456"        },        "payment": {          "id": "sys_id_payment_profile_123",          "paymentMethod": "Credit Card",          "paymentMethodType": "Visa",          "paymentReferenceId": "REF-2024-001"        }      }    ]  }}

Example GET response without payment profile:

JSON
{  "productOrder": {    "id": "order_003",    "orderItem": [      {        "id": "order_line_003",        "product": {          "id": "prod_789"        },        "billingAccount": {          "id": "ba_999"        }      }    ]  }}

Reading Billing Account Information from Orders

When you retrieve an order using GET or LIST operations, the billingAccount field is included in the order line item response with the system ID reference and any available billing account details.

Example GET response with billing account reference:

JSON
{  "productOrder": {    "id": "order_001",    "orderItem": [      {        "id": "order_line_001",        "product": {          "id": "prod_123"        },        "billingAccount": {          "id": "sys_id_billing_account_456",          "name": "Project 2024 Billing",          "@type": "BillingAccountRef",          "status": "Active",          "active": true        }      }    ]  }}

Example GET response with newly created billing account:

JSON
{  "productOrder": {    "id": "order_002",    "orderItem": [      {        "id": "order_line_002",        "product": {          "id": "prod_456"        },        "billingAccount": {          "id": "sys_id_billing_account_789",          "name": "Project 2024 Billing",          "@type": "BillingAccountRef",          "status": "Active",          "active": true        }      }    ]  }}

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}.

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]

v3 updates for GET/LIST operations

When you retrieve product orders using GET or LIST operations in TMF 622 V3, the response now includes payment profile details and billing account information for each order line item. These new fields provide complete visibility into the payment methods and billing relationships associated with your orders, enabling you to manage billing, fulfillment, and reconciliation processes with comprehensive order data in a single API call.

URL format

Default URL: /api/sn_ind_tmt_orm/productorder/{id}

Supported request parameters

Name

Description

api_version

Optional. Version of the endpoint to access. For example, v1 or v2. Only specify this value to use an endpoint version other than the latest. Data type: String

id

Sys_id or external_id of the customer order to retrieve.Data type: String

Table: Customer Order [sn_ind_tmt_orm_order]

Name

Description

account

Filter product orders by the associated account. Use this to retrieve all orders for a specific customer account or business unit.Data type: String

consumer (relatedParty)

Filter product orders by the consumer or end-user. Use this to retrieve orders for a specific consumer within a customer account, useful in multi-party or wholesale scenarios.Data type: String

contact

Filter product orders by an associated contact. Use this to find all orders linked to a specific person (like order coordinator, and billing contact).Data type: String

externalId

Filter product orders by external identifier. Use this to locate orders using identifiers from external systems or legacy integrations (like legacy order numbers, or third-party reference IDs).Data type: String

state

Filter 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.

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

Headers

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

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

Status codes

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

Status code

Description

201

Successful. The request was successfully processed.

400

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

  • Invalid URI

404

Not found. The requested item wasn't found.

### Response body parameters \(JSON\)

Name

Description

@type

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

channel

List of channels to use for selling the products.Stored in: sn_ind_tmt_orm_order

Data type: Array of Objects

Text
"channel": [  {    "id": "String",    "name": "String"  }]

channel.id

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

Stored in: The channel field of the sn_ind_tmt_orm_order table.

channel.name

Name of the channel to use to sell the associated products.Possible channel names are defined on the list tab in the Channel Dictionary Entry of the sn_ind_tmt_orm_order table.

Data type: String

committedDueDate

Date and time when the action must be performed on the order.Stored in: committed_due_date field of the sn_ind_tmt_orm_order table.

Format: ISO 8601 (Example: 2021-05-02T08:13:59.506Z)

Data type: String

externalId

External identifier for the customer order, such as a purchase order number. This value is determined by an external system. Stored in: external_id field of the sn_ind_tmt_orm_order table.

Data type: String

externalSystem

External system identifier that originated the order request, appended with TMF622. Data Type: String

href

Relative link to the resource record.Data type: String

note

Additional notes made by the customer when ordering. Stored in: sn_ind_tmt_orm_order

Data type: Array of Objects

Text
"note": [  {    "text": "String"  }]

note.text

Additional notes/comments made by the customer while ordering.Stored in: The comments field of the sn_ind_tmt_orm_order table.

Data type: String

orderCurrency

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

orderDate

Date and time when the order was created.Data type: String

Format: ISO 8601 (Example: 2021-05-02T08:13:59.506Z)

orderId

Sys_id of the order.Stored in the Inbound Queue [sn_tmt_core_inbound_queue] table on a schedule to be processed.

Data type: String

productOrderItem

Items associated with the product order and their associated action. Data type: Array of Objects

JavaScript
"productOrderItem": [  {    "action": "String",    "actionReason": "String",    "billingAccount": {Object},    "committedDueDate": "String",    "externalProductInventory": [Array],    "id": "String",    "itemPrice": [Array],    "payment": {Object},    "product": {Object},    "productOffering": {Object},    "productOrderItemRelationship": [Array],    "quantity": Number,    "@type": "String"  }]

Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

productOrderItem.@type

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

productOrderItem.action

Required. Action to carry out on the product. Possible actions are defined on the list tab in the Action Dictionary Entry of the sn_ind_tmt_orm_order_line_item table. Possible values:

  • add
  • change

Note: Submitting a change payload that includes a new service location via productOrderItem.product.place.id is processed as a move order.

  • delete
  • no-change
  • resume
  • suspend

Data type: String

Stored in: The action field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table.

productOrderItem.actionReason

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.

productOrderItem.billingAccount

Required. Identifies the billing account and determines how the account is processed.- When an existing billing account ID is passed, the API returns just the matching account's sys_id and type.

  • When a billing account ID is passed that doesn't match an existing record, the API creates a new billing account with the provided ID as the external_id. The object includes conditional attributes associated with the new record.

Data type: Object

Example reference structure:

Text
"billingAccount": {          "id": "sys_id_billing_account_456",          "@type": "BillingAccountRef"        }

Example creation structure:

JSON
"billingAccount": {          "id": "billingID",          "name": "Project 1234 Billing",          "@type": "BillingAccountRef",          "status": "Active",          "active": true        }

productOrderItem.billingAccount.@type

Conditional, required only for account creation. Must always be BillingAccountRef. This indicates that the object is a reference to a billing account record.Data type: String

productOrderItem.billingAccount.active

Conditional, required only for account creation. Flag that indicates whether the billing account is active. This field is used when creating a new billing account, and is ignored when referencing an existing billing account.

Valid values:

  • true: Billing account is active.
  • false: Billing account isn't active.

Default: If not provided during creation, the system uses the default active value configured in your instance

productOrderItem.billingAccount.id

Required. Sys_id or external_id of the billing account to reference or create inline.Data type: String

productOrderItem.billingAccount.name

Conditional, required only for account creation. Display name of the billing account. This field is used when creating a new billing account. If not provided during creation, the system uses a default name pattern. This field is ignored when referencing an existing billing account.

Example: "Main Office Billing", "Project 2024 Billing"

Data type: String

productOrderItem.billingAccount.status

Conditional, required only for account creation. The status of the billing account. This field is used when creating a new billing account. Valid values depend on your instance configuration. If not provided during creation, the system uses the default status value configured in your instance. This field is ignored when referencing an existing billing account.

Example: "Active", "Inactive", "Suspended"

Data type: String

productOrderItem.committedDueDate

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

Data type: String

Format: ISO 8601 (Example: 2021-05-02T08:13:59.506Z)

Stored in: The committed_due_date field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table.

productOrderItem.externalProductInventory.externalProductInventoryId

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.

productOrderItem.externalProductInventory

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

Text
"externalProductInventory": [  {    "externalProductInventoryId": "String"  }]

productOrderItem.id

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: empty string

productOrderItem.itemPrice

Price associated with the product. Data type: Array of Objects

CSS
"itemPrice": [  {    "price": {Object},    "priceType": "String",    "recurringChargePeriod": "String"  }]

Stored in: sn_ind_tmt_orm_order

Default: empty string

productOrderItem.itemPrice.price

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

Text
"price": {  "taxIncludedAmount": {Object}}

Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

Default: empty string

productOrderItem.itemPrice.price.taxIncludedAmount

Description of the price of the associated product, including the tax. Data type: Object

JavaScript
"taxIncludedAmount": {  "unit": "String",  "value": Number}

Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

productOrderItem.itemPrice.price.taxIncludedAmount.unit

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

productOrderItem.itemPrice.price.taxIncludedAmount.value

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

productOrderItem.itemPrice.priceType

Specifies whether the price of the item is recurring or non-recurring. Data type: String

productOrderItem.itemPrice.recurringChargePeriod

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

productOrderItem.payment

Required. Identifies the payment profile. - If the passed profile ID already exists, the API returns just the matching payment profile's sys_Id.

  • If the passed ID doesn't already exist, the API returns the new payment profile's sys_id and associated attributes.

Data type: Object

Reference structure:

Text
"payment": {  "id": "String"}

Creation structure:

JSON
"payment": {  "id": "String",  "paymentMethod": "String",  "paymentMethodType": "String",  "paymentReferenceId": "String"}

See the 'Examples' section for POST requests demonstrating both reference and creation patterns.

productOrderItem.payment.id

Sys_id or external_id of an existing payment profile record.Data type: String

productOrderItem.payment.paymentMethod

Returned only for profile creation. A choice field representing the payment method category. This field is validated against configured payment method choices in your instance. This field is ignored when referencing an existing profile.Example: "Credit Card", "Bank Transfer", "Check", "Digital Wallet"

Data type: String

productOrderItem.payment.paymentMethodType

Returned only for profile creation. A choice field representing the specific payment method type.Example: Visa", "MasterCard", "American Express" for credit cards; "ACH" or "Wire" for bank transfers

Data type: String

productOrderItem.payment.paymentReferenceId

Returned only for profile creation. An external reference identifier for the payment profile.Example: "REF-2024-001", "CARD-XXXX-5678"

Data type: String

productOrderItem.product

Instance details of the product purchased by the customer.Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

Data type: Object

JavaScript
"product": {  "id": "String",  "place": {Object},  "productCharacteristic": [Array],  "productSpecification": {Object},  "relatedParty": {Object},  "@type": "String"}

productOrderItem.product.@type

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

productOrderItem.product.id

Unique identifier of the product sold. Data type: String

Table: In the sys_id or sn_ind_tmt_orm_external_id field of the Product Inventory [sn_ind_tmt_orm_product_inventory] table.

productOrderItem.product.place

Maps of the locations on which to install the product. Data type: Object

Text
"place": {  "id": "String",  "@type": "String"}

Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

productOrderItem.product.place.@type

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

productOrderItem.product.place.id

Required. Sys_id of the associated location record.Data type: String

Table: Location [cmn_location]

Stored in: The location field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table.

productOrderItem.product.productCharacteristic

Characteristics of the associated product.Stored in: sn_ind_tmt_orm_order_characteristic_value

Data type: Array of Objects

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

productOrderItem.product.productCharacteristic.name

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.

productOrderItem.product.productCharacteristic.previousValue

Previous characteristic option values if the update is for 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

Stored in: The previous_characteristic_option_value field of the sn_ind_tmt_orm_order_characteristic_value table.

Default: empty string

productOrderItem.product.productCharacteristic.value

Characteristic option values associated with the product. For additional information on characteristic option values, see Create product characteristics and characteristic options. Data type: String

Stored in: The characteristic_option_value field of the sn_ind_tmt_orm_order_characteristic_value table.

Default: empty string

productOrderItem.product.productCharacteristic.valueType

Type of characteristic value.Accepted values:

  • address
  • array.date
  • array.datetime
  • array.decimal
  • array.integer
  • array.object
  • array.single_line_text
  • attachment
  • checkbox
  • choice
  • date
  • date_time
  • decimal
  • duration
  • email
  • integer
  • object
  • single_line_text
  • yes_no

Data type: String

productOrderItem.product.productSpecification

Description of the product specification associated with the product. Note: Change orders (productOrderItem.action is change) are processed differently based on the value of the sn_ind_tmt_orm.allowSpecVersionUpdateInChangeOrder 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.

  • true: 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.
  • false: If the product inventory is a different version than indicated in the order, the order fails due to the version mismatch.

Data type: Object

JSON
"productSpecification": {  "id": "String",  "internalVersion": "String",  "name": "String",  "version": "String",  "@type": "String"}

Stored in: sn_ind_tmt_orm_order_line_item

productOrderItem.product.productSpecification.@type

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

productOrderItem.product.productSpecification.id

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]

productOrderItem.product.productSpecification.internalVersion

Internal version of the service specification. Must match the value of version otherwise an error is thrown.Data Type: String

Table: In the version field of the Product Specification [sn_prd_pm_product_specification] table.

productOrderItem.product.productSpecification.name

Name of the product specification. Data type: String

Table: Product Specification [sn_prd_pm_product_specification]

productOrderItem.product.productSpecification.version

External version of the service specification. Must match the value of internalVersion otherwise an error is thrown.Data Type: String

Table: In the external_version field of the Product Specification [sn_prd_pm_product_specification] table.

productOrderItem.product.relatedParty

List of party roles linked to an OrderLineItemContact. Data type: Array of Objects

JSON
"relatedParty": [  {    "email": "String",    "firstName": "String",    "lastName": "String",    "phone": "String",    "@referredType": "String",    "@type": "String"  }]

Stored in: sn_ind_tmt_orm_order_line_item_contact

productOrderItem.product.relatedParty.@referredType

Required. Type of customer. Possible value: OrderLineItemContact

Data type: String

productOrderItem.product.relatedParty.@type

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

productOrderItem.product.relatedParty.email

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: empty string

productOrderItem.product.relatedParty.firstName

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: empty string

productOrderItem.product.relatedParty.lastName

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: empty string

productOrderItem.product.relatedParty.phone

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: empty string

productOrderItem.productOffering

Required. Description of the product offering associated with the product. Data type: Object

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

Stored in: sn_ind_tmt_orm_order_line_item

productOrderItem.productOffering.id

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]

productOrderItem.productOffering.internalVersion

Version of the product offering.Data type: String

Table: In the version field of the Product Offering [sn_prd_pm_product_offering] table.

productOrderItem.productOffering.name

Name of the product offering.Data type: String

Table: Product Offering [sn_prd_pm_product_offering]

productOrderItem.productOffering.version

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.

productOrderItem.productOrderItem.quantity

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

productOrderItem.productOrderItemRelationship

List that describes the parent/child relationship between order items. Data type: Array of Objects

Text
"productOrderItemRelationship": [  {    "id": "String",    "relationshipType": "String"  }]

Stored in: sn_ind_tmt_orm_order_line_item

productOrderItem.productOrderItemRelationship.id

Same as the productOrderItem.id value. Used for parent/child relationship Data type: String

Stored in: The parent_line_item field of the sn_ind_tmt_orm_order_line_item table.

Default: empty string

productOrderItem.productOrderItemRelationship.relationshipType

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

  • HasChild
  • HasParent

Data type: String

productOrderItem.quantity

Number of items ordered.Data type: Number

Stored in: The quantity field of the sn_ind_tmt_orm_order table.

Default: empty string

relatedParty

List of contacts for the order containing customer account or consumer account information. Supports reference and inline creation patterns (Account, Contact, Location). Data type: Array of Objects

CSS
"relatedParty": [ {  "role": "String",  "@type": "String",  "partyOrPartyRole": {Object} }]

realtedParty.role

Business role that the referenced party plays in the order context. Matches the relatedParty.@type value.Possible values:

  • Account
  • Contact
  • Customer
  • Location

Data type: String

relatedParty.@type

Record type of the party. Matches the relatedParty.role value.Data type: String

relatedParty.partyOrPartyRole

Object containing the specific reference details about the party.- If the passed ID already exists, the API returns just the @type and id fields of the matching party.

  • If the passed ID doesn't already exist, the API returns a the new Account, Contact, or Location ID with its conditional attributes, which vary based on the @type value.

Data type: Object

Reference pattern:

Text
"partyOrPartyRole": {  "@type": "PartyRef",  "id": "String"}

Account creation:

JSON
"partyOrPartyRole": {  "@type": "PartyRef",  "id": "String",  "accountNumber": "String",  "status": "String"}

Contact creation:

JSON
"partyOrPartyRole": {  "@type": "PartyRef",  "id": "String",  "firstName": "String",  "lastName": "String",  "email": "String" }

Location creation:

JSON
"partyOrPartyRole": {  "@type": "PartyRef",  "id": "String",  "name": "String",  "address": "String",  "city": "String",  "postalCode": "String",  "country": "String" }

relatedParty.partyOrPartyRole.@type

Indicates the type of reference being provided. Value is always PartyRef.Data type: String

relatedParty.partyOrPartyRole.accountNumber

Returned for Account party types. External reference number or identifier for the Account.Data type: String

relatedParty.partyOrPartyRole.address

Returned for Location party types. Street address of the location.Example: "123 Main Street"

Data type: String

relatedParty.partyOrPartyRole.city

Returned for Location party types. City or municipality name for the location.Example: "San Francisco", "New York"

Data type: String

relatedParty.partyOrPartyRole.country

Returned for Location party types. Country where the location is physically situated or where the contact is based.Data type: String

relatedParty.partyOrPartyRole.email

Returned for Contact party types. Contact person's primary email address.Data type: String

relatedParty.partyOrPartyRole.firstName

Returned for Contact party types. Contact person's first name or given name.Data type: String

relatedParty.partyOrPartyRole.id

Sys_id or external_id of the party record.Data type: String

Table: Account [customer_account], Contact [customer_contact] table, or Location [location]

relatedParty.partyOrPartyRole.lastName

Returned for Contact party types. Contact person's last name or given name.Data type: String

relatedParty.partyOrPartyRole.name

Returned for Account, Contact, and Location types. Name of the account, contact, or location. Data type: String

relatedParty.partyOrPartyRole.postalCode

Required for Location party types. Postal code, ZIP code, or PIN code for the location.Data type: String

relatedParty.partyOrPartyRole.status

Returned for Account party types. Current status of the account. Possible values for the status field depend on how your instance is configured.Common values include:

  • Active: Account is in normal operation
  • Inactive: Account is not currently conducting business
  • Suspended: Account is temporarily restricted
  • Pending: Account is awaiting activation
  • Archived: Historical accounts
  • Under Review: Account is being evaluated

Data type: String

relatedParty.role

Business role that the referenced party plays in the order context. Matches the relatedParty.@type value.Possible values:

  • Account: parties representing a customer or business entity
  • Contact: parties representing a contact person
  • Customer: parties representing an end consumer or individual
  • Location: parties representing a service address or fulfillment location

Data type: String

requestedCompletionDate

Delivery date requested by the customer. Data type: String

Format: ISO 8601 (Example: 2021-05-02T08:13:59.506Z)

Stored in: expected_end_date field of the sn_ind_tmt_orm_order table.

requestedStartDate

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

Format: ISO 8601 (Example: 2021-05-02T08:13:59.506Z)

Stored in: expected_start_date field of the sn_ind_tmt_orm_order table.

state

Current state of the order.Data type: String

productOrderItem

Items associated with the product order and their associated action.Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

Data type: Array of Objects

JavaScript
"productOrderItem": [  {    "action": "String",    "actionReason": "String",    "billingAccount": {Object},    "committedDueDate": "String",    "externalProductInventory": [Array],    "id": "String",    "itemPrice": [Array],    "payment": {Object},    "product": {Object},    "productOffering": {Object},    "productOrderItemRelationship": [Array],    "quantity": Number,    "@type": "String"  }]

productOrderItem.@type

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

productOrderItem.action

Action carried out on the product.Possible values:

  • add
  • change
  • delete
  • no-change
  • resume
  • suspend

Data type: String

Stored in: action field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table.

productOrderItem.actionReason

Description of the reason for the order line item.Data type: String

Stored in: action_reason field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table.

productOrderItem.billingAccount

Identifies the billing account and determines how the account is processed.- When you provide a billing.id that matches an existing billing account, the API uses the reference pattern to link the account to the order line item. Other billing account fields you include (name, status, active) are ignored. The system uses only the ID to find and link the existing billing account.

  • When you provide a billing.id that doesn't match an existing billing account, the API creates a new billing account with the provided ID as the external_id. Billing account fields (name, status, active) are required.

Data type: Object

Reference structure:

Text
"billingAccount": {          "id": "sys_id_billing_account_456",          "@type": "BillingAccountRef"        }

Creation structure:

JSON
"billingAccount": {          "id": "billingID",          "name": "Project 1234 Billing",          "@type": "BillingAccountRef",          "status": "Active",          "active": true        }

productOrderItem.billingAccount.@type

Returned for account creation. Must always be BillingAccountRef. This indicates that the object is a reference to a billing account record.Data type: String

productOrderItem.billingAccount.active

Returned only for account creation. Flag that indicates whether the billing account is active. This field is used when creating a new billing account, and is ignored when referencing an existing billing account.

Valid values:

  • true: Billing account is active.
  • false: Billing account isn't active.

productOrderItem.billingAccount.id

Sys_id or external_id of the billing account to reference or create inline.Data type: String

productOrderItem.billingAccount.name

Returned for account creation. Display name of the billing account.Example: "Main Office Billing", "Project 2024 Billing"

Data type: String

productOrderItem.billingAccount.status

Returned for account creation. The status of the billing account. Possible values depend on your instance configuration. Example: "Active", "Inactive", "Suspended"

Data type: String

productOrderItem.committedDueDate

Date and time when the action must be performed on the order line item.Data type: String

Format: ISO 8601 (Example: 2021-05-02T08:13:59.506Z)

Stored in: The committed_due_date field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table.

productOrderItem.externalProductInventory.externalProductInventoryId

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.

productOrderItem.externalProductInventory

External IDs which map to the product inventories created for the order.Data type: Array of Objects

Text
"externalProductInventory": [  {    "externalProductInventoryId": "String"  }]

productOrderItem.id

Required. Unique identifier of the line item. Stored in: The external_id field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table.

Data type: String

productOrderItem.itemPrice

Price associated with the product. Stored in: sn_ind_tmt_orm_order

Data type: Array of Objects

CSS
"itemPrice": [  {    "price": {Object},    "priceType": "String",    "recurringChargePeriod": "String"  }]

productOrderItem.itemPrice.price

Description of the price of the associated product. Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

Data type: Object

Text
"price": {  "taxIncludedAmount": {Object}}

productOrderItem.itemPrice.price.taxIncludedAmount

Description of the price of the associated product, including the tax. Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

Data type: Object

JavaScript
"taxIncludedAmount": {  "unit": "String",  "value": Number}

productOrderItem.itemPrice.price.taxIncludedAmount.unit

Currency code in which the price is expressed.Stored in: The mrc or nrc field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table

Data type: String

productOrderItem.itemPrice.price.taxIncludedAmount.value

Price of product, including any tax. Stored in: The mrc or nrc field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table

Data type: Number

productOrderItem.itemPrice.priceType

Specifies whether the price of the item is recurring or non-recurring. Data type: String

productOrderItem.itemPrice.recurringChargePeriod

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

productOrderItem.payment

Details about the payment profile.Data type: Object

JSON
"payment": {  "id": "String",  "paymentMethod": "String",  "paymentMethodType": "String",  "paymentReferenceId": "String"}

productOrderItem.payment.id

Sys_id or external_id of an existing payment profile record.Data type: String

productOrderItem.payment.paymentMethod

Returned for profile creation. A choice field representing the payment method category. This field is validated against configured payment method choices in your instance.Example: "Credit Card", "Bank Transfer", "Check", "Digital Wallet"

Data type: String

productOrderItem.payment.paymentMethodType

Returned for profile creation. A choice field representing the specific payment method type. This field is validated against configured payment method type choices and is typically dependent on the selected paymentMethod.Example: Visa", "MasterCard", "American Express" for credit cards; "ACH" or "Wire" for bank transfers

Data type: String

productOrderItem.payment.paymentReferenceId

Returned for profile creation. External reference identifier for the payment profile.Example: "REF-2024-001", "CARD-XXXX-5678"

Data type: String

productOrderItem.product

Returned if productOrderItem.action is change or delete. Instance details of the product purchased by the customer.Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

Data type: Object

JavaScript
"product": {  "id": "String",  "place": {Object},  "productCharacteristic": [Array],  "productSpecification": {Object},  "relatedParty": {Object},  "@type": "String"}

productOrderItem.product.@type

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

productOrderItem.product.id

Returned if productOrderItem.action is change or delete. Unique identifier of the product sold. Table: 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.place

Maps of the locations on which to install the product. Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

Data type: Object

Text
"place": {  "id": "String",  "@type": "String"}

productOrderItem.product.place.@type

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

productOrderItem.product.place.id

Sys_id of the associated location record. Table: Location [cmn_location]

Stored in: The location field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table.

Data type: String

productOrderItem.product.productCharacteristic

Characteristics of the associated product. Stored in: sn_ind_tmt_orm_order_characteristic_value

Data type: Array of Objects

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

productOrderItem.product.productCharacteristic.name

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.

productOrderItem.product.productCharacteristic.previousValue

Previous characteristic option values if the update is for 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

Stored in: The previous_characteristic_option_value field of the sn_ind_tmt_orm_order_characteristic_value table.

productOrderItem.product.productCharacteristic.value

Characteristic option values associated with the product. For additional information on characteristic option values, see Create product characteristics and characteristic options. Data type: String

Stored in: The characteristic_option_value field of the sn_ind_tmt_orm_order_characteristic_value table.

productOrderItem.product.productCharacteristic.valueType

Type of characteristic value.Accepted values:

  • address
  • array.date
  • array.datetime
  • array.decimal
  • array.integer
  • array.object
  • array.single_line_text
  • attachment
  • checkbox
  • choice
  • date
  • date_time
  • decimal
  • duration
  • email
  • integer
  • object
  • single_line_text
  • yes_no

Data type: String

productOrderItem.product.productSpecification

Specification details associated with the product. Stored in: sn_ind_tmt_orm_order_line_item

Data type: Object

JSON
"productSpecification": {  "id": "String",  "internalVersion": "String",  "name": "String",  "version": "String",  "@type": "String"}

productOrderItem.product.productSpecification.@type

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

productOrderItem.product.productSpecification.id

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]

productOrderItem.product.productSpecification.internalVersion

Internal version of the service specification. Matches the value of version.Data Type: String

Table: In the version field of the Product Specification [sn_prd_pm_product_specification] table.

productOrderItem.product.productSpecification.name

Name of the product specification. Data type: String

Table: Product Specification [sn_prd_pm_product_specification]

productOrderItem.product.productSpecification.version

External version of the service specification. Matches the value of internalVersion.Data Type: String

Table: In the external_version field of the Product Specification [sn_prd_pm_product_specification] table.

productOrderItem.product.relatedParty

List of party roles linked to an Order Line Item Contact. Stored in: sn_ind_tmt_orm_order_line_item_contact

Data type: Array of Objects

JSON
"relatedParty": [  {    "email": "String",    "firstName": "String",    "lastName": "String",    "phone": "String",    "@referredType": "String",    "@type": "String"  }]

productOrderItem.product.relatedParty.@referredType

Required. Type of customer. Possible value: OrderLineItemContact

Data type: String

productOrderItem.product.relatedParty.@type

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

productOrderItem.product.relatedParty.email

Email address of the contact. Stored in: The email field of the sn_ind_tmt_orm_order_line_item_contact table.

Data type: String

productOrderItem.product.relatedParty.firstName

First name of the contact.Stored in: The first_name field of the sn_ind_tmt_orm_order_line_item_contact table.

Data type: String

productOrderItem.product.relatedParty.lastName

Last name of the contact.Stored in: The lastName field of the sn_ind_tmt_orm_order_line_item_contact table.

Data type: String

productOrderItem.product.relatedParty.phone

Business phone number of the contact. Stored in: The business_phone field of the sn_ind_tmt_orm_order_line_item_contact table.

Data type: String

productOrderItem.productOffering

Details of the product offering associated with the product.Stored in: sn_ind_tmt_orm_order_line_item

Data type: Object

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

productOrderItem.productOffering.id

Initial version or external ID of the product offering. The initial version is the sys_id of the first version of the offering.Table: Product Offering [sn_prd_pm_product_offering]

Data type: String

productOrderItem.productOffering.internalVersion

Version of the product offering.Data type: String

Table: In the version field of the Product Offering [sn_prd_pm_product_offering] table.

productOrderItem.productOffering.name

Name of the product offering.Data type: String

Table: Product Offering [sn_prd_pm_product_offering]

productOrderItem.productOffering.version

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.

productOrderItem.productOrderItem.quantity

Number of the associated items to order. Stored in: The quantity field of the sn_ind_tmt_orm_order table.

Data type: Number

productOrderItem.productOrderItemRelationship

Required. List that describes the parent/child relationship between order items. Data type: Array of Objects

Text
"productOrderItemRelationship": [  {    "id": "String",    "relationshipType": "String"  }]

Stored in: sn_ind_tmt_orm_order_line_item

productOrderItem.productOrderItemRelationship.id

Same as the productOrderItem.id value. Used for parent/child relationship Stored in: The parent_line_item field of the sn_ind_tmt_orm_order_line_item table.

Data type: String

productOrderItem.productOrderItemRelationship.relationshipType

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

  • HasChild
  • HasParent

Data type: String

productOrderItem.quantity

Number of items ordered.Data type: Number

Stored in: The quantity field of the sn_ind_tmt_orm_order table.

### cURL request

The following code example requests an existing customer order.

Shell
curl -X GET "https://servicenow-instance/api/sn_ind_tmt_orm/productorder/8d75939453126010a795ddeeff7b126a" \-u "username":"password"

Response body.

JSON
{  "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"}

GET response with TMF 622 V3 parameters (relatedParty, billingAccount and payment)

JSON
{  "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",      "billingAccount": {        "id": "ext_ba_security_001",        "name": "Funco Intl - Security Services",        "@type": "BillingAccountRef",        "status": "Active",        "active": true      },      "payment": {        "paymentMethod": "Credit Card",        "paymentMethodType": "Visa",        "paymentReferenceId": "REF-2024-SECURITY"      },      "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",      "billingAccount": {        "id": "ext_ba_service_001",        "name": "Funco Intl - Service Package",        "@type": "BillingAccountRef",        "status": "Active",        "active": true      },      "payment": {        "paymentMethod": "Bank Transfer",        "paymentMethodType": "ACH",        "paymentReferenceId": "REF-2024-SERVICE"      },      "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",      "billingAccount": {        "id": "ext_ba_equipment_001",        "name": "Funco Intl - Equipment Billing",        "@type": "BillingAccountRef",        "status": "Active",        "active": true      },      "payment": {        "paymentMethod": "Credit Card",        "paymentMethodType": "MasterCard",        "paymentReferenceId": "REF-2024-EQUIPMENT"      },      "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",      "billingAccount": {        "id": "sys_id_ba_existing_controller",        "@type": "BillingAccountRef"      },      "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": [    {      "role": "Contact",      "@type": "Contact",      "partyOrPartyRole": {        "@type": "PartyRef",        "id": "eaf68911c35420105252716b7d40ddde"      }    },    {      "role": "Account",      "@type": "Account",      "partyOrPartyRole": {        "@type": "PartyRef",        "id": "ffc68911c35420105252716b7d40dd55"      }    },    {      "role": "Consumer",      "@type": "Consumer",      "partyOrPartyRole": {        "@type": "PartyRef",        "id": "59f16de1c3b67110ff00ed23a140dd9e"      }    }  ],  "state": "in_progress",  "version": "1",  "@type": "ProductOrder"}

Reading Payment Information from Orders

When you retrieve an order using GET or LIST operations, the payment object is included in the order line item response only if a payment profile is actively linked. If an order line item (OLI) does not have a linked payment profile, the payment field is not included in the response. When the payment object is present, it contains all four fields (id, paymentMethod, paymentMethodType, paymentReferenceId) representing the complete profile details.

Example GET response:

JSON
{  "productOrder": {    "id": "order_001",    "orderItem": [      {        "id": "order_line_001",        "product": {          "id": "prod_123"        },        "billingAccount": {          "id": "ba_456"        },        "payment": {          "id": "sys_id_payment_profile_123",          "paymentMethod": "Credit Card",          "paymentMethodType": "Visa",          "paymentReferenceId": "REF-2024-001"        }      }    ]  }}

Example GET response without payment profile:

JSON
{  "productOrder": {    "id": "order_003",    "orderItem": [      {        "id": "order_line_003",        "product": {          "id": "prod_789"        },        "billingAccount": {          "id": "ba_999"        }      }    ]  }}

Reading Billing Account Information from Orders

When you retrieve an order using GET or LIST operations, the billingAccount field is included in the order line item response with the system ID reference and any available billing account details.

Example GET response with billing account reference:

JSON
{  "productOrder": {    "id": "order_001",    "orderItem": [      {        "id": "order_line_001",        "product": {          "id": "prod_123"        },        "billingAccount": {          "id": "sys_id_billing_account_456",          "name": "Project 2024 Billing",          "@type": "BillingAccountRef",          "status": "Active",          "active": true        }      }    ]  }}

Example GET response with newly created billing account:

JSON
{  "productOrder": {    "id": "order_002",    "orderItem": [      {        "id": "order_line_002",        "product": {          "id": "prod_456"        },        "billingAccount": {          "id": "sys_id_billing_account_789",          "name": "Project 2024 Billing",          "@type": "BillingAccountRef",          "status": "Active",          "active": true        }      }    ]  }}

Product Order Open API - GET /sn_ind_tmt_orm/order/productOrder/{id}

Updates the specified customer order.

v3 updates for GET/LIST operations

When you retrieve product orders using GET or LIST operations in TMF 622 V3, the response now includes payment profile details and billing account information for each order line item. These new fields provide complete visibility into the payment methods and billing relationships associated with your orders, enabling you to manage billing, fulfillment, and reconciliation processes with comprehensive order data in a single API call.

URL format

Default URL: /api/sn_ind_tmt_orm/order/productOrder/{id}

Supported request parameters

Name

Description

api_version

Optional. Version of the endpoint to access. For example, v1 or v2. Only specify this value to use an endpoint version other than the latest. Data type: String

id

Sys_id of the customer order to update.Data type: String

Table: Customer Order [sn_ind_tmt_orm_order]

Name

Description

account

Filter product orders by the associated account. Use this to retrieve all orders for a specific customer account or business unit.Data type: String

consumer (relatedParty)

Filter product orders by the consumer or end-user. Use this to retrieve orders for a specific consumer within a customer account, useful in multi-party or wholesale scenarios.Data type: String

contact

Filter product orders by an associated contact. Use this to find all orders linked to a specific person (like order coordinator, and billing contact).Data type: String

externalId

Filter product orders by external identifier. Use this to locate orders using identifiers from external systems or legacy integrations (like legacy order numbers, or third-party reference IDs).Data type: String

state

Filter 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.

Name

Description

@type

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

@type

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

changeType

Controls which fields in the PATCH request are processed. When provided, only non-product fields (notes and contacts) are updated and the order state remains unchanged without triggering product change workflows or state transitions. When absent, standard product-change behavior applies.Supported value: nonProduct

Only these fields are processed when changeType=nonProduct:

  • note (order-level)
  • relatedParty (order-level)
  • productOrderItem[].id
  • productOrderItem[].relatedParty
  • productOrderItem[].note

All other fields (including product-related fields) are silently ignored.

Note: When using this field, order state remains unchanged (does NOT transition to revision_received). No inflight or revision flows are triggered, and changes are isolated to metadata fields only.

Data type: String

channel

List of channels to use for selling the products. Data type: Array of Objects

Text
"channel": [  {    "id": "String",    "name": "String"  }]

Stored in: sn_ind_tmt_orm_order

channel

List of channels to use for selling the products.Data type: Array of Objects

channel.id

Required if the channel parameter is used. Unique identifier of the channel to use to sell the associated products. Data type: String

Table: In the external_id field of the Distribution Channel [sn_prd_pm_distribution_channel] table.

Stored in: The channel field of the sn_ind_tmt_orm_order table.

Default: empty string

channel.id

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

channel.name

Name of the channel to use to sell the associated products. Possible channel names are defined on the list tab in the Channel Dictionary Entry of the sn_ind_tmt_orm_order table.Data type: String

Default: empty string

channel.name

Name 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.

If the action for order line items 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 table.

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

externalId

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: empty string

externalId

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

externalSystem

External system of the service order, appended with TMF622. For example, if the external system is ABC then enter the value in externalSystem as ABC-TMF622.

Data Type: String

href

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

id

Sys_id of the customer order created for this request.Data type: String

note

Optional. List of additional notes made by the customer when ordering. Data type: Array of Objects

Text
"note": [  {    "text": "String"  }]

Stored in: sn_ind_tmt_orm_order

note

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

note.text

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: empty string

note.text

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

orderCurrency

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

orderCurrency

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

orderId

Sys_id of the order to be created. On successful request, the order is added to the Inbound Queue [sn_tmt_core_inbound_queue] table on a schedule to be processed. This value is the only result if the order is created asynchronously using the mode query parameter.Data type: String

productOrderItem

List that describes items associated with the product order and their associated action. Data type: Array of Objects

JavaScript
"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

productOrderItem

Required. Items associated with the product order and their associated action.Data type: Array of Objects

CSS
"productOrderItem": [{                "action": "String", "billingAccount": {Object}, "id": "String",                "payment": {Object}, "product": {Object}, "productOffering": {Object}, ...                }]

productOrderItem.@type

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

productOrderItem.@type

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

productOrderItem.action

Required if the productOrderItem parameter is used. Action to carry out on the product. Possible actions are defined on the list tab in the Action Dictionary Entry of the sn_ind_tmt_orm_order_line_item table. Possible values:

  • add
  • change

Note: Submitting a change payload that includes a new service location via productOrderItem.product.place.id is processed as a move order.

  • delete
  • no-change
  • resume
  • suspend

Data type: String

Stored in: The action field of the sn_ind_tmt_orm_order_line_item table.

Default: add

productOrderItem.action

Action to carry out on the product. Possible actions are defined on the list tab in the Action Dictionary Entry of the sn_ind_tmt_orm_order_line_item table.Data type: String

Possible values: add, change, delete, no-change, resume, suspend

productOrderItem.actionReason

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.

productOrderItem.actionReason

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.

productOrderItem.billingAccount

Required. Identifies the billing account and determines how the account is processed. When you provide a billing.id that matches an existing billing account, the API uses the reference pattern to link the account to the order line item. Other billing account fields are ignored. The system uses only the ID to find and link the existing billing account. When you provide a billing.id that doesn't match an existing billing account, the API creates a new billing account with the provided ID as the external_id. Billing account fields (name, status, active) are required for inline creation.Data type: Object

JavaScript
"billingAccount": { "id": "String",                "@type": "BillingAccountRef", "name": "String", "status": "String",                "active": Boolean }

productOrderItem.billingAccount.@type

Conditional, required only for account creation. Must always be BillingAccountRef. This indicates that the object is a reference to a billing account record.Data type: String

productOrderItem.billingAccount.active

Conditional, required only for account creation. Flag that indicates whether the billing account is active. This field is used when creating a new billing account, and is ignored when referencing an existing billing account.Valid values:

  • true: Billing account is active
  • false: Billing account isn't active

Data type: Boolean

productOrderItem.billingAccount.id

Required. Sys_id or external_id of the billing account to reference or create inline.Data type: String

productOrderItem.billingAccount.name

Conditional, required only for account creation. Display name of the billing account. This field is used when creating a new billing account. If not provided during creation, the system uses a default name pattern. This field is ignored when referencing an existing billing account.Examples: "Main Office Billing", "Project 2024 Billing"

Data type: String

productOrderItem.billingAccount.status

Conditional, required only for account creation. The status of the billing account. This field is used when creating a new billing account. Valid values depend on your instance configuration. If not provided during creation, the system uses the default status value configured in your instance. This field is ignored when referencing an existing billing account.Data type: String

Examples: "Active", "Inactive", "Suspended"

productOrderItem.committedDueDate

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.

productOrderItem.committedDueDate

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.

productOrderItem.externalProductInventory

Conditional. If supplied, each entry requires externalProductInventoryId. External IDs to map to the product inventories created for the order.Data type: Array of Objects``` "externalProductInventory": [{ "externalProductInventoryId": "String" }]

Text
</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><td>
productOrderItem.externalProductInventory.externalProductInventoryId
</td><td>
External ID mapped 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="externalProdInv-PATCH"><td>
productOrderItem.externalProductInventory
</td><td id="externalProdInv-descr-PATCH">
Conditional. If supplied, each entry requires **externalProductInventoryId**. List of external IDs to map to the product inventories created for the order. Data type: Array of Objects

"externalProductInventory": [ { "externalProductInventoryId": "String" } ]

Text
**Note:** 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.
</td></tr><tr id="productOrderItem_id-row-tmf622"><td>
productOrderItem.id
</td><td>
Required if the **productOrderItem** parameter is used. Sys\_id or external\_id of the order line item. Table: Order Line Item \[sn\_ind\_tmt\_orm\_order\_line\_item\] table
Data type: String
Default: empty string
</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
</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" } ]

Text
Stored in: sn\_ind\_tmt\_orm\_order
Default: empty string
</td></tr><tr><td>
productOrderItem.itemPrice
</td><td>
Price associated with the product.```Data type: Array of Objects
CSS
"itemPrice": [{ "price": {Object}, "priceType": "String",                "recurringChargePeriod": "String" }]

productOrderItem.itemPrice.price

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

Text
"price": {  "taxIncludedAmount": {Object}}

Stored in: sn_ind_tmt_orm_order_line_item

Default: empty string

productOrderItem.itemPrice.price

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

Text
"price": { "taxIncludedAmount": {Object} }

productOrderItem.itemPrice.price.taxIncludedAmount

Description of the price of the associated product, including the tax. Data type: Object

JavaScript
"taxIncludedAmount": {  "unit": "String",  "value": Number}

Stored in: sn_ind_tmt_orm_order_line_item

productOrderItem.itemPrice.price.taxIncludedAmount

Description of the price of the associated product, including the tax.Data type: Object

JavaScript
"taxIncludedAmount": { "unit": "String", "value":                Number }

productOrderItem.itemPrice.price.taxIncludedAmount.unit

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.

productOrderItem.itemPrice.price.taxIncludedAmount.unit

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

productOrderItem.itemPrice.price.taxIncludedAmount.value

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.

productOrderItem.itemPrice.price.taxIncludedAmount.value

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

productOrderItem.itemPrice.priceType

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

productOrderItem.itemPrice.priceType

Specifies whether the price of the item is recurring or non-recurring.Data type: String

productOrderItem.itemPrice.recurringChargePeriod

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

productOrderItem.itemPrice.recurringChargePeriod

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

productOrderItem.payment

Required. Identifies the payment profile and determines how the profile is processed. Reference an existing payment profile by passing payment.id, or pass full payment attributes to create payment profile inline. If the ID already exists, the API locates the matching payment profile and links it to the order line item. Any other payment fields are ignored. The system uses only the id to find and link the existing profile. If the ID doesn't already exist, a payment profile is created automatically and linked to the order line item's billing account. paymentMethod, paymentMethodType, paymentReferenceId are required to create the new profile.Data type: Object

JSON
"payment": { "id": "String", "paymentMethod": "String",                "paymentMethodType": "String", "paymentReferenceId": "String" }

productOrderItem.payment.id

Required. Sys_id or external_id of an existing payment profile record.Data type: String

productOrderItem.payment.paymentMethod

Conditional, required only for profile creation. A choice field representing the payment method category. This field is validated against configured payment method choices in your instance. This field is ignored when referencing an existing profile.Data type: String

Examples: "Credit Card", "Bank Transfer", "Check", "Digital Wallet"

productOrderItem.payment.paymentMethodType

Conditional, required only for profile creation. A choice field representing the specific payment method type. This field is validated against configured payment method type choices and is typically dependent on the selected paymentMethod. This field is ignored when referencing an existing profile.Data type: String

Examples: "Visa", "MasterCard", "American Express" for credit cards; "ACH" or "Wire" for bank transfers

productOrderItem.payment.paymentReferenceId

Conditional, required only for profile creation. An external reference identifier for the payment profile. This is typically used for tracking, audit trails, and reconciliation between your order system and your payment processor. This field is ignored when referencing an existing profile.Data type: String

Examples: "REF-2024-001", "CARD-XXXX-5678"

productOrderItem.product

Required if productOrderItem.action is change or delete. Description of the instance details of the product purchased by the customer. Data type: Object

JavaScript
"product": {  "id": "String",  "place": {Object},  "productCharacteristic": [Array],  "productSpecification": {Object},  "relatedParty": {Object},  "@type": "String"}

Stored in: sn_ind_tmt_orm_order_line_item

productOrderItem.product

Required if productOrderItem.action is change or delete. Instance details of the product purchased by the customer.Data type: Object

JavaScript
"product": { "id": "String", "place": {Object}, "productCharacteristic": [Array], "productSpecification": {Object}, "relatedParty": [Array], "@type": "String"}

productOrderItem.product.@type

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

productOrderItem.product.@type

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

productOrderItem.product.id

Required if productOrderItem.action 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

Default: empty string

productOrderItem.product.id

Required if productOrderItem.action is change or delete. Unique identifier of the product sold.Data type: String

Table: In the sys_id or sn_ind_tmt_orm_external_id field of the Product Inventory [sn_ind_tmt_orm_product_inventory] table.

productOrderItem.product.place

Maps of the locations on which to install the product. Data type: Object

Text
"place": {  "id": "String",  "@type": "String"}

Stored in: sn_ind_tmt_orm_order_line_item

productOrderItem.product.place

Maps of the locations on which to install the product.Data type: Object

Text
"place": { "id": "String", "@type": "String"              }

productOrderItem.product.place.@type

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

productOrderItem.product.place.@type

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

productOrderItem.product.place.id

Required if the productOrderItem.product.place 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 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

Stored in: The location field of the sn_ind_tmt_orm_order_line_item table.

Default: empty string

productOrderItem.product.place.id

Required. Sys_id of the associated location record. When employing the change action on a product order item (via the productOrderItem.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

Table: Location [cmn_location]

Stored in: The location field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table.

productOrderItem.product.productCharacteristic

List of characteristics of the associated product. Data type: Array of Objects

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

Stored in: sn_ind_tmt_orm_order_characteristic_value

productOrderItem.product.productCharacteristic

Characteristics of the associated product.Data type: Array of Objects

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

productOrderItem.product.productCharacteristic.name

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: empty string

productOrderItem.product.productCharacteristic.name

Name of the characteristic record to associate 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.

productOrderItem.product.productCharacteristic.previousValue

Previous 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

Stored in: The previous_characteristic_option_value of the sn_ind_tmt_orm_order_characteristic_value table.

Default: empty string

productOrderItem.product.productCharacteristic.previousValue

Previous characteristic option values if the update is for change order. The request is a change order if the productOrderItem.action parameter is other than add.Data type: String

Stored in: The previous_characteristic_option_value field of the sn_ind_tmt_orm_order_characteristic_value table.

productOrderItem.product.productCharacteristic.value

Characteristic option values associated with the product. For additional information on characteristic option values, see Create product characteristics and characteristic options. Data type: String

Stored in: The characteristic_option_value field of the sn_ind_tmt_orm_order_characteristic_value table.

Default: empty string

productOrderItem.product.productCharacteristic.value

Characteristic option values associated with the product.Data type: String

Stored in: The characteristic_option_value field of the sn_ind_tmt_orm_order_characteristic_value table.

productOrderItem.product.productCharacteristic.valueType

Type of characteristic value.Data type: String

Possible values:

  • address
  • array.date
  • array.datetime
  • array.decimal
  • array.integer
  • array.object
  • array.single_line_text
  • attachment
  • checkbox
  • choice
  • date
  • date_time
  • decimal
  • duration
  • email
  • integer
  • object
  • single_line_text
  • yes_no

productOrderItem.product.productCharacteristic.valueType

Type of characteristic value.Possible values:

  • address
  • array.date
  • array.datetime
  • array.decimal
  • array.integer
  • array.object
  • array.single_line_text
  • attachment
  • checkbox
  • choice
  • date
  • date_time
  • decimal
  • duration
  • email
  • integer
  • object
  • single_line_text
  • yes_no

Data type:String

productOrderItem.product.productSpecification

Description of the product specification associated with the product. Note: Change orders (productOrderItem.action is change) are processed differently based on the value of the sn_ind_tmt_orm.allowSpecVersionUpdateInChangeOrder 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.

  • 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.
  • 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.

Data type: Object

JSON
"productSpecification": {  "id": "String",  "internalVersion": "String",  "name": "String",  "version": "String",  "@type": "String"}

Stored in: sn_ind_tmt_orm_order_line_item

productOrderItem.product.productSpecification

Optional. Description of the product specification associated with the product.Data type: Object

JSON
"productSpecification": { "id":                "String", "internalVersion": "String", "name": "String", "version":                "String", "@type": "String" }

productOrderItem.product.productSpecification.@type

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

productOrderItem.product.productSpecification.@type

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

productOrderItem.product.productSpecification.id

Required if the productOrderItem.product.productSpecification 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

productOrderItem.product.productSpecification.id

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]

productOrderItem.product.productSpecification.internalId

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]

productOrderItem.product.productSpecification.internalVersion

Internal version of the product specification. Must match the value of version otherwise an error is thrown.Data Type: String

Table: Product Specification [sn_prd_pm_product_specification]

productOrderItem.product.productSpecification.internalVersion

Version of the product specification. Must match the value of version otherwise an error is thrown.Data type: String

Table: In the version field of the Product Specification [sn_prd_pm_product_specification] table.

productOrderItem.product.productSpecification.name

Name of the product specification. Located in the Product Specification [sn_prd_pm_product_specification] table. Data type: String

productOrderItem.product.productSpecification.name

Name of the product specification.Data type: String

Table: Product Specification [sn_prd_pm_product_specification]

productOrderItem.product.productSpecification.version

External version of the product specification. Must match the value of internalVersion otherwise an error is thrown.Data Type: String

Table: Product Specification [sn_prd_pm_product_specification]

productOrderItem.product.productSpecification.version

External version of the product specification. Must match the value of internalVersion otherwise an error is thrown.Data type: String

Table: In the external_version field of the Product Specification [sn_prd_pm_product_specification] table.

productOrderItem.product.relatedParty

Optional. List of contacts for line items. Data type: Array of Objects

JSON
"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

productOrderItem.product.relatedParty

Optional. List of party roles linked to an OrderLineItemContact.Data type: Array of Objects

JSON
"relatedParty": [{ "email": "String", "firstName":                "String", "lastName": "String", "phone": "String", "@referredType":                "String", "@type": "String" }]

productOrderItem.product.relatedParty.@referredType

Type of customer. Possible value: OrderLineItemContact

Data type: String

productOrderItem.product.relatedParty.@referredType

Required. Type of customer.Possible value: OrderLineItemContact

Data type: String

productOrderItem.product.relatedParty.@type

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

productOrderItem.product.relatedParty.@type

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

productOrderItem.product.relatedParty.email

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: empty string

productOrderItem.product.relatedParty.email

Email address of the contact.Data type: StringStored in: The email field of the sn_ind_tmt_orm_order_line_item_contact table.

productOrderItem.product.relatedParty.firstName

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: empty string

productOrderItem.product.relatedParty.firstName

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.

productOrderItem.product.relatedParty.id

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: empty string

productOrderItem.product.relatedParty.lastName

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: empty string

productOrderItem.product.relatedParty.lastName

Last name of the contact.Data type: String

Stored in: The lastName field of the sn_ind_tmt_orm_order_line_item_contact table.

productOrderItem.product.relatedParty.phone

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: empty string

productOrderItem.product.relatedParty.phone

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.

productOrderItem.productOffering

Description of the product offering associated with the product. Data type: Object

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

Stored in: sn_ind_tmt_orm_order_line_item

productOrderItem.productOffering

Required. Description of the product offering associated with the product.Data type: Object

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

productOrderItem.productOffering.id

Required if the productOrderItem.productOffering 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

productOrderItem.productOffering.id

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: StringTable: Product Offering [sn_prd_pm_product_offering]

productOrderItem.productOffering.internalId

Initial version of the product offering. The initial version is the sys_id of the first version of the offering.Data type: StringTable: Product Offering [sn_prd_pm_product_offering]

productOrderItem.productOffering.internalVersion

Version of the product offering.Data type: String

Table: Product Offering [sn_prd_pm_product_offering]

productOrderItem.productOffering.internalVersion

Version of the product offering.Data type: StringTable: In the version field of the Product Offering [sn_prd_pm_product_offering] table.

productOrderItem.productOffering.name

Name of the product offering. Located in the Product Offering [sn_prd_pm_product_offering] table. Data type: String

productOrderItem.productOffering.name

Name of the product offering.Data type: StringTable: Product Offering [sn_prd_pm_product_offering]

productOrderItem.productOffering.version

External_version of the product offering.Data type: String

Table: Product Offering [sn_prd_pm_product_offering]

productOrderItem.productOffering.version

External version of the product offering.Data type: StringTable: In the external_version field of the Product Offering [sn_prd_pm_product_offering] table.

productOrderItem.productOrderItem.quantity

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

Stored in: The quantity field of the sn_ind_tmt_orm_order.

Default: null

productOrderItem.productOrderItemRelationship

Conditional. Item-level relationships. If supplied, each entry requires an id and relationshipType. Data type: Array of Objects

Text
"productOrderItemRelationship": [  {    "id": "String",    "relationshipType": "String"  }]

Stored in: sn_ind_tmt_orm_order_line_item

productOrderItem.productOrderItemRelationship

Required. List that describes the parent/child relationship between order items.Data type: Array of Objects

Text
"productOrderItemRelationship":                [{ "id": "String", "relationshipType": "String" }]

productOrderItem.productOrderItemRelationship.id

Required if the productOrderItem.productOrderItemRelationship 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

Stored in: The parent_line_item field of thebsn_ind_tmt_orm_order_line_item table.

Default: empty string

productOrderItem.productOrderItemRelationship.id

Required. Same as the productOrderItem.id value. Used for parent/child relationship.Data type: StringStored in: The parent_line_item field of the sn_ind_tmt_orm_order_line_item table.

productOrderItem.productOrderItemRelationship.relationshipType

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

productOrderItem.productOrderItemRelationship.relationshipType

Required. Type of relationship between the two line items. This information is used to identify relationship hierarchy.Data type: StringPossible values: HasChild, HasParent

productOrderItem.quantity

Number of items ordered.Data type: Number

Stored in: The quantity field of the sn_ind_tmt_orm_order table.

Default: empty string

productOrderItem.quantity

Number of items ordered.Data type: Number

Stored in: The quantity field of the sn_ind_tmt_orm_order table.

productOrderItem.revisionOperation

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: empty string

relatedParty

List of contacts for the order. Each contact is an object in the array. Contains at least one item with customer account or consumer account information. Data type: Array of Objects

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

relatedParty

List of contacts for the order. Each contact is an object in the array containing customer account or consumer account information.Data type: Array of Objects

CSS
"relatedParty": [ {   "role": "String",   "@type": "String",   "partyOrPartyRole": {Object} }]

relatedParty.@referredType

Type of customer. Possible values:

  • Consumer
  • Customer
  • CustomerContact

Data type: String

relatedParty.@type

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

relatedParty.@type

Specifies what record type to search for when validating and linking the party. Must match the role field.Possible values:

  • Account
  • Contact
  • Customer
  • Location

Data type: String

relatedParty.id

Sys_id or external_id of the account, customer contact, or consumer associated with the order.Table: Account [customer_account], Contact [customer_contact] table, or Consumer [csm_consumer] table.

Data type: String

relatedParty.name

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

relatedParty.partyOrPartyRole

Object containing the specific reference details about the party. Attributes vary based on party type.- For reference patterns, this object contains just the @type and id fields.

  • For creation patterns, this object also contains conditional attributes used to create the new record, if the id value does not match an existing record.

Data type: Object

Text
"partyOrPartyRole": { "@type": "PartyRef", "id": "String"}

relatedParty.partyOrPartyRole.@type

Indicates the type of reference being provided. Value must be set to PartyRef.Data type: String

relatedParty.partyOrPartyRole.accountNumber

Returned for Account party types. External reference number or identifier for the Account. It provides a business-facing account identifier that is distinct from the system-generated ID. Used only during inline creation; ignored for reference patterns.Data type: String

relatedParty.partyOrPartyRole.address

Returned for Location party types during inline creation. Street address of the location. Used only during inline creation; ignored for reference patterns.Example: "123 Main Street"

Data type: String

relatedParty.partyOrPartyRole.city

Returned for Location party types during inline creation. City or municipality name for the location. Used only during inline creation; ignored for reference patterns.Example: "San Francisco", "New York"

Data type: String

relatedParty.partyOrPartyRole.country

Returned for Location party types during inline creation. Country where the location is physically situated or where the contact is based. Used only during inline creation; ignored for reference patterns.Data type: String

relatedParty.partyOrPartyRole.email

Returned for Contact party types during inline creation. Contact person's primary email address. Used only during inline creation; ignored for reference patterns.Data type: String

relatedParty.partyOrPartyRole.firstName

Returned for Contact party types during inline creation. Contact person's first name or given name. Used only during inline creation; ignored for reference patterns.Data type: String

relatedParty.partyOrPartyRole.id

Sys_id or external_id of the party record to reference. The system searches for a record with either a matching system ID or matching External ID.- For reference patterns with an existing record, only the id is used and all other provided fields are ignored.

  • For creation patterns when no matching record exists, the ID becomes the external ID of the newly created record, and other provided fields populate the new record's attributes.

Data type: String

Table: Account [customer_account], Contact [customer_contact] table, or Location [cmn_location]

relatedParty.partyOrPartyRole.lastName

Returned for Contact party types during inline creation. Contact person's last name or given name. Used only during inline creation; ignored for reference patterns.Data type: String

relatedParty.partyOrPartyRole.name

Returned for Account, Contact, and Location types during inline creation. Name of the account, contact, or location. Used only during inline creation; ignored for reference patterns.Data type: String

relatedParty.partyOrPartyRole.postalCode

Returned for Location party types during inline creation. Postal code, ZIP code, or PIN code for the location. Used only during inline creation; ignored for reference patterns.Data type: String

relatedParty.partyOrPartyRole.status

Returned for Account party types during inline creation. Current status of the account. The valid values for the status field depend on how your instance is configured. Used only during inline creation; ignored for reference patterns.Common values:

  • Active
  • Inactive
  • Suspended
  • Pending
  • Archived
  • Under Review

Data type: String

relatedParty.role

Business role that the referenced party plays in the order context. Must match relatedParty.@type in the same object.Possible values:

  • Account: parties representing a customer or business entity
  • Contact: parties representing a contact person
  • Customer: parties representing an end consumer or individual
  • Location: parties representing a service address or fulfillment location

Data type: String

requestedCompletionDate

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: empty string

requestedCompletionDate

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

requestedStartDate

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: empty string

requestedStartDate

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

state

Current state of the order. For this endpoint, this value is always new.Data type: String

### Headers

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

Header Description
Accept Data format of the response body. Only supports application/json.
Content-Type Data format of the request body. Only supports application/json.
Header Description
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.

Status code

Description

201

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:

  • The following Order Item characteristics does not exist: Review specification <**characteristic.name**> and correct the characteristic and characteristic option in the order line item prior to approving the order.
  • Order Item characteristic: <**characteristic.name**> with characteristic value: <**characteristic.value**>is invalid. Correct the characteristic values before approving the order.

400

Bad Request. Could be any of the following reasons:- Invalid payload: Request body missing - Payload was not passed in the request body.

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

Name

Description

@type

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

channel

List of channels to use for selling the products.Stored in: sn_ind_tmt_orm_order

Data type: Array of Objects

Text
"channel": [  {    "id": "String",    "name": "String"  }]

channel.id

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

Stored in: The channel field of the sn_ind_tmt_orm_order table.

channel.name

Name of the channel to use to sell the associated products.Possible channel names are defined on the list tab in the Channel Dictionary Entry of the sn_ind_tmt_orm_order table.

Data type: String

committedDueDate

Date and time when the action must be performed on the order.Stored in: committed_due_date field of the sn_ind_tmt_orm_order table.

Format: ISO 8601 (Example: 2021-05-02T08:13:59.506Z)

Data type: String

externalId

External identifier for the customer order, such as a purchase order number. This value is determined by an external system. Stored in: external_id field of the sn_ind_tmt_orm_order table.

Data type: String

externalSystem

External system identifier that originated the order request, appended with TMF622. Data Type: String

href

Relative link to the resource record.Data type: String

note

Additional notes made by the customer when ordering. Stored in: sn_ind_tmt_orm_order

Data type: Array of Objects

Text
"note": [  {    "text": "String"  }]

note.text

Additional notes/comments made by the customer while ordering.Stored in: The comments field of the sn_ind_tmt_orm_order table.

Data type: String

orderCurrency

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

orderDate

Date and time when the order was created.Data type: String

Format: ISO 8601 (Example: 2021-05-02T08:13:59.506Z)

orderId

Sys_id of the order.Stored in the Inbound Queue [sn_tmt_core_inbound_queue] table on a schedule to be processed.

Data type: String

productOrderItem

Items associated with the product order and their associated action. Data type: Array of Objects

JavaScript
"productOrderItem": [  {    "action": "String",    "actionReason": "String",    "billingAccount": {Object},    "committedDueDate": "String",    "externalProductInventory": [Array],    "id": "String",    "itemPrice": [Array],    "payment": {Object},    "product": {Object},    "productOffering": {Object},    "productOrderItemRelationship": [Array],    "quantity": Number,    "@type": "String"  }]

Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

productOrderItem.@type

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

productOrderItem.action

Required. Action to carry out on the product. Possible actions are defined on the list tab in the Action Dictionary Entry of the sn_ind_tmt_orm_order_line_item table. Possible values:

  • add
  • change

Note: Submitting a change payload that includes a new service location via productOrderItem.product.place.id is processed as a move order.

  • delete
  • no-change
  • resume
  • suspend

Data type: String

Stored in: The action field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table.

productOrderItem.actionReason

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.

productOrderItem.billingAccount

Required. Identifies the billing account and determines how the account is processed.- When an existing billing account ID is passed, the API returns just the matching account's sys_id and type.

  • When a billing account ID is passed that doesn't match an existing record, the API creates a new billing account with the provided ID as the external_id. The object includes conditional attributes associated with the new record.

Data type: Object

Example reference structure:

Text
"billingAccount": {          "id": "sys_id_billing_account_456",          "@type": "BillingAccountRef"        }

Example creation structure:

JSON
"billingAccount": {          "id": "billingID",          "name": "Project 1234 Billing",          "@type": "BillingAccountRef",          "status": "Active",          "active": true        }

productOrderItem.billingAccount.@type

Conditional, required only for account creation. Must always be BillingAccountRef. This indicates that the object is a reference to a billing account record.Data type: String

productOrderItem.billingAccount.active

Conditional, required only for account creation. Flag that indicates whether the billing account is active. This field is used when creating a new billing account, and is ignored when referencing an existing billing account.

Valid values:

  • true: Billing account is active.
  • false: Billing account isn't active.

Default: If not provided during creation, the system uses the default active value configured in your instance

productOrderItem.billingAccount.id

Required. Sys_id or external_id of the billing account to reference or create inline.Data type: String

productOrderItem.billingAccount.name

Conditional, required only for account creation. Display name of the billing account. This field is used when creating a new billing account. If not provided during creation, the system uses a default name pattern. This field is ignored when referencing an existing billing account.

Example: "Main Office Billing", "Project 2024 Billing"

Data type: String

productOrderItem.billingAccount.status

Conditional, required only for account creation. The status of the billing account. This field is used when creating a new billing account. Valid values depend on your instance configuration. If not provided during creation, the system uses the default status value configured in your instance. This field is ignored when referencing an existing billing account.

Example: "Active", "Inactive", "Suspended"

Data type: String

productOrderItem.committedDueDate

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

Data type: String

Format: ISO 8601 (Example: 2021-05-02T08:13:59.506Z)

Stored in: The committed_due_date field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table.

productOrderItem.externalProductInventory.externalProductInventoryId

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.

productOrderItem.externalProductInventory

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

Text
"externalProductInventory": [  {    "externalProductInventoryId": "String"  }]

productOrderItem.id

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: empty string

productOrderItem.itemPrice

Price associated with the product. Data type: Array of Objects

CSS
"itemPrice": [  {    "price": {Object},    "priceType": "String",    "recurringChargePeriod": "String"  }]

Stored in: sn_ind_tmt_orm_order

Default: empty string

productOrderItem.itemPrice.price

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

Text
"price": {  "taxIncludedAmount": {Object}}

Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

Default: empty string

productOrderItem.itemPrice.price.taxIncludedAmount

Description of the price of the associated product, including the tax. Data type: Object

JavaScript
"taxIncludedAmount": {  "unit": "String",  "value": Number}

Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

productOrderItem.itemPrice.price.taxIncludedAmount.unit

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

productOrderItem.itemPrice.price.taxIncludedAmount.value

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

productOrderItem.itemPrice.priceType

Specifies whether the price of the item is recurring or non-recurring. Data type: String

productOrderItem.itemPrice.recurringChargePeriod

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

productOrderItem.payment

Required. Identifies the payment profile. - If the passed profile ID already exists, the API returns just the matching payment profile's sys_Id.

  • If the passed ID doesn't already exist, the API returns the new payment profile's sys_id and associated attributes.

Data type: Object

Reference structure:

Text
"payment": {  "id": "String"}

Creation structure:

JSON
"payment": {  "id": "String",  "paymentMethod": "String",  "paymentMethodType": "String",  "paymentReferenceId": "String"}

See the 'Examples' section for POST requests demonstrating both reference and creation patterns.

productOrderItem.payment.id

Sys_id or external_id of an existing payment profile record.Data type: String

productOrderItem.payment.paymentMethod

Returned only for profile creation. A choice field representing the payment method category. This field is validated against configured payment method choices in your instance. This field is ignored when referencing an existing profile.Example: "Credit Card", "Bank Transfer", "Check", "Digital Wallet"

Data type: String

productOrderItem.payment.paymentMethodType

Returned only for profile creation. A choice field representing the specific payment method type.Example: Visa", "MasterCard", "American Express" for credit cards; "ACH" or "Wire" for bank transfers

Data type: String

productOrderItem.payment.paymentReferenceId

Returned only for profile creation. An external reference identifier for the payment profile.Example: "REF-2024-001", "CARD-XXXX-5678"

Data type: String

productOrderItem.product

Instance details of the product purchased by the customer.Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

Data type: Object

JavaScript
"product": {  "id": "String",  "place": {Object},  "productCharacteristic": [Array],  "productSpecification": {Object},  "relatedParty": {Object},  "@type": "String"}

productOrderItem.product.@type

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

productOrderItem.product.id

Unique identifier of the product sold. Data type: String

Table: In the sys_id or sn_ind_tmt_orm_external_id field of the Product Inventory [sn_ind_tmt_orm_product_inventory] table.

productOrderItem.product.place

Maps of the locations on which to install the product. Data type: Object

Text
"place": {  "id": "String",  "@type": "String"}

Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

productOrderItem.product.place.@type

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

productOrderItem.product.place.id

Required. Sys_id of the associated location record.Data type: String

Table: Location [cmn_location]

Stored in: The location field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table.

productOrderItem.product.productCharacteristic

Characteristics of the associated product.Stored in: sn_ind_tmt_orm_order_characteristic_value

Data type: Array of Objects

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

productOrderItem.product.productCharacteristic.name

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.

productOrderItem.product.productCharacteristic.previousValue

Previous characteristic option values if the update is for 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

Stored in: The previous_characteristic_option_value field of the sn_ind_tmt_orm_order_characteristic_value table.

Default: empty string

productOrderItem.product.productCharacteristic.value

Characteristic option values associated with the product. For additional information on characteristic option values, see Create product characteristics and characteristic options. Data type: String

Stored in: The characteristic_option_value field of the sn_ind_tmt_orm_order_characteristic_value table.

Default: empty string

productOrderItem.product.productCharacteristic.valueType

Type of characteristic value.Accepted values:

  • address
  • array.date
  • array.datetime
  • array.decimal
  • array.integer
  • array.object
  • array.single_line_text
  • attachment
  • checkbox
  • choice
  • date
  • date_time
  • decimal
  • duration
  • email
  • integer
  • object
  • single_line_text
  • yes_no

Data type: String

productOrderItem.product.productSpecification

Description of the product specification associated with the product. Note: Change orders (productOrderItem.action is change) are processed differently based on the value of the sn_ind_tmt_orm.allowSpecVersionUpdateInChangeOrder 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.

  • true: 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.
  • false: If the product inventory is a different version than indicated in the order, the order fails due to the version mismatch.

Data type: Object

JSON
"productSpecification": {  "id": "String",  "internalVersion": "String",  "name": "String",  "version": "String",  "@type": "String"}

Stored in: sn_ind_tmt_orm_order_line_item

productOrderItem.product.productSpecification.@type

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

productOrderItem.product.productSpecification.id

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]

productOrderItem.product.productSpecification.internalVersion

Internal version of the service specification. Must match the value of version otherwise an error is thrown.Data Type: String

Table: In the version field of the Product Specification [sn_prd_pm_product_specification] table.

productOrderItem.product.productSpecification.name

Name of the product specification. Data type: String

Table: Product Specification [sn_prd_pm_product_specification]

productOrderItem.product.productSpecification.version

External version of the service specification. Must match the value of internalVersion otherwise an error is thrown.Data Type: String

Table: In the external_version field of the Product Specification [sn_prd_pm_product_specification] table.

productOrderItem.product.relatedParty

List of party roles linked to an OrderLineItemContact. Data type: Array of Objects

JSON
"relatedParty": [  {    "email": "String",    "firstName": "String",    "lastName": "String",    "phone": "String",    "@referredType": "String",    "@type": "String"  }]

Stored in: sn_ind_tmt_orm_order_line_item_contact

productOrderItem.product.relatedParty.@referredType

Required. Type of customer. Possible value: OrderLineItemContact

Data type: String

productOrderItem.product.relatedParty.@type

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

productOrderItem.product.relatedParty.email

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: empty string

productOrderItem.product.relatedParty.firstName

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: empty string

productOrderItem.product.relatedParty.lastName

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: empty string

productOrderItem.product.relatedParty.phone

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: empty string

productOrderItem.productOffering

Required. Description of the product offering associated with the product. Data type: Object

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

Stored in: sn_ind_tmt_orm_order_line_item

productOrderItem.productOffering.id

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]

productOrderItem.productOffering.internalVersion

Version of the product offering.Data type: String

Table: In the version field of the Product Offering [sn_prd_pm_product_offering] table.

productOrderItem.productOffering.name

Name of the product offering.Data type: String

Table: Product Offering [sn_prd_pm_product_offering]

productOrderItem.productOffering.version

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.

productOrderItem.productOrderItem.quantity

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

productOrderItem.productOrderItemRelationship

List that describes the parent/child relationship between order items. Data type: Array of Objects

Text
"productOrderItemRelationship": [  {    "id": "String",    "relationshipType": "String"  }]

Stored in: sn_ind_tmt_orm_order_line_item

productOrderItem.productOrderItemRelationship.id

Same as the productOrderItem.id value. Used for parent/child relationship Data type: String

Stored in: The parent_line_item field of the sn_ind_tmt_orm_order_line_item table.

Default: empty string

productOrderItem.productOrderItemRelationship.relationshipType

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

  • HasChild
  • HasParent

Data type: String

productOrderItem.quantity

Number of items ordered.Data type: Number

Stored in: The quantity field of the sn_ind_tmt_orm_order table.

Default: empty string

relatedParty

List of contacts for the order containing customer account or consumer account information. Supports reference and inline creation patterns (Account, Contact, Location). Data type: Array of Objects

CSS
"relatedParty": [ {  "role": "String",  "@type": "String",  "partyOrPartyRole": {Object} }]

realtedParty.role

Business role that the referenced party plays in the order context. Matches the relatedParty.@type value.Possible values:

  • Account
  • Contact
  • Customer
  • Location

Data type: String

relatedParty.@type

Record type of the party. Matches the relatedParty.role value.Data type: String

relatedParty.partyOrPartyRole

Object containing the specific reference details about the party.- If the passed ID already exists, the API returns just the @type and id fields of the matching party.

  • If the passed ID doesn't already exist, the API returns a the new Account, Contact, or Location ID with its conditional attributes, which vary based on the @type value.

Data type: Object

Reference pattern:

Text
"partyOrPartyRole": {  "@type": "PartyRef",  "id": "String"}

Account creation:

JSON
"partyOrPartyRole": {  "@type": "PartyRef",  "id": "String",  "accountNumber": "String",  "status": "String"}

Contact creation:

JSON
"partyOrPartyRole": {  "@type": "PartyRef",  "id": "String",  "firstName": "String",  "lastName": "String",  "email": "String" }

Location creation:

JSON
"partyOrPartyRole": {  "@type": "PartyRef",  "id": "String",  "name": "String",  "address": "String",  "city": "String",  "postalCode": "String",  "country": "String" }

relatedParty.partyOrPartyRole.@type

Indicates the type of reference being provided. Value is always PartyRef.Data type: String

relatedParty.partyOrPartyRole.accountNumber

Returned for Account party types. External reference number or identifier for the Account.Data type: String

relatedParty.partyOrPartyRole.address

Returned for Location party types. Street address of the location.Example: "123 Main Street"

Data type: String

relatedParty.partyOrPartyRole.city

Returned for Location party types. City or municipality name for the location.Example: "San Francisco", "New York"

Data type: String

relatedParty.partyOrPartyRole.country

Returned for Location party types. Country where the location is physically situated or where the contact is based.Data type: String

relatedParty.partyOrPartyRole.email

Returned for Contact party types. Contact person's primary email address.Data type: String

relatedParty.partyOrPartyRole.firstName

Returned for Contact party types. Contact person's first name or given name.Data type: String

relatedParty.partyOrPartyRole.id

Sys_id or external_id of the party record.Data type: String

Table: Account [customer_account], Contact [customer_contact] table, or Location [location]

relatedParty.partyOrPartyRole.lastName

Returned for Contact party types. Contact person's last name or given name.Data type: String

relatedParty.partyOrPartyRole.name

Returned for Account, Contact, and Location types. Name of the account, contact, or location. Data type: String

relatedParty.partyOrPartyRole.postalCode

Required for Location party types. Postal code, ZIP code, or PIN code for the location.Data type: String

relatedParty.partyOrPartyRole.status

Returned for Account party types. Current status of the account. Possible values for the status field depend on how your instance is configured.Common values include:

  • Active: Account is in normal operation
  • Inactive: Account is not currently conducting business
  • Suspended: Account is temporarily restricted
  • Pending: Account is awaiting activation
  • Archived: Historical accounts
  • Under Review: Account is being evaluated

Data type: String

relatedParty.role

Business role that the referenced party plays in the order context. Matches the relatedParty.@type value.Possible values:

  • Account: parties representing a customer or business entity
  • Contact: parties representing a contact person
  • Customer: parties representing an end consumer or individual
  • Location: parties representing a service address or fulfillment location

Data type: String

requestedCompletionDate

Delivery date requested by the customer. Data type: String

Format: ISO 8601 (Example: 2021-05-02T08:13:59.506Z)

Stored in: expected_end_date field of the sn_ind_tmt_orm_order table.

requestedStartDate

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

Format: ISO 8601 (Example: 2021-05-02T08:13:59.506Z)

Stored in: expected_start_date field of the sn_ind_tmt_orm_order table.

state

Current state of the order.Data type: String

productOrderItem

Items associated with the product order and their associated action.Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

Data type: Array of Objects

JavaScript
"productOrderItem": [  {    "action": "String",    "actionReason": "String",    "billingAccount": {Object},    "committedDueDate": "String",    "externalProductInventory": [Array],    "id": "String",    "itemPrice": [Array],    "payment": {Object},    "product": {Object},    "productOffering": {Object},    "productOrderItemRelationship": [Array],    "quantity": Number,    "@type": "String"  }]

productOrderItem.@type

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

productOrderItem.action

Action carried out on the product.Possible values:

  • add
  • change
  • delete
  • no-change
  • resume
  • suspend

Data type: String

Stored in: action field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table.

productOrderItem.actionReason

Description of the reason for the order line item.Data type: String

Stored in: action_reason field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table.

productOrderItem.billingAccount

Identifies the billing account and determines how the account is processed.- When you provide a billing.id that matches an existing billing account, the API uses the reference pattern to link the account to the order line item. Other billing account fields you include (name, status, active) are ignored. The system uses only the ID to find and link the existing billing account.

  • When you provide a billing.id that doesn't match an existing billing account, the API creates a new billing account with the provided ID as the external_id. Billing account fields (name, status, active) are required.

Data type: Object

Reference structure:

Text
"billingAccount": {          "id": "sys_id_billing_account_456",          "@type": "BillingAccountRef"        }

Creation structure:

JSON
"billingAccount": {          "id": "billingID",          "name": "Project 1234 Billing",          "@type": "BillingAccountRef",          "status": "Active",          "active": true        }

productOrderItem.billingAccount.@type

Returned for account creation. Must always be BillingAccountRef. This indicates that the object is a reference to a billing account record.Data type: String

productOrderItem.billingAccount.active

Returned only for account creation. Flag that indicates whether the billing account is active. This field is used when creating a new billing account, and is ignored when referencing an existing billing account.

Valid values:

  • true: Billing account is active.
  • false: Billing account isn't active.

productOrderItem.billingAccount.id

Sys_id or external_id of the billing account to reference or create inline.Data type: String

productOrderItem.billingAccount.name

Returned for account creation. Display name of the billing account.Example: "Main Office Billing", "Project 2024 Billing"

Data type: String

productOrderItem.billingAccount.status

Returned for account creation. The status of the billing account. Possible values depend on your instance configuration. Example: "Active", "Inactive", "Suspended"

Data type: String

productOrderItem.committedDueDate

Date and time when the action must be performed on the order line item.Data type: String

Format: ISO 8601 (Example: 2021-05-02T08:13:59.506Z)

Stored in: The committed_due_date field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table.

productOrderItem.externalProductInventory.externalProductInventoryId

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.

productOrderItem.externalProductInventory

External IDs which map to the product inventories created for the order.Data type: Array of Objects

Text
"externalProductInventory": [  {    "externalProductInventoryId": "String"  }]

productOrderItem.id

Required. Unique identifier of the line item. Stored in: The external_id field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table.

Data type: String

productOrderItem.itemPrice

Price associated with the product. Stored in: sn_ind_tmt_orm_order

Data type: Array of Objects

CSS
"itemPrice": [  {    "price": {Object},    "priceType": "String",    "recurringChargePeriod": "String"  }]

productOrderItem.itemPrice.price

Description of the price of the associated product. Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

Data type: Object

Text
"price": {  "taxIncludedAmount": {Object}}

productOrderItem.itemPrice.price.taxIncludedAmount

Description of the price of the associated product, including the tax. Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

Data type: Object

JavaScript
"taxIncludedAmount": {  "unit": "String",  "value": Number}

productOrderItem.itemPrice.price.taxIncludedAmount.unit

Currency code in which the price is expressed.Stored in: The mrc or nrc field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table

Data type: String

productOrderItem.itemPrice.price.taxIncludedAmount.value

Price of product, including any tax. Stored in: The mrc or nrc field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table

Data type: Number

productOrderItem.itemPrice.priceType

Specifies whether the price of the item is recurring or non-recurring. Data type: String

productOrderItem.itemPrice.recurringChargePeriod

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

productOrderItem.payment

Details about the payment profile.Data type: Object

JSON
"payment": {  "id": "String",  "paymentMethod": "String",  "paymentMethodType": "String",  "paymentReferenceId": "String"}

productOrderItem.payment.id

Sys_id or external_id of an existing payment profile record.Data type: String

productOrderItem.payment.paymentMethod

Returned for profile creation. A choice field representing the payment method category. This field is validated against configured payment method choices in your instance.Example: "Credit Card", "Bank Transfer", "Check", "Digital Wallet"

Data type: String

productOrderItem.payment.paymentMethodType

Returned for profile creation. A choice field representing the specific payment method type. This field is validated against configured payment method type choices and is typically dependent on the selected paymentMethod.Example: Visa", "MasterCard", "American Express" for credit cards; "ACH" or "Wire" for bank transfers

Data type: String

productOrderItem.payment.paymentReferenceId

Returned for profile creation. External reference identifier for the payment profile.Example: "REF-2024-001", "CARD-XXXX-5678"

Data type: String

productOrderItem.product

Returned if productOrderItem.action is change or delete. Instance details of the product purchased by the customer.Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

Data type: Object

JavaScript
"product": {  "id": "String",  "place": {Object},  "productCharacteristic": [Array],  "productSpecification": {Object},  "relatedParty": {Object},  "@type": "String"}

productOrderItem.product.@type

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

productOrderItem.product.id

Returned if productOrderItem.action is change or delete. Unique identifier of the product sold. Table: 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.place

Maps of the locations on which to install the product. Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

Data type: Object

Text
"place": {  "id": "String",  "@type": "String"}

productOrderItem.product.place.@type

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

productOrderItem.product.place.id

Sys_id of the associated location record. Table: Location [cmn_location]

Stored in: The location field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table.

Data type: String

productOrderItem.product.productCharacteristic

Characteristics of the associated product. Stored in: sn_ind_tmt_orm_order_characteristic_value

Data type: Array of Objects

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

productOrderItem.product.productCharacteristic.name

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.

productOrderItem.product.productCharacteristic.previousValue

Previous characteristic option values if the update is for 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

Stored in: The previous_characteristic_option_value field of the sn_ind_tmt_orm_order_characteristic_value table.

productOrderItem.product.productCharacteristic.value

Characteristic option values associated with the product. For additional information on characteristic option values, see Create product characteristics and characteristic options. Data type: String

Stored in: The characteristic_option_value field of the sn_ind_tmt_orm_order_characteristic_value table.

productOrderItem.product.productCharacteristic.valueType

Type of characteristic value.Accepted values:

  • address
  • array.date
  • array.datetime
  • array.decimal
  • array.integer
  • array.object
  • array.single_line_text
  • attachment
  • checkbox
  • choice
  • date
  • date_time
  • decimal
  • duration
  • email
  • integer
  • object
  • single_line_text
  • yes_no

Data type: String

productOrderItem.product.productSpecification

Specification details associated with the product. Stored in: sn_ind_tmt_orm_order_line_item

Data type: Object

JSON
"productSpecification": {  "id": "String",  "internalVersion": "String",  "name": "String",  "version": "String",  "@type": "String"}

productOrderItem.product.productSpecification.@type

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

productOrderItem.product.productSpecification.id

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]

productOrderItem.product.productSpecification.internalVersion

Internal version of the service specification. Matches the value of version.Data Type: String

Table: In the version field of the Product Specification [sn_prd_pm_product_specification] table.

productOrderItem.product.productSpecification.name

Name of the product specification. Data type: String

Table: Product Specification [sn_prd_pm_product_specification]

productOrderItem.product.productSpecification.version

External version of the service specification. Matches the value of internalVersion.Data Type: String

Table: In the external_version field of the Product Specification [sn_prd_pm_product_specification] table.

productOrderItem.product.relatedParty

List of party roles linked to an Order Line Item Contact. Stored in: sn_ind_tmt_orm_order_line_item_contact

Data type: Array of Objects

JSON
"relatedParty": [  {    "email": "String",    "firstName": "String",    "lastName": "String",    "phone": "String",    "@referredType": "String",    "@type": "String"  }]

productOrderItem.product.relatedParty.@referredType

Required. Type of customer. Possible value: OrderLineItemContact

Data type: String

productOrderItem.product.relatedParty.@type

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

productOrderItem.product.relatedParty.email

Email address of the contact. Stored in: The email field of the sn_ind_tmt_orm_order_line_item_contact table.

Data type: String

productOrderItem.product.relatedParty.firstName

First name of the contact.Stored in: The first_name field of the sn_ind_tmt_orm_order_line_item_contact table.

Data type: String

productOrderItem.product.relatedParty.lastName

Last name of the contact.Stored in: The lastName field of the sn_ind_tmt_orm_order_line_item_contact table.

Data type: String

productOrderItem.product.relatedParty.phone

Business phone number of the contact. Stored in: The business_phone field of the sn_ind_tmt_orm_order_line_item_contact table.

Data type: String

productOrderItem.productOffering

Details of the product offering associated with the product.Stored in: sn_ind_tmt_orm_order_line_item

Data type: Object

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

productOrderItem.productOffering.id

Initial version or external ID of the product offering. The initial version is the sys_id of the first version of the offering.Table: Product Offering [sn_prd_pm_product_offering]

Data type: String

productOrderItem.productOffering.internalVersion

Version of the product offering.Data type: String

Table: In the version field of the Product Offering [sn_prd_pm_product_offering] table.

productOrderItem.productOffering.name

Name of the product offering.Data type: String

Table: Product Offering [sn_prd_pm_product_offering]

productOrderItem.productOffering.version

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.

productOrderItem.productOrderItem.quantity

Number of the associated items to order. Stored in: The quantity field of the sn_ind_tmt_orm_order table.

Data type: Number

productOrderItem.productOrderItemRelationship

Required. List that describes the parent/child relationship between order items. Data type: Array of Objects

Text
"productOrderItemRelationship": [  {    "id": "String",    "relationshipType": "String"  }]

Stored in: sn_ind_tmt_orm_order_line_item

productOrderItem.productOrderItemRelationship.id

Same as the productOrderItem.id value. Used for parent/child relationship Stored in: The parent_line_item field of the sn_ind_tmt_orm_order_line_item table.

Data type: String

productOrderItem.productOrderItemRelationship.relationshipType

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

  • HasChild
  • HasParent

Data type: String

productOrderItem.quantity

Number of items ordered.Data type: Number

Stored in: The quantity field of the sn_ind_tmt_orm_order table.

### cURL request

This example retrieves the given product order associated with the ID 8d75939453126010a795ddeeff7b126a.

Shell
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.

JSON
{   "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"}

GET response with TMF 622 V3 parameters (relatedParty, billingAccount and payment)

JSON
{  "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",      "billingAccount": {        "id": "sys_id_ba_security_789",        "name": "Funco Intl - Security Services",        "@type": "BillingAccountRef",        "status": "Active",        "active": true      },      "payment": {        "id": "sys_id_payment_visa_001",        "paymentMethod": "Credit Card",        "paymentMethodType": "Visa",        "paymentReferenceId": "REF-2024-SD-SECURITY"      },      "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",      "billingAccount": {        "id": "sys_id_ba_service_456",        "name": "Funco Intl - Service Package",        "@type": "BillingAccountRef",        "status": "Active",        "active": true      },      "payment": {        "id": "sys_id_payment_ach_002",        "paymentMethod": "Bank Transfer",        "paymentMethodType": "ACH",        "paymentReferenceId": "REF-2024-SD-SERVICE"      },      "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",      "billingAccount": {        "id": "sys_id_ba_equipment_123",        "name": "Funco Intl - Equipment Billing",        "@type": "BillingAccountRef",        "status": "Active",        "active": true      },      "payment": {        "id": "sys_id_payment_mastercard_003",        "paymentMethod": "Credit Card",        "paymentMethodType": "MasterCard",        "paymentReferenceId": "REF-2024-SD-EQUIPMENT"      },      "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",      "billingAccount": {        "id": "sys_id_ba_controller_999",        "name": "Funco Intl - Controller Services",        "@type": "BillingAccountRef",        "status": "Active",        "active": true      },      "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": [    {      "role": "Contact",      "@type": "Contact",      "partyOrPartyRole": {        "@type": "PartyRef",        "id": "eaf68911c35420105252716b7d40ddde",        "name": "Sally Thomas",        "email": "sally.thomas@funcointl.com"      }    },    {      "role": "Account",      "@type": "Account",      "partyOrPartyRole": {        "@type": "PartyRef",        "id": "ffc68911c35420105252716b7d40dd55",        "name": "Funco Intl"      }    },    {      "role": "Consumer",      "@type": "Consumer",      "partyOrPartyRole": {        "@type": "PartyRef",        "id": "59f16de1c3b67110ff00ed23a140dd9e",        "name": "Funco External"      }    }  ],  "state": "in_progress",  "@type": "ProductOrder"}

Reading Payment Information from Orders

When you retrieve an order using GET or LIST operations, the payment object is included in the order line item response only if a payment profile is actively linked. If an order line item (OLI) does not have a linked payment profile, the payment field is not included in the response. When the payment object is present, it contains all four fields (id, paymentMethod, paymentMethodType, paymentReferenceId) representing the complete profile details.

Example GET response:

JSON
{  "productOrder": {    "id": "order_001",    "orderItem": [      {        "id": "order_line_001",        "product": {          "id": "prod_123"        },        "billingAccount": {          "id": "ba_456"        },        "payment": {          "id": "sys_id_payment_profile_123",          "paymentMethod": "Credit Card",          "paymentMethodType": "Visa",          "paymentReferenceId": "REF-2024-001"        }      }    ]  }}

Example GET response without payment profile:

JSON
{  "productOrder": {    "id": "order_003",    "orderItem": [      {        "id": "order_line_003",        "product": {          "id": "prod_789"        },        "billingAccount": {          "id": "ba_999"        }      }    ]  }}

Reading Billing Account Information from Orders

When you retrieve an order using GET or LIST operations, the billingAccount field is included in the order line item response with the system ID reference and any available billing account details.

Example GET response with billing account reference:

JSON
{  "productOrder": {    "id": "order_001",    "orderItem": [      {        "id": "order_line_001",        "product": {          "id": "prod_123"        },        "billingAccount": {          "id": "sys_id_billing_account_456",          "name": "Project 2024 Billing",          "@type": "BillingAccountRef",          "status": "Active",          "active": true        }      }    ]  }}

Example GET response with newly created billing account:

JSON
{  "productOrder": {    "id": "order_002",    "orderItem": [      {        "id": "order_line_002",        "product": {          "id": "prod_456"        },        "billingAccount": {          "id": "sys_id_billing_account_789",          "name": "Project 2024 Billing",          "@type": "BillingAccountRef",          "status": "Active",          "active": true        }      }    ]  }}

Product Order Open API - PATCH /sn_ind_tmt_orm/order/productOrder/{id}

Updates the specified customer order.

v3 updates for PATCH

  • v3 of the Product Order Open API supports a changeType=nonProduct parameter to update order and line item administrative details without triggering product change workflows or state transitions.

  • The relatedParty field also changed structure in v3:

    • The V2 item shape (id/name/@referredType/@type) only supported referencing an existing Account, Consumer, or Contact record by ID.

    • V3 introduces the partyOrPartyRole object in its place (role/@type/partyOrPartyRole) so the same field can support both reference and inline-creation patterns.

      On the POST endpoint, partyOrPartyRole can carry the attributes needed to create a new Account, Consumer, Contact, location, billing account, or payment record inline, rather than requiring it to already exist. PATCH accepts either item shape but, unlike POST, only supports the reference pattern. See the request body parameters table below for the full field-by-field breakdown of both shapes.

relatedParty structure differences

The relatedParty field is present in both the deprecated V2 and the current V3 versions of the Product Order Open API, but the two versions use different structures for this field. Because V2 is deprecated, not removed, both structures may still be encountered depending on which endpoint version a caller is integrated with.

Aspect

V2

V3

Sample payload

JSON
"relatedParty": [  {    "id": "String",    "name": "String",    "@referredType": "String",    "@type": "String"  }]
CSS
"relatedParty": [  {    "role": "String",    "@type": "String",    "partyOrPartyRole": {Object}  }]

Party reference field

relatedParty.id — sys_id or external_id directly on the relatedParty item.

relatedParty.partyOrPartyRole.id — sys_id or external_id nested inside the partyOrPartyRole object.

Type annotation field

relatedParty.@referredType — possible values: Consumer, Customer, CustomerContact.

relatedParty.@type — possible values on PATCH: Account, Consumer, Contact.

Display name field

relatedParty.name — name of the account, customer, or consumer.

Not applicable on PATCH. (partyOrPartyRole.name exists but applies only to POST inline creation.)

Business role field

Not applicable. V2 has no equivalent field.

relatedParty.role — optional, not validated.

Record creation support

Not supported on PATCH.

Not supported on PATCH — only reference-existing-record patterns are accepted. (POST does support inline creation; this topic covers PATCH only.)

Not-found / invalid-reference behavior

Invalid Account: request rejected (Invalid payload: Customer Account does not exist). Invalid Consumer: request rejected (Invalid payload: Consumer does not exist). Invalid Contact, or a Contact not linked to the Account: request rejected (Customer contact is not related to the account).

Same three errors as V2, using the same message text.

### URL format

Default URL: /api/sn_ind_tmt_orm/order/productOrder/{id}

Supported request parameters

Name

Description

api_version

Optional. Version of the endpoint to access. For example, v1 or v2. Only specify this value to use an endpoint version other than the latest. Data type: String

id

Sys_id of the customer order to update.Data type: String

Table: Customer Order [sn_ind_tmt_orm_order]

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

Name

Description

@type

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

changeType

Controls which fields in the PATCH request are processed. When provided, only non-product fields (notes and contacts) are updated and the order state remains unchanged without triggering product change workflows or state transitions. When absent, standard product-change behavior applies.Supported value: nonProduct

Only these fields are processed when changeType=nonProduct:

  • note (order-level)
  • relatedParty (order-level)
  • productOrderItem[].id
  • productOrderItem[].relatedParty
  • productOrderItem[].note

All other fields (including product-related fields) are silently ignored.

Note: When using this field, order state remains unchanged (does NOT transition to revision_received). No inflight or revision flows are triggered, and changes are isolated to metadata fields only.

Data type: String

channel

List of channels to use for selling the products. Data type: Array of Objects

Text
"channel": [  {    "id": "String",    "name": "String"  }]

Stored in: sn_ind_tmt_orm_order

channel.id

Required if the channel parameter is used. Unique identifier of the channel to use to sell the associated products. Data type: String

Table: In the external_id field of the Distribution Channel [sn_prd_pm_distribution_channel] table.

Stored in: The channel field of the sn_ind_tmt_orm_order table.

Default: empty string

channel.name

Name of the channel to use to sell the associated products. Possible channel names are defined on the list tab in the Channel Dictionary Entry of the sn_ind_tmt_orm_order table.Data type: String

Default: empty 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.

If the action for order line items 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 table.

externalId

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: empty string

externalSystem

External system of the service order, appended with TMF622. For example, if the external system is ABC then enter the value in externalSystem as ABC-TMF622.

Data Type: String

href

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

id

Sys_id of the customer order created for this request.Data type: String

note

Optional. List of additional notes made by the customer when ordering. Data type: Array of Objects

Text
"note": [  {    "text": "String"  }]

Stored in: sn_ind_tmt_orm_order

note.text

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: empty string

orderCurrency

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

orderId

Sys_id of the order to be created. On successful request, the order is added to the Inbound Queue [sn_tmt_core_inbound_queue] table on a schedule to be processed. This value is the only result if the order is created asynchronously using the mode query parameter.Data type: String

productOrderItem

List that describes items associated with the product order and their associated action. Data type: Array of Objects

JavaScript
"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

productOrderItem.@type

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

productOrderItem.action

Required if the productOrderItem parameter is used. Action to carry out on the product. Possible actions are defined on the list tab in the Action Dictionary Entry of the sn_ind_tmt_orm_order_line_item table. Possible values:

  • add
  • change

Note: Submitting a change payload that includes a new service location via productOrderItem.product.place.id is processed as a move order.

  • delete
  • no-change
  • resume
  • suspend

Data type: String

Stored in: The action field of the sn_ind_tmt_orm_order_line_item table.

Default: add

productOrderItem.actionReason

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.

productOrderItem.billingAccount

Required. Identifies the billing account and determines how the account is processed. When you provide a billing.id that matches an existing billing account, the API uses the reference pattern to link the account to the order line item. Other billing account fields are ignored. The system uses only the ID to find and link the existing billing account. When you provide a billing.id that doesn't match an existing billing account, the API creates a new billing account with the provided ID as the external_id. Billing account fields (name, status, active) are required for inline creation.Data type: Object

JavaScript
"billingAccount": { "id": "String",                "@type": "BillingAccountRef", "name": "String", "status": "String",                "active": Boolean }

productOrderItem.billingAccount.@type

Conditional, required only for account creation. Must always be BillingAccountRef. This indicates that the object is a reference to a billing account record.Data type: String

productOrderItem.billingAccount.active

Conditional, required only for account creation. Flag that indicates whether the billing account is active. This field is used when creating a new billing account, and is ignored when referencing an existing billing account.Valid values:

  • true: Billing account is active
  • false: Billing account isn't active

Data type: Boolean

productOrderItem.billingAccount.id

Required. Sys_id or external_id of the billing account to reference or create inline.Data type: String

productOrderItem.billingAccount.name

Conditional, required only for account creation. Display name of the billing account. This field is used when creating a new billing account. If not provided during creation, the system uses a default name pattern. This field is ignored when referencing an existing billing account.Examples: "Main Office Billing", "Project 2024 Billing"

Data type: String

productOrderItem.billingAccount.status

Conditional, required only for account creation. The status of the billing account. This field is used when creating a new billing account. Valid values depend on your instance configuration. If not provided during creation, the system uses the default status value configured in your instance. This field is ignored when referencing an existing billing account.Data type: String

Examples: "Active", "Inactive", "Suspended"

productOrderItem.committedDueDate

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.

productOrderItem.committedDueDate

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.

productOrderItem.externalProductInventory.externalProductInventoryId

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.

productOrderItem.externalProductInventory

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

Text
"externalProductInventory": [  {    "externalProductInventoryId": "String"  }]

Note: 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.

productOrderItem.id

Required if the productOrderItem parameter is used. Sys_id or external_id of the order line item. Table: Order Line Item [sn_ind_tmt_orm_order_line_item] table

Data type: String

Default: empty string

productOrderItem.itemPrice

List that describes the price associated with the product. Data type: Array of Objects

CSS
"itemPrice": [  {    "price": {Object},    "priceType": "String",    "recurringChargePeriod": "String"  }]

Stored in: sn_ind_tmt_orm_order

Default: empty string

productOrderItem.itemPrice.price

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

Text
"price": {  "taxIncludedAmount": {Object}}

Stored in: sn_ind_tmt_orm_order_line_item

Default: empty string

productOrderItem.itemPrice.price.taxIncludedAmount

Description of the price of the associated product, including the tax. Data type: Object

JavaScript
"taxIncludedAmount": {  "unit": "String",  "value": Number}

Stored in: sn_ind_tmt_orm_order_line_item

productOrderItem.itemPrice.price.taxIncludedAmount.unit

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.

productOrderItem.itemPrice.price.taxIncludedAmount.value

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.

productOrderItem.itemPrice.priceType

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

productOrderItem.itemPrice.recurringChargePeriod

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

productOrderItem.payment

Required. Identifies the payment profile and determines how the profile is processed. Reference an existing payment profile by passing payment.id, or pass full payment attributes to create payment profile inline. If the ID already exists, the API locates the matching payment profile and links it to the order line item. Any other payment fields are ignored. The system uses only the id to find and link the existing profile. If the ID doesn't already exist, a payment profile is created automatically and linked to the order line item's billing account. paymentMethod, paymentMethodType, paymentReferenceId are required to create the new profile.Data type: Object

JSON
"payment": { "id": "String", "paymentMethod": "String",                "paymentMethodType": "String", "paymentReferenceId": "String" }

productOrderItem.payment.id

Required. Sys_id or external_id of an existing payment profile record.Data type: String

productOrderItem.payment.paymentMethod

Conditional, required only for profile creation. A choice field representing the payment method category. This field is validated against configured payment method choices in your instance. This field is ignored when referencing an existing profile.Data type: String

Examples: "Credit Card", "Bank Transfer", "Check", "Digital Wallet"

productOrderItem.payment.paymentMethodType

Conditional, required only for profile creation. A choice field representing the specific payment method type. This field is validated against configured payment method type choices and is typically dependent on the selected paymentMethod. This field is ignored when referencing an existing profile.Data type: String

Examples: "Visa", "MasterCard", "American Express" for credit cards; "ACH" or "Wire" for bank transfers

productOrderItem.payment.paymentReferenceId

Conditional, required only for profile creation. An external reference identifier for the payment profile. This is typically used for tracking, audit trails, and reconciliation between your order system and your payment processor. This field is ignored when referencing an existing profile.Data type: String

Examples: "REF-2024-001", "CARD-XXXX-5678"

productOrderItem.product

Required if productOrderItem.action is change or delete. Description of the instance details of the product purchased by the customer. Data type: Object

JavaScript
"product": {  "id": "String",  "place": {Object},  "productCharacteristic": [Array],  "productSpecification": {Object},  "relatedParty": {Object},  "@type": "String"}

Stored in: sn_ind_tmt_orm_order_line_item

productOrderItem.product.@type

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

productOrderItem.product.id

Required if productOrderItem.action 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

Default: empty string

productOrderItem.product.place

Maps of the locations on which to install the product. Data type: Object

Text
"place": {  "id": "String",  "@type": "String"}

Stored in: sn_ind_tmt_orm_order_line_item

productOrderItem.product.place.@type

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

productOrderItem.product.place.id

Required if the productOrderItem.product.place 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 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

Stored in: The location field of the sn_ind_tmt_orm_order_line_item table.

Default: empty string

productOrderItem.product.productCharacteristic

List of characteristics of the associated product. Data type: Array of Objects

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

Stored in: sn_ind_tmt_orm_order_characteristic_value

productOrderItem.product.productCharacteristic.name

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: empty string

productOrderItem.product.productCharacteristic.previousValue

Previous 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

Stored in: The previous_characteristic_option_value of the sn_ind_tmt_orm_order_characteristic_value table.

Default: empty string

productOrderItem.product.productCharacteristic.value

Characteristic option values associated with the product. For additional information on characteristic option values, see Create product characteristics and characteristic options. Data type: String

Stored in: The characteristic_option_value field of the sn_ind_tmt_orm_order_characteristic_value table.

Default: empty string

productOrderItem.product.productCharacteristic.valueType

Type of characteristic value.Possible values:

  • address
  • array.date
  • array.datetime
  • array.decimal
  • array.integer
  • array.object
  • array.single_line_text
  • attachment
  • checkbox
  • choice
  • date
  • date_time
  • decimal
  • duration
  • email
  • integer
  • object
  • single_line_text
  • yes_no

Data type:String

Note: This value never changes format on this API. See the Product Inventory Open API concept topic for a related system property.

productOrderItem.product.productSpecification

Description of the product specification associated with the product. Note: Change orders (productOrderItem.action is change) are processed differently based on the value of the sn_ind_tmt_orm.allowSpecVersionUpdateInChangeOrder 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.

  • 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.
  • 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.

Data type: Object

JSON
"productSpecification": {  "id": "String",  "internalVersion": "String",  "name": "String",  "version": "String",  "@type": "String"}

Stored in: sn_ind_tmt_orm_order_line_item

productOrderItem.product.productSpecification.@type

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

productOrderItem.product.productSpecification.id

Required if the productOrderItem.product.productSpecification 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

productOrderItem.product.productSpecification.internalId

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]

productOrderItem.product.productSpecification.internalVersion

Internal version of the product specification. Must match the value of version otherwise an error is thrown.Data Type: String

Table: Product Specification [sn_prd_pm_product_specification]

productOrderItem.product.productSpecification.name

Name of the product specification. Located in the Product Specification [sn_prd_pm_product_specification] table. Data type: String

productOrderItem.product.productSpecification.version

External version of the product specification. Must match the value of internalVersion otherwise an error is thrown.Data Type: String

Table: Product Specification [sn_prd_pm_product_specification]

productOrderItem.product.relatedParty

Optional. List of contacts for line items. Data type: Array of Objects

JSON
"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

productOrderItem.product.relatedParty.@referredType

Type of customer. Possible value: OrderLineItemContact

Data type: String

productOrderItem.product.relatedParty.@type

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

productOrderItem.product.relatedParty.email

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: empty string

productOrderItem.product.relatedParty.firstName

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: empty string

productOrderItem.product.relatedParty.id

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: empty string

productOrderItem.product.relatedParty.lastName

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: empty string

productOrderItem.product.relatedParty.phone

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: empty string

productOrderItem.productOffering

Description of the product offering associated with the product. Data type: Object

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

Stored in: sn_ind_tmt_orm_order_line_item

productOrderItem.productOffering.id

Required if the productOrderItem.productOffering 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

productOrderItem.productOffering.internalId

Initial version of the product offering. The initial version is the sys_id of the first version of the offering.Data type: StringTable: Product Offering [sn_prd_pm_product_offering]

productOrderItem.productOffering.internalVersion

Version of the product offering.Data type: String

Table: Product Offering [sn_prd_pm_product_offering]

productOrderItem.productOffering.name

Name of the product offering. Located in the Product Offering [sn_prd_pm_product_offering] table. Data type: String

productOrderItem.productOffering.version

External version of the product offering.Data type: String

Table: Product Offering [sn_prd_pm_product_offering]

productOrderItem.productOrderItem.quantity

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

Stored in: The quantity field of the sn_ind_tmt_orm_order.

Default: null

productOrderItem.productOrderItemRelationship

Conditional. Item-level relationships. If supplied, each entry requires an id and relationshipType. Data type: Array of Objects

Text
"productOrderItemRelationship": [  {    "id": "String",    "relationshipType": "String"  }]

Stored in: sn_ind_tmt_orm_order_line_item

productOrderItem.productOrderItemRelationship.id

Required if the productOrderItem.productOrderItemRelationship 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

Stored in: The parent_line_item field of thebsn_ind_tmt_orm_order_line_item table.

Default: empty string

productOrderItem.productOrderItemRelationship.relationshipType

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

productOrderItem.quantity

Number of items ordered.Data type: Number

Stored in: The quantity field of the sn_ind_tmt_orm_order table.

productOrderItem.revisionOperation

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: empty string

relatedParty

List of parties associated with the order. Contains at least one item identifying the Account or Consumer for the order. Both the V2 item shape and the V3 item shape are shown below. Data type: Array of Objects

V2 item shape:

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

V3 item shape:

CSS
"relatedParty": [  {    "role": "String",    "@type": "String",    "partyOrPartyRole": {Object}  }]

relatedParty.@referredType (V2 only)

Type of customer. Possible values:

  • Consumer
  • Customer
  • CustomerContact

Data type: String

relatedParty.id (V2 only)

Sys_id or external_id of the account, customer contact, or consumer associated with the order.Table: Account [customer_account], Contact [customer_contact] table, or Consumer [csm_consumer] table.

Data type: String

relatedParty.name (V2 only)

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

relatedParty.@type (V2 only)

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

relatedParty.@type (V3 only)

Required. Identifies the type of party the item represents. The system uses this value to determine which table to search when resolving the party. Possible values:

  • Account
  • Consumer
  • Contact

Data type: String

relatedParty.role (V3 only)

Optional. Not validated against relatedParty.@type or any other field. Data type: String

relatedParty.partyOrPartyRole (V3 only)

Required. Object identifying the existing party record to associate with the order. Data type: Object

Text
"partyOrPartyRole": {  "@type": "String",  "id": "String"}

Important: On PATCH, only reference patterns are supported: the Account, Consumer, or Contact record identified by partyOrPartyRole.id must already exist. PATCH does not create Account, Consumer, Contact, location, billing account, or payment records, even if the referenced record does not exist.

relatedParty.partyOrPartyRole.@type (V3 only)

Optional. Not validated. Data type: String

relatedParty.partyOrPartyRole.id (V3 only)

Required. Sys_id or external ID of the existing Account, Consumer, or Contact record to associate with the order. If relatedParty.@type is Account and no matching record exists, the request is rejected with Invalid payload: Customer Account does not exist.

If relatedParty.@type is Consumer and no matching record exists, the request is rejected with Invalid payload: Consumer does not exist.

If relatedParty.@type is Contact and no matching record exists, or the Contact is present but not linked to the Account also provided, the request is rejected with Customer contact is not related to the account (same message text for both cases).

If both an Account and a Consumer are present in the same relatedParty set, the request is rejected with Invalid payload: Both Account and Consumer cannot be present simultaneously.

If a Contact is present without an Account or Consumer also present, the request is rejected with Invalid payload: Customer Account or Consumer is missing.

If partyOrPartyRole.id itself is missing, the request is rejected with Invalid payload: partyOrPartyRole id is missing.

Data type: String

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

(V3 only)

Note: The following partyOrPartyRole attributes apply only to inline creation on the POST endpoint and have no effect on PATCH requests, because PATCH does not create records.

relatedParty.partyOrPartyRole.accountNumber (V3 only)

Returned for Account party types. External reference number or identifier for the Account. It provides a business-facing account identifier that is distinct from the system-generated ID. Used only during inline creation; ignored for reference patterns.Data type: String

relatedParty.partyOrPartyRole.address (V3 only)

Returned for Location party types during inline creation. Street address of the location. Used only during inline creation; ignored for reference patterns.Example: "123 Main Street"

Data type: String

relatedParty.partyOrPartyRole.city (V3 only)

Returned for Location party types during inline creation. City or municipality name for the location. Used only during inline creation; ignored for reference patterns.Example: "San Francisco", "New York"

Data type: String

relatedParty.partyOrPartyRole.country (V3 only)

Returned for Location party types during inline creation. Country where the location is physically situated or where the contact is based. Used only during inline creation; ignored for reference patterns.Data type: String

relatedParty.partyOrPartyRole.email (V3 only)

Returned for Contact party types during inline creation. Contact person's primary email address. Used only during inline creation; ignored for reference patterns.Data type: String

relatedParty.partyOrPartyRole.firstName (V3 only)

Returned for Contact party types during inline creation. Contact person's first name or given name. Used only during inline creation; ignored for reference patterns.Data type: String

relatedParty.partyOrPartyRole.lastName (V3 only)

Returned for Contact party types during inline creation. Contact person's last name or given name. Used only during inline creation; ignored for reference patterns.Data type: String

relatedParty.partyOrPartyRole.name (V3 only)

Returned for Account, Contact, and Location types during inline creation. Name of the account, contact, or location. Used only during inline creation; ignored for reference patterns.Data type: String

relatedParty.partyOrPartyRole.postalCode (V3 only)

Returned for Location party types during inline creation. Postal code, ZIP code, or PIN code for the location. Used only during inline creation; ignored for reference patterns.Data type: String

relatedParty.partyOrPartyRole.status (V3 only)

Returned for Account party types during inline creation. Current status of the account. The valid values for the status field depend on how your instance is configured. Used only during inline creation; ignored for reference patterns.Common values:

  • Active
  • Inactive
  • Suspended
  • Pending
  • Archived
  • Under Review

Data type: String

requestedCompletionDate

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: empty string

requestedCompletionDate

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

requestedStartDate

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: empty string

requestedStartDate

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

state

Current state of the order. For this endpoint, this value is always new.Data type: String

### Headers

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

Header Description
Accept Data format of the response body. Only supports application/json.
Content-Type Data format of the request body. Only supports application/json.
Header Description
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.

Status code

Description

200

Resource modified successfully. Includes successful non-product changes via changeType.

201

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:

  • The following Order Item characteristics does not exist: Review specification <**characteristic.name**> and correct the characteristic and characteristic option in the order line item prior to approving the order.
  • Order Item characteristic: <**characteristic.name**> with characteristic value: <**characteristic.value**>is invalid. Correct the characteristic values before approving the order.

400

Bad Request. Could be any of the following reasons:- Invalid payload: Request body missing - Payload was not passed in the request body.

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

Name

Description

channel

List of channels to use for selling the products. Data type: Array of Objects

Text
"channel": [  {    "id": "String",    "name": "String"  }]

channel.id

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

channel.name

Name 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

externalId

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

href

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

id

Sys_id of the customer order updated for this request. Data type: String

note

Optional. List of additional notes made by the customer when ordering. Data type: Array of Objects

Text
"note": [  {    "text": "String"  }]

note.text

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

orderCurrency

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

productOrderItem

List that describes items associated with the product order and their associated action. Data type: Array of Objects

JavaScript
"productOrderItem:" [  {    "action": "String",    "committedDueDate": "String",    "externalProductInventory": [Array],    "id": "String",    "itemPrice": [Array],    "product": {Object},    "productOffering": {Object},    "productOrderItemReleationship": [Array],    "quantity": Number,    "state": "String",    "@type": "String"  }]

productOrderItem.action

Action to carry out on the product. Possible actions are defined on the list tab in the Action Dictionary Entry of the sn_ind_tmt_orm_order_line_item table. Data type: String

productOrderItem.actionReason

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.

productOrderItem.committedDueDate

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

Data type: String

productOrderItem.externalProductInventory

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

Text
"externalProductInventory": [  {    "externalProductInventoryId": "String"  }]

Note: 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.

productOrderItem.externalProductInventory.externalProductInventoryId

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

productOrderItem.id

Required if the productOrderItem parameter is used. Sys_id or external_id of the order line item. Table: Order Line Item [sn_ind_tmt_orm_order_line_item] table

Data type: String

Default: empty string

productOrderItem.itemPrice

List that describes the price associated with the product. Data type: Array of Objects

CSS
"itemPrice": [  {    "price": {Object},    "priceType": "String",    "recurringChargePeriod": "String"  }]

productOrderItem.itemPrice.price

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

Text
"price": {  "taxIncludedAmount": {Object}}

productOrderItem.itemPrice.price.taxIncludeAmount

Description of the price of the associated product, including the tax. Data type: Object

JavaScript
"taxIncludedAmount": {  "unit": "String",  "value": Number}

productOrderItem.itemPrice.price.taxIncludeAmount.unit

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

productOrderItem.itemPrice.price.taxIncludeAmount.value

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

productOrderItem.itemPrice.priceType

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

productOrderItem.itemPrice.recurringChargePeriod

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

productOrderItem.product

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

JavaScript
"product": {  "id": "String",  "place": {Object},  "productCharacteristic": [Array],  "productSpecification": {Object},  "relatedParty": {Object},  "@type": "String"}

productOrderItem.product.id

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

productOrderItem.product.place

Maps of the locations on which to install the product. Data type: Object

Text
"place": {  "id": "String",  "@type": "String"}

productOrderItem.product.place.id

Sys_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.productCharacteristic

List of characteristics of the associated product. Data type: Array of Objects

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

productOrderItem.product.productCharacteristic.name

Name of the characteristic record to associate with the product. Located in the Characteristic [sn_prd_pm_characteristic] table. Data type: String

productOrderItem.product.productCharacteristic.previousValue

Previous 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.value

Characteristic 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.productSpecification

Description of the product specification associated with the product. Data type: Object

JSON
"productSpecification:" {  "id": "String",  "internalId": "String",  "internalVersion": "String",  "name": "String",  "version": "String",  "@type": "String"}

productOrderItem.product.productSpecification.id

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

productOrderItem.product.productSpecification.internalId

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]

productOrderItem.product.productSpecification.internalVersion

Version of the product specification.Data type: String

Table: version field of the Product Specification [sn_prd_pm_product_specification] table.

productOrderItem.product.productSpecification.name

Name of the product specification. Located in the Product Specification [sn_prd_pm_product_specification] table. Data type: String

productOrderItem.product.productSpecification.version

External version of the product specification.Data type: String

Table: external_version field of the Product Specification [sn_prd_pm_product_specification] table.

productOrderItem.product.productSpecification.@type

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

productOrderItem.product.relatedParty

Optional. List of contacts for line items. Data type: Array of Objects

JSON
"relatedParty": [  {    "email": "String",    "firstName": "String",    "id": "String",    "lastName": "String",    "phone": "String",    "@referredType": "String",    "@type": "String"  }]

productOrderItem.product.relatedParty.email

Email address of the contact. Data type: String

productOrderItem.product.relatedParty.firstName

First name of the contact. Data type: String

productOrderItem.product.relatedParty.id

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

productOrderItem.product.relatedParty.lastName

Last name of the contact. Data type: String

productOrderItem.product.relatedParty.phone

Business phone number of the contact. Data type: String

productOrderItem.product.relatedParty.@referredType

Type of customer. Possible value: OrderLineItemContact

Data type: String

productOrderItem.product.relatedParty.@type

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

productOrderItem.product.@type

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

productOrderItem.productOffering

Description of the product offering associated with the product. Data type: Object

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

productOrderItem.productOffering.id

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

productOrderItem.productOffering.internalId

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]

productOrderItem.productOffering.internalVersion

Version of the product offering.Data type: String

Table: Product Offering [sn_prd_pm_product_offering] table, field version.

productOrderItem.productOffering.name

Name of the product offering. Located in the Product Offering [sn_prd_pm_product_offering] table. Data type: String

productOrderItem.productOffering.version

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.

productOrderItem.productOrderItemRelationship

Conditional. Item-level relationships. If supplied, each entry requires an id and relationshipType. Data type: Array of Objects

Text
"productOrderItemRelationship": [  {    "id": "String",    "relationshipType": "String"  }]

productOrderItem.productOrderItemRelationship.id

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

productOrderItem.productOrderItemRelationship.relationshipType

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

productOrderItem.quantity

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

productOrderItem.state

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

productOrderItem.@type

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

relatedParty

List of contacts for the order. Each contact is an object in the array. Contains at least one item with customer account or consumer account information. Data type: Array of Objects

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

relatedParty.id

Sys_id or external_id of the account, customer contact, or consumer associated with the order.Table: Account [customer_account], Contact [customer_contact] table, or Consumer [csm_consumer] table.

Data type: String

relatedParty.name

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

relatedParty.type

Type of customer. Possible values:

  • Consumer
  • Customer
  • CustomerContact

Data type: String

requestedCompletionDate

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

requestedStartDate

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

state

Current state of the order.Data type: String

@type

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

### cURL request

This example updates the channel for a product order.

Shell
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.

JSON
{   "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"}

Update Order Notes Only

Add or update internal notes at the order level without triggering product change workflows.

Shell
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 {  "changeType": "nonProduct",  "note": [    {      "text": "Billing contact updated per customer request."    }  ]}

Response body:

Shell
HTTP 200 OK
{  "id": "PO-0010047",  "state": "in_progress",  "href": "/api/sn_ind_tmt_orm/order/productOrder/a2b3c4d5e6f7g8h9"}

Update Order-Level Contact (V2 shape)

Change the primary contact for the entire order (e.g., billing contact, order coordinator) without modifying product specifications, using the V2 relatedParty shape (id + @referredType).

Shell
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 {  "changeType": "nonProduct",  "relatedParty": [    {      "id": "8xc9d0e1f2g3h4i5j",      "@referredType": "CustomerContact"    }  ]}

Response body:

Shell
HTTP 200 OK
{  "id": "PO-0010047",  "state": "in_progress",  "href": "/api/sn_ind_tmt_orm/order/productOrder/a2b3c4d5e6f7g8h9"}

Update Order-Level Contact (V3 shape)

The same update as the previous example, using the V3 relatedParty shape (@type + partyOrPartyRole.id). The referenced Contact record must already exist; PATCH does not create it.

Shell
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 {  "changeType": "nonProduct",  "relatedParty": [    {      "@type": "Contact",      "partyOrPartyRole": {        "id": "8xc9d0e1f2g3h4i5j"      }    }  ]}

Response body:

Shell
HTTP 200 OK
{  "id": "PO-0010047",  "state": "in_progress",  "href": "/api/sn_ind_tmt_orm/order/productOrder/a2b3c4d5e6f7g8h9"}

Update Line Item Contact

Assign or change a technical contact for a specific product on the order (e.g., the person responsible for a particular service line item).

Shell
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 {  "changeType": "nonProduct",  "productOrderItem": [    {      "id": "POI-0010001",      "relatedParty": [        {          "id": "5m6n7o8p9q0r1s2t",          "firstName": "Sally",          "lastName": "Thomas",          "email": "sally.thomas@example.com",          "phone": "555-0100",          "@referredType": "OrderLineItemContact"        }      ]    }  ]}

Response body:

Shell
HTTP 200 OK
{  "id": "PO-0010047",  "state": "in_progress",  "href": "/api/sn_ind_tmt_orm/order/productOrder/a2b3c4d5e6f7g8h9"}

Update Line Item Note

Add scheduling notes, site survey details, or other administrative information to a specific line item without changing product specifications.

Shell
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 {  "changeType": "nonProduct",  "productOrderItem": [    {      "id": "POI-0010001",      "note": [        {          "text": "Site survey rescheduled by field team."        }      ]    }  ]}

Response body:

Shell
HTTP 200 OK
{  "id": "PO-0010047",  "state": "in_progress",  "href": "/api/sn_ind_tmt_orm/order/productOrder/a2b3c4d5e6f7g8h9"}

Update Order Notes, Order Contact, and Line Item Details

Update multiple administrative fields across the order and line items in a single request (for example, during order handoff or customer contact consolidation).

Shell
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 {  "changeType": "nonProduct",  "note": [    {      "text": "Order-level note added by CSR."    }  ],  "relatedParty": [    {      "id": "8xc9d0e1f2g3h4i5j",      "@referredType": "CustomerContact"    }  ],  "productOrderItem": [    {      "id": "POI-0010001",      "note": [        {          "text": "OLI-level note."        }      ],      "relatedParty": [        {          "id": "5m6n7o8p9q0r1s2t",          "firstName": "Sally",          "lastName": "Thomas",          "email": "sally.thomas@example.com",          "phone": "555-0100",          "@referredType": "OrderLineItemContact"        }      ]    }  ]}

Response body:

Shell
HTTP 200 OK
{  "id": "PO-0010047",  "state": "in_progress",  "href": "/api/sn_ind_tmt_orm/order/productOrder/a2b3c4d5e6f7g8h9"}

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}.

URL format

Default URL: /api/sn_ind_tmt_orm/productorder/{id}

Supported request parameters

Name

Description

id

Sys_id of the customer order to update.Data type: String

Table: Customer Order [sn_ind_tmt_orm_order]

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

Name

Description

@type

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

@type

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

changeType

Controls which fields in the PATCH request are processed. When provided, only non-product fields (notes and contacts) are updated and the order state remains unchanged without triggering product change workflows or state transitions. When absent, standard product-change behavior applies.Supported value: nonProduct

Only these fields are processed when changeType=nonProduct:

  • note (order-level)
  • relatedParty (order-level)
  • productOrderItem[].id
  • productOrderItem[].relatedParty
  • productOrderItem[].note

All other fields (including product-related fields) are silently ignored.

Note: When using this field, order state remains unchanged (does NOT transition to revision_received). No inflight or revision flows are triggered, and changes are isolated to metadata fields only.

Data type: String

channel

List of channels to use for selling the products. Data type: Array of Objects

Text
"channel": [  {    "id": "String",    "name": "String"  }]

Stored in: sn_ind_tmt_orm_order

channel

List of channels to use for selling the products.Data type: Array of Objects

channel.id

Required if the channel parameter is used. Unique identifier of the channel to use to sell the associated products. Data type: String

Table: In the external_id field of the Distribution Channel [sn_prd_pm_distribution_channel] table.

Stored in: The channel field of the sn_ind_tmt_orm_order table.

Default: empty string

channel.id

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

channel.name

Name of the channel to use to sell the associated products. Possible channel names are defined on the list tab in the Channel Dictionary Entry of the sn_ind_tmt_orm_order table.Data type: String

Default: empty string

channel.name

Name 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.

If the action for order line items 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 table.

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

externalId

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: empty string

externalId

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

externalSystem

External system of the service order, appended with TMF622. For example, if the external system is ABC then enter the value in externalSystem as ABC-TMF622.

Data Type: String

href

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

id

Sys_id of the customer order created for this request.Data type: String

note

Optional. List of additional notes made by the customer when ordering. Data type: Array of Objects

Text
"note": [  {    "text": "String"  }]

Stored in: sn_ind_tmt_orm_order

note

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

note.text

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: empty string

note.text

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

orderCurrency

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

orderCurrency

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

orderId

Sys_id of the order to be created. On successful request, the order is added to the Inbound Queue [sn_tmt_core_inbound_queue] table on a schedule to be processed. This value is the only result if the order is created asynchronously using the mode query parameter.Data type: String

productOrderItem

List that describes items associated with the product order and their associated action. Data type: Array of Objects

JavaScript
"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

productOrderItem

Required. Items associated with the product order and their associated action.Data type: Array of Objects

CSS
"productOrderItem": [{                "action": "String", "billingAccount": {Object}, "id": "String",                "payment": {Object}, "product": {Object}, "productOffering": {Object}, ...                }]

productOrderItem.@type

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

productOrderItem.@type

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

productOrderItem.action

Required if the productOrderItem parameter is used. Action to carry out on the product. Possible actions are defined on the list tab in the Action Dictionary Entry of the sn_ind_tmt_orm_order_line_item table. Possible values:

  • add
  • change

Note: Submitting a change payload that includes a new service location via productOrderItem.product.place.id is processed as a move order.

  • delete
  • no-change
  • resume
  • suspend

Data type: String

Stored in: The action field of the sn_ind_tmt_orm_order_line_item table.

Default: add

productOrderItem.action

Action to carry out on the product. Possible actions are defined on the list tab in the Action Dictionary Entry of the sn_ind_tmt_orm_order_line_item table.Data type: String

Possible values: add, change, delete, no-change, resume, suspend

productOrderItem.actionReason

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.

productOrderItem.actionReason

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.

productOrderItem.billingAccount

Required. Identifies the billing account and determines how the account is processed. When you provide a billing.id that matches an existing billing account, the API uses the reference pattern to link the account to the order line item. Other billing account fields are ignored. The system uses only the ID to find and link the existing billing account. When you provide a billing.id that doesn't match an existing billing account, the API creates a new billing account with the provided ID as the external_id. Billing account fields (name, status, active) are required for inline creation.Data type: Object

JavaScript
"billingAccount": { "id": "String",                "@type": "BillingAccountRef", "name": "String", "status": "String",                "active": Boolean }

productOrderItem.billingAccount.@type

Conditional, required only for account creation. Must always be BillingAccountRef. This indicates that the object is a reference to a billing account record.Data type: String

productOrderItem.billingAccount.active

Conditional, required only for account creation. Flag that indicates whether the billing account is active. This field is used when creating a new billing account, and is ignored when referencing an existing billing account.Valid values:

  • true: Billing account is active
  • false: Billing account isn't active

Data type: Boolean

productOrderItem.billingAccount.id

Required. Sys_id or external_id of the billing account to reference or create inline.Data type: String

productOrderItem.billingAccount.name

Conditional, required only for account creation. Display name of the billing account. This field is used when creating a new billing account. If not provided during creation, the system uses a default name pattern. This field is ignored when referencing an existing billing account.Examples: "Main Office Billing", "Project 2024 Billing"

Data type: String

productOrderItem.billingAccount.status

Conditional, required only for account creation. The status of the billing account. This field is used when creating a new billing account. Valid values depend on your instance configuration. If not provided during creation, the system uses the default status value configured in your instance. This field is ignored when referencing an existing billing account.Data type: String

Examples: "Active", "Inactive", "Suspended"

productOrderItem.committedDueDate

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.

productOrderItem.committedDueDate

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.

productOrderItem.externalProductInventory

Conditional. If supplied, each entry requires externalProductInventoryId. External IDs to map to the product inventories created for the order.Data type: Array of Objects``` "externalProductInventory": [{ "externalProductInventoryId": "String" }]

Text
</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><td>
productOrderItem.externalProductInventory.externalProductInventoryId
</td><td>
External ID mapped 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="externalProdInv-PATCH"><td>
productOrderItem.externalProductInventory
</td><td id="externalProdInv-descr-PATCH">
Conditional. If supplied, each entry requires **externalProductInventoryId**. List of external IDs to map to the product inventories created for the order. Data type: Array of Objects

"externalProductInventory": [ { "externalProductInventoryId": "String" } ]

Text
**Note:** 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.
</td></tr><tr id="productOrderItem_id-row-tmf622"><td>
productOrderItem.id
</td><td>
Required if the **productOrderItem** parameter is used. Sys\_id or external\_id of the order line item. Table: Order Line Item \[sn\_ind\_tmt\_orm\_order\_line\_item\] table
Data type: String
Default: empty string
</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
</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" } ]

Text
Stored in: sn\_ind\_tmt\_orm\_order
Default: empty string
</td></tr><tr><td>
productOrderItem.itemPrice
</td><td>
Price associated with the product.```Data type: Array of Objects
CSS
"itemPrice": [{ "price": {Object}, "priceType": "String",                "recurringChargePeriod": "String" }]

productOrderItem.itemPrice.price

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

Text
"price": {  "taxIncludedAmount": {Object}}

Stored in: sn_ind_tmt_orm_order_line_item

Default: empty string

productOrderItem.itemPrice.price

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

Text
"price": { "taxIncludedAmount": {Object} }

productOrderItem.itemPrice.price.taxIncludedAmount

Description of the price of the associated product, including the tax. Data type: Object

JavaScript
"taxIncludedAmount": {  "unit": "String",  "value": Number}

Stored in: sn_ind_tmt_orm_order_line_item

productOrderItem.itemPrice.price.taxIncludedAmount

Description of the price of the associated product, including the tax.Data type: Object

JavaScript
"taxIncludedAmount": { "unit": "String", "value":                Number }

productOrderItem.itemPrice.price.taxIncludedAmount.unit

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.

productOrderItem.itemPrice.price.taxIncludedAmount.unit

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

productOrderItem.itemPrice.price.taxIncludedAmount.value

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.

productOrderItem.itemPrice.price.taxIncludedAmount.value

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

productOrderItem.itemPrice.priceType

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

productOrderItem.itemPrice.priceType

Specifies whether the price of the item is recurring or non-recurring.Data type: String

productOrderItem.itemPrice.recurringChargePeriod

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

productOrderItem.itemPrice.recurringChargePeriod

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

productOrderItem.payment

Required. Identifies the payment profile and determines how the profile is processed. Reference an existing payment profile by passing payment.id, or pass full payment attributes to create payment profile inline. If the ID already exists, the API locates the matching payment profile and links it to the order line item. Any other payment fields are ignored. The system uses only the id to find and link the existing profile. If the ID doesn't already exist, a payment profile is created automatically and linked to the order line item's billing account. paymentMethod, paymentMethodType, paymentReferenceId are required to create the new profile.Data type: Object

JSON
"payment": { "id": "String", "paymentMethod": "String",                "paymentMethodType": "String", "paymentReferenceId": "String" }

productOrderItem.payment.id

Required. Sys_id or external_id of an existing payment profile record.Data type: String

productOrderItem.payment.paymentMethod

Conditional, required only for profile creation. A choice field representing the payment method category. This field is validated against configured payment method choices in your instance. This field is ignored when referencing an existing profile.Data type: String

Examples: "Credit Card", "Bank Transfer", "Check", "Digital Wallet"

productOrderItem.payment.paymentMethodType

Conditional, required only for profile creation. A choice field representing the specific payment method type. This field is validated against configured payment method type choices and is typically dependent on the selected paymentMethod. This field is ignored when referencing an existing profile.Data type: String

Examples: "Visa", "MasterCard", "American Express" for credit cards; "ACH" or "Wire" for bank transfers

productOrderItem.payment.paymentReferenceId

Conditional, required only for profile creation. An external reference identifier for the payment profile. This is typically used for tracking, audit trails, and reconciliation between your order system and your payment processor. This field is ignored when referencing an existing profile.Data type: String

Examples: "REF-2024-001", "CARD-XXXX-5678"

productOrderItem.product

Required if productOrderItem.action is change or delete. Description of the instance details of the product purchased by the customer. Data type: Object

JavaScript
"product": {  "id": "String",  "place": {Object},  "productCharacteristic": [Array],  "productSpecification": {Object},  "relatedParty": {Object},  "@type": "String"}

Stored in: sn_ind_tmt_orm_order_line_item

productOrderItem.product

Required if productOrderItem.action is change or delete. Instance details of the product purchased by the customer.Data type: Object

JavaScript
"product": { "id": "String", "place": {Object}, "productCharacteristic": [Array], "productSpecification": {Object}, "relatedParty": [Array], "@type": "String"}

productOrderItem.product.@type

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

productOrderItem.product.@type

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

productOrderItem.product.id

Required if productOrderItem.action 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

Default: empty string

productOrderItem.product.id

Required if productOrderItem.action is change or delete. Unique identifier of the product sold.Data type: String

Table: In the sys_id or sn_ind_tmt_orm_external_id field of the Product Inventory [sn_ind_tmt_orm_product_inventory] table.

productOrderItem.product.place

Maps of the locations on which to install the product. Data type: Object

Text
"place": {  "id": "String",  "@type": "String"}

Stored in: sn_ind_tmt_orm_order_line_item

productOrderItem.product.place

Maps of the locations on which to install the product.Data type: Object

Text
"place": { "id": "String", "@type": "String"              }

productOrderItem.product.place.@type

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

productOrderItem.product.place.@type

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

productOrderItem.product.place.id

Required if the productOrderItem.product.place 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 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

Stored in: The location field of the sn_ind_tmt_orm_order_line_item table.

Default: empty string

productOrderItem.product.place.id

Required. Sys_id of the associated location record. When employing the change action on a product order item (via the productOrderItem.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

Table: Location [cmn_location]

Stored in: The location field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table.

productOrderItem.product.productCharacteristic

List of characteristics of the associated product. Data type: Array of Objects

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

Stored in: sn_ind_tmt_orm_order_characteristic_value

productOrderItem.product.productCharacteristic

Characteristics of the associated product.Data type: Array of Objects

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

productOrderItem.product.productCharacteristic.name

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: empty string

productOrderItem.product.productCharacteristic.name

Name of the characteristic record to associate 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.

productOrderItem.product.productCharacteristic.previousValue

Previous 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

Stored in: The previous_characteristic_option_value of the sn_ind_tmt_orm_order_characteristic_value table.

Default: empty string

productOrderItem.product.productCharacteristic.previousValue

Previous characteristic option values if the update is for change order. The request is a change order if the productOrderItem.action parameter is other than add.Data type: String

Stored in: The previous_characteristic_option_value field of the sn_ind_tmt_orm_order_characteristic_value table.

productOrderItem.product.productCharacteristic.value

Characteristic option values associated with the product. For additional information on characteristic option values, see Create product characteristics and characteristic options. Data type: String

Stored in: The characteristic_option_value field of the sn_ind_tmt_orm_order_characteristic_value table.

Default: empty string

productOrderItem.product.productCharacteristic.value

Characteristic option values associated with the product.Data type: String

Stored in: The characteristic_option_value field of the sn_ind_tmt_orm_order_characteristic_value table.

productOrderItem.product.productCharacteristic.valueType

Type of characteristic value.Data type: String

Possible values:

  • address
  • array.date
  • array.datetime
  • array.decimal
  • array.integer
  • array.object
  • array.single_line_text
  • attachment
  • checkbox
  • choice
  • date
  • date_time
  • decimal
  • duration
  • email
  • integer
  • object
  • single_line_text
  • yes_no

productOrderItem.product.productCharacteristic.valueType

Type of characteristic value.Possible values:

  • address
  • array.date
  • array.datetime
  • array.decimal
  • array.integer
  • array.object
  • array.single_line_text
  • attachment
  • checkbox
  • choice
  • date
  • date_time
  • decimal
  • duration
  • email
  • integer
  • object
  • single_line_text
  • yes_no

Data type:String

productOrderItem.product.productSpecification

Description of the product specification associated with the product. Note: Change orders (productOrderItem.action is change) are processed differently based on the value of the sn_ind_tmt_orm.allowSpecVersionUpdateInChangeOrder 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.

  • 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.
  • 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.

Data type: Object

JSON
"productSpecification": {  "id": "String",  "internalVersion": "String",  "name": "String",  "version": "String",  "@type": "String"}

Stored in: sn_ind_tmt_orm_order_line_item

productOrderItem.product.productSpecification

Optional. Description of the product specification associated with the product.Data type: Object

JSON
"productSpecification": { "id":                "String", "internalVersion": "String", "name": "String", "version":                "String", "@type": "String" }

productOrderItem.product.productSpecification.@type

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

productOrderItem.product.productSpecification.@type

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

productOrderItem.product.productSpecification.id

Required if the productOrderItem.product.productSpecification 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

productOrderItem.product.productSpecification.id

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]

productOrderItem.product.productSpecification.internalId

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]

productOrderItem.product.productSpecification.internalVersion

Internal version of the product specification. Must match the value of version otherwise an error is thrown.Data Type: String

Table: Product Specification [sn_prd_pm_product_specification]

productOrderItem.product.productSpecification.internalVersion

Version of the product specification. Must match the value of version otherwise an error is thrown.Data type: String

Table: In the version field of the Product Specification [sn_prd_pm_product_specification] table.

productOrderItem.product.productSpecification.name

Name of the product specification. Located in the Product Specification [sn_prd_pm_product_specification] table. Data type: String

productOrderItem.product.productSpecification.name

Name of the product specification.Data type: String

Table: Product Specification [sn_prd_pm_product_specification]

productOrderItem.product.productSpecification.version

External version of the product specification. Must match the value of internalVersion otherwise an error is thrown.Data Type: String

Table: Product Specification [sn_prd_pm_product_specification]

productOrderItem.product.productSpecification.version

External version of the product specification. Must match the value of internalVersion otherwise an error is thrown.Data type: String

Table: In the external_version field of the Product Specification [sn_prd_pm_product_specification] table.

productOrderItem.product.relatedParty

Optional. List of contacts for line items. Data type: Array of Objects

JSON
"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

productOrderItem.product.relatedParty

Optional. List of party roles linked to an OrderLineItemContact.Data type: Array of Objects

JSON
"relatedParty": [{ "email": "String", "firstName":                "String", "lastName": "String", "phone": "String", "@referredType":                "String", "@type": "String" }]

productOrderItem.product.relatedParty.@referredType

Type of customer. Possible value: OrderLineItemContact

Data type: String

productOrderItem.product.relatedParty.@referredType

Required. Type of customer.Possible value: OrderLineItemContact

Data type: String

productOrderItem.product.relatedParty.@type

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

productOrderItem.product.relatedParty.@type

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

productOrderItem.product.relatedParty.email

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: empty string

productOrderItem.product.relatedParty.email

Email address of the contact.Data type: StringStored in: The email field of the sn_ind_tmt_orm_order_line_item_contact table.

productOrderItem.product.relatedParty.firstName

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: empty string

productOrderItem.product.relatedParty.firstName

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.

productOrderItem.product.relatedParty.id

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: empty string

productOrderItem.product.relatedParty.lastName

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: empty string

productOrderItem.product.relatedParty.lastName

Last name of the contact.Data type: String

Stored in: The lastName field of the sn_ind_tmt_orm_order_line_item_contact table.

productOrderItem.product.relatedParty.phone

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: empty string

productOrderItem.product.relatedParty.phone

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.

productOrderItem.productOffering

Description of the product offering associated with the product. Data type: Object

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

Stored in: sn_ind_tmt_orm_order_line_item

productOrderItem.productOffering

Required. Description of the product offering associated with the product.Data type: Object

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

productOrderItem.productOffering.id

Required if the productOrderItem.productOffering 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

productOrderItem.productOffering.id

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: StringTable: Product Offering [sn_prd_pm_product_offering]

productOrderItem.productOffering.internalId

Initial version of the product offering. The initial version is the sys_id of the first version of the offering.Data type: StringTable: Product Offering [sn_prd_pm_product_offering]

productOrderItem.productOffering.internalVersion

Version of the product offering.Data type: String

Table: Product Offering [sn_prd_pm_product_offering]

productOrderItem.productOffering.internalVersion

Version of the product offering.Data type: StringTable: In the version field of the Product Offering [sn_prd_pm_product_offering] table.

productOrderItem.productOffering.name

Name of the product offering. Located in the Product Offering [sn_prd_pm_product_offering] table. Data type: String

productOrderItem.productOffering.name

Name of the product offering.Data type: StringTable: Product Offering [sn_prd_pm_product_offering]

productOrderItem.productOffering.version

External_version of the product offering.Data type: String

Table: Product Offering [sn_prd_pm_product_offering]

productOrderItem.productOffering.version

External version of the product offering.Data type: StringTable: In the external_version field of the Product Offering [sn_prd_pm_product_offering] table.

productOrderItem.productOrderItem.quantity

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

Stored in: The quantity field of the sn_ind_tmt_orm_order.

Default: null

productOrderItem.productOrderItemRelationship

Conditional. Item-level relationships. If supplied, each entry requires an id and relationshipType. Data type: Array of Objects

Text
"productOrderItemRelationship": [  {    "id": "String",    "relationshipType": "String"  }]

Stored in: sn_ind_tmt_orm_order_line_item

productOrderItem.productOrderItemRelationship

Required. List that describes the parent/child relationship between order items.Data type: Array of Objects

Text
"productOrderItemRelationship":                [{ "id": "String", "relationshipType": "String" }]

productOrderItem.productOrderItemRelationship.id

Required if the productOrderItem.productOrderItemRelationship 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

Stored in: The parent_line_item field of thebsn_ind_tmt_orm_order_line_item table.

Default: empty string

productOrderItem.productOrderItemRelationship.id

Required. Same as the productOrderItem.id value. Used for parent/child relationship.Data type: StringStored in: The parent_line_item field of the sn_ind_tmt_orm_order_line_item table.

productOrderItem.productOrderItemRelationship.relationshipType

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

productOrderItem.productOrderItemRelationship.relationshipType

Required. Type of relationship between the two line items. This information is used to identify relationship hierarchy.Data type: StringPossible values: HasChild, HasParent

productOrderItem.quantity

Number of items ordered.Data type: Number

Stored in: The quantity field of the sn_ind_tmt_orm_order table.

Default: empty string

productOrderItem.quantity

Number of items ordered.Data type: Number

Stored in: The quantity field of the sn_ind_tmt_orm_order table.

productOrderItem.revisionOperation

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: empty string

relatedParty

List of contacts for the order. Each contact is an object in the array. Contains at least one item with customer account or consumer account information. Data type: Array of Objects

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

relatedParty

List of contacts for the order. Each contact is an object in the array containing customer account or consumer account information.Data type: Array of Objects

CSS
"relatedParty": [ {   "role": "String",   "@type": "String",   "partyOrPartyRole": {Object} }]

relatedParty.@referredType

Type of customer. Possible values:

  • Consumer
  • Customer
  • CustomerContact

Data type: String

relatedParty.@type

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

relatedParty.@type

Specifies what record type to search for when validating and linking the party. Must match the role field.Possible values:

  • Account
  • Contact
  • Customer
  • Location

Data type: String

relatedParty.id

Sys_id or external_id of the account, customer contact, or consumer associated with the order.Table: Account [customer_account], Contact [customer_contact] table, or Consumer [csm_consumer] table.

Data type: String

relatedParty.name

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

relatedParty.partyOrPartyRole

Object containing the specific reference details about the party. Attributes vary based on party type.- For reference patterns, this object contains just the @type and id fields.

  • For creation patterns, this object also contains conditional attributes used to create the new record, if the id value does not match an existing record.

Data type: Object

Text
"partyOrPartyRole": { "@type": "PartyRef", "id": "String"}

relatedParty.partyOrPartyRole.@type

Indicates the type of reference being provided. Value must be set to PartyRef.Data type: String

relatedParty.partyOrPartyRole.accountNumber

Returned for Account party types. External reference number or identifier for the Account. It provides a business-facing account identifier that is distinct from the system-generated ID. Used only during inline creation; ignored for reference patterns.Data type: String

relatedParty.partyOrPartyRole.address

Returned for Location party types during inline creation. Street address of the location. Used only during inline creation; ignored for reference patterns.Example: "123 Main Street"

Data type: String

relatedParty.partyOrPartyRole.city

Returned for Location party types during inline creation. City or municipality name for the location. Used only during inline creation; ignored for reference patterns.Example: "San Francisco", "New York"

Data type: String

relatedParty.partyOrPartyRole.country

Returned for Location party types during inline creation. Country where the location is physically situated or where the contact is based. Used only during inline creation; ignored for reference patterns.Data type: String

relatedParty.partyOrPartyRole.email

Returned for Contact party types during inline creation. Contact person's primary email address. Used only during inline creation; ignored for reference patterns.Data type: String

relatedParty.partyOrPartyRole.firstName

Returned for Contact party types during inline creation. Contact person's first name or given name. Used only during inline creation; ignored for reference patterns.Data type: String

relatedParty.partyOrPartyRole.id

Sys_id or external_id of the party record to reference. The system searches for a record with either a matching system ID or matching External ID.- For reference patterns with an existing record, only the id is used and all other provided fields are ignored.

  • For creation patterns when no matching record exists, the ID becomes the external ID of the newly created record, and other provided fields populate the new record's attributes.

Data type: String

Table: Account [customer_account], Contact [customer_contact] table, or Location [cmn_location]

relatedParty.partyOrPartyRole.lastName

Returned for Contact party types during inline creation. Contact person's last name or given name. Used only during inline creation; ignored for reference patterns.Data type: String

relatedParty.partyOrPartyRole.name

Returned for Account, Contact, and Location types during inline creation. Name of the account, contact, or location. Used only during inline creation; ignored for reference patterns.Data type: String

relatedParty.partyOrPartyRole.postalCode

Returned for Location party types during inline creation. Postal code, ZIP code, or PIN code for the location. Used only during inline creation; ignored for reference patterns.Data type: String

relatedParty.partyOrPartyRole.status

Returned for Account party types during inline creation. Current status of the account. The valid values for the status field depend on how your instance is configured. Used only during inline creation; ignored for reference patterns.Common values:

  • Active
  • Inactive
  • Suspended
  • Pending
  • Archived
  • Under Review

Data type: String

relatedParty.role

Business role that the referenced party plays in the order context. Must match relatedParty.@type in the same object.Possible values:

  • Account: parties representing a customer or business entity
  • Contact: parties representing a contact person
  • Customer: parties representing an end consumer or individual
  • Location: parties representing a service address or fulfillment location

Data type: String

requestedCompletionDate

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: empty string

requestedCompletionDate

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

requestedStartDate

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: empty string

requestedStartDate

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

state

Current state of the order. For this endpoint, this value is always new.Data type: String

### Headers

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

Header Description
Accept Data format of the response body. Only supports application/json.
Content-Type Data format of the request body. Only supports application/json.
Header Description
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.

Status code

Description

201

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:

  • The following Order Item characteristics does not exist: Review specification <**characteristic.name**> and correct the characteristic and characteristic option in the order line item prior to approving the order.
  • Order Item characteristic: <**characteristic.name**> with characteristic value: <**characteristic.value**>is invalid. Correct the characteristic values before approving the order.

400

Bad Request. Could be any of the following reasons:- Invalid payload: Request body missing - Payload was not passed in the request body.

  • Invalid payload: productOrderItem is missing - Product order line item object or JSON is missing.
  • Invalid payload: productOrderItem id is missing - The id parameter is missing in the product order line item of the payload.
  • Invalid payload: productOrderItem action is missing - The action parameter is missing in the product order line item of the payload.
  • Invalid payload: productOrderItem productOffering is missing - The product offering object or JSON is missing from the product order line item in the payload.
  • Invalid payload: productOffering id is missing - The id parameter is missing in the product order line item of the product offering object in the payload.
  • Invalid payload: Product offering does not exist - The product offering in the product order line item is not valid.
  • Invalid payload: productOrderItem product is missing - The product object or JSON in the product order line item is missing from the payload.
  • Invalid payload: product productSpecification is missing - The product specification object or JSON in the product order line item is missing from the payload.
  • Invalid payload: productSpecification id is missing - The id parameter in the product order line item of the product specification object is missing from the payload.
  • Invalid payload: Product specification does not exist - The product specification in the product order line item is not valid.
  • Invalid payload: Product Inventory does not exist - In a change order (action = change), the quantity of an item is greater than what is in stock.
  • Invalid payload: Product inventory ID is missing - In a change order, the product.id is missing in the payload.
  • Invalid payload: Sold Product is inactive - In a change order, a product specified in the payload is inactive.
  • Invalid payload: relatedParty is missing - The related party object is missing from the payload.
  • Invalid payload: Customer Account or Consumer is missing - The related party customer or consumer object is missing from the payload.
  • Invalid payload: Consumer does not exist - The specified related party consumer does not exist in the ServiceNow instance.
  • Invalid payload: Customer Account does not exist - The specified related party customer does not exist in the ServiceNow instance.
  • Invalid payload: Order creation failed - Not able to create the requested order.
  • Invalid payload: This order is yet to be created in customer order table. Please check in inbound queue for more details. - 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.
  • Invalid payload: Patch request cannot be made as the order's fulfillment type is not 'deliver'. - The patch request was made for an order which has a fulfillment type other thandeliver.
### Response body parameters \(JSON\)

Name

Description

channel

List of channels to use for selling the products. Data type: Array of Objects

Text
"channel": [ {   "id": "String",   "name": "String" }]

channel.id

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

channel.name

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

id

Sys_id of the customer order updated for this request. Data type: String

externalId

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

note

Optional. List of additional notes made by the customer when ordering. Data type: Array of Objects

Text
"note": [ {   "text": "String" }]

note.text

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

productOrderItem

List that describes items associated with the product order and their associated action. Data type: Array of Objects

JavaScript
"productOrderItem:" [ {   "action": "String",   "actionReason": "String",   "id": "String",   "itemPrice": [Array],   "product": {Object},   "productOffering": {Object},   "productOrderItemReleationship": [Array],   "quantity": Number,   "state": "String",   "@type": "String" }]

productOrderItem.action

Action to carry out on the product. Possible actions are defined on the list tab in the Action Dictionary Entry of the sn_ind_tmt_orm_order_line_item table. Data type: String

productOrderItem.actionReason

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.

productOrderItem.id

Required if the productOrderItem parameter is used. Sys_id of the order line item. Table: Order Line Item [sn_ind_tmt_orm_order_line_item] table

Data type: String

Default: Blank string

productOrderItem.itemPrice

List that describes the price associated with the product. Data type: Array of Objects

CSS
"itemPrice": [ {   "price": {Object},   "priceType": "String",   "recurringChargePeriod": "String" }]

productOrderItem.itemPrice.price

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

Text
"price": { "taxIncludedAmount": {Object}}

productOrderItem.itemPrice.price.taxIncludeAmount

Description of the price of the associated product, including the tax. Data type: Object

JavaScript
"taxIncludedAmount": { "unit": "String", "value": Number}

productOrderItem.itemPrice.price.taxIncludeAmount.unit

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

productOrderItem.itemPrice.price.taxIncludeAmount.value

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

productOrderItem.itemPrice.priceType

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

productOrderItem.itemPrice.recurringChargePeriod

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

productOrderItem.product

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

JavaScript
"product": { "id": "String", "place": {Object}, "productCharacteristic": [Array], "productSpecification": {Object}, "relatedParty": {Object}, "@type": "String"}

productOrderItem.product.id

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

productOrderItem.product.place

Maps of the locations on which to install the product. Data type: Object

Text
"place": { "id": "String", "@type": "String"}

productOrderItem.product.place.id

Sys_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.productCharacteristic

List of characteristics of the associated product. Data type: Array of Objects

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

productOrderItem.product.productCharacteristic.name

Name of the characteristic record to associate with the product. Located in the Characteristic [sn_prd_pm_characteristic] table. Data type: String

productOrderItem.product.productCharacteristic.previousValue

Previous 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.value

Characteristic 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.productSpecification

Description of the product specification associated with the product. Data type: Object

JSON
"productSpecification": { "id": "String", "internalVersion": "String", "name": "String", "version": "String", "@type": "String"}

productOrderItem.product.productSpecification.id

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

productOrderItem.product.productSpecification.name

Name of the product specification. Located in the Product Specification [sn_prd_pm_product_specification] table. Data type: String

productOrderItem.product.productSpecification.@type

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

productOrderItem.product.productSpecification.internalVersion

Internal version of the product specification. Must match the value of version otherwise an error is thrown.Data Type: String

Table: Product Specification [sn_prd_pm_product_specification]

productOrderItem.product.productSpecification.version

External version of the product specification. Must match the value of internalVersion otherwise an error is thrown.Data Type: String

Table: Product Specification [sn_prd_pm_product_specification]

productOrderItem.product.relatedParty

Optional. List of contacts for line items. Data type: Array of Objects

JSON
"relatedParty": [ {   "email": "String",   "firstName": "String",   "id": "String",   "lastName": "String",   "phone": "String",   "@referredType": "String",   "@type": "String" }]

productOrderItem.product.relatedParty.email

Email address of the contact. Data type: String

productOrderItem.product.relatedParty.firstName

First name of the contact. Data type: String

productOrderItem.product.relatedParty.id

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

productOrderItem.product.relatedParty.lastName

Last name of the contact. Data type: String

Data type: String

productOrderItem.product.relatedParty.phone

Business phone number of the contact. Data type: String

productOrderItem.product.relatedParty.@referredType

Type of customer. Possible value: OrderLineItemContact

Data type: String

productOrderItem.product.relatedParty.@type

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

productOrderItem.product.@type

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

productOrderItem.productOffering

Description of the product offering associated with the product. Data type: Object

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

productOrderItem.productOffering.id

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

productOrderItem.productOffering.name

Name of the product offering. Located in the Product Offering [sn_prd_pm_product_offering] table. Data type: String

productOrderItem.productOrderItemRelationship

Conditional. Item-level relationships. If supplied, each entry requires an id and relationshipType. Data type: Array of Objects

Text
"productOrderItemRelationship": [ {   "id": "String",   "relationshipType": "String" }]

productOrderItem.productOrderItemRelationship.id

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

productOrderItem.productOrderItemRelationship.relationshipType

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

productOrderItem.quantity

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

productOrderItem.state

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

productOrderItem.@type

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

relatedParty

List of contacts for the order. Each contact is an object in the array. Contains at least one item with customer account or consumer account information. Data type: Array of Objects

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

relatedParty.id

Sys_id or external_id of the account, customer contact, or consumer associated with the order.Table: Account [customer_account], Contact [customer_contact] table, or Consumer [csm_consumer] table.

Data type: String

relatedParty.name

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

relatedParty.type

Type of customer. Possible values:

  • Consumer
  • Customer
  • CustomerContact

Data type: String

requestedCompletionDate

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

requestedStartDate

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

state

Current state of the order.Data type: String

@type

Part 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.

Shell
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.

JSON
{    "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

Name

Description

api_version

Optional. Version of the endpoint to access. For example, v1 or v2. Only specify this value to use an endpoint version other than the latest. Data type: String

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

Name

Description

cancellationReason

Reason for cancellation.Data type: String

Default: Blank string

productOrder

Contains data about the product order.Data type: Object

JSON
"productOrder": { "id": "String", "href": "String", "@referredType": "String"}

productOrder.id

Required. Sys_id of the customer order to cancel.Data type: String

Table: Customer Order [sn_ind_tmt_orm_order]

productOrder.href

URL of the customer order to cancel.Data type: String

Default: Blank string

productOrder.@referredType

Value for this parameter should be ProductOrder.Data type: String

Default: Blank string

requestedCancellationDate

Date to cancel the order.Data type: String

Default: Blank string

@type

Value for this parameter should be CancelProductOrder.Data type: String

Default: Blank string

### Headers

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

Header Description
Accept Data format of the response body. Only supports application/json.
Content-Type Data format of the request body. Only supports application/json.
Header Description
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.

Status code

Description

200

Successful. The request was successfully processed.

400

Bad Request. Could be any of the following reasons:- Empty payload.

  • Invalid payload. Mandatory field missing: <field name>.
  • 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.
### Response body parameters \(JSON\)

Name

Description

cancellationReason

Reason for cancellation.Data type: String

href

URL of the cancelled order.Data type: String

id

Sys_id of the cancelled order.Data type: String

productOrder

Data about the product order.Data type: Object

JSON
"productOrder": {  "id": "String",  "href": "String",  "@referredType": "String"}

productOrder.id

Sys_id of the cancelled order.Data type: String

productOrder.href

URL of the cancelled order.Data type: String

productOrder.@referredType

Value for this parameter is ProductOrder.Data type: String

productOrder.@referredType

Value for this parameter is ProductOrderRef.Data type: String

requestedCancellationDate

Date to cancel the order.Data type: String

state

State of the cancellation. If the cancellation request was successfully processed (201 status code), the value for this parameter is done.Data type: String

@type

Value for this parameter is CancelProductOrder.Data type: String

### cURL request

The following code example cancels a customer order.

Shell
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"}
JSON
{    "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]

Version 3.0 updates

The Product Order POST endpoint now supports billing accounts and payment profiles at the order line item (OLI) level, and inline creation of related party entities within order requests. v3.0 contains the following features:

  1. The system property, sn_ind_tmt_orm.disableCharValueValidation, indicates how to control characteristic value validation behavior for choice-type characteristics. The property isn't shipped by default and must be added manually.

    Behavior when set to:

    • true: Validation is inactive (disabled) and characteristic_option_value is set directly from the request payload without generating work notes.
    • false: (Default) Validates characteristic values against allowed choices and adds a work note to the record for any invalid value.
  2. Related party entities: Previously in v1 and v2, all related parties were pre-created and referenced by a system ID (relatedParty.partyOrPartyRole). In v3, you can now pass entity data in the relatedParty array to create new parties or continue using the reference pattern to link to existing entity IDs. Inline creation allows you to create new entities in a single POST request and improve order processing time.

    When referencing or creating a new entity in a product order, note that:

    • @type is now required in all requests.
    • Pair id with @type when referencing existing entities.
    • Pass entity properties, like name, firstName, lastName, when creating new entities. See the relatedParty.@typeparameter description for more information.
  3. Billing accounts: TMF 622 Product Order API V3 now supports billing account associations at the order line item (productOrderItem) level. When you place a product order, you can associate a billing account with each line item by either referencing an existing billing account or providing billing account details that the system will create as a new record before persisting the order. This functionality streamlines order workflows by enabling automatic billing account creation and linking during the order placement process. Billing accounts are created before the order is persisted, ensuring data consistency and proper linkage to both the order line item and the associated Account party.

    When referencing or creating a billing account in an order item, note that:

    • billingAccount.id is required in all requests.
    • Pass entity properties, like name, @type, status, active when creating new entities. See the productOrderItem.billingAccount parameter description for more information.
  4. The TMF 622 Product Order API V3 now supports payment profiles at the order line item (OLI) level. When you place a product order, you can associate a payment profile with one or more line items by either referencing an existing profile or creating a new one inline during the order request. The system automatically links the payment profile to the order line item's billing account. This functionality streamlines payment workflows by allowing payment method details to be captured and managed as part of the core order data. Payment information is returned in GET and LIST responses when an active profile is linked to the OLI. If no profile is linked, the payment field is omitted from the response.

    When referencing or creating a payment profile in an order item, note that:

    • payment.id is required in all requests.
    • Pass entity properties, like paymentMethod,paymentMethodType, and paymentReferenceId, when creating new entities. See the productOrderItem.payment parameter description for more information.

URL format

Default URL: /api/sn_ind_tmt_orm/order/productOrder

Supported request parameters

Name

Description

api_version

Optional. Version of the endpoint to access. For example, v1 or v2. Only specify this value to use an endpoint version other than the latest. Data type: String

Name

Description

mode

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

Name

Description

@type

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

channel

List of channels to use for selling the products. Data type: Array of Objects

Text
"channel": [  {    "id": "String",    "name": "String"  }]

Stored in: sn_ind_tmt_orm_order

channel.id

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: empty string

channel.name

Name of the channel to use to sell the associated products. Possible channel names are defined on the list tab in the Channel Dictionary Entry of the sn_ind_tmt_orm_order table.Data type: String

Default: empty 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

Stored in: The committed_due_date field of the sn_ind_tmt_orm_order table.

externalId

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: empty 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

href

Relative link to the resource record.Data type: String

Default: empty string

note

Additional notes made by the customer when ordering. Data type: Array of Objects

Text
"note": [  {    "text": "String"  }]

Stored in: sn_ind_tmt_orm_order

note.text

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: empty string

orderCurrency

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

productOrderItem

Required. Items associated with the product order and their associated action. Data type: Array of Objects

JavaScript
"productOrderItem": [  {    "action": "String",    "actionReason": "String",    "billingAccount": {Object},    "committedDueDate": "String",    "externalProductInventory": [Array],    "id": "String",    "itemPrice": [Array],    "payment": {Object},    "product": {Object},    "productOffering": {Object},    "productOrderItemRelationship": [Array],    "quantity": Number,    "@type": "String"  }]

Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

productOrderItem.@type

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

productOrderItem.action

Required. Action to carry out on the product. Possible actions are defined on the list tab in the Action Dictionary Entry of the sn_ind_tmt_orm_order_line_item table. Possible values:

  • add
  • change

Note: Submitting a change payload that includes a new service location via productOrderItem.product.place.id is processed as a move order.

  • delete
  • no-change
  • resume
  • suspend

Data type: String

Stored in: The action field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table.

productOrderItem.actionReason

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.

productOrderItem.billingAccount

Required when productOrderItem.payment is provided. Identifies the billing account and determines how the account is processed.- When you provide a billing.id that matches an existing billing account, the API uses the reference pattern to link the account to the order line item. Other billing account fields you include (name, status, active) are ignored. The system uses only the ID to find and link the existing billing account.

  • When you provide a billing.id that doesn't match an existing billing account, the API creates a new billing account with the provided ID as the external_id. Billing account fields (name, status, active) are required.

Data type: Object

Example reference structure:

Text
"billingAccount": {          "id": "sys_id_billing_account_456",          "@type": "BillingAccountRef"        }

Example creation structure:

JSON
"billingAccount": {          "id": "billingID",          "name": "Project 1234 Billing",          "@type": "BillingAccountRef",          "status": "Active",          "active": true        }

productOrderItem.billingAccount.@type

Conditional, required only for account creation. Must always be BillingAccountRef. This indicates that the object is a reference to a billing account record.Data type: String

productOrderItem.billingAccount.active

Conditional, required only for account creation. Flag that indicates whether the billing account is active. This field is used when creating a new billing account, and is ignored when referencing an existing billing account.

Valid values:

  • true: Billing account is active.
  • false: Billing account isn't active.

Default: If not provided during creation, the system uses the default active value configured in your instance

productOrderItem.billingAccount.id

Required. Sys_id or external_id of the billing account to reference or create inline.Data type: String

productOrderItem.billingAccount.name

Conditional, required only for account creation. Display name of the billing account. This field is used when creating a new billing account. If not provided during creation, the system uses a default name pattern. This field is ignored when referencing an existing billing account.

Example: "Main Office Billing", "Project 2024 Billing"

Data type: String

productOrderItem.billingAccount.status

Conditional, required only for account creation. The status of the billing account. This field is used when creating a new billing account. Valid values depend on your instance configuration. If not provided during creation, the system uses the default status value configured in your instance. This field is ignored when referencing an existing billing account.

Example: "Active", "Inactive", "Suspended"

Data type: String

productOrderItem.committedDueDate

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.

productOrderItem.externalProductInventory.externalProductInventoryId

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.

productOrderItem.externalProductInventory

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

Text
"externalProductInventory": [  {    "externalProductInventoryId": "String"  }]

productOrderItem.id

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: empty string

productOrderItem.itemPrice

Price associated with the product. Data type: Array of Objects

CSS
"itemPrice": [  {    "price": {Object},    "priceType": "String",    "recurringChargePeriod": "String"  }]

Stored in: sn_ind_tmt_orm_order

Default: empty string

productOrderItem.itemPrice.price

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

Text
"price": {  "taxIncludedAmount": {Object}}

Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

Default: empty string

productOrderItem.itemPrice.price.taxIncludedAmount

Description of the price of the associated product, including the tax. Data type: Object

JavaScript
"taxIncludedAmount": {  "unit": "String",  "value": Number}

Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

productOrderItem.itemPrice.price.taxIncludedAmount.unit

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

productOrderItem.itemPrice.price.taxIncludedAmount.value

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

productOrderItem.itemPrice.priceType

Specifies whether the price of the item is recurring or non-recurring. Data type: String

productOrderItem.itemPrice.recurringChargePeriod

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

productOrderItem.payment

Required. Identifies the payment profile and determines how the profile is processed. Reference an existing payment profile by passing payment.id, or pass full payment attributes to create payment profile inline.

  • If the ID already exists, the API locates the matching payment profile and links it to the order line item. Any other payment fields you include (paymentMethod, paymentMethodType, paymentReferenceId) are ignored. The system uses only the id to find and link the existing profile.
  • If the ID doesn't already exist, a payment profile is created automatically and linked to the order line item's billing account. paymentMethod, paymentMethodType, paymentReferenceId are required to create the new profile.

Data type: Object

Reference structure:

Text
"payment": {  "id": "String"}

Creation structure:

JSON
"payment": {  "id": "String",  "paymentMethod": "String",  "paymentMethodType": "String",  "paymentReferenceId": "String"}

See the 'Examples' section for POST requests demonstrating both reference and creation patterns.

productOrderItem.payment.id

Required. Sys_id or external_id of an existing payment profile record.Data type: String

productOrderItem.payment.paymentMethod

Conditional, required only for profile creation. A choice field representing the payment method category. This field is validated against configured payment method choices in your instance. This field is ignored when referencing an existing profile.Example: "Credit Card", "Bank Transfer", "Check", "Digital Wallet"

Data type: String

productOrderItem.payment.paymentMethodType

Conditional, required only for profile creation. A choice field representing the specific payment method type. This field is validated against configured payment method type choices and is typically dependent on the selected paymentMethod. This field is ignored when referencing an existing profile.Example: Visa", "MasterCard", "American Express" for credit cards; "ACH" or "Wire" for bank transfers

Data type: String

productOrderItem.payment.paymentReferenceId

Conditional, required only for profile creation. An external reference identifier for the payment profile. This is typically used for tracking, audit trails, and reconciliation between your order system and your payment processor. This field is ignored when referencing an existing profile.Example: "REF-2024-001", "CARD-XXXX-5678"

Data type: String

productOrderItem.product

Required if productOrderItem.action is change or delete. Instance details of the product purchased by the customer. Data type: Object

JavaScript
"product": {  "id": "String",  "place": {Object},  "productCharacteristic": [Array],  "productSpecification": {Object},  "relatedParty": {Object},  "@type": "String"}

Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

productOrderItem.product.@type

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

productOrderItem.product.id

Required if productOrderItem.action is change or delete. Unique identifier of the product sold. Data type: String

Default: empty string

Table: In the sys_id or sn_ind_tmt_orm_external_id field of the Product Inventory [sn_ind_tmt_orm_product_inventory] table.

productOrderItem.product.place

Maps of the locations on which to install the product. Data type: Object

Text
"place": {  "id": "String",  "@type": "String"}

Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

productOrderItem.product.place.@type

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

productOrderItem.product.place.id

Required. Sys_id of the associated location record. 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

Table: Location [cmn_location]

Stored in: The location field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table.

productOrderItem.product.productCharacteristic

Characteristics of the associated product. Data type: Array of Objects

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

Stored in: sn_ind_tmt_orm_order_characteristic_value

productOrderItem.product.productCharacteristic.name

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: empty string

productOrderItem.product.productCharacteristic.previousValue

Previous characteristic option values if the update is for 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

Stored in: The previous_characteristic_option_value field of the sn_ind_tmt_orm_order_characteristic_value table.

Default: empty string

productOrderItem.product.productCharacteristic.value

Characteristic option values associated with the product. For additional information on characteristic option values, see Create product characteristics and characteristic options. Data type: String

Stored in: The characteristic_option_value field of the sn_ind_tmt_orm_order_characteristic_value table.

Default: empty string

productOrderItem.product.productCharacteristic.valueType

Type of characteristic value.Accepted values:

  • address
  • array.date
  • array.datetime
  • array.decimal
  • array.integer
  • array.object
  • array.single_line_text
  • attachment
  • checkbox
  • choice
  • date
  • date_time
  • decimal
  • duration
  • email
  • integer
  • object
  • single_line_text
  • yes_no

Data type: String

productOrderItem.product.productSpecification

Optional. Description of the product specification associated with the product. Note: Change orders (productOrderItem.action is change) are processed differently based on the value of the sn_ind_tmt_orm.allowSpecVersionUpdateInChangeOrder 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.

  • 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.
  • 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.

Data type: Object

JSON
"productSpecification": {  "id": "String",  "internalVersion": "String",  "name": "String",  "version": "String",  "@type": "String"}

Stored in: sn_ind_tmt_orm_order_line_item

productOrderItem.product.productSpecification.@type

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

productOrderItem.product.productSpecification.id

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]

productOrderItem.product.productSpecification.internalVersion

Internal version of the service specification. Must match the value of version otherwise an error is thrown.Data Type: String

Table: In the version field of the Product Specification [sn_prd_pm_product_specification] table.

productOrderItem.product.productSpecification.name

Name of the product specification. Data type: String

Table: Product Specification [sn_prd_pm_product_specification]

productOrderItem.product.productSpecification.version

External version of the service specification. Must match the value of internalVersion otherwise an error is thrown.Data Type: String

Table: In the external_version field of the Product Specification [sn_prd_pm_product_specification] table.

productOrderItem.product.relatedParty

List of party roles linked to an OrderLineItemContact. Data type: Array of Objects

JSON
"relatedParty": [  {    "email": "String",    "firstName": "String",    "lastName": "String",    "phone": "String",    "@referredType": "String",    "@type": "String"  }]

Stored in: sn_ind_tmt_orm_order_line_item_contact

productOrderItem.product.relatedParty.@referredType

Required. Type of customer. Possible value: OrderLineItemContact

Data type: String

productOrderItem.product.relatedParty.@type

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

productOrderItem.product.relatedParty.email

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: empty string

productOrderItem.product.relatedParty.firstName

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: empty string

productOrderItem.product.relatedParty.lastName

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: empty string

productOrderItem.product.relatedParty.phone

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: empty string

productOrderItem.productOffering

Required. Description of the product offering associated with the product. Data type: Object

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

Stored in: sn_ind_tmt_orm_order_line_item

productOrderItem.productOffering.id

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]

productOrderItem.productOffering.internalVersion

Version of the product offering.Data type: String

Table: In the version field of the Product Offering [sn_prd_pm_product_offering] table.

productOrderItem.productOffering.name

Name of the product offering.Data type: String

Table: Product Offering [sn_prd_pm_product_offering]

productOrderItem.productOffering.version

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.

productOrderItem.productOrderItem.quantity

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

productOrderItem.productOrderItemRelationship

Required. List that describes the parent/child relationship between order items. Data type: Array of Objects

Text
"productOrderItemRelationship": [  {    "id": "String",    "relationshipType": "String"  }]

Stored in: sn_ind_tmt_orm_order_line_item

productOrderItem.productOrderItemRelationship.id

Required. Same as the productOrderItem.id value. Used for parent/child relationship Data type: String

Stored in: The parent_line_item field of the sn_ind_tmt_orm_order_line_item table.

Default: empty string

productOrderItem.productOrderItemRelationship.relationshipType

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

  • HasChild
  • HasParent

Data type: String

productOrderItem.quantity

Number of items ordered.Data type: Number

Stored in: The quantity field of the sn_ind_tmt_orm_order table.

Default: empty string

relatedParty

Array that contains one or more party objects. Each object in this array represents a party (Account, Contact, or Location) that should be associated with the order. The relatedParty array is optional at the order level, but if you provide party associations, each entry in the array must follow the required structure and validation rules.

Data type: Array of Objects

CSS
"relatedParty": [ {  "role": "String",  "@type": "String",  "partyOrPartyRole": {Object} }]

relatedParty.@type

Required. Specifies what record type to search for when validating and linking the party. Must match the role field.When you provide an @type of "Account", the system knows to search the Account table for the matching record. When you provide an @type of "Contact", the system knows to search the Contact table. This field ensures that the API searches the correct record type and applies the correct validation and linking logic.

Data type: String

relatedParty.partyOrPartyRole

Object containing the specific reference details about the party. Reference an existing party by passing payment.id, or pass full party attributes to create a new party record inline.- If the ID already exists, the API locates the matching party and links it to the order line item. For reference patterns, this object contains just the @type and id fields. Any other payment fields are ignored. The system uses only the ID to find and link the existing party.

  • If the ID doesn't already exist, an Account, Contact, or Location party is created automatically and linked to the order line item. Conditional attributes like name, email, address are required to create the new profile. Conditional attributes vary on the @type value.

Data type: Object

Reference pattern:

Text
"partyOrPartyRole": {  "@type": "PartyRef",  "id": "String"}

Account creation:

JSON
"partyOrPartyRole": {  "@type": "PartyRef",  "id": "String",  "accountNumber": "String",  "status": "String"}

Contact creation:

JSON
"partyOrPartyRole": {  "@type": "PartyRef",  "id": "String",  "firstName": "String",  "lastName": "String",  "email": "String" }

Location creation:

JSON
"partyOrPartyRole": {  "@type": "PartyRef",  "id": "String",  "name": "String",  "address": "String",  "city": "String",  "postalCode": "String",  "country": "String" }

relatedParty.partyOrPartyRole.@type

Required. Indicates the type of reference being provided. Value must be set to PartyRef.Data type: String

relatedParty.partyOrPartyRole.accountNumber

Required for Account party types. External reference number or identifier for the Account. It provides a business-facing account identifier that is distinct from the system-generated ID.Data type: String

relatedParty.partyOrPartyRole.address

Required for Location party types. Street address of the location.Example: "123 Main Street"

Data type: String

relatedParty.partyOrPartyRole.city

Required for Location party types. City or municipality name for the location.Example: "San Francisco", "New York"

Data type: String

relatedParty.partyOrPartyRole.country

Required for Location party types. Country where the location is physically situated or where the contact is based.Data type: String

relatedParty.partyOrPartyRole.email

Required for Contact party types. Contact person's primary email address.Data type: String

relatedParty.partyOrPartyRole.firstName

Required for Contact party types. Contact person's first name or given name.Data type: String

relatedParty.partyOrPartyRole.id

Required. Sys_id or external_id of the party record to reference. The system searches for a record with either a matching system ID or matching External ID.For reference patterns with an existing record, only the id is used and all other provided fields are ignored. For creation patterns when no matching record exists, the ID becomes the external ID of the newly created record, and other provided fields populate the new record's attributes.

Data type: String

Table: Account [customer_account], Contact [customer_contact] table, or Location [location]

relatedParty.partyOrPartyRole.lastName

Required for Contact party types. Contact person's last name or given name.Data type: String

relatedParty.partyOrPartyRole.name

Required for Account, Contact, and Location types. Name of the account, contact, or location. Data type: String

relatedParty.partyOrPartyRole.postalCode

Required for Location party types. Postal code, ZIP code, or PIN code for the location.Data type: String

relatedParty.partyOrPartyRole.status

Required for Account party types. Current status of the account. The valid values for the status field depend on how your instance is configured.Common status values include:

  • Active: Account is in normal operation
  • Inactive: Account is not currently conducting business
  • Suspended: Account is temporarily restricted
  • Pending: Account is awaiting activation
  • Archived: Historical accounts
  • Under Review: Account is being evaluated

Data type: String

relatedParty.role

Required. Business role that the referenced party plays in the order context. Must match relatedParty.@type in the same object.Possible values:

  • Account: parties representing a customer or business entity
  • Contact: parties representing a contact person
  • Customer: parties representing an end consumer or individual
  • Location: parties representing a service address or fulfillment location

Data type: String

requestedCompletionDate

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.

Format: ISO 8601 (Example: 2021-05-02T08:13:59.506Z)

Default: empty string

requestedStartDate

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.

Format: ISO 8601 (Example: 2021-05-02T08:13:59.506Z)

Default: empty string

### Headers

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

Header Description
Accept Data format of the response body. Only supports application/json.
Content-Type Data format of the request body. Only supports application/json.
Header Description
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.

Status code

Description

201

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:

  • The following Order Item characteristics does not exist: Review specification <**characteristic.name**> and correct the characteristic and characteristic option in the order line item prior to approving the order.
  • Order Item characteristic: <**characteristic.name**> with characteristic value: <**characteristic.value**>is invalid. Correct the characteristic values before approving the order.

202

Accepted. Successful request for an order in asynchronous mode. That is, the request was made with the mode parameter set to async and the record is scheduled to be processed in the Inbound Queue [sn_tmt_core_inbound_queue] table.

400

Bad Request. Could be any of the following reasons:- Invalid payload: Request body missing - Payload was not passed in the request body.

  • Invalid payload: productOrderItem is missing - Product order line item object or JSON is missing.
  • Invalid payload: productOrderItem id is missing - The id parameter is missing in the product order line item of the payload.
  • Invalid payload: productOrderItem action is missing - The action parameter is missing in the product order line item of the payload.
  • Invalid payload: productOrderItem productOffering is missing - The product offering object or JSON is missing from the product order line item in the payload.
  • Invalid payload: productOffering id is missing - The id parameter is missing in the product order line item of the product offering object in the payload.
  • Invalid payload: Product offering does not exist - The product offering in the product order line item is not valid.
  • Invalid payload: productOrderItem product is missing - The product object or JSON in the product order line item is missing from the payload.
  • Invalid payload: product productSpecification is missing - The product specification object or JSON in the product order line item is missing from the payload.
  • Invalid payload: productSpecification id is missing - The id parameter in the product order line item of the product specification object is missing from the payload.
  • Invalid payload: Product specification does not exist - The product specification in the product order line item is not valid.
  • Invalid payload: Product Inventory does not exist - In a change order (action = change), the quantity of an item is greater than what is in stock.
  • Invalid payload: Product inventory ID is missing - In change order, the product.id is missing in the payload.
  • Invalid payload: Sold Product is inactive - In a change order, a product specified in the payload is inactive.
  • Invalid payload: relatedParty is missing - The related party object is missing from the payload.
  • Invalid payload: Customer Account or Consumer is missing - The related party customer or consumer object is missing from the payload.
  • Invalid payload: Consumer does not exist - The specified related party consumer does not exist in the ServiceNow instance.
  • Invalid payload: Customer Account does not exist - The specified related party customer does not exist in the ServiceNow instance.
  • Invalid payload: Order creation failed - Not able to create the requested order.
  • Invalid payload: orderCurrency is required - The orderCurrency parameter is missing from the payload.
  • Inactive Currency Code: <currency> - The provided currency is inactive in the ServiceNow instance.
  • One or more line items has a different currency code than the order currency - All line items do not have the same currency code as the order currency.
  • In-flight revision to order currency not supported - The orderCurrency parameter can't be updated after the order is created.
### Response body parameters \(JSON\)

Name

Description

@type

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

channel

List of channels to use for selling the products.Stored in: sn_ind_tmt_orm_order

Data type: Array of Objects

Text
"channel": [  {    "id": "String",    "name": "String"  }]

channel.id

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

Stored in: The channel field of the sn_ind_tmt_orm_order table.

channel.name

Name of the channel to use to sell the associated products.Possible channel names are defined on the list tab in the Channel Dictionary Entry of the sn_ind_tmt_orm_order table.

Data type: String

committedDueDate

Date and time when the action must be performed on the order.Stored in: committed_due_date field of the sn_ind_tmt_orm_order table.

Format: ISO 8601 (Example: 2021-05-02T08:13:59.506Z)

Data type: String

externalId

External identifier for the customer order, such as a purchase order number. This value is determined by an external system. Stored in: external_id field of the sn_ind_tmt_orm_order table.

Data type: String

externalSystem

External system identifier that originated the order request, appended with TMF622. Data Type: String

href

Relative link to the resource record.Data type: String

note

Additional notes made by the customer when ordering. Stored in: sn_ind_tmt_orm_order

Data type: Array of Objects

Text
"note": [  {    "text": "String"  }]

note.text

Additional notes/comments made by the customer while ordering.Stored in: The comments field of the sn_ind_tmt_orm_order table.

Data type: String

orderCurrency

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

orderDate

Date and time when the order was created.Data type: String

Format: ISO 8601 (Example: 2021-05-02T08:13:59.506Z)

orderId

Sys_id of the order.Stored in the Inbound Queue [sn_tmt_core_inbound_queue] table on a schedule to be processed.

Data type: String

productOrderItem

Items associated with the product order and their associated action. Data type: Array of Objects

JavaScript
"productOrderItem": [  {    "action": "String",    "actionReason": "String",    "billingAccount": {Object},    "committedDueDate": "String",    "externalProductInventory": [Array],    "id": "String",    "itemPrice": [Array],    "payment": {Object},    "product": {Object},    "productOffering": {Object},    "productOrderItemRelationship": [Array],    "quantity": Number,    "@type": "String"  }]

Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

productOrderItem.@type

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

productOrderItem.action

Required. Action to carry out on the product. Possible actions are defined on the list tab in the Action Dictionary Entry of the sn_ind_tmt_orm_order_line_item table. Possible values:

  • add
  • change

Note: Submitting a change payload that includes a new service location via productOrderItem.product.place.id is processed as a move order.

  • delete
  • no-change
  • resume
  • suspend

Data type: String

Stored in: The action field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table.

productOrderItem.actionReason

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.

productOrderItem.billingAccount

Required. Identifies the billing account and determines how the account is processed.- When an existing billing account ID is passed, the API returns just the matching account's sys_id and type.

  • When a billing account ID is passed that doesn't match an existing record, the API creates a new billing account with the provided ID as the external_id. The object includes conditional attributes associated with the new record.

Data type: Object

Example reference structure:

Text
"billingAccount": {          "id": "sys_id_billing_account_456",          "@type": "BillingAccountRef"        }

Example creation structure:

JSON
"billingAccount": {          "id": "billingID",          "name": "Project 1234 Billing",          "@type": "BillingAccountRef",          "status": "Active",          "active": true        }

productOrderItem.billingAccount.@type

Conditional, required only for account creation. Must always be BillingAccountRef. This indicates that the object is a reference to a billing account record.Data type: String

productOrderItem.billingAccount.active

Conditional, required only for account creation. Flag that indicates whether the billing account is active. This field is used when creating a new billing account, and is ignored when referencing an existing billing account.

Valid values:

  • true: Billing account is active.
  • false: Billing account isn't active.

Default: If not provided during creation, the system uses the default active value configured in your instance

productOrderItem.billingAccount.id

Required. Sys_id or external_id of the billing account to reference or create inline.Data type: String

productOrderItem.billingAccount.name

Conditional, required only for account creation. Display name of the billing account. This field is used when creating a new billing account. If not provided during creation, the system uses a default name pattern. This field is ignored when referencing an existing billing account.

Example: "Main Office Billing", "Project 2024 Billing"

Data type: String

productOrderItem.billingAccount.status

Conditional, required only for account creation. The status of the billing account. This field is used when creating a new billing account. Valid values depend on your instance configuration. If not provided during creation, the system uses the default status value configured in your instance. This field is ignored when referencing an existing billing account.

Example: "Active", "Inactive", "Suspended"

Data type: String

productOrderItem.committedDueDate

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

Data type: String

Format: ISO 8601 (Example: 2021-05-02T08:13:59.506Z)

Stored in: The committed_due_date field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table.

productOrderItem.externalProductInventory.externalProductInventoryId

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.

productOrderItem.externalProductInventory

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

Text
"externalProductInventory": [  {    "externalProductInventoryId": "String"  }]

productOrderItem.id

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: empty string

productOrderItem.itemPrice

Price associated with the product. Data type: Array of Objects

CSS
"itemPrice": [  {    "price": {Object},    "priceType": "String",    "recurringChargePeriod": "String"  }]

Stored in: sn_ind_tmt_orm_order

Default: empty string

productOrderItem.itemPrice.price

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

Text
"price": {  "taxIncludedAmount": {Object}}

Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

Default: empty string

productOrderItem.itemPrice.price.taxIncludedAmount

Description of the price of the associated product, including the tax. Data type: Object

JavaScript
"taxIncludedAmount": {  "unit": "String",  "value": Number}

Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

productOrderItem.itemPrice.price.taxIncludedAmount.unit

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

productOrderItem.itemPrice.price.taxIncludedAmount.value

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

productOrderItem.itemPrice.priceType

Specifies whether the price of the item is recurring or non-recurring. Data type: String

productOrderItem.itemPrice.recurringChargePeriod

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

productOrderItem.payment

Required. Identifies the payment profile. - If the passed profile ID already exists, the API returns just the matching payment profile's sys_Id.

  • If the passed ID doesn't already exist, the API returns the new payment profile's sys_id and associated attributes.

Data type: Object

Reference structure:

Text
"payment": {  "id": "String"}

Creation structure:

JSON
"payment": {  "id": "String",  "paymentMethod": "String",  "paymentMethodType": "String",  "paymentReferenceId": "String"}

See the 'Examples' section for POST requests demonstrating both reference and creation patterns.

productOrderItem.payment.id

Sys_id or external_id of an existing payment profile record.Data type: String

productOrderItem.payment.paymentMethod

Returned only for profile creation. A choice field representing the payment method category. This field is validated against configured payment method choices in your instance. This field is ignored when referencing an existing profile.Example: "Credit Card", "Bank Transfer", "Check", "Digital Wallet"

Data type: String

productOrderItem.payment.paymentMethodType

Returned only for profile creation. A choice field representing the specific payment method type.Example: Visa", "MasterCard", "American Express" for credit cards; "ACH" or "Wire" for bank transfers

Data type: String

productOrderItem.payment.paymentReferenceId

Returned only for profile creation. An external reference identifier for the payment profile.Example: "REF-2024-001", "CARD-XXXX-5678"

Data type: String

productOrderItem.product

Instance details of the product purchased by the customer.Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

Data type: Object

JavaScript
"product": {  "id": "String",  "place": {Object},  "productCharacteristic": [Array],  "productSpecification": {Object},  "relatedParty": {Object},  "@type": "String"}

productOrderItem.product.@type

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

productOrderItem.product.id

Unique identifier of the product sold. Data type: String

Table: In the sys_id or sn_ind_tmt_orm_external_id field of the Product Inventory [sn_ind_tmt_orm_product_inventory] table.

productOrderItem.product.place

Maps of the locations on which to install the product. Data type: Object

Text
"place": {  "id": "String",  "@type": "String"}

Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

productOrderItem.product.place.@type

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

productOrderItem.product.place.id

Required. Sys_id of the associated location record.Data type: String

Table: Location [cmn_location]

Stored in: The location field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table.

productOrderItem.product.productCharacteristic

Characteristics of the associated product.Stored in: sn_ind_tmt_orm_order_characteristic_value

Data type: Array of Objects

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

productOrderItem.product.productCharacteristic.name

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.

productOrderItem.product.productCharacteristic.previousValue

Previous characteristic option values if the update is for 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

Stored in: The previous_characteristic_option_value field of the sn_ind_tmt_orm_order_characteristic_value table.

Default: empty string

productOrderItem.product.productCharacteristic.value

Characteristic option values associated with the product. For additional information on characteristic option values, see Create product characteristics and characteristic options. Data type: String

Stored in: The characteristic_option_value field of the sn_ind_tmt_orm_order_characteristic_value table.

Default: empty string

productOrderItem.product.productCharacteristic.valueType

Type of characteristic value.Accepted values:

  • address
  • array.date
  • array.datetime
  • array.decimal
  • array.integer
  • array.object
  • array.single_line_text
  • attachment
  • checkbox
  • choice
  • date
  • date_time
  • decimal
  • duration
  • email
  • integer
  • object
  • single_line_text
  • yes_no

Data type: String

productOrderItem.product.productSpecification

Description of the product specification associated with the product. Note: Change orders (productOrderItem.action is change) are processed differently based on the value of the sn_ind_tmt_orm.allowSpecVersionUpdateInChangeOrder 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.

  • true: 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.
  • false: If the product inventory is a different version than indicated in the order, the order fails due to the version mismatch.

Data type: Object

JSON
"productSpecification": {  "id": "String",  "internalVersion": "String",  "name": "String",  "version": "String",  "@type": "String"}

Stored in: sn_ind_tmt_orm_order_line_item

productOrderItem.product.productSpecification.@type

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

productOrderItem.product.productSpecification.id

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]

productOrderItem.product.productSpecification.internalVersion

Internal version of the service specification. Must match the value of version otherwise an error is thrown.Data Type: String

Table: In the version field of the Product Specification [sn_prd_pm_product_specification] table.

productOrderItem.product.productSpecification.name

Name of the product specification. Data type: String

Table: Product Specification [sn_prd_pm_product_specification]

productOrderItem.product.productSpecification.version

External version of the service specification. Must match the value of internalVersion otherwise an error is thrown.Data Type: String

Table: In the external_version field of the Product Specification [sn_prd_pm_product_specification] table.

productOrderItem.product.relatedParty

List of party roles linked to an OrderLineItemContact. Data type: Array of Objects

JSON
"relatedParty": [  {    "email": "String",    "firstName": "String",    "lastName": "String",    "phone": "String",    "@referredType": "String",    "@type": "String"  }]

Stored in: sn_ind_tmt_orm_order_line_item_contact

productOrderItem.product.relatedParty.@referredType

Required. Type of customer. Possible value: OrderLineItemContact

Data type: String

productOrderItem.product.relatedParty.@type

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

productOrderItem.product.relatedParty.email

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: empty string

productOrderItem.product.relatedParty.firstName

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: empty string

productOrderItem.product.relatedParty.lastName

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: empty string

productOrderItem.product.relatedParty.phone

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: empty string

productOrderItem.productOffering

Required. Description of the product offering associated with the product. Data type: Object

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

Stored in: sn_ind_tmt_orm_order_line_item

productOrderItem.productOffering.id

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]

productOrderItem.productOffering.internalVersion

Version of the product offering.Data type: String

Table: In the version field of the Product Offering [sn_prd_pm_product_offering] table.

productOrderItem.productOffering.name

Name of the product offering.Data type: String

Table: Product Offering [sn_prd_pm_product_offering]

productOrderItem.productOffering.version

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.

productOrderItem.productOrderItem.quantity

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

productOrderItem.productOrderItemRelationship

List that describes the parent/child relationship between order items. Data type: Array of Objects

Text
"productOrderItemRelationship": [  {    "id": "String",    "relationshipType": "String"  }]

Stored in: sn_ind_tmt_orm_order_line_item

productOrderItem.productOrderItemRelationship.id

Same as the productOrderItem.id value. Used for parent/child relationship Data type: String

Stored in: The parent_line_item field of the sn_ind_tmt_orm_order_line_item table.

Default: empty string

productOrderItem.productOrderItemRelationship.relationshipType

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

  • HasChild
  • HasParent

Data type: String

productOrderItem.quantity

Number of items ordered.Data type: Number

Stored in: The quantity field of the sn_ind_tmt_orm_order table.

Default: empty string

relatedParty

List of contacts for the order containing customer account or consumer account information. Supports reference and inline creation patterns (Account, Contact, Location). Data type: Array of Objects

CSS
"relatedParty": [ {  "role": "String",  "@type": "String",  "partyOrPartyRole": {Object} }]

realtedParty.role

Business role that the referenced party plays in the order context. Matches the relatedParty.@type value.Possible values:

  • Account
  • Contact
  • Customer
  • Location

Data type: String

relatedParty.@type

Record type of the party. Matches the relatedParty.role value.Data type: String

relatedParty.partyOrPartyRole

Object containing the specific reference details about the party.- If the passed ID already exists, the API returns just the @type and id fields of the matching party.

  • If the passed ID doesn't already exist, the API returns a the new Account, Contact, or Location ID with its conditional attributes, which vary based on the @type value.

Data type: Object

Reference pattern:

Text
"partyOrPartyRole": {  "@type": "PartyRef",  "id": "String"}

Account creation:

JSON
"partyOrPartyRole": {  "@type": "PartyRef",  "id": "String",  "accountNumber": "String",  "status": "String"}

Contact creation:

JSON
"partyOrPartyRole": {  "@type": "PartyRef",  "id": "String",  "firstName": "String",  "lastName": "String",  "email": "String" }

Location creation:

JSON
"partyOrPartyRole": {  "@type": "PartyRef",  "id": "String",  "name": "String",  "address": "String",  "city": "String",  "postalCode": "String",  "country": "String" }

relatedParty.partyOrPartyRole.@type

Indicates the type of reference being provided. Value is always PartyRef.Data type: String

relatedParty.partyOrPartyRole.accountNumber

Returned for Account party types. External reference number or identifier for the Account.Data type: String

relatedParty.partyOrPartyRole.address

Returned for Location party types. Street address of the location.Example: "123 Main Street"

Data type: String

relatedParty.partyOrPartyRole.city

Returned for Location party types. City or municipality name for the location.Example: "San Francisco", "New York"

Data type: String

relatedParty.partyOrPartyRole.country

Returned for Location party types. Country where the location is physically situated or where the contact is based.Data type: String

relatedParty.partyOrPartyRole.email

Returned for Contact party types. Contact person's primary email address.Data type: String

relatedParty.partyOrPartyRole.firstName

Returned for Contact party types. Contact person's first name or given name.Data type: String

relatedParty.partyOrPartyRole.id

Sys_id or external_id of the party record.Data type: String

Table: Account [customer_account], Contact [customer_contact] table, or Location [location]

relatedParty.partyOrPartyRole.lastName

Returned for Contact party types. Contact person's last name or given name.Data type: String

relatedParty.partyOrPartyRole.name

Returned for Account, Contact, and Location types. Name of the account, contact, or location. Data type: String

relatedParty.partyOrPartyRole.postalCode

Required for Location party types. Postal code, ZIP code, or PIN code for the location.Data type: String

relatedParty.partyOrPartyRole.status

Returned for Account party types. Current status of the account. Possible values for the status field depend on how your instance is configured.Common values include:

  • Active: Account is in normal operation
  • Inactive: Account is not currently conducting business
  • Suspended: Account is temporarily restricted
  • Pending: Account is awaiting activation
  • Archived: Historical accounts
  • Under Review: Account is being evaluated

Data type: String

relatedParty.role

Business role that the referenced party plays in the order context. Matches the relatedParty.@type value.Possible values:

  • Account: parties representing a customer or business entity
  • Contact: parties representing a contact person
  • Customer: parties representing an end consumer or individual
  • Location: parties representing a service address or fulfillment location

Data type: String

requestedCompletionDate

Delivery date requested by the customer. Data type: String

Format: ISO 8601 (Example: 2021-05-02T08:13:59.506Z)

Stored in: expected_end_date field of the sn_ind_tmt_orm_order table.

requestedStartDate

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

Format: ISO 8601 (Example: 2021-05-02T08:13:59.506Z)

Stored in: expected_start_date field of the sn_ind_tmt_orm_order table.

state

Current state of the order.Data type: String

productOrderItem

Items associated with the product order and their associated action.Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

Data type: Array of Objects

JavaScript
"productOrderItem": [  {    "action": "String",    "actionReason": "String",    "billingAccount": {Object},    "committedDueDate": "String",    "externalProductInventory": [Array],    "id": "String",    "itemPrice": [Array],    "payment": {Object},    "product": {Object},    "productOffering": {Object},    "productOrderItemRelationship": [Array],    "quantity": Number,    "@type": "String"  }]

productOrderItem.@type

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

productOrderItem.action

Action carried out on the product.Possible values:

  • add
  • change
  • delete
  • no-change
  • resume
  • suspend

Data type: String

Stored in: action field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table.

productOrderItem.actionReason

Description of the reason for the order line item.Data type: String

Stored in: action_reason field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table.

productOrderItem.billingAccount

Identifies the billing account and determines how the account is processed.- When you provide a billing.id that matches an existing billing account, the API uses the reference pattern to link the account to the order line item. Other billing account fields you include (name, status, active) are ignored. The system uses only the ID to find and link the existing billing account.

  • When you provide a billing.id that doesn't match an existing billing account, the API creates a new billing account with the provided ID as the external_id. Billing account fields (name, status, active) are required.

Data type: Object

Reference structure:

Text
"billingAccount": {          "id": "sys_id_billing_account_456",          "@type": "BillingAccountRef"        }

Creation structure:

JSON
"billingAccount": {          "id": "billingID",          "name": "Project 1234 Billing",          "@type": "BillingAccountRef",          "status": "Active",          "active": true        }

productOrderItem.billingAccount.@type

Returned for account creation. Must always be BillingAccountRef. This indicates that the object is a reference to a billing account record.Data type: String

productOrderItem.billingAccount.active

Returned only for account creation. Flag that indicates whether the billing account is active. This field is used when creating a new billing account, and is ignored when referencing an existing billing account.

Valid values:

  • true: Billing account is active.
  • false: Billing account isn't active.

productOrderItem.billingAccount.id

Sys_id or external_id of the billing account to reference or create inline.Data type: String

productOrderItem.billingAccount.name

Returned for account creation. Display name of the billing account.Example: "Main Office Billing", "Project 2024 Billing"

Data type: String

productOrderItem.billingAccount.status

Returned for account creation. The status of the billing account. Possible values depend on your instance configuration. Example: "Active", "Inactive", "Suspended"

Data type: String

productOrderItem.committedDueDate

Date and time when the action must be performed on the order line item.Data type: String

Format: ISO 8601 (Example: 2021-05-02T08:13:59.506Z)

Stored in: The committed_due_date field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table.

productOrderItem.externalProductInventory.externalProductInventoryId

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.

productOrderItem.externalProductInventory

External IDs which map to the product inventories created for the order.Data type: Array of Objects

Text
"externalProductInventory": [  {    "externalProductInventoryId": "String"  }]

productOrderItem.id

Required. Unique identifier of the line item. Stored in: The external_id field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table.

Data type: String

productOrderItem.itemPrice

Price associated with the product. Stored in: sn_ind_tmt_orm_order

Data type: Array of Objects

CSS
"itemPrice": [  {    "price": {Object},    "priceType": "String",    "recurringChargePeriod": "String"  }]

productOrderItem.itemPrice.price

Description of the price of the associated product. Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

Data type: Object

Text
"price": {  "taxIncludedAmount": {Object}}

productOrderItem.itemPrice.price.taxIncludedAmount

Description of the price of the associated product, including the tax. Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

Data type: Object

JavaScript
"taxIncludedAmount": {  "unit": "String",  "value": Number}

productOrderItem.itemPrice.price.taxIncludedAmount.unit

Currency code in which the price is expressed.Stored in: The mrc or nrc field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table

Data type: String

productOrderItem.itemPrice.price.taxIncludedAmount.value

Price of product, including any tax. Stored in: The mrc or nrc field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table

Data type: Number

productOrderItem.itemPrice.priceType

Specifies whether the price of the item is recurring or non-recurring. Data type: String

productOrderItem.itemPrice.recurringChargePeriod

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

productOrderItem.payment

Details about the payment profile.Data type: Object

JSON
"payment": {  "id": "String",  "paymentMethod": "String",  "paymentMethodType": "String",  "paymentReferenceId": "String"}

productOrderItem.payment.id

Sys_id or external_id of an existing payment profile record.Data type: String

productOrderItem.payment.paymentMethod

Returned for profile creation. A choice field representing the payment method category. This field is validated against configured payment method choices in your instance.Example: "Credit Card", "Bank Transfer", "Check", "Digital Wallet"

Data type: String

productOrderItem.payment.paymentMethodType

Returned for profile creation. A choice field representing the specific payment method type. This field is validated against configured payment method type choices and is typically dependent on the selected paymentMethod.Example: Visa", "MasterCard", "American Express" for credit cards; "ACH" or "Wire" for bank transfers

Data type: String

productOrderItem.payment.paymentReferenceId

Returned for profile creation. External reference identifier for the payment profile.Example: "REF-2024-001", "CARD-XXXX-5678"

Data type: String

productOrderItem.product

Returned if productOrderItem.action is change or delete. Instance details of the product purchased by the customer.Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

Data type: Object

JavaScript
"product": {  "id": "String",  "place": {Object},  "productCharacteristic": [Array],  "productSpecification": {Object},  "relatedParty": {Object},  "@type": "String"}

productOrderItem.product.@type

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

productOrderItem.product.id

Returned if productOrderItem.action is change or delete. Unique identifier of the product sold. Table: 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.place

Maps of the locations on which to install the product. Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

Data type: Object

Text
"place": {  "id": "String",  "@type": "String"}

productOrderItem.product.place.@type

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

productOrderItem.product.place.id

Sys_id of the associated location record. Table: Location [cmn_location]

Stored in: The location field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table.

Data type: String

productOrderItem.product.productCharacteristic

Characteristics of the associated product. Stored in: sn_ind_tmt_orm_order_characteristic_value

Data type: Array of Objects

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

productOrderItem.product.productCharacteristic.name

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.

productOrderItem.product.productCharacteristic.previousValue

Previous characteristic option values if the update is for 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

Stored in: The previous_characteristic_option_value field of the sn_ind_tmt_orm_order_characteristic_value table.

productOrderItem.product.productCharacteristic.value

Characteristic option values associated with the product. For additional information on characteristic option values, see Create product characteristics and characteristic options. Data type: String

Stored in: The characteristic_option_value field of the sn_ind_tmt_orm_order_characteristic_value table.

productOrderItem.product.productCharacteristic.valueType

Type of characteristic value.Possible values:

  • Array.Date
  • Array.Datetime
  • Array.Decimal
  • Array.Integer
  • Array.Object
  • Array.Single Line Test
  • check box
  • Choice
  • Date,Address
  • Email
  • Integer,Date/time
  • Object
  • Single Line Text
  • Yes/No

Data type: String

productOrderItem.product.productSpecification

Specification details associated with the product. Stored in: sn_ind_tmt_orm_order_line_item

Data type: Object

JSON
"productSpecification": {  "id": "String",  "internalVersion": "String",  "name": "String",  "version": "String",  "@type": "String"}

productOrderItem.product.productSpecification.@type

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

productOrderItem.product.productSpecification.id

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]

productOrderItem.product.productSpecification.internalVersion

Internal version of the service specification. Matches the value of version.Data Type: String

Table: In the version field of the Product Specification [sn_prd_pm_product_specification] table.

productOrderItem.product.productSpecification.name

Name of the product specification. Data type: String

Table: Product Specification [sn_prd_pm_product_specification]

productOrderItem.product.productSpecification.version

External version of the service specification. Matches the value of internalVersion.Data Type: String

Table: In the external_version field of the Product Specification [sn_prd_pm_product_specification] table.

productOrderItem.product.relatedParty

List of party roles linked to an Order Line Item Contact. Stored in: sn_ind_tmt_orm_order_line_item_contact

Data type: Array of Objects

JSON
"relatedParty": [  {    "email": "String",    "firstName": "String",    "lastName": "String",    "phone": "String",    "@referredType": "String",    "@type": "String"  }]

productOrderItem.product.relatedParty.@referredType

Required. Type of customer. Possible value: OrderLineItemContact

Data type: String

productOrderItem.product.relatedParty.@type

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

productOrderItem.product.relatedParty.email

Email address of the contact. Stored in: The email field of the sn_ind_tmt_orm_order_line_item_contact table.

Data type: String

productOrderItem.product.relatedParty.firstName

First name of the contact.Stored in: The first_name field of the sn_ind_tmt_orm_order_line_item_contact table.

Data type: String

productOrderItem.product.relatedParty.lastName

Last name of the contact.Stored in: The lastName field of the sn_ind_tmt_orm_order_line_item_contact table.

Data type: String

productOrderItem.product.relatedParty.phone

Business phone number of the contact. Stored in: The business_phone field of the sn_ind_tmt_orm_order_line_item_contact table.

Data type: String

productOrderItem.productOffering

Details of the product offering associated with the product.Stored in: sn_ind_tmt_orm_order_line_item

Data type: Object

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

productOrderItem.productOffering.id

Initial version or external ID of the product offering. The initial version is the sys_id of the first version of the offering.Table: Product Offering [sn_prd_pm_product_offering]

Data type: String

productOrderItem.productOffering.internalVersion

Version of the product offering.Data type: String

Table: In the version field of the Product Offering [sn_prd_pm_product_offering] table.

productOrderItem.productOffering.name

Name of the product offering.Data type: String

Table: Product Offering [sn_prd_pm_product_offering]

productOrderItem.productOffering.version

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.

productOrderItem.productOrderItem.quantity

Number of the associated items to order. Stored in: The quantity field of the sn_ind_tmt_orm_order table.

Data type: Number

productOrderItem.productOrderItemRelationship

Required. List that describes the parent/child relationship between order items. Data type: Array of Objects

Text
"productOrderItemRelationship": [  {    "id": "String",    "relationshipType": "String"  }]

Stored in: sn_ind_tmt_orm_order_line_item

productOrderItem.productOrderItemRelationship.id

Same as the productOrderItem.id value. Used for parent/child relationship Stored in: The parent_line_item field of the sn_ind_tmt_orm_order_line_item table.

Data type: String

productOrderItem.productOrderItemRelationship.relationshipType

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

  • HasChild
  • HasParent

Data type: String

productOrderItem.quantity

Number of items ordered.Data type: Number

Stored in: The quantity field of the sn_ind_tmt_orm_order 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.

Shell
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.

JSON
{  "orderId": "304e877ac3ab5110856d73ce3640dde5"}

Processing synchronously (default)

The following example shows how to create a product order.

Shell
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",  "orderCurrency": "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.

JSON
{  "requestedCompletionDate": "2021-05-02T08:13:59.506Z",  "requestedStartDate": "2020-05-03T08:13:59.506Z",  "externalId": "PO-456",  "orderCurrency": "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",      "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"}

Linking an Existing Payment Profile

To associate an existing payment profile with an order line item, include a payment object in your POST request with only the id field. Provide the system ID or External ID of the payment profile you want to link. The API locates the profile and establishes the association. When using the reference pattern, any other payment fields you include (paymentMethod, paymentMethodType, paymentReferenceId) are ignored. The system uses only the id to find and link the existing profile.

Request example:

JSON
{  "productOrder": {    "id": "order_001",    "orderItem": [      {        "id": "order_line_001",        "product": {          "id": "prod_123"        },        "billingAccount": {          "id": "ba_456"        },        "payment": {          "id": "sys_id_payment_profile_123"        }      }    ]  }}

Creating a Payment Profile Inline

To create a new payment profile during order placement, include a payment object with the payment details but omit the id field. Provide the paymentMethod, paymentMethodType, and paymentReferenceId. The API creates the profile, links it to the order line item's billing account, and associates it with the OLI all in a single operation. Using the inline pattern, you don't need to pre-create the payment profile. This is useful when the payment information is only known at order time or when you want to streamline the order creation workflow without pre-staging payment records.

Request example:

JSON
{  "productOrder": {    "id": "order_002",    "orderItem": [      {        "id": "order_line_002",        "product": {          "id": "prod_456"        },        "billingAccount": {          "id": "ba_789"        },        "payment": {          "paymentMethod": "Credit Card",          "paymentMethodType": "Visa",          "paymentReferenceId": "REF-2024-001"        }      }    ]  }}

Reference Existing Billing Accounts

To associate an existing billing account with an order line item, include a billingAccount object in your POST request with the id field set to the system ID or External ID of the billing account. The API locates the matching billing account and links it to the order line item. When using the reference pattern, any other billing account fields you include (name, status, active) are ignored. The system uses only the id to find and link the existing billing account.

Request example:

JSON
{  "productOrder": {    "id": "order_001",    "relatedParty": [      {        "role": "Account",        "@type": "Account",        "partyOrPartyRole": {          "@type": "PartyRef",          "id": "sys_id_account_123"        }      }    ],    "orderItem": [      {        "id": "order_line_001",        "product": {          "id": "prod_123"        },        "billingAccount": {          "id": "sys_id_billing_account_456",          "@type": "BillingAccountRef"        }      }    ]  }}

Creating a Billing Account Inline

To create a billing account during order placement, include a billingAccount object with the id field set to the External ID for the new billing account, along with optional name, status, and active fields. The API creates the billing account, associates it with the Account referenced in relatedParty, and links it to the order line item before the order is persisted. Using the inline pattern, you do not need to pre-create the billing account. This is useful when billing account information is only known at order time or when you want to streamline the order creation workflow without pre-staging billing account records. The id field you provide becomes the External ID of the newly created billing account. The system also generates a system ID internally. The order creation response includes the system ID reference to the newly created billing account.

Request example:

JSON
{  "productOrder": {    "id": "order_002",    "relatedParty": [      {        "role": "Account",        "@type": "Account",        "partyOrPartyRole": {          "@type": "PartyRef",          "id": "sys_id_account_789"        }      }    ],    "orderItem": [      {        "id": "order_line_002",        "product": {          "id": "prod_456"        },        "billingAccount": {          "id": "ext_ba_2024_001",          "name": "Project 2024 Billing",          "@type": "BillingAccountRef",          "status": "Active",          "active": true        }      }    ]  }}

Create account, contact, and location

The following example demonstrates how to create new Account, Contact, and Location records inline during a product order request. This pattern is useful when you have new customer information at order time and want to create the parties as part of the order placement process.

Request body:

JSON
{  "productOrder": {    "id": "order_new_customer_001",    "expectedCompletionDate": "2025-06-30T23:59:59.000Z",    "requestedCompletionDate": "2025-06-30T23:59:59.000Z",    "channel": [      {        "id": "1",        "name": "Web Portal"      }    ],    "relatedParty": [      {        "role": "Account",        "@type": "Account",        "partyOrPartyRole": {          "@type": "PartyRef",          "id": "ext_acct_new_tech_2025",          "accountNumber": "ACC-NEWTECH-2025-001",          "status": "Active"        }      },      {        "role": "Contact",        "@type": "Contact",        "partyOrPartyRole": {          "@type": "PartyRef",          "id": "ext_contact_procurement_mgr",          "firstName": "Maria",          "lastName": "Garcia",          "email": "maria.garcia@newtech.com"        }      },      {        "role": "Location",        "@type": "Location",        "partyOrPartyRole": {          "@type": "PartyRef",          "id": "ext_loc_main_warehouse",          "name": "Main Distribution Center",          "address": "500 Industrial Boulevard",          "city": "Austin",          "postalCode": "78704",          "country": "USA"        }      }    ],    "productOrderItem": [      {        "id": "POI001",        "quantity": 1,        "action": "add",        "billingAccount": {          "id": "ext_ba_newtech_billing",          "name": "NewTech Solutions - Primary Billing",          "@type": "BillingAccountRef",          "status": "Active",          "active": true        },        "payment": {          "paymentMethod": "Credit Card",          "paymentMethodType": "American Express",          "paymentReferenceId": "REF-NEWTECH-2025-001"        },        "product": {          "id": "prod_enterprise_suite",          "@type": "Product"        },        "productOffering": {          "id": "offering_cloud_platform",          "name": "Enterprise Cloud Platform"        },        "state": "pending",        "@type": "ProductOrderItem"      }    ],    "state": "pending",    "@type": "ProductOrder"  }}

Response body:

JSON
{  "productOrder": {    "id": "order_new_customer_001",    "status": "created",    "relatedParty": [      {        "role": "Account",        "@type": "Account",        "partyOrPartyRole": {          "@type": "PartyRef",          "id": "sys_id_account_generated_123",          "accountNumber": "ACC-NEWTECH-2025-001",          "status": "Active"        }      },      {        "role": "Contact",        "@type": "Contact",        "partyOrPartyRole": {          "@type": "PartyRef",          "id": "sys_id_contact_generated_456",          "firstName": "Maria",          "lastName": "Garcia",          "email": "maria.garcia@newtech.com"        }      },      {        "role": "Location",        "@type": "Location",        "partyOrPartyRole": {          "@type": "PartyRef",          "id": "sys_id_location_generated_789",          "name": "Main Distribution Center",          "address": "500 Industrial Boulevard",          "city": "Austin",          "postalCode": "78704",          "country": "USA"        }      }    ],    "productOrderItem": [      {        "id": "POI001",        "billingAccount": {          "id": "sys_id_ba_generated_999",          "name": "NewTech Solutions - Primary Billing",          "@type": "BillingAccountRef",          "status": "Active",          "active": true        },        "payment": {          "id": "sys_id_payment_generated_111",          "paymentMethod": "Credit Card",          "paymentMethodType": "American Express",          "paymentReferenceId": "REF-NEWTECH-2025-001"        }      }    ],    "state": "created"  }}

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.

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

Name

Description

@type

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

channel

List of channels to use for selling the products. Data type: Array of Objects

Text
"channel": [  {    "id": "String",    "name": "String"  }]

Stored in: sn_ind_tmt_orm_order

channel.id

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: empty string

channel.name

Name of the channel to use to sell the associated products. Possible channel names are defined on the list tab in the Channel Dictionary Entry of the sn_ind_tmt_orm_order table.Data type: String

Default: empty 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

Stored in: The committed_due_date field of the sn_ind_tmt_orm_order table.

disableCharValueValidation

Flag that indicates how to control characteristic value validation behavior for choice-type characteristics.Valid values:

  • true: Validation is inactive 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 inactive, the value is set directly from the request payload and no work notes are generated. The property isn't shipped by default.

externalId

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: empty 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

href

Relative link to the resource record.Data type: String

Default: empty string

note

Additional notes made by the customer when ordering. Data type: Array of Objects

Text
"note": [  {    "text": "String"  }]

Stored in: sn_ind_tmt_orm_order

note.text

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: empty string

orderCurrency

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

productOrderItem

Required. Items associated with the product order and their associated action. Data type: Array of Objects

JavaScript
"productOrderItem": [  {    "action": "String",    "actionReason": "String",    "billingAccount": {Object},    "committedDueDate": "String",    "externalProductInventory": [Array],    "id": "String",    "itemPrice": [Array],    "payment": {Object},    "product": {Object},    "productOffering": {Object},    "productOrderItemRelationship": [Array],    "quantity": Number,    "@type": "String"  }]

Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

productOrderItem.@type

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

productOrderItem.action

Required. Action to carry out on the product. Possible actions are defined on the list tab in the Action Dictionary Entry of the sn_ind_tmt_orm_order_line_item table. Possible values:

  • add
  • change

Note: Submitting a change payload that includes a new service location via productOrderItem.product.place.id is processed as a move order.

  • delete
  • no-change
  • resume
  • suspend

Data type: String

Stored in: The action field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table.

productOrderItem.actionReason

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.

productOrderItem.billingAccount

Required. Identifies the billing account and determines how the account is processed.- When you provide a billing.id that matches an existing billing account, the API uses the reference pattern to link the account to the order line item. Other billing account fields you include (name, status, active) are ignored. The system uses only the ID to find and link the existing billing account.

  • When you provide a billing.id that doesn't match an existing billing account, the API creates a new billing account with the provided ID as the external_id. Billing account fields (name, status, active) are required.

Data type: Object

Example reference structure:

Text
"billingAccount": {          "id": "sys_id_billing_account_456",          "@type": "BillingAccountRef"        }

Example creation structure:

JSON
"billingAccount": {          "id": "billingID",          "name": "Project 1234 Billing",          "@type": "BillingAccountRef",          "status": "Active",          "active": true        }

productOrderItem.billingAccount.@type

Conditional, required only for account creation. Must always be BillingAccountRef. This indicates that the object is a reference to a billing account record.Data type: String

productOrderItem.billingAccount.active

Conditional, required only for account creation. Flag that indicates whether the billing account is active. This field is used when creating a new billing account, and is ignored when referencing an existing billing account.

Valid values:

  • true: Billing account is active.
  • false: Billing account isn't active.

Default: If not provided during creation, the system uses the default active value configured in your instance

productOrderItem.billingAccount.id

Required. Sys_id or external_id of the billing account to reference or create inline.Data type: String

productOrderItem.billingAccount.name

Conditional, required only for account creation. Display name of the billing account. This field is used when creating a new billing account. If not provided during creation, the system uses a default name pattern. This field is ignored when referencing an existing billing account.

Example: "Main Office Billing", "Project 2024 Billing"

Data type: String

productOrderItem.billingAccount.status

Conditional, required only for account creation. The status of the billing account. This field is used when creating a new billing account. Valid values depend on your instance configuration. If not provided during creation, the system uses the default status value configured in your instance. This field is ignored when referencing an existing billing account.

Example: "Active", "Inactive", "Suspended"

Data type: String

productOrderItem.committedDueDate

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.

productOrderItem.externalProductInventory.externalProductInventoryId

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.

productOrderItem.externalProductInventory

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

Text
"externalProductInventory": [  {    "externalProductInventoryId": "String"  }]

productOrderItem.id

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: empty string

productOrderItem.itemPrice

Price associated with the product. Data type: Array of Objects

CSS
"itemPrice": [  {    "price": {Object},    "priceType": "String",    "recurringChargePeriod": "String"  }]

Stored in: sn_ind_tmt_orm_order

Default: empty string

productOrderItem.itemPrice.price

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

Text
"price": {  "taxIncludedAmount": {Object}}

Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

Default: empty string

productOrderItem.itemPrice.price.taxIncludedAmount

Description of the price of the associated product, including the tax. Data type: Object

JavaScript
"taxIncludedAmount": {  "unit": "String",  "value": Number}

Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

productOrderItem.itemPrice.price.taxIncludedAmount.unit

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

productOrderItem.itemPrice.price.taxIncludedAmount.value

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

productOrderItem.itemPrice.priceType

Specifies whether the price of the item is recurring or non-recurring. Data type: String

productOrderItem.itemPrice.recurringChargePeriod

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

productOrderItem.payment

Required. Identifies the payment profile and determines how the profile is processed. Reference an existing payment profile by passing payment.id, or pass full payment attributes to create payment profile inline.

  • If the ID already exists, the API locates the matching payment profile and links it to the order line item. Any other payment fields you include (paymentMethod, paymentMethodType, paymentReferenceId) are ignored. The system uses only the id to find and link the existing profile.
  • If the ID doesn't already exist, a payment profile is created automatically and linked to the order line item's billing account. paymentMethod, paymentMethodType, paymentReferenceId are required to create the new profile.

Data type: Object

Reference structure:

Text
"payment": {  "id": "String"}

Creation structure:

JSON
"payment": {  "id": "String",  "paymentMethod": "String",  "paymentMethodType": "String",  "paymentReferenceId": "String"}

See the 'Examples' section for POST requests demonstrating both reference and creation patterns.

productOrderItem.payment.id

Required. Sys_id or external_id of an existing payment profile record.Data type: String

productOrderItem.payment.paymentMethod

Conditional, required only for profile creation. A choice field representing the payment method category. This field is validated against configured payment method choices in your instance. This field is ignored when referencing an existing profile.Example: "Credit Card", "Bank Transfer", "Check", "Digital Wallet"

Data type: String

productOrderItem.payment.paymentMethodType

Conditional, required only for profile creation. A choice field representing the specific payment method type. This field is validated against configured payment method type choices and is typically dependent on the selected paymentMethod. This field is ignored when referencing an existing profile.Example: Visa", "MasterCard", "American Express" for credit cards; "ACH" or "Wire" for bank transfers

Data type: String

productOrderItem.payment.paymentReferenceId

Conditional, required only for profile creation. An external reference identifier for the payment profile. This is typically used for tracking, audit trails, and reconciliation between your order system and your payment processor. This field is ignored when referencing an existing profile.Example: "REF-2024-001", "CARD-XXXX-5678"

Data type: String

productOrderItem.product

Required if productOrderItem.action is change or delete. Instance details of the product purchased by the customer. Data type: Object

JavaScript
"product": {  "id": "String",  "place": {Object},  "productCharacteristic": [Array],  "productSpecification": {Object},  "relatedParty": {Object},  "@type": "String"}

Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

productOrderItem.product.@type

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

productOrderItem.product.id

Required if productOrderItem.action is change or delete. Unique identifier of the product sold. Data type: String

Default: empty string

Table: In the sys_id or sn_ind_tmt_orm_external_id field of the Product Inventory [sn_ind_tmt_orm_product_inventory] table.

productOrderItem.product.place

Maps of the locations on which to install the product. Data type: Object

Text
"place": {  "id": "String",  "@type": "String"}

Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]

productOrderItem.product.place.@type

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

productOrderItem.product.place.id

Required. Sys_id of the associated location record. 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

Table: Location [cmn_location]

Stored in: The location field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table.

productOrderItem.product.productCharacteristic

Characteristics of the associated product. Data type: Array of Objects

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

Stored in: sn_ind_tmt_orm_order_characteristic_value

productOrderItem.product.productCharacteristic.name

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: empty string

productOrderItem.product.productCharacteristic.previousValue

Previous characteristic option values if the update is for 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

Stored in: The previous_characteristic_option_value field of the sn_ind_tmt_orm_order_characteristic_value table.

Default: empty string

productOrderItem.product.productCharacteristic.value

Characteristic option values associated with the product. For additional information on characteristic option values, see Create product characteristics and characteristic options. Data type: String

Stored in: The characteristic_option_value field of the sn_ind_tmt_orm_order_characteristic_value table.

Default: empty string

productOrderItem.product.productCharacteristic.valueType

Type of characteristic value.Possible values:

  • address
  • array.date
  • array.datetime
  • array.decimal
  • array.integer
  • array.object
  • array.single_line_text
  • attachment
  • checkbox
  • choice
  • date
  • date_time
  • decimal
  • duration
  • email
  • integer
  • object
  • single_line_text
  • yes_no

Data type: String

productOrderItem.product.productSpecification

Optional. Description of the product specification associated with the product. Note: Change orders (productOrderItem.action is change) are processed differently based on the value of the sn_ind_tmt_orm.allowSpecVersionUpdateInChangeOrder 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.

  • 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.
  • 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.

Data type: Object

JSON
"productSpecification": {  "id": "String",  "internalVersion": "String",  "name": "String",  "version": "String",  "@type": "String"}

Stored in: sn_ind_tmt_orm_order_line_item

productOrderItem.product.productSpecification.@type

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

productOrderItem.product.productSpecification.id

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]

productOrderItem.product.productSpecification.internalVersion

Internal version of the service specification. Must match the value of version otherwise an error is thrown.Data Type: String

Table: In the version field of the Product Specification [sn_prd_pm_product_specification] table.

productOrderItem.product.productSpecification.name

Name of the product specification. Data type: String

Table: Product Specification [sn_prd_pm_product_specification]

productOrderItem.product.productSpecification.version

External version of the service specification. Must match the value of internalVersion otherwise an error is thrown.Data Type: String

Table: In the external_version field of the Product Specification [sn_prd_pm_product_specification] table.

productOrderItem.product.relatedParty

List of party roles linked to an OrderLineItemContact. Data type: Array of Objects

JSON
"relatedParty": [  {    "email": "String",    "firstName": "String",    "lastName": "String",    "phone": "String",    "@referredType": "String",    "@type": "String"  }]

Stored in: sn_ind_tmt_orm_order_line_item_contact

productOrderItem.product.relatedParty.@referredType

Required. Type of customer. Possible value: OrderLineItemContact

Data type: String

productOrderItem.product.relatedParty.@type

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

productOrderItem.product.relatedParty.email

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: empty string

productOrderItem.product.relatedParty.firstName

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: empty string

productOrderItem.product.relatedParty.lastName

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: empty string

productOrderItem.product.relatedParty.phone

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: empty string

productOrderItem.productOffering

Required. Description of the product offering associated with the product. Data type: Object

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

Stored in: sn_ind_tmt_orm_order_line_item

productOrderItem.productOffering.id

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]

productOrderItem.productOffering.internalVersion

Version of the product offering.Data type: String

Table: In the version field of the Product Offering [sn_prd_pm_product_offering] table.

productOrderItem.productOffering.name

Name of the product offering.Data type: String

Table: Product Offering [sn_prd_pm_product_offering]

productOrderItem.productOffering.version

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.

productOrderItem.productOrderItem.quantity

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

productOrderItem.productOrderItemRelationship

Required. List that describes the parent/child relationship between order items. Data type: Array of Objects

Text
"productOrderItemRelationship": [  {    "id": "String",    "relationshipType": "String"  }]

Stored in: sn_ind_tmt_orm_order_line_item

productOrderItem.productOrderItemRelationship.id

Required. Same as the productOrderItem.id value. Used for parent/child relationship Data type: String

Stored in: The parent_line_item field of the sn_ind_tmt_orm_order_line_item table.

Default: empty string

productOrderItem.productOrderItemRelationship.relationshipType

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

  • HasChild
  • HasParent

Data type: String

productOrderItem.quantity

Number of items ordered.Data type: Number

Stored in: The quantity field of the sn_ind_tmt_orm_order table.

Default: empty string

relatedParty

Array that contains one or more party objects. Each object in this array represents a party (Account, Contact, or Location) that should be associated with the order. The relatedParty array is optional at the order level, but if you provide party associations, each entry in the array must follow the required structure and validation rules.

Data type: Array of Objects

CSS
"relatedParty": [ {  "role": "String",  "@type": "String",  "partyOrPartyRole": {Object} }]

relatedParty.@type

Required. Specifies what record type to search for when validating and linking the party. Must match the role field.When you provide an @type of "Account", the system knows to search the Account table for the matching record. When you provide an @type of "Contact", the system knows to search the Contact table. This field ensures that the API searches the correct record type and applies the correct validation and linking logic.

Data type: String

relatedParty.partyOrPartyRole

Object containing the specific reference details about the party. Contains the party identifier and any optional attributes that should be used if creating a new party record.- For reference patterns, this object contains just the @type and id fields.

  • For creation patterns, this object also contains conditional attributes like name, email, address that is used to create the new record if the id value does not match an existing record. Attributes vary based on party type.

Data type: Object

Text
"partyOrPartyRole": {  "@type": "PartyRef",  "id": "String"}

Account creation Object structure:

JSON
"partyOrPartyRole": {  "@type": "PartyRef",  "id": "String",  "accountNumber": "String",  "status": "String"}

Contact creation Object structure:

JSON
"partyOrPartyRole": {  "@type": "PartyRef",  "id": "String",  "firstName": "String",  "lastName": "String",  "email": "String" }

Location creation Object structure:

JSON
"partyOrPartyRole": {  "@type": "PartyRef",  "id": "String",  "name": "String",  "address": "String",  "city": "String",  "postalCode": "String",  "country": "String" }

relatedParty.partyOrPartyRole.@type

Required. Indicates the type of reference being provided. Value must be set to PartyRef.Data type: String

relatedParty.partyOrPartyRole.accountNumber

Required for Account party types. External reference number or identifier for the Account. It provides a business-facing account identifier that is distinct from the system-generated ID.Data type: String

relatedParty.partyOrPartyRole.address

Required for Location party types. Street address of the location.Example: "123 Main Street"

Data type: String

relatedParty.partyOrPartyRole.city

Required for Location party types. City or municipality name for the location.Example: "San Francisco", "New York"

Data type: String

relatedParty.partyOrPartyRole.country

Required for Location party types. Country where the location is physically situated or where the contact is based.Data type: String

relatedParty.partyOrPartyRole.email

Required for Contact party types. Contact person's primary email address.Data type: String

relatedParty.partyOrPartyRole.firstName

Required for Contact party types. Contact person's first name or given name.Data type: String

relatedParty.partyOrPartyRole.id

Required. Sys_id or external_id of the party record to reference. The system searches for a record with either a matching system ID or matching External ID.For reference patterns with an existing record, only the id is used and all other provided fields are ignored. For creation patterns when no matching record exists, the ID becomes the external ID of the newly created record, and other provided fields populate the new record's attributes.

Data type: String

Table: Account [customer_account], Contact [customer_contact] table, or Location [location]

relatedParty.partyOrPartyRole.lastName

Required for Contact party types. Contact person's last name or given name.Data type: String

relatedParty.partyOrPartyRole.name

Required for Account, Contact, and Location types. Name of the account, contact, or location. Data type: String

relatedParty.partyOrPartyRole.postalCode

Required for Location party types. Postal code, ZIP code, or PIN code for the location.Data type: String

relatedParty.partyOrPartyRole.status

Required for Account party types. Current status of the account. The valid values for the status field depend on how your instance is configured.Common status values include:

  • Active: Account is in normal operation
  • Inactive: Account is not currently conducting business
  • Suspended: Account is temporarily restricted
  • Pending: Account is awaiting activation
  • Archived: Historical accounts
  • Under Review: Account is being evaluated

Data type: String

relatedParty.role

Required. Business role that the referenced party plays in the order context. Must match relatedParty.@type in the same object.Possible values:

  • Account: parties representing a customer or business entity
  • Contact: parties representing a contact person
  • Customer: parties representing an end consumer or individual
  • Location: parties representing a service address or fulfillment location

Data type: String

requestedCompletionDate

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: empty string

requestedStartDate

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: empty string

### Headers

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

Header Description
Accept Data format of the response body. Only supports application/json.
Content-Type Data format of the request body. Only supports application/json.
Header Description
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.

Status code

Description

201

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:

  • The following Order Item characteristics does not exist: Review specification <**characteristic.name**> and correct the characteristic and characteristic option in the order line item prior to approving the order.
  • Order Item characteristic: <**characteristic.name**> with characteristic value: <**characteristic.value**>is invalid. Correct the characteristic values before approving the order.

400

Bad Request. Could be any of the following reasons:- Invalid payload: Request body missing - Payload was not passed in the request body.

  • Invalid payload: productOrderItem is missing - Product order line item object or JSON is missing.
  • Invalid payload: productOrderItem id is missing - The id parameter is missing in the product order line item of the payload.
  • Invalid payload: productOrderItem action is missing - The action parameter is missing in the product order line item of the payload.
  • Invalid payload: productOrderItem productOffering is missing - The product offering object or JSON is missing from the product order line item in the payload.
  • Invalid payload: productOffering id is missing - The id parameter is missing in the product order line item of the product offering object in the payload.
  • Invalid payload: Product offering does not exist - The product offering in the product order line item is not valid.
  • Invalid payload: productOrderItem product is missing - The product object or JSON in the product order line item is missing from the payload.
  • Invalid payload: product productSpecification is missing - The product specification object or JSON in the product order line item is missing from the payload.
  • Invalid payload: productSpecification id is missing - The id parameter in the product order line item of the product specification object is missing from the payload.
  • Invalid payload: Product specification does not exist - The product specification in the product order line item is not valid.
  • Invalid payload: Product Inventory does not exist - In a change order (action = change), the quantity of an item is greater than what is in stock.
  • Invalid payload: Product inventory ID is missing - In change order, the product.id is missing in the payload.
  • Invalid payload: Sold Product is inactive - In a change order, a product specified in the payload is inactive.
  • Invalid payload: relatedParty is missing - The related party object is missing from the payload.
  • Invalid payload: Customer Account or Consumer is missing - The related party customer or consumer object is missing from the payload.
  • Invalid payload: Consumer does not exist - The specified related party consumer does not exist in the ServiceNow instance.
  • Invalid payload: Customer Account does not exist - The specified related party customer does not exist in the ServiceNow instance.
  • Invalid payload: Order creation failed - Not able to create the requested order.
### Response body parameters \(JSON\)

Name

Description

@type

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

channel

List of channels to use for selling the products. Data type: Array of Objects

Text
"channel": [ {   "id": "String",   "name": "String" }]

channel.id

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

channel.name

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

externalId

External 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

id

Sys_id of the customer order created for this request. Data type: String

note

Optional. List of additional notes made by the customer when ordering. Data type: Array of Objects

Text
"note": [ {   "text": "String" }]

note.text

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

productOderItem.actionReason

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.

productOrderItem

List that describes items associated with the product order and their associated action. Data type: Array of Objects

JavaScript
"productOrderItem:" [ {   "action": "String",   "id": "String",   "itemPrice": [Array],   "product": {Object},   "productOffering": {Object},   "productOrderItemReleationship": [Array],   "quantity": Number,   "state": "String",   "@type": "String" }]

productOrderItem.@type

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

productOrderItem.action

Action to carry out on the product. Possible actions are defined on the list tab in the Action Dictionary Entry of the sn_ind_tmt_orm_order_line_item table. Data type: String

productOrderItem.id

Required if the productOrderItem parameter is used. Sys_id of the order line item. Table: Order Line Item [sn_ind_tmt_orm_order_line_item] table

Data type: String

Default: Blank string

productOrderItem.itemPrice

List that describes the price associated with the product. Data type: Array of Objects

CSS
"itemPrice": [ {   "price": {Object},   "priceType": "String",   "recurringChargePeriod": "String" }]

productOrderItem.itemPrice.price

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

Text
"price": { "taxIncludedAmount": {Object}}

productOrderItem.itemPrice.price.taxIncludeAmount

Description of the price of the associated product, including the tax. Data type: Object

JavaScript
"taxIncludedAmount": { "unit": "String", "value": Number}

productOrderItem.itemPrice.price.taxIncludeAmount.unit

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

productOrderItem.itemPrice.price.taxIncludeAmount.value

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

productOrderItem.itemPrice.priceType

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

productOrderItem.itemPrice.recurringChargePeriod

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

productOrderItem.product

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

JavaScript
"product": { "id": "String", "place": {Object}, "productCharacteristic": [Array], "productSpecification": {Object}, "relatedParty": {Object}, "@type": "String"}

productOrderItem.product.@type

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

productOrderItem.product.id

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. 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.place

Maps of the locations on which to install the product. Data type: Object

Text
"place": { "id": "String", "@type": "String"}

productOrderItem.product.place.id

Sys_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.productCharacteristic

List of characteristics of the associated product. Data type: Array of Objects

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

productOrderItem.product.productCharacteristic.name

Name of the characteristic record to associate with the product. Located in the Characteristic [sn_prd_pm_characteristic] table. Data type: String

productOrderItem.product.productCharacteristic.previousValue

Previous 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.value

Characteristic 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.valueType

Type of characteristic value.Possible values:

  • address
  • array.date
  • array.datetime
  • array.decimal
  • array.integer
  • array.object
  • array.single_line_text
  • attachment
  • checkbox
  • choice
  • date
  • date_time
  • decimal
  • duration
  • email
  • integer
  • object
  • single_line_text
  • yes_no

Data type: String

productOrderItem.product.productSpecification

Description of the product specification associated with the product. Data type: Object

JSON
"productSpecification": { "id": "String", "internalVersion": "String", "name": "String", "version": "String", "@type": "String"}

productOrderItem.product.productSpecification.@type

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

productOrderItem.product.productSpecification.id

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

productOrderItem.product.productSpecification.internalVersion

Internal version of the product specification. Must match the value of version otherwise an error is thrown.Data Type: String

Table: Product Specification [sn_prd_pm_product_specification]

productOrderItem.product.productSpecification.name

Name of the product specification. Located in the Product Specification [sn_prd_pm_product_specification] table. Data type: String

productOrderItem.product.productSpecification.version

External version of the product specification. Must match the value of internalVersion otherwise an error is thrown.Data Type: String

Table: Product Specification [sn_prd_pm_product_specification]

productOrderItem.product.relatedParty

Optional. List of contacts for line items. Data type: Array of Objects

JSON
"relatedParty:" [ {   "email": "String",   "firstName": "String",   "lastName": "String",   "phone": "String",   "@referredType": "String",   "@type": "String" }]

productOrderItem.product.relatedParty.@referredType

Type of customer. Possible value: OrderLineItemContact

Data type: String

productOrderItem.product.relatedParty.@type

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

productOrderItem.product.relatedParty.email

Email address of the contact. Data type: String

productOrderItem.product.relatedParty.firstName

First name of the contact. Data type: String

productOrderItem.product.relatedParty.lastName

Last name of the contact. Data type: String

Data type: String

productOrderItem.product.relatedParty.phone

Business phone number of the contact. Data type: String

productOrderItem.productOffering

Description of the product offering associated with the product. Data type: Object

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

productOrderItem.productOffering.id

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

productOrderItem.productOffering.name

Name of the product offering. Located in the Product Offering [sn_prd_pm_product_offering] table. Data type: String

productOrderItem.productOrderItemRelationship

Conditional. Item-level relationships. If supplied, each entry requires an id and relationshipType. Data type: Array of Objects

Text
"productOrderItemRelationship": [ {   "id": "String",   "relationshipType": "String" }]

productOrderItem.productOrderItemRelationship.id

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

productOrderItem.productOrderItemRelationship.relationshipType

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

productOrderItem.quantity

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

productOrderItem.state

Current state of the product order item. This value is always new.Data type: String

relatedParty

List of contacts for the order. Each contact is an object in the array. Contains at least one item with customer account or consumer account information. Data type: Array of Objects

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

relatedParty.id

Sys_id or external_id of the account, customer contact, or consumer associated with the order.Table: Account [customer_account], Contact [customer_contact] table, or Consumer [csm_consumer] table.

Data type: String

relatedParty.name

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

relatedParty.type

Type of customer. Possible values:

  • Consumer
  • Customer
  • CustomerContact

Data type: String

requestedCompletionDate

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

requestedStartDate

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

serviceOrderItem.service.serviceSpecification.internalVersion

Internal version of the service specification. Must match the value of version otherwise an error is thrown.Data Type: String

serviceOrderItem.service.serviceSpecification.version

External version of the service specification. Must match the value of internalVersion otherwise an error is thrown.Data Type: String

state

Current 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.

Shell
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.

JSON
{    "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"}
Search documentation
Search document titles and file paths on the brazil branch