--- title: Product Order Open API description: The Product Order Open API provides endpoints that enable a standardized mechanism for placing product orders.Retrieves all product orders.Retrieves all product orders.Retrieves the specified product order.Updates the specified customer order.Updates the specified customer order.Updates the specified customer order.Cancels the specified customer order.Creates the specified customer order and customer order line items.Creates the specified customer order and customer order line items. locale: en-US canonical_url: https://www.servicenow.com/docs/r/api-reference/rest-apis/tmf622\_product\_ordering-api.html release: brazil product: REST APIs classification: rest-apis topic_type: concept last_updated: "2026-09-10" reading_time_minutes: 331 breadcrumb: [REST API reference, API reference, API implementation and reference] --- # Product Order Open API The Product Order Open API provides endpoints that enable a standardized mechanism for placing product orders. A product order is created based on a product offering that is defined and published in a product catalog. The product offering identifies the product or set of products that are available to a customer and includes the relevant product characteristics that capture the unique options of a product, and other relevant attributes such as pricing, contract terms, and availability. To access this API, the Order Management for Telecommunications \(sn\_ind\_tmt\_orm\) plugin must be activated. For more information, see [Install Order Management](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/brazil/markdown/order-management/order-mgt-install-providers.md). For information about Order Management tables and roles, see [Components installed with Order Management](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/brazil/markdown/order-management/components-installed-with-order-management.md). 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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/brazil/markdown/api-reference/developer-guides/product-order_dev-guide.md). 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](https://www.tmforum.org/resources/specifications/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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/brazil/markdown/api-reference/rest-apis/tmf622_product_ordering-api.md) 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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/brazil/markdown/api-reference/rest-apis/product-inventory-open-api.md)'s **sn\_prd\_invt.enableseamlessvaluetype** system property, which lets that API match this format. **Parent Topic:**[REST API reference](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/brazil/markdown/api-reference/rest-apis/api-rest.md) ## 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. |
| 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**. |
| Link | Contains the following links to navigate through query results.- first - last - next - previous |
| X-Total-Count | For paginated queries, this header specifies the total number of records available on the server. |
| 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. |
| 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 ``` "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 ``` "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 ``` "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: ``` "billingAccount": { "id": "sys_id_billing_account_456", "@type": "BillingAccountRef" } ``` Example creation structure: ``` "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 ``` "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 ``` "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 ``` "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 ``` "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: ``` "payment": { "id": "String" } ``` Creation structure: ``` "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 ``` "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 ``` "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 ``` "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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/brazil/markdown/order-management/som-product-config-add-characteristics.md). 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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/brazil/markdown/order-management/som-product-config-add-characteristics.md). 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 ``` "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 ``` "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 ``` "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 ``` "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 ``` "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: ``` "partyOrPartyRole": { "@type": "PartyRef", "id": "String" } ``` Account creation: ``` "partyOrPartyRole": { "@type": "PartyRef", "id": "String", "accountNumber": "String", "status": "String" } ``` Contact creation: ``` "partyOrPartyRole": { "@type": "PartyRef", "id": "String", "firstName": "String", "lastName": "String", "email": "String" } ``` Location creation: ``` "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 ``` "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: ``` "billingAccount": { "id": "sys_id_billing_account_456", "@type": "BillingAccountRef" } ``` Creation structure: ``` "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 ``` "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 ``` "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 ``` "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 ``` "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 ``` "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 ``` "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 ``` "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 ``` "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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/brazil/markdown/order-management/som-product-config-add-characteristics.md). 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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/brazil/markdown/order-management/som-product-config-add-characteristics.md). 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 ``` "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 ``` "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 ``` "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 ``` "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. |
| 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. |
| 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**. |
| Link | Contains the following links to navigate through query results.- first - last - next - previous |
| X-Total-Count | For paginated queries, this header specifies the total number of records available on the server. |
| 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. |
| 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 ``` "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 ``` "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 ``` "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: ``` "billingAccount": { "id": "sys_id_billing_account_456", "@type": "BillingAccountRef" } ``` Example creation structure: ``` "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 ``` "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 ``` "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 ``` "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 ``` "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: ``` "payment": { "id": "String" } ``` Creation structure: ``` "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 ``` "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 ``` "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 ``` "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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/brazil/markdown/order-management/som-product-config-add-characteristics.md). 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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/brazil/markdown/order-management/som-product-config-add-characteristics.md). 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 ``` "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 ``` "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 ``` "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 ``` "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 ``` "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: ``` "partyOrPartyRole": { "@type": "PartyRef", "id": "String" } ``` Account creation: ``` "partyOrPartyRole": { "@type": "PartyRef", "id": "String", "accountNumber": "String", "status": "String" } ``` Contact creation: ``` "partyOrPartyRole": { "@type": "PartyRef", "id": "String", "firstName": "String", "lastName": "String", "email": "String" } ``` Location creation: ``` "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 ``` "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: ``` "billingAccount": { "id": "sys_id_billing_account_456", "@type": "BillingAccountRef" } ``` Creation structure: ``` "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 ``` "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 ``` "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 ``` "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 ``` "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 ``` "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 ``` "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 ``` "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 ``` "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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/brazil/markdown/order-management/som-product-config-add-characteristics.md). 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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/brazil/markdown/order-management/som-product-config-add-characteristics.md). 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 ``` "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 ``` "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 ``` "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 ``` "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. |
| 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. |
| 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. |
| 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 ``` "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 ``` "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 ``` "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: ``` "billingAccount": { "id": "sys_id_billing_account_456", "@type": "BillingAccountRef" } ``` Example creation structure: ``` "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 ``` "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 ``` "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 ``` "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 ``` "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: ``` "payment": { "id": "String" } ``` Creation structure: ``` "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 ``` "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 ``` "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 ``` "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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/brazil/markdown/order-management/som-product-config-add-characteristics.md). 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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/brazil/markdown/order-management/som-product-config-add-characteristics.md). 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 ``` "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 ``` "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 ``` "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 ``` "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 ``` "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: ``` "partyOrPartyRole": { "@type": "PartyRef", "id": "String" } ``` Account creation: ``` "partyOrPartyRole": { "@type": "PartyRef", "id": "String", "accountNumber": "String", "status": "String" } ``` Contact creation: ``` "partyOrPartyRole": { "@type": "PartyRef", "id": "String", "firstName": "String", "lastName": "String", "email": "String" } ``` Location creation: ``` "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 ``` "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: ``` "billingAccount": { "id": "sys_id_billing_account_456", "@type": "BillingAccountRef" } ``` Creation structure: ``` "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 ``` "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 ``` "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 ``` "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 ``` "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 ``` "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 ``` "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 ``` "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 ``` "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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/brazil/markdown/order-management/som-product-config-add-characteristics.md). 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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/brazil/markdown/order-management/som-product-config-add-characteristics.md). 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 ``` "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 ``` "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 ``` "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 ``` "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. |
| 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 ``` "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 ``` "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 ``` "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 ``` "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 ``` "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" }] ``` |
| 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.externalProductInventoryId | 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. |
| 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 ``` "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.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 |
| productOrderItem.itemPrice | List that describes the price associated with the product. Data type: Array of Objects ``` "itemPrice": [ { "price": {Object}, "priceType": "String", "recurringChargePeriod": "String" } ] ``` Stored in: sn\_ind\_tmt\_orm\_order Default: empty string |
| productOrderItem.itemPrice | Price associated with the product.``` Data type: Array of Objects ``` ``` "itemPrice": [{ "price": {Object}, "priceType": "String", "recurringChargePeriod": "String" }] ``` |
| productOrderItem.itemPrice.price | Description of the price of the associated product. Data type: Object ``` "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 ``` "price": { "taxIncludedAmount": {Object} } ``` |
| productOrderItem.itemPrice.price.taxIncludedAmount | Description of the price of the associated product, including the tax. Data type: Object ``` "taxIncludedAmount": { "unit": "String", "value": Number } ``` Stored in: sn\_ind\_tmt\_orm\_order\_line\_item |
| productOrderItem.itemPrice.price.taxIncludedAmount | Description of the price of the associated product, including the tax.Data type: Object ``` "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 ``` "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 ``` "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 ``` "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 ``` "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 ``` "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 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 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 ``` "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 ``` "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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/brazil/markdown/order-management/som-product-config-add-characteristics.md). 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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/brazil/markdown/order-management/som-product-config-add-characteristics.md). 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 ``` "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 ``` "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 ``` "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 ``` "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 ``` "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 ``` "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 ``` "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 ``` "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 ``` "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 ``` "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 ``` "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 |
| 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. |
| 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 ``` "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 ``` "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 ``` "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: ``` "billingAccount": { "id": "sys_id_billing_account_456", "@type": "BillingAccountRef" } ``` Example creation structure: ``` "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 ``` "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 ``` "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 ``` "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 ``` "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: ``` "payment": { "id": "String" } ``` Creation structure: ``` "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 ``` "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 ``` "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 ``` "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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/brazil/markdown/order-management/som-product-config-add-characteristics.md). 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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/brazil/markdown/order-management/som-product-config-add-characteristics.md). 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 ``` "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 ``` "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 ``` "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 ``` "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 ``` "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: ``` "partyOrPartyRole": { "@type": "PartyRef", "id": "String" } ``` Account creation: ``` "partyOrPartyRole": { "@type": "PartyRef", "id": "String", "accountNumber": "String", "status": "String" } ``` Contact creation: ``` "partyOrPartyRole": { "@type": "PartyRef", "id": "String", "firstName": "String", "lastName": "String", "email": "String" } ``` Location creation: ``` "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 ``` "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: ``` "billingAccount": { "id": "sys_id_billing_account_456", "@type": "BillingAccountRef" } ``` Creation structure: ``` "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 ``` "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 ``` "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 ``` "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 ``` "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 ``` "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 ``` "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 ``` "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 ``` "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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/brazil/markdown/order-management/som-product-config-add-characteristics.md). 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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/brazil/markdown/order-management/som-product-config-add-characteristics.md). 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 ``` "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 ``` "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 ``` "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 ``` "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. |
| Aspect | V2 | V3 |
|---|---|---|
| Sample payload | ``` "relatedParty": [ { "id": "String", "name": "String", "@referredType": "String", "@type": "String" } ] ``` | ``` "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. |
| 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 |
|---|---|
| @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 ``` "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 ``` "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 ``` "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 ``` "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 ``` "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 ``` "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 ``` "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 ``` "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 ``` "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 ``` "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 ``` "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 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 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 ``` "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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/brazil/markdown/order-management/som-product-config-add-characteristics.md). 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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/brazil/markdown/order-management/som-product-config-add-characteristics.md). 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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/brazil/markdown/api-reference/rest-apis/product-inventory-open-api.md) 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 ``` "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 ``` "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 ``` "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 ``` "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: ``` "relatedParty": [ { "id": "String", "name": "String", "@referredType": "String", "@type": "String" } ] ``` V3 item shape: ``` "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 ``` "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 |
| 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. |
| Name | Description |
|---|---|
| channel | List of channels to use for selling the products. Data type: Array of Objects ``` "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 ``` "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 ``` "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 ``` "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 ``` "itemPrice": [ { "price": {Object}, "priceType": "String", "recurringChargePeriod": "String" } ] ``` |
| productOrderItem.itemPrice.price | Description of the price of the associated product. Data type: Object ``` "price": { "taxIncludedAmount": {Object} } ``` |
| productOrderItem.itemPrice.price.taxIncludeAmount | Description of the price of the associated product, including the tax. Data type: Object ``` "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 ``` "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 ``` "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 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 |
| productOrderItem.product.productCharacteristic | List of characteristics of the associated product. Data type: Array of Objects ``` "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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/brazil/markdown/order-management/som-product-config-add-characteristics.md). 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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/brazil/markdown/order-management/som-product-config-add-characteristics.md). Data type: String |
| productOrderItem.product.productSpecification | Description of the product specification associated with the product. Data type: Object ``` "productSpecification:" { "id": "String", "internalId": "String", "internalVersion": "String", "name": "String", "version": "String", "@type": "String" } ``` |
| 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 ``` "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 ``` "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 ``` "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 ``` "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 |
| Name | Description |
|---|---|
| id | Sys\_id of the customer order to update.Data type: String Table: Customer Order \[sn\_ind\_tmt\_orm\_order\] |
| 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 ``` "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 ``` "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 ``` "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 ``` "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 ``` "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" }] ``` |
| 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.externalProductInventoryId | 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. |
| 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 ``` "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.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 |
| productOrderItem.itemPrice | List that describes the price associated with the product. Data type: Array of Objects ``` "itemPrice": [ { "price": {Object}, "priceType": "String", "recurringChargePeriod": "String" } ] ``` Stored in: sn\_ind\_tmt\_orm\_order Default: empty string |
| productOrderItem.itemPrice | Price associated with the product.``` Data type: Array of Objects ``` ``` "itemPrice": [{ "price": {Object}, "priceType": "String", "recurringChargePeriod": "String" }] ``` |
| productOrderItem.itemPrice.price | Description of the price of the associated product. Data type: Object ``` "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 ``` "price": { "taxIncludedAmount": {Object} } ``` |
| productOrderItem.itemPrice.price.taxIncludedAmount | Description of the price of the associated product, including the tax. Data type: Object ``` "taxIncludedAmount": { "unit": "String", "value": Number } ``` Stored in: sn\_ind\_tmt\_orm\_order\_line\_item |
| productOrderItem.itemPrice.price.taxIncludedAmount | Description of the price of the associated product, including the tax.Data type: Object ``` "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 ``` "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 ``` "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 ``` "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 ``` "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 ``` "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 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 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 ``` "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 ``` "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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/brazil/markdown/order-management/som-product-config-add-characteristics.md). 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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/brazil/markdown/order-management/som-product-config-add-characteristics.md). 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 ``` "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 ``` "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 ``` "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 ``` "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 ``` "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 ``` "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 ``` "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 ``` "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 ``` "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 ``` "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 ``` "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 |
| 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 than**deliver**. |
| Name | Description |
|---|---|
| channel | List of channels to use for selling the products. Data type: Array of Objects ``` "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 ``` "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 ``` "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 ``` "itemPrice": [ { "price": {Object}, "priceType": "String", "recurringChargePeriod": "String" } ] ``` |
| productOrderItem.itemPrice.price | Description of the price of the associated product. Data type: Object ``` "price": { "taxIncludedAmount": {Object} } ``` |
| productOrderItem.itemPrice.price.taxIncludeAmount | Description of the price of the associated product, including the tax. Data type: Object ``` "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 ``` "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 ``` "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 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 |
| productOrderItem.product.productCharacteristic | List of characteristics of the associated product. Data type: Array of Objects ``` "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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/brazil/markdown/order-management/som-product-config-add-characteristics.md). 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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/brazil/markdown/order-management/som-product-config-add-characteristics.md). Data type: String |
| productOrderItem.product.productSpecification | Description of the product specification associated with the product. Data type: Object ``` "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 ``` "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 ``` "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 ``` "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 ``` "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 |
| 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 |
|---|---|
| cancellationReason | Reason for cancellation.Data type: String Default: Blank string |
| productOrder | Contains data about the product order.Data type: Object ``` "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 |
| 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. |
| 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 ``` "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 |
| 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 ``` "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 ``` "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 ``` "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: ``` "billingAccount": { "id": "sys_id_billing_account_456", "@type": "BillingAccountRef" } ``` Example creation structure: ``` "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 ``` "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 ``` "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 ``` "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 ``` "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: ``` "payment": { "id": "String" } ``` Creation structure: ``` "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 ``` "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 ``` "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 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 | Characteristics of the associated product. Data type: Array of Objects ``` "productCharacteristic": [ { "name": "String", "previousValue": "String", "value": "String", "valueType": "String" } ] ``` Stored in: sn\_ind\_tmt\_orm\_order\_characteristic\_value |
| 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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/brazil/markdown/order-management/som-product-config-add-characteristics.md). 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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/brazil/markdown/order-management/som-product-config-add-characteristics.md). 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 ``` "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 ``` "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 ``` "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 ``` "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 ``` "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: ``` "partyOrPartyRole": { "@type": "PartyRef", "id": "String" } ``` Account creation: ``` "partyOrPartyRole": { "@type": "PartyRef", "id": "String", "accountNumber": "String", "status": "String" } ``` Contact creation: ``` "partyOrPartyRole": { "@type": "PartyRef", "id": "String", "firstName": "String", "lastName": "String", "email": "String" } ``` Location creation: ``` "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 |
| 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: |
| 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 ``` "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 ``` "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 ``` "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: ``` "billingAccount": { "id": "sys_id_billing_account_456", "@type": "BillingAccountRef" } ``` Example creation structure: ``` "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 ``` "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 ``` "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 ``` "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 ``` "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: ``` "payment": { "id": "String" } ``` Creation structure: ``` "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 ``` "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 ``` "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 ``` "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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/brazil/markdown/order-management/som-product-config-add-characteristics.md). 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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/brazil/markdown/order-management/som-product-config-add-characteristics.md). 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 ``` "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 ``` "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 ``` "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 ``` "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 ``` "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: ``` "partyOrPartyRole": { "@type": "PartyRef", "id": "String" } ``` Account creation: ``` "partyOrPartyRole": { "@type": "PartyRef", "id": "String", "accountNumber": "String", "status": "String" } ``` Contact creation: ``` "partyOrPartyRole": { "@type": "PartyRef", "id": "String", "firstName": "String", "lastName": "String", "email": "String" } ``` Location creation: ``` "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 ``` "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: ``` "billingAccount": { "id": "sys_id_billing_account_456", "@type": "BillingAccountRef" } ``` Creation structure: ``` "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 ``` "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 ``` "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 ``` "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 ``` "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 ``` "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 ``` "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 ``` "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 ``` "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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/brazil/markdown/order-management/som-product-config-add-characteristics.md). 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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/brazil/markdown/order-management/som-product-config-add-characteristics.md). 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 ``` "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 ``` "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 ``` "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 ``` "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. |
| 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 ``` "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 ``` "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 ``` "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: ``` "billingAccount": { "id": "sys_id_billing_account_456", "@type": "BillingAccountRef" } ``` Example creation structure: ``` "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 ``` "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 ``` "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 ``` "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 ``` "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: ``` "payment": { "id": "String" } ``` Creation structure: ``` "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 ``` "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 ``` "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 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 | Characteristics of the associated product. Data type: Array of Objects ``` "productCharacteristic": [ { "name": "String", "previousValue": "String", "value": "String", "valueType": "String" } ] ``` Stored in: sn\_ind\_tmt\_orm\_order\_characteristic\_value |
| 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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/brazil/markdown/order-management/som-product-config-add-characteristics.md). 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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/brazil/markdown/order-management/som-product-config-add-characteristics.md). 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 ``` "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 ``` "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 ``` "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 ``` "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 ``` "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 ``` "partyOrPartyRole": { "@type": "PartyRef", "id": "String" } ``` Account creation Object structure: ``` "partyOrPartyRole": { "@type": "PartyRef", "id": "String", "accountNumber": "String", "status": "String" } ``` Contact creation Object structure: ``` "partyOrPartyRole": { "@type": "PartyRef", "id": "String", "firstName": "String", "lastName": "String", "email": "String" } ``` Location creation Object structure: ``` "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 |
| 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. |
| 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 ``` "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 ``` "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 ``` "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 ``` "itemPrice": [ { "price": {Object}, "priceType": "String", "recurringChargePeriod": "String" } ] ``` |
| productOrderItem.itemPrice.price | Description of the price of the associated product. Data type: Object ``` "price": { "taxIncludedAmount": {Object} } ``` |
| productOrderItem.itemPrice.price.taxIncludeAmount | Description of the price of the associated product, including the tax. Data type: Object ``` "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 ``` "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 ``` "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 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 |
| productOrderItem.product.productCharacteristic | List of characteristics of the associated product. Data type: Array of Objects ``` "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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/brazil/markdown/order-management/som-product-config-add-characteristics.md). 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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/brazil/markdown/order-management/som-product-config-add-characteristics.md). 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 ``` "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 ``` "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 ``` "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 ``` "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 ``` "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 |