---
schema_version: "1"
id: 0ef7505831b4085ab03b3b421d996782e3e76a53431f9d95b6d81bd563924d81
title: XOMEnhancedSystemInterface
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/ind/264-0-0/comms_t_xomenhancedsysteminterface_235605.md
canonical_url: https://help.salesforce.com/s/articleView?id=ind.comms_t_xomenhancedsysteminterface_235605.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: 0ed4fba0c9c733c2a23be04405c13bbc37d6759f3ddc54778476589d139c0a93
description: This integration adapter works with an orchestration item (a callout) to communicate synchronously with an external system. That is, you don't expect a delay before the external system sends the expected payload.
products:
  - Industry Solutions
  - Cross Cloud
release: "264"
---
# XOMEnhancedSystemInterface

This integration adapter works with an orchestration item (a callout) to communicate synchronously with an external system. That is, you don't expect a delay before the external system sends the expected payload.

## Overview of Capabilities

Capabilities include:

- In the JSON, includes the hierarchy of the order item or FRL. That is, it notes the parents and children of the item.
- Can accept DataRaptors to change the default JSON payload.
- Sends POST requests.
- Processes the response and updates Salesforce records.
- Is extendable.
- Understands standard HTTP response codes:
    
    - Success codes: 200, 201, 202, 203, 204, 205, 206, 302, 304
    - Error codes: 408, 426, 500, 502, 503, 504, 440, 444, 520, 522, 523, 524, 525

## Sample payload

By default, **XOMEnhancedSystemInterface** adapter prepares the following JSON payload, which is logged to the **Request** field of the orchestration item record:

`{     "order_items": [         {             "order_item_id": "a1f3i000000UcNUAA0",             "action": "Add",             "supplemental_action": "",             "specified_by": {                 "specification_name": "Mobile Billing specification",                 "specification_id": "01t3i000001NCngAAG"             },             "described_by": [                 {                     "value": "VLO_MOB_PLAN",                     "characteristic": "Billing code"                 }             ],             "order_items": [                 {                     "described_by": [                         {                             "value": "VLO_SIM",                            "characteristic": "Billing code"                         }                    ],                     "specified_by": {                         "specification_name": "Billing item",                         "specification_id": "01t3i000005LAQKAA4"                     },                     "action": "Add",                     "supplemental_action": "",                    "order_item_id": "a1f3i000000UcNVAA0"                 },                 ...             ]         }     ],     "account_id": "0013i00000OXjoVAAT",     "order_id": "a1g3i000000t1RhAAI",     "responseUri": "/services/apexrest/vlocity_cmt/asyncCallback/a2L3i000000DWUyEAO" }`

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-ind-order_management-264-0-0-production-enus/c2040b01-aade-4ba7-8a7d-d7cd745d5c8c/images/icon_note.png)

Note

A callout can be linked to either a fulfillment request line (FRL) or an order item. For details about why that's the case, see [Orchestration Item Associations to Fulfillment Request Lines and Order Items](https://help.salesforce.com/s/articleView?id=ind.comms_t_orchestration_item_associations_to_fulfillment_request_lines_and_orderitems_231900.htm&release=264.0.0&type=5 "If an orchestration plan definition is associated with a technical product, its orchestration items are associated with a fulfillment request line. If an orchestration plan definition is associated with a commercial product, its orchestration items are associated with an order line item.") .

The payload uses the following parameters:

- Each node within the `order_items` array represents a corresponding fulfillment request line (FRL) or order item.
- `order_item_id` : the Salesforce record ID of the corresponding FR Line or Order Item.
- `action` : The Action field for the corresponding FRL or order item.
- `supplemental_action` : The Supplemental Action field for the corresponding FRL or order item. This name-value pair is sent in the payload even if the Supplemental Action field is empty (that is, even if the order isn't a supplemental order).
- `specified_by` :
    
    - `specification_name` : The name of the corresponding product specification.
    - `specification_id` : The record ID of the corresponding product specification.
- `described_by` : Attribute values for the corresponding FRL or order item, with the following name-value pairs:
    
    - `characteristic` : attribute name
    - `value` : attribute value. By default, empty values aren't included in the payload, but you can change that behavior. See [Configure a Callout to Send Empty Attribute Values](https://help.salesforce.com/s/articleView?id=ind.comms_t_configure_a_callout_to_send_empty_attribute_values_232334.htm&release=264.0.0&type=5 "By default, if an attribute value is empty, then Order Management doesn't send the attribute at all in a callout. It's as if it didn't exist. You can configure a callout to send along attributes and their values, even if those values are empty.")
- `order_items` : An array of child FRLs or order items.
- `account_id` : The account record ID of the order.
- `order_id` : Contains the ID of the corresponding fulfillment request (for callouts that link to FRLs), or the ID of the order (for callouts that link to order items).
- responseURI : This node is used for asynchronous communication, so you can ignore it when configuring `XOMEnhancedSystemInterface`.

## Response Processing

By default, responses are logged in the **Response** field of the FRL or order item. Then the adapter analyzes the response HTTP code, and completes or fails the callout accordingly. You can change where, or if, responses are stored (see [OM Standard: Configure Request and Response Storage in Custom Settings](https://help.salesforce.com/s/articleView?id=ind.comms_t_om_standardconfigure_request_and_response_storage_in_custom_settings_240602.htm&release=264.0.0&type=5 "The OrchestrationItemLog custom setting sets whether and where orchestration item requests and responses are stored. To reduce load on the database, you can set the custom setting to \"BigObject\" or \"Off\", or set a different value to store the information somewhere else.") ).

- If the acknowledgment is one of the expected success codes (200, 201, 202, 203, 204, 205, 206, 302, or 30): OM processes the response.
- If the acknowledgment is one of the expected error codes (408, 426, 500, 502, 503, 504, 440, 444, 520, 522, 523, 524, or 525): The callout moves to the Failed state, and is retried according to the retry policy.
    
    For information about retry policies, see: [Set Up Retry Policies for Failed Callouts](https://help.salesforce.com/s/articleView?id=ind.comms_t_set_up_retry_policies_for_failed_callouts_236868.htm&release=264.0.0&type=5 "You can create policies that control how Order Management retries failed callouts to fulfillment systems. You can design callout so that if it fails to connect to an external system, it retries that connection based on the policy that you set up.").
- If the acknowledgment is any unexpected code: The callout moves to the Fatally Failed state and isn't retried again, regardless of the retry policy.