Configuration (POST)

Retrieve and update a product’s configuration from a configurator. Execute configuration rules and notify users of any violations for changes to product bundle, attributes, or product quantity within a bundle. Additionally, get pricing details for the configured bundle.

When you add multiple products, to make sure that the constraint rules engine evaluates all rules, call the Configure API after each individual node addition. This mirrors the incremental pattern in the Product Configurator UI, which calls the Configure API incrementally, one product addition per call, and triggers CML after each addition.

Note

Resource 

1/connect/cpq/configurator/actions/configure

Resource Example 

1https://{yourInstance}.salesforce.com/services/data/v68.0/connect/cpq/configurator/actions/configure

If you’re calling this API from an external website, include the site name in the resource.

1https://{yourInstance}.salesforce.com/<siteName>/services/data/v68.0/connect/cpq/configurator/actions/configure

Available Version 

60.0

HTTP Methods 

POST

Request Body for POST 

JSON Example

This example shows a sample to initiate a context based on a transaction ID.

1{
2    "transactionLineId": "0QLDE000000IBXw4AO",
3    "transactionId": "0Q0xx0000000001GAA",
4    "correlationId": "c95246d4-102c-4ecd-a263-f74ac525d1e5",
5    "configuratorOptions": {
6        "executePricing": true,
7        "returnProductCatalogData": true
8    },
9    "qualificationContext": {
10        "accountId": "001xx0000000001AAA",
11        "contactId": "003xx00000000D7AAI"
12    }
13}

This example shows a sample to add, update, or delete a node in an existing context.

1{
2    "transactionLineId": "0QLDE000000IBXw4AO",
3    "transactionId": "0Q0DE000000ISHJs81",
4    "correlationId": "c95246d4-102c-4ecd-a263-f74ac525d1e5",
5    "configuratorOptions": {
6        "executePricing": true,
7        "returnProductCatalogData": true,
8        "qualifyAllProductsInTransaction": true,
9        "validateProductCatalog": true,
10        "validateAmendRenewCancel": true,
11        "executeConfigurationRules": true,
12        "addDefaultConfiguration": true
13    },
14    "contextResponseType": "Full",
15    "qualificationContext": {
16        "accountId": "001xx0000000001AAA",
17        "contactId": "003xx00000000D7AAI"
18    },
19    "transactionContextId": "008d27d7-e004-4906-a949-ee7d7c323c77",
20    "addedNodes": [
21        {
22            "path": ["0Q0DE000000ISHJs81", "sti2_id"],
23            "addedObject": {
24                "id": "ref_sti2_id",
25                "SalesTransactionSource": "sti2_id",
26                "PricebookEntry": "01uxx0000000001AAA",
27                "ProductSellingModel": "0jPxx0000000001AAA",
28                "businessObjectType": "QuoteLineItem",
29                "Quantity": 10,
30                "UnitPrice": 2.0,
31                "Product": "01txx0000000001AAA"
32            }
33        },
34        {
35            "path": ["0Q0DE000000ISHJs81", "ref_sti2_id","ref_stir1_id"],
36            "addedObject": {
37                "id": "ref_stir1_id",
38                "businessObjectType": "QuoteLineRelationship",
39                "MainItem": "0QLDE000000IBXw4AO",
40                "AssociatedItem": "ref_sti2_id",
41                "ProductRelatedComponent": "0dSxx0000000001AAA",
42                "ProductRelationshipType": "0yoxx0000000001AAA",
43                "AssociatedItemPricing": "IncludedInBundlePrice"
44                
45            }
46        }
47    ],
48    "updatedNodes": [
49        {
50            "path": ["0Q0DE000000ISHJs81", "0QLDE000000IBXw4AO"],
51            "updatedAttributes": {
52                "Quantity": 5
53            }
54        }
55    ],
56    "deletedNodes": [
57        {
58            "path": ["0Q0DE000000ISHJs81", "0QLDE000000IBXw4AO"]
59        }
60    ]
61}

This example adds a node to an existing context and includes the contextFieldsList property.

1{
2  "configuratorInput": {
3    "transactionId": "0Q0xx0000004DEmCAM",
4    "transactionLineId": "ref_a7cdf3fb_d912_4c21_b683_9aadd591ac3c",
5    "transactionContextId": "",
6    "addedNodes": [
7      {
8        "path": [
9          "0Q0xx0000004DEmCAM",
10          "ref_a7cdf3fb_d912_4c21_b683_9aadd591ac3c"
11        ],
12        "addedObject": {
13          "Product": "01txx0000006ip1AAA",
14          "ProductCode": "PB001",
15          "ProductName": "Printer Bundle",
16          "ProductBasedOn": null,
17          "id": "ref_a7cdf3fb_d912_4c21_b683_9aadd591ac3c",
18          "PricebookEntry": "01uxx0000008zXxAAI",
19          "ProductSellingModel": "0jPxx00000000ODEAY",
20          "SellingModelType": "OneTime",
21          "SubscriptionTerm": null,
22          "PricingTermUnit": null,
23          "UnitPrice": 205,
24          "Quantity": 1,
25          "businessObjectType": "QuoteLineItem",
26          "SalesTransactionItemSource": "ref_a7cdf3fb_d912_4c21_b683_9aadd591ac3c",
27          "SalesTransactionItemParent": "0Q0xx0000004DEmCAM",
28          "SalesTransactionItemGroup": null,
29          "ItemRampIdentifier": null,
30          "ItemSegmentIdentifier": null,
31          "EffectiveFrom": null,
32          "EffectiveTo": null,
33          "StartDate": null,
34          "EndDate": null,
35          "ItemSegmentType": null
36        }
37      }
38    ],
39    "updatedNodes": [],
40    "deletedNodes": [],
41    "correlationId": "859100d0_0a78_4203_9cdc_bead3cb243a9",
42    "contextFieldsList": [
43      "SalesTransaction.Account",
44      "SalesTransaction.QuoteAccount",
45      "SalesTransaction.Pricebook",
46      "SalesTransaction.CurrencyIsoCode",
47      "SalesTransaction.SalesTransactionSource",
48      "SalesTransaction.OriginalActionType",
49      "SalesTransaction.Contract",
50      "SalesTransaction.STContractHasCotermination__std",
51      "SalesTransaction.STContractEndDate__std",
52      "SalesTransaction.EffectiveDate",
53      "SalesTransaction.Status",
54      "SalesTransaction.Subtotal",
55      "SalesTransaction.TransactionType",
56      "SalesTransaction.SalesTransactionItem.SalesTransactionItemSource",
57      "SalesTransaction.SalesTransactionItem.Product",
58      "SalesTransaction.SalesTransactionItem.ProductName",
59      "SalesTransaction.SalesTransactionItem.ProductCode",
60      "SalesTransaction.SalesTransactionItem.ProductSellingModel",
61      "SalesTransaction.SalesTransactionItem.PricebookEntry",
62      "SalesTransaction.SalesTransactionItem.SellingModelType",
63      "SalesTransaction.SalesTransactionItem.SubscriptionTerm",
64      "SalesTransaction.SalesTransactionItem.PricingTermUnit",
65      "SalesTransaction.SalesTransactionItem.ProductBasedOn",
66      "SalesTransaction.SalesTransactionItem.CustomProductName",
67      "SalesTransaction.SalesTransactionItem.StartQuantity",
68      "SalesTransaction.SalesTransactionItem.EndQuantity",
69      "SalesTransaction.SalesTransactionItem.Quantity",
70      "SalesTransaction.SalesTransactionItem.StartDate",
71      "SalesTransaction.SalesTransactionItem.EndDate",
72      "SalesTransaction.SalesTransactionItem.UnitPrice",
73      "SalesTransaction.SalesTransactionItem.NetUnitPrice",
74      "SalesTransaction.SalesTransactionItem.NetTotalPrice",
75      "SalesTransaction.SalesTransactionItem.PartnerUnitPrice",
76      "SalesTransaction.SalesTransactionItem.Discount",
77      "SalesTransaction.SalesTransactionItem.ListPrice",
78      "SalesTransaction.SalesTransactionItem.PriceWaterFall",
79      "SalesTransaction.SalesTransactionItem.TotalLineAmount",
80      "SalesTransaction.SalesTransactionItem.Subtotal",
81      "SalesTransaction.SalesTransactionItem.ItemRampIdentifier",
82      "SalesTransaction.SalesTransactionItem.ItemSegmentIdentifier",
83      "SalesTransaction.SalesTransactionItem.ItemSegmentName",
84      "SalesTransaction.SalesTransactionItem.ItemSegmentType",
85      "SalesTransaction.SalesTransactionItem.SalesTransactionAction",
86      "SalesTransaction.SalesTransactionItem.Deleted",
87      "SalesTransaction.SalesTransactionItem.DerivedPricingAttribute",
88      "SalesTransaction.SalesTransactionItem.SalesTransactionSourceAsset",
89      "SalesTransaction.SalesTransactionItem.SalesTransactionItemParent",
90      "SalesTransaction.SalesTransactionItem.SalesTransactionItemGroup",
91      "SalesTransaction.SalesTransactionItem.ItemPath",
92      "SalesTransaction.SalesTransactionItem.LineItemPath",
93      "SalesTransaction.SalesTransactionItem.ItemUnitOfMeasureName",
94      "SalesTransaction.SalesTransactionItem.ItemUnitOfMeasureScale",
95      "SalesTransaction.SalesTransactionItem.ItemUnitOfMeasureRoundingMethod",
96      "SalesTransaction.SalesTransactionItem.BillingFrequency",
97      "SalesTransaction.SalesTransactionItem.UsageModelType",
98      "SalesTransaction.SalesTransactionItem.SalesTransactionItemAttribute.AttributeKey",
99      "SalesTransaction.SalesTransactionItem.SalesTransactionItemAttribute.AttributeValue",
100      "SalesTransaction.SalesTransactionItem.SalesTransactionItemAttribute.AttributeName",
101      "SalesTransaction.SalesTransactionItem.SalesTransactionItemAttribute.AttributePicklistValue",
102      "SalesTransaction.SalesTransactionItem.SalesTransactionItemAttribute.SalesTransactionItemAttrParent",
103      "SalesTransaction.SalesTransactionItem.SalesTransactionItemAttribute.IsPriceImpacting",
104      "SalesTransaction.SalesTransactionItem.SalesTransactionItemAttribute.AttributeUnitOfMeasure",
105      "SalesTransaction.SalesTransactionItem.SalesTransactionItemAttribute.AttributeUnitOfMeasureName",
106      "SalesTransaction.SalesTransactionItem.SalesTrxnItemRelationship.MainItem",
107      "SalesTransaction.SalesTransactionItem.SalesTrxnItemRelationship.AssociatedItem",
108      "SalesTransaction.SalesTransactionItem.SalesTrxnItemRelationship.RootItem",
109      "SalesTransaction.SalesTransactionItem.SalesTrxnItemRelationship.ProductRelatedComponent",
110      "SalesTransaction.SalesTransactionItem.SalesTrxnItemRelationship.ProductRelatedComponentPRT__std",
111      "SalesTransaction.SalesTransactionItem.SalesTrxnItemRelationship.AssociatedQuantScaleMethod",
112      "SalesTransaction.SalesTransactionItem.SalesTrxnItemRelationship.AssociatedItemPricing",
113      "SalesTransaction.SalesTransactionItem.SalesTrxnItemRelationship.ProductRelationshipType",
114      "SalesTransaction.SalesTransactionItem.SalesTrxnItemRelationship.RootItemProduct",
115      "SalesTransaction.SalesTransactionItem.SalesTrxnItemRelationship.RootItemProductCode",
116      "SalesTransaction.SalesTransactionItem.SalesTrxnItemRelationship.RootItemProductSellingModel",
117      "SalesTransaction.SalesTransactionItem.SalesTrxnItemRelationship.MainItemProduct",
118      "SalesTransaction.SalesTransactionItem.SalesTrxnItemRelationship.MainItemProductSellingModel",
119      "SalesTransaction.SalesTransactionItem.SalesTrxnItemRelationship.IsPriceInclusive",
120      "SalesTransaction.SalesTransactionAction.Type",
121      "SalesTransaction.SalesTransactionAction.SourceAsset",
122      "SalesTransaction.SalesTransactionAction.Subtype__std",
123      "SalesTransaction.SalesTransactionGroup.SalesTransactionGroupParent",
124      "SalesTransaction.SalesTransactionGroup.GroupIsRamped__std",
125      "SalesTransaction.SalesTransactionGroup.GroupSortOrder",
126      "SalesTransaction.SalesTransactionGroup.GroupSource",
127      "SalesTransaction.SalesTransactionGroup.SummarySubtotal",
128      "SalesTransaction.SalesTransactionGroup.GroupName",
129      "SalesTransaction.SalesTransactionGroup.GroupStartDate__std",
130      "SalesTransaction.SalesTransactionGroup.GroupEndDate__std",
131      "SalesTransaction.SalesTransactionGroup.ParentSalesTransactionItemGroup__std",
132      "SalesTransaction.SalesTransactionGroup.GroupType",
133      "SalesTransaction.SalesTransactionGroup.SummaryTotalAmount__std"
134    ],
135    "configuratorOptions": {
136      "explainabilityEnabled": false,
137      "executePricing": false,
138      "qualifyAllProductsInTransaction": false,
139      "validateProductCatalog": true,
140      "validateAmendRenewCancel": false,
141      "executeConfigurationRules": true,
142      "returnProductCatalogData": true,
143      "addDefaultConfiguration": true
144    },
145    "contextResponseType": "Product"
146  }
147}

Properties

NameTypeDescriptionRequired or OptionalAvailable Version
added​NodesConfigurator Added Node Input[]List of added context nodes that’s passed to the product configuratorOptional60.0
configurator​OptionsConfigurator Options Input[]Options to pass to the configuratorOptional60.0
context​FieldsListString[]List of fields to return in the configurator responseOptional68.0
context​ResponseTypeStringSpecifies the type of transaction context response. Valid values are Delta—returns only the sales transaction items that are added or updated in the call. Deleted items are returned separately in a DeletedSTIIds collection on the response. The response is always flat regardless of response type; reconstruct hierarchy from SalesTransactionItemParent on child items and MainItem/AssociatedItem on relationships; Full—Returns all sales transaction items in a transaction; None—Returns empty transaction context response; or Product—Returns the sales transaction items related to the product that’s being configured.Required for large sales transactions with more than 1000 line items and less than 15K line items.65.0
correlation​IdStringID that’s specified for traceability of logsOptional60.0
deleted​NodesConfigurator Deleted Node Input[]List of deleted context nodes that’s passed to the product configuratorOptional60.0
qualification​ContextUser Context Input[]Details such as account ID, contact ID, and context ID that are used for executing qualification rulesOptional60.0
transaction​ContextIdStringID of the transaction context. The context expires after 10 minutes by default (managed by Context Service). To extend it, set ContextTtlInMinutes on the Context Definition record. The org-level ceiling is controlled by ContextMaxTtlInMinutes (default: 45 minutes). Design for short-lived sessions: rebuild context on expiry rather than extending TTL indefinitely, because the durable state lives on the persisted transaction record.Optional60.0
transaction​IdStringID of the sales transaction that’s being configured such as a quote or an orderRequired60.0
transaction​LineIdStringID of the top-level line item that’s being configuredOptional60.0
updated​NodesConfigurator Updated Node Input[]List of updated context nodes that’s passed to the product configuratorOptional60.0

Response Body for POST 

Configuration Details