0% found this document useful (0 votes)
86 views1,718 pages

Revenue Lifecycle Management Dev Guide

The Revenue Cloud Developer Guide, Version 63.0, Spring '25, provides comprehensive resources for developers working with Salesforce's Revenue Cloud. It covers various topics including product catalog management, Salesforce pricing, and rate management, detailing standard objects, business APIs, and metadata types. The guide is designed to assist developers in effectively utilizing the tools and features available within the Revenue Cloud ecosystem.

Uploaded by

koushik.chak2016
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
86 views1,718 pages

Revenue Lifecycle Management Dev Guide

The Revenue Cloud Developer Guide, Version 63.0, Spring '25, provides comprehensive resources for developers working with Salesforce's Revenue Cloud. It covers various topics including product catalog management, Salesforce pricing, and rate management, detailing standard objects, business APIs, and metadata types. The guide is designed to assist developers in effectively utilizing the tools and features available within the Revenue Cloud ecosystem.

Uploaded by

koushik.chak2016
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 1718

Revenue Cloud Developer

Guide
Version 63.0, Spring ’25

Last updated: April 4, 2025


© Copyright 2000–2025 Salesforce, Inc. All rights reserved. Salesforce is a registered trademark of Salesforce, Inc., as are other

names and marks. Other marks appearing herein may be trademarks of their respective owners.
CONTENTS

Chapter 1: Get Started with Revenue Cloud Developer Resources . . . . . . . . . . . . . . . . . 1

Chapter 2: Product Catalog Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4


Product Catalog Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Product Catalog Management Standard Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Product Catalog Management Fields on Standard Objects . . . . . . . . . . . . . . . . . . . . . 54
Product Catalog Management Business APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Product Catalog Management Metadata API Types . . . . . . . . . . . . . . . . . . . . . . . . . 193
Product Catalog Management Tooling API Objects . . . . . . . . . . . . . . . . . . . . . . . . . . 197
Product Discovery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
Product Discovery Business APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
Product Discovery Standard Invocable Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
Product Discovery Metadata API Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300

Chapter 3: Salesforce Pricing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304


Salesforce Pricing Standard Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
AttributeAdjustmentCondition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
AttributeBasedAdjRule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
AttributeBasedAdjustment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
AttributeDefinition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
BundleBasedAdjustment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
CostBook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
ContractItemPrice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
CostBookEntry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
PriceAdjustmentSchedule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
PriceAdjustmentTier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
PriceBook2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
PriceBookEntry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
PriceBookEntryDerivedPrice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
PricingAdjBatchJob . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
PricingAdjBatchJobLog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
PricingAPIExecution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
PricingProcedureResolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
PricingProcessExecution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
ProductPriceHistoryLog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
ProductPriceRange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
ProductSellingModel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374
ProductSellingModelDataTranslation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
ProductSellingModelOption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
Contents

Salesforce Pricing Business APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381


Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
Request Bodies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407
Response Bodies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431
Salesforce Pricing Standard Invocable Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456
Run Salesforce Headless Pricing Action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457
Run Salesforce Pricing Action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
Salesforce Pricing Metadata API Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466
Flow for Salesforce Pricing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466
IndustriesPricingSettings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467
PricingActionParameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469
PricingRecipe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
Salesforce Pricing Tooling API Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476
PricingActionParameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477
PricingProcedureOutputMap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480
PricingRecipe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483
PricingRecipeTableMapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485
ProcedureOutputResolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487
ProcedurePlanCriterion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490
ProcedurePlanDefinition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492
ProcedurePlanDefinitionVersion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495
ProcedurePlanOption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497
ProcedurePlanSection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501
ProcedurePlanVariable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503

Chapter 4: Rate Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505


Rate Management Standard Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506
PriceBookRateCard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506
RateAdjustmentByAttribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508
RateAdjustmentByTier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513
RateCard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518
RateCardEntry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 520
RatingFrequencyPolicy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525
RatingRequest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527
RatingRequestBatchJob . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 530
Rate Management Metadata API Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532
IndustriesRatingSettings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532
Flow for Rate Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534
Rate Management Business APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534
Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534
Response Bodies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536
Rate Management Standard Invocable Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 540
Invoke Rating Service Action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 540
Contents

Chapter 5: Usage Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544


Usage Management Standard Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545
ProductUsageGrant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546
TransactionJournal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 551
TransactionUsageEntitlement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554
UnitOfMeasure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562
UnitOfMeasureClass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565
UsageBillingPeriodItem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 567
UsageEntitlementAccount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573
UsageEntitlementBucket . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 577
UsageEntitlementEntry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580
UsageGrantRenewalPolicy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 585
UsageGrantRolloverPolicy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 587
UsagePrdGrantBindingPolicy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 589
UsageRatableSummary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 591
UsageResource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 597
UsageResourceBillingPolicy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601
UsageSummary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603
Usage Management Standard Invocable Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 608
Invoke Summary Creation Action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 608
Process Consumption Overages Action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 609
Refresh Usage Entitlement Bucket Action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 611
Usage Management Business APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 612
Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613
Response Bodies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 616
Usage Management Metadata API Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 623
Flow for Usage Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 623

Chapter 6: Product Configurator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 625


Product Configurator Standard Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 626
ExpressionSetConstraintObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 626
Product Configuration Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 628
Product Configuration Flow Assignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 629
Product Configuration Rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 631
Product Configurator Business APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 634
Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 636
Request Bodies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 650
Response Bodies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 664

Chapter 7: Transaction Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 734


Quote and Order Capture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 735
Quote and Order Capture Standard Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 735
Quote and Order Capture Fields on Standard Objects . . . . . . . . . . . . . . . . . . . . . . . . 770
Quote and Order Capture Tooling API Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 784
Contents

Quote and Order Capture Platform Event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 786


Quote and Order Capture Business APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 791
Quote and Order Capture Apex Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 872
Quote and Order Capture Standard Invocable Actions . . . . . . . . . . . . . . . . . . . . . . . 1036
Quote and Order Capture Metadata API Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1042
Asset Lifecycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1043
Asset Lifecycle Standard Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1043
Asset Lifecycle Standard Invocable Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1100
Asset Lifecycle Metadata API Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1110
Asset Lifecycle Business APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1111

Chapter 8: Dynamic Revenue Orchestrator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1122


Dynamic Revenue Orchestrator Standard Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1123
AssetFulfillmentDecomp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1125
FulfillmentAsset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1127
FulfillmentAssetAttribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1129
FulfillmentAssetRelationship . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1131
FulfillmentFalloutRule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1133
FulfillmentLineAttribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1136
FulfillmentLineRel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1138
FulfillmentLineSourceRel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1141
FulfillmentOrder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1143
FulfillmentOrderLineItem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1158
FulfillmentPlan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1165
FulfillmentStep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1168
FulfillmentStepDefinition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1179
FulfillmentStepDefinitionGroup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1186
FulfillmentStepDependency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1188
FulfillmentStepDependencyDef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1189
FulfillmentStepJeopardyRule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1191
FulfillmentStepSource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1194
FulfillmentTaskAssignmentRule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1196
FulfillmentWorkspace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1198
FulfillmentWorkspaceItem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1200
Order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1201
OrderAction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1221
ProductDecompEnrichmentRule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1223
ProductFulfillmentDecompRule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1227
ProductFulfillmentScenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1230
SalesTransactionFulfillReq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1232
ValTfrm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1236
ValTfrmGrp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1239
Dynamic Revenue Orchestrator Standard Invocable Actions . . . . . . . . . . . . . . . . . . . . . . . 1242
Submit Order Action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1242
Contents

Submit Sales Transaction Action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1256


Dynamic Revenue Orchestrator Metadata API Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1260
Flow for Dynamic Revenue Orchestrator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1260
DynamicFulfillmentOrchestratorSettings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1261
Callouts in Dynamic Revenue Orchestrator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1263
Configure Callout Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1264
Default Order Fulfillment Provider . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1264
Apex Type Provider . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1265
External Services Defined Provider . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1270

Chapter 9: Billing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1271


Billing Standard Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1272
AccountBillingAccount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1275
AccountingPeriod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1275
BillingAccount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1277
BillingBatchScheduler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1278
BillingBatchFilterCriteria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1285
BillingMilestonePlan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1289
BillingMilestonePlanItem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1291
BillingPeriodItem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1296
BillingPolicy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1300
BillingSchedule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1302
BillingScheduleGroup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1312
BillingTreatment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1321
BillingTreatmentItem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1324
BsgRelationship . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1329
CreditMemo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1332
CreditMemoAddressGroup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1340
CreditMemoInvApplication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1341
CreditMemoLine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1345
CreditMemoLineInvoiceLine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1352
CreditMemoLineTax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1357
GeneralLedgerAccount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1363
GeneralLedgerAcctAsgntRule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1365
InvBatchDraftToPostedRun . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1369
Invoice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1372
InvoiceAddressGroup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1382
InvoiceBatchRun . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1383
InvoiceBatchRunCriteria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1391
InvoiceBatchRunRecovery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1394
InvoiceDocument . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1396
InvoiceLine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1398
InvoiceLineRelationship . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1408
InvoiceLineTax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1412
Contents

LegalEntity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1418
LegalEntyAccountingPeriod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1420
PaymentTerm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1423
PaymentTermItem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1424
RevenueTransactionErrorLog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1427
TaxEngine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1430
TaxEngineProvider . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1434
TaxPolicy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1435
TaxTreatment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1437
TransactionJournal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1440
Billing Platform Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1444
BillingScheduleCreatedEvent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1444
CreditInvoiceProcessedEvent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1448
CreditMemoProcessedEvent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1452
InvoiceProcessedEvent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1455
NegInvcLineProcessedEvent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1460
VoidInvoiceProcessedEvent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1463
Billing Standard Invocable Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1466
Apply Credit Action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1467
Create Billing Schedules From Billing Transaction Action . . . . . . . . . . . . . . . . . . . . . . 1469
Generate Invoice Documents Action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1471
Post Draft Invoice Action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1472
Post Draft Invoice Batch Run Action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1474
Recover Billing Schedules Action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1476
Unapply Credit Action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1477
Billing Business APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1479
Billing Business API Limits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1482
Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1483
Request Bodies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1527
Response Bodies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1592
Billing Apex Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1619
ConnectApi Namespace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1620
TaxEngineAdapter Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1647
Billing Metadata API Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1653
BillingSettings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1654
Flow for Billing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1657

Chapter 10: Revenue Cloud Associated Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . 1658


StandardObjectNameChangeEvent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1659
StandardObjectNameFeed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1661
StandardObjectNameHistory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1668
StandardObjectNameOwnerSharingRule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1670
StandardObjectNameShare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1672
Event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1673
Contents

Task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1694
CHAPTER 1 Get Started with Revenue Cloud Developer
Resources
Get a single, unified system to automate your CRM processes. Use
EDITIONS
the developer sources of Revenue Cloud to automate the backend
work to support the end-to-end revenue solution. Available in: Lightning
Revenue Cloud provides extensible and API-first business Experience
components of the product-to-cash processes. Learn more about
Available in: Enterprise,
the developer resources that are available for these components.
Unlimited, and Developer
Editions
Product Catalog Management
Create and manage an entire product portfolio with components such as attributes, product classifications,
simple and bundled products, and rules.
• Use standard objects and fields to manage products, rules, and catalogs.
• Use business APIs to serve catalog definitions to users or applications.
• Use metadata API types to access and manage the metadata types, such as product specification
type and product specification record types.
• Use tooling API objects to retrieve and manage smaller pieces of metadata types through SOQL
capabilities. Use REST or SOAP to access metadata.
• Use Product Discovery business APIs, which are composite APIs, to search products or to discover
catalogs, products, and categories.

Salesforce Pricing
Create a reliable pricing solution for your users through customized price adjustment schedules. Get
accurate pricing for your entire product portfolio.
• Use standard objects and fields to manage pricing processes such as product management, and the
calculation and application of discounts.
• Use business APIs to get unified pricing experiences across product lines.
• Use invocable actions to invoke the pricing Connect API by providing the pricing, context, and price
waterfall details.
• Use metadata API types to work with the metadata associated with Flows and Salesforce Pricing
settings.

1
Get Started with Revenue Cloud Developer Resources

• Use tooling API objects to retrieve and manage smaller pieces of metadata types through SOQL
capabilities such as pricing action parameters, pricing procedure output map, and pricing recipe
details. Use REST or SOAP to access metadata.

Rate Management
Quote and price products based on predefined rates for future use of the product or service.
• Use standard objects and fields to manage rates and discounts for a product's resource consumption.
• Use metadata API types to work with the metadata associated with Rate Management settings.
• Use business APIs to get details of a rate plan and persisted rating waterfall.
• Use invocable action to invoke the rating service to rate the usage records.

Usage Management
Ensure transparent, accurate, and efficient management of usage data and estimated usage amount.
• Use standard objects and fields to set up and manage consumption of usage-based products.
• Use metadata API types to work with the metadata associated with Usage Management.
• Use business APIs to get details of a usage-based product that’s associated with an asset, an order
item, or a quote line item.
• Use invocable actions to invoke usage summaries, process consumption overages, and refresh usage
entitlements.

Product Configurator
Customize the components and attributes of a product to meet the business requirement expectations.
• Use standard objects to manage product-related information.
• Use the business APIs to retrieve and update a product’s configuration from a configurator or to
access configurator capabilities by integrating with any front-end application.

Quote and Order Capture


Manage subscription lifecycles from quotes and orders to contracts, assets, amendments, and renewals.
• Use standard objects and fields to manage transactions. Use the QuoteSaveEvent platform event to
notify subscribers after saving of a quote is processed.
• Use business APIs to place an order or a quote.
• Use invocable actions to create and activate an order from a quote.
• Use metadata API types to work with the metadata associated with Flows.
• Use built-in Apex classes and interfaces grouped by namespace.

2
Get Started with Revenue Cloud Developer Resources

Asset Lifecycle
Get insights into customer assets and see a consolidated list of all assets that belong to an account.
• Use standard objects to manage details of a customer asset.
• Use invocable actions to create or update an asset from an order or an order item. You can also
initiate amendment, renewal, or cancellation of assets through invocable actions or business APIs.
• Use metadata API types to work with the metadata associated with Flows.

Dynamic Revenue Orchestrator


Get visibility into a product’s fulfillment journey. Also, get a view of the entire fulfillment design processes.
• Use standard objects to manage details of a product’s fulfillment.
• Use invocable actions to submit an order or a sales transaction to Dynamic Revenue Orchestrator
for fulfillment.
• Use metadata API types to work with the metadata associated with Flows.
• Use callout step types to make HTTP calls to an external system.

Billing
Get an integrated and extensible subscription and usage-based billing solution. Automate processes
such as payment processing, invoice generation, and usage-based billing.
• Use standard objects to manage billing and tax configurations, credit memos, and invoices.
• Use platform events types to know more about standard platform events.
• Use invocable actions to manage credit application, billing schedules, and invoices.
• Use business APIs to manage credit application and to handle billing scenarios.
• Use built-in Apex classes to access the same capabilities that are available in the Billing Business
APIs.
• Use metadata API types to work with the metadata associated with Billing settings and Flows.

SEE ALSO:
Business Rules Engine
Context Service
Salesforce Contracts

3
CHAPTER 2 Product Catalog Management
In this chapter ... Create and manage a product catalog with components, such as attributes, product classifications,
simple and bundled products, and rules.
• Product Catalog
Management
• Product Discovery

4
Product Catalog Management Product Catalog Management

Product Catalog Management


Manage an entire product portfolio with components such as attributes, product classifications,
EDITIONS
simple and bundled products, and rules.
Available in: Lightning
Product Catalog Management Standard Objects Experience
The Product Catalog Management data model provides objects and fields to manage products, Available in: Enterprise,
rules, and catalogs. Unlimited, and Developer
Product Catalog Management Fields on Standard Objects Editions of Revenue Cloud
Product Catalog Management adds standard and custom fields to some standard Salesforce
objects. These fields are available only in orgs where Product Catalog Management is enabled.
This object is available in API version 60.0 and later.
Product Catalog Management Business APIs
Use primitive APIs of Product Catalog Management that serve catalog definitions to users or applications.
Product Catalog Management Metadata API Types
Metadata API enables you to access some types and feature settings that you can customize in the user interface.
Product Catalog Management Tooling API Objects
Tooling API exposes metadata used in developer tooling that you can access through REST or SOAP. Tooling API’s SOQL capabilities
for many metadata types allow you to retrieve smaller pieces of metadata.

SEE ALSO:
Salesforce Help: Product Catalog Management Permission Set Licenses
Salesforce Help: User Permissions for Product Catalog Management

Product Catalog Management Standard Objects


The Product Catalog Management data model provides objects and fields to manage products, rules, and catalogs.

AttributeCategory
Represents a logical grouping of attributes that can be reused while defining products. Attribute Categories are used for searching
and managing product attributes. For example, the "Mobile Handset Properties" category has color, storage and make model, and
size attributes. This object is available in API version 60.0 and later.
AttributeCategoryAttribute
Represents a relationship between an attribute category and the attribute definition. This object is available in API version 60.0 and
later.
AttrPicklistExcludedValue
Represents the excluded picklist values for a product classification attribute or a product attribute definition. This object is available
in API version 61.0 and later.
ProductAttributeDefinition
Represents the relationship between a product and its attributes. This object is available in API version 60.0 and later.
ProductCategoryDisqual
Represents disqualification rules for product categories. The rules determine when the product category doesn’t qualify to be
displayed to users. This object is available in API version 60.0 and later.

5
Product Catalog Management Product Catalog Management Standard Objects

ProductCategoryQualification
Represents qualification rules for product categories. The rules determine when the product category qualifies to be displayed to
users. This object is available in API version 60.0 and later.
ProductClassification
Represents a template that holds a collection of dynamic attributes. Product classification is used to quickly define and create multiple
products that are similar yet different. This object is available in API version 60.0 and later.
ProductClassificationAttr
Represents the relationship between a product classification and its attributes. This is the default configuration for products based
on the product classification. This object is available in API version 60.0 and later.
ProductComponentGrpOverride
Represents override information for a Product Component Group. The cardinality of the product component group can be overridden
in the context of a product bundle. This object is available in API version 60.0 and later.
ProductDisqualification
Represents disqualification rules for products. The rules determine when the product doesn’t qualify to be displayed to users. The
rules are based on user context. This object is available in API version 60.0 and later.
ProductQualification
Represents qualification rules for products. The rules determine when the product qualifies to be displayed to users. The rules are
based on user context. This object is available in API version 60.0 and later.
ProductRampSegment
Represents the ramp period within a ramp deal where terms, volumes, and other commitments change over time. This object is
available in API version 62.0 and later.
ProductRelComponentOverride
Represents the cardinality overrides for product components in a bundle. This object is available in API version 60.0 and later.
ProductSpecificationRecType
Represents the relationship between industry-specific product specifications and the product record type. This object is available in
API version 60.0 and later.
ProductSpecificationType
Represents the type of product specification provided by the user to make the product terminology unique to an industry. A product
specification type is associated with a product specification record type. This object is available in API version 60.0 and later.

SEE ALSO:
Object Reference for the Salesforce Platform: Overview of Salesforce Objects and Fields
SOAP API Developer Guide: Introduction to SOAP API

AttributeCategory
Represents a logical grouping of attributes that can be reused while defining products. Attribute Categories are used for searching and
managing product attributes. For example, the "Mobile Handset Properties" category has color, storage and make model, and size
attributes. This object is available in API version 60.0 and later.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), search(), undelete(), update(), upsert()

6
Product Catalog Management Product Catalog Management Standard Objects

Special Access Rules


Product Catalog Management must be enabled to access this object.

Fields

Field Details
Code Type
string
Properties
Create, Filter, Group, idLookup, Nillable, Sort, Update
Description
The unique code for the attribute category. The maximum size is 80 alphanumeric characters.
The code can include the following special characters: @ ! - < > * ? + = % # ( ) / \ & ‘ £ € $ ”.

Description Type
textarea
Properties
Create, Nillable, Update
Description
The description of the attribute category that's used only during design time.

LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The date the attribute category was last referenced.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The date the attribute category was last viewed.

Name Type
string
Properties
Create, Filter, Group, idLookup, Sort, Update
Description
The unique name of the attribute category. The maximum length is 80 characters (of any
type).

7
Product Catalog Management Product Catalog Management Standard Objects

Field Details
OwnerId Type
reference
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
The owner of the attribute category.
This field is a polymorphic relationship field.
Relationship Name
Owner
Relationship Type
Lookup
Refers To
Group, User

Associated Objects
This object has the following associated objects. If the API version isn’t specified, they’re available in the same API versions as this object.
Otherwise, they’re available in the specified API version and later.
AttributeCategoryFeed on page 1661
Feed tracking is available for the object.
AttributeCategoryHistory on page 1668
History is available for tracked fields of the object.
AttributeCategoryShare on page 1672
Sharing is available for the object.

AttributeCategoryAttribute
Represents a relationship between an attribute category and the attribute definition. This object is available in API version 60.0 and later.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), search(), undelete(), update(), upsert()

Special Access Rules


Product Catalog Management must be enabled to access this object.

8
Product Catalog Management Product Catalog Management Standard Objects

Fields

Field Details
AttributeCategoryId Type
reference
Properties
Create, Filter, Group, Sort, Update
Description
The ID of the attribute category that the attribute is associated with. The ID is unique within
the organization.
This field is a relationship field.
Relationship Name
AttributeCategory
Relationship Type
Lookup
Refers To
AttributeCategory

AttributeDefinitionId Type
reference
Properties
Create, Filter, Group, Sort, Update
Description
The ID of the attribute definition associated with the attribute category. The ID is unique
within the organization.
This field is a relationship field.
Relationship Name
AttributeDefinition
Relationship Type
Lookup
Refers To
AttributeDefinition

LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The date the attribute category attribute was last referenced.

LastViewedDate Type
dateTime

9
Product Catalog Management Product Catalog Management Standard Objects

Field Details

Properties
Filter, Nillable, Sort
Description
The date the attribute category attribute was last viewed.

Name Type
string
Properties
Autonumber, Defaulted on create, Filter, idLookup, Sort
Description
A unique name for the attribute. The maximum length is 80 characters (of any type).

OwnerId Type
reference
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
The owner of the attribute category attribute.
This field is a polymorphic relationship field.
Relationship Name
Owner
Relationship Type
Lookup
Refers To
Group, User

Associated Objects
This object has the following associated objects. If the API version isn’t specified, they’re available in the same API versions as this object.
Otherwise, they’re available in the specified API version and later.
AttributeCategoryAttributeFeed on page 1661
Feed tracking is available for the object.
AttributeCategoryAttributeHistory on page 1668
History is available for tracked fields of the object.
AttributeCategoryAttributeShare on page 1672
Sharing is available for the object.

AttrPicklistExcludedValue
Represents the excluded picklist values for a product classification attribute or a product attribute definition. This object is available in
API version 61.0 and later.

10
Product Catalog Management Product Catalog Management Standard Objects

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), search(), undelete(), update(), upsert()

Special Access Rules


Product Catalog Management must be enabled to access this object.

Fields

Field Details
AttributeId Type
reference
Properties
Create, Filter, Group, Sort
Description
The ID of the product classification attribute or the product attribute definition of the picklist
data type.
This field is a polymorphic relationship field.
Relationship Name
Attribute
Relationship Type
Lookup
Refers To
ProductAttributeDefinition, ProductClassificationAttr

AttributePicklistValueId Type
reference
Properties
Create, Filter, Group, Sort
Description
The ID of the attribute picklist value that’s excluded in the product classification attribute or
product attribute definition.
This field is a relationship field.
Relationship Name
AttributePicklistValue
Relationship Type
Lookup
Refers To
AttributePicklistValue

11
Product Catalog Management Product Catalog Management Standard Objects

Field Details
LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The date the excluded attribute picklist value was last referenced.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The date the excluded attribute picklist value was last viewed.

Name Type
string
Properties
Create, Filter, Group, idLookup, Sort, Update
Description
The name of the excluded attribute picklist value.

OwnerId Type
reference
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
The owner of the excluded attribute picklist value.
This field is a polymorphic relationship field.
Relationship Name
Owner
Relationship Type
Lookup
Refers To
Group, User

Associated Objects
This object has the following associated objects. If the API version isn’t specified, they’re available in the same API versions as this object.
Otherwise, they’re available in the specified API version and later.
AttrPicklistExcludedValueFeed on page 1661
Feed tracking is available for the object.

12
Product Catalog Management Product Catalog Management Standard Objects

AttrPicklistExcludedValueHistory on page 1668


History is available for tracked fields of the object.
AttrPicklistExcludedValueShare on page 1672
Sharing is available for the object.

ProductAttributeDefinition
Represents the relationship between a product and its attributes. This object is available in API version 60.0 and later.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), search(), undelete(), update(), upsert()

Special Access Rules


Product Catalog Management must be enabled to access this object.

Fields

Field Details
AttributeCategoryId Type
reference
Properties
Create, Filter, Group, Nillable, Sort
Description
The ID of the attribute category assigned to the parent object.
This field is a relationship field.
Relationship Name
AttributeCategory
Relationship Type
Lookup
Refers To
AttributeCategory

AttributeDefinitionId Type
reference
Properties
Create, Filter, Group, Sort
Description
The ID of the attribute associated with the product.
This field is a relationship field.

13
Product Catalog Management Product Catalog Management Standard Objects

Field Details

Relationship Name
AttributeDefinition
Relationship Type
Lookup
Refers To
AttributeDefinition

AttributeNameOverride Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The name to display for the attribute when shown for this object. This display name overrides
the name on the attribute. For example, the attribute "Color" is overridden to display as
"Laptop Color." The maximum size is 255 alphanumeric characters. The name can include
these special characters: @ ! - < > * ? + = % # ( ) / \ & ‘ £ € $ ”.

DefaultValue Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The default value for the product attribute. The attribute value can be changed. This default
overrides the default value set for a picklist for the attribute.

Description Type
textarea
Properties
Create, Nillable, Update
Description
A description of the attribute definition. The maximum size is 32,000 alphanumeric characters.
The description can include these special characters: @ ! - < > * ? + = % # ( ) / \ & ‘ £ € $ ”.

DisplayType Type
picklist
Properties
Create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
The type to display data for the selected data type.
Possible values are:
• CheckBox—Checkbox

14
Product Catalog Management Product Catalog Management Standard Objects

Field Details
• ComboBox—Combobox
• Date
• Datetime—Date Time
• Number
• RadioButton—Radio Button
• Slider—Available in API version 61.0 and later
• Text
• Toggle

HelpText Type
textarea
Properties
Create, Nillable, Update
Description
The help text to display when end users are configuring this attribute. This field overrides
the help text defined for the attribute itself.

IsHidden Type
boolean
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
Indicates if this product attribute is hidden from end users in the run time (true) or not
(false).
The default value is false.

IsPriceImpacting Type
boolean
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
Indicates whether this attribute dictates the price of a product (true) or not (false).
The default value is false.

IsReadOnly Type
boolean
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
Indicates whether the attribute is read-only for users in the run time (true) or not (false).
The default value is false.

15
Product Catalog Management Product Catalog Management Standard Objects

Field Details
IsRequired Type
boolean
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
Indicates whether this attribute requires a value when assigned to a parent object (true)
or not (false).
The default value is false.

LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The date the product attribute was last referenced.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The date the product attribute was last viewed.

MaximumCharacterCount Type
int
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The maximum number of characters that can be entered for an attribute value.

MaximumValue Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The maximum value that can be entered as an attribute value.

MinimumCharacterCount Type
int
Properties
Create, Filter, Group, Nillable, Sort, Update

16
Product Catalog Management Product Catalog Management Standard Objects

Field Details

Description
The minimum number of characters that can be entered for an attribute value.

MinimumValue Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The minimum value that can be entered as an attribute value.

Name Type
string
Properties
Create, Filter, Group, idLookup, Sort, Update
Description
The name of the product attribute.

OverriddenProductAttributeDefinitionId Type
reference
Properties
Create, Filter, Group, Nillable, Sort
Description
The ID associated with the overridden product attribute definition.
This field is a relationship field.
Relationship Name
OverriddenProductAttributeDefinition
Relationship Type
Lookup
Refers To
ProductAttributeDefinition

OverrideContextId Type
reference
Properties
Create, Filter, Group, Nillable, Sort
Description
The ID associated with the root product record in a bundle.
This field is a polymorphic relationship field.
Relationship Name
OverrideContext

17
Product Catalog Management Product Catalog Management Standard Objects

Field Details

Relationship Type
Lookup
Refers To
Product2

OwnerId Type
reference
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
The owner of the product attribute definition.
This field is a polymorphic relationship field.
Relationship Name
Owner
Relationship Type
Lookup
Refers To
Group, User

Product2Id Type
reference
Properties
Create, Filter, Group, Sort
Description
The product ID associated with the product attribute definition.
This field is a relationship field.
Relationship Name
Product2
Relationship Type
Lookup
Refers To
Product2

ProductClassificationAttributeId Type
reference
Properties
Create, Filter, Group, Sort
Description
The ID of the attribute assigned to the product classification.
This field is a relationship field.

18
Product Catalog Management Product Catalog Management Standard Objects

Field Details

Relationship Name
ProductClassificationAttribute
Relationship Type
Lookup
Refers To
ProductClassificationAttr

Sequence Type
int
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The display sequence of the attribute when configuring the product during run time.

Status Type
picklist
Properties
Create, Defaulted on create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
The lifecycle state of the product attribute definition.
Valid values are:
• Active
• Draft
• Inactive
The default value is Draft.

StepValue Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The increment or decrement by which a slider's value changes as the user adjusts the product
attribute value. Available in API version 61.0 and later.

ValueDescription Type
textarea
Properties
Create, Nillable, Update
Description
The description of the value assigned to this attribute. This field takes on the value description
from the attribute definition.

19
Product Catalog Management Product Catalog Management Standard Objects

Associated Objects
This object has the following associated objects. If the API version isn’t specified, they’re available in the same API versions as this object.
Otherwise, they’re available in the specified API version and later.
ProductAttributeDefinitionFeed on page 1661
Feed tracking is available for the object.
ProductAttributeDefinitionHistory on page 1668
History is available for tracked fields of the object.
ProductAttributeDefinitionShare on page 1672
Sharing is available for the object.

ProductCategoryDisqual
Represents disqualification rules for product categories. The rules determine when the product category doesn’t qualify to be displayed
to users. This object is available in API version 60.0 and later.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), search(), undelete(), update(), upsert()

Special Access Rules


Product Catalog Management must be enabled to access this object.

Fields

Field Details
CategoryId Type
reference
Properties
Create, Filter, Group, Sort, Update
Description
The product category associated with the product disqualification record.
This field is a relationship field.
Relationship Name
Category
Relationship Type
Lookup
Refers To
ProductCategory

EffectiveFromDate Type
date

20
Product Catalog Management Product Catalog Management Standard Objects

Field Details

Properties
Create, Filter, Group, Sort, Update
Description
The date from which the disqualification rule for the product category comes into effect.

EffectiveToDate Type
date
Properties
Create, Filter, Group, Sort, Update
Description
The date to which the disqualification rule for the product category ceases to be in effect.

IsDisqualified Type
boolean
Properties
Defaulted on create, Filter, Group, Sort
Description
Indicates whether the product category is disqualified (true) or not (false) based on the
disqualification rules.
The default value is false.

LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The date the product category disqualification record was last referenced.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The date the product category disqualification record was last viewed.

Name Type
string
Properties
Autonumber, Defaulted on create, Filter, idLookup, Sort
Description
The name of the product category disqualification record.

21
Product Catalog Management Product Catalog Management Standard Objects

Field Details
OwnerId Type
reference
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
The ID of the owner of the product category disqualification record.
This field is a polymorphic relationship field.
Relationship Name
Owner
Relationship Type
Lookup
Refers To
Group, User

Reason Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The reason to disqualify the product category.

Associated Objects
This object has the following associated objects. If the API version isn’t specified, they’re available in the same API versions as this object.
Otherwise, they’re available in the specified API version and later.
ProductCategoryDisqualFeed on page 1661
Feed tracking is available for the object.
ProductCategoryDisqualHistory on page 1668
History is available for tracked fields of the object.
ProductCategoryDisqualShare on page 1672
Sharing is available for the object.

ProductCategoryQualification
Represents qualification rules for product categories. The rules determine when the product category qualifies to be displayed to users.
This object is available in API version 60.0 and later.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), search(), undelete(), update(), upsert()

22
Product Catalog Management Product Catalog Management Standard Objects

Special Access Rules


Product Catalog Management must be enabled to access this object.

Fields

Field Details
CategoryId Type
reference
Properties
Create, Filter, Group, Sort, Update
Description
The product category associated with the category qualification record.
This field is a relationship field.
Relationship Name
Category
Relationship Type
Lookup
Refers To
ProductCategory

EffectiveFromDate Type
date
Properties
Create, Filter, Group, Sort, Update
Description
The date from which the qualification rule for the product category comes into effect.

EffectiveToDate Type
date
Properties
Create, Filter, Group, Sort, Update
Description
The date to which the qualification rule for the product category ceases to be in effect.

IsQualified Type
boolean
Properties
Defaulted on create, Filter, Group, Sort
Description
Indicates whether the product category is qualified (true) or not (false) based on the
qualification rules.
The default value is false.

23
Product Catalog Management Product Catalog Management Standard Objects

Field Details
LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The date the product category qualification record was last referenced.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The date the product category qualification record was last viewed.

Name Type
string
Properties
Autonumber, Defaulted on create, Filter, idLookup, Sort
Description
The name of the product category qualification record.

OwnerId Type
reference
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
The ID of the owner of the product category qualification record.
This field is a polymorphic relationship field.
Relationship Name
Owner
Relationship Type
Lookup
Refers To
Group, User

Associated Objects
This object has the following associated objects. If the API version isn’t specified, they’re available in the same API versions as this object.
Otherwise, they’re available in the specified API version and later.
ProductCategoryQualificationFeed on page 1661
Feed tracking is available for the object.

24
Product Catalog Management Product Catalog Management Standard Objects

ProductCategoryQualificationHistory on page 1668


History is available for tracked fields of the object.
ProductCategoryQualificationShare on page 1672
Sharing is available for the object.

ProductClassification
Represents a template that holds a collection of dynamic attributes. Product classification is used to quickly define and create multiple
products that are similar yet different. This object is available in API version 60.0 and later.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), search(), undelete(), update(), upsert()

Special Access Rules


Product Catalog Management must be enabled to access this object.

Fields

Field Details
Code Type
string
Properties
Create, Filter, Group, idLookup, Sort, Update
Description
A unique code for the product classification. The maximum size is 80 alphanumeric characters.
The code can include the following special characters: @ ! - < > * ? + = % # ( ) / \ & ‘ £ € $ ”.

LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The date the product classification record was last referenced.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The date the product classification record was last viewed.

25
Product Catalog Management Product Catalog Management Standard Objects

Field Details
Name Type
string
Properties
Create, Filter, Group, idLookup, Sort, Update
Description
The name of the product classification. The maximum length is 80 characters (of any type).

OwnerId Type
reference
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
The owner of the product classification.
This field is a polymorphic relationship field.
Relationship Name
Owner
Relationship Type
Lookup
Refers To
Group, User

Status Type
picklist
Properties
Create, Defaulted on create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
The lifecycle status of the product classification.
Possible values are:
• Active
• Draft
• Inactive
The default value is Draft.

Associated Objects
This object has the following associated objects. If the API version isn’t specified, they’re available in the same API versions as this object.
Otherwise, they’re available in the specified API version and later.
ProductClassificationFeed on page 1661
Feed tracking is available for the object.

26
Product Catalog Management Product Catalog Management Standard Objects

ProductClassificationHistory on page 1668


History is available for tracked fields of the object.
Sharing rules are available for the object.
ProductClassificationShare on page 1672
Sharing is available for the object.

ProductClassificationAttr
Represents the relationship between a product classification and its attributes. This is the default configuration for products based on
the product classification. This object is available in API version 60.0 and later.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), search(), undelete(), update(), upsert()

Special Access Rules


Product Catalog Management must be enabled to access this object.

Fields

Field Details
AttributeCategoryId Type
reference
Properties
Create, Filter, Group, Nillable, Sort
Description
The ID of the attribute category assigned to the parent object.
This field is a relationship field.
Relationship Name
AttributeCategory
Relationship Type
Lookup
Refers To
AttributeCategory

AttributeDefinitionId Type
reference
Properties
Create, Filter, Group, Sort
Description
The ID of the attribute assigned to the parent object.

27
Product Catalog Management Product Catalog Management Standard Objects

Field Details
This field is a relationship field.
Relationship Name
AttributeDefinition
Relationship Type
Lookup
Refers To
AttributeDefinition

AttributeNameOverride Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The overridden attribute name to display for the attribute when shown for this object. For
example, "Color" overridden to "Laptop Color."

DefaultValue Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The default value of the attribute for a product based on the product classification. This value
can be changed.

Description Type
textarea
Properties
Create, Nillable, Update
Description
The description of this product classification attribute definition.

DisplayType Type
picklist
Properties
Create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
The type to display data for the selected data type.
Valid values are:
• CheckBox—Checkbox
• ComboBox—Combobox
• Date

28
Product Catalog Management Product Catalog Management Standard Objects

Field Details
• Datetime—Date Time
• Number
• RadioButton—Radio Button
• Slider—Available in API version 61.0 and later
• Text
• Toggle

ExcludedPicklistValues Type
textarea
Properties
Create, Nillable, Update
Description
The picklist values excluded from the attribute picklist. This field ensures that the product
classification attribute only has valid values.

HelpText Type
textarea
Properties
Create, Nillable, Update
Description
The help text to display when end users are configuring this attribute. This field overrides
the help text defined for the attribute itself.

IsHidden Type
boolean
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
Indicates if this product attribute is hidden from end users in the run time (true) or not
(false).
The default value is false.

IsPriceImpacting Type
boolean
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
Indicates whether this attribute dictates the price of a product (true) or not (false).
The default value is false.

29
Product Catalog Management Product Catalog Management Standard Objects

Field Details
IsReadOnly Type
boolean
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
Indicates whether the attribute is read-only for users in the run time (true) or not (false).
The default value is false.

IsRequired Type
boolean
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
Indicates whether this attribute requires a value when assigned to a parent object (true)
or not (false).
The default value is false.

LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The date the product classification attribute was last referenced.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The date the product classification attribute was last viewed.

MaximumCharacterCount Type
int
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The maximum number of characters that can be entered for an attribute value.

MaximumValue Type
string

30
Product Catalog Management Product Catalog Management Standard Objects

Field Details

Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The maximum value that can be entered as an attribute value.

MinimumCharacterCount Type
int
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The minimum number of characters that can be entered for an attribute value.

MinimumValue Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The minimum value that can be entered as an attribute value.

Name Type
string
Properties
Create, Filter, Group, idLookup, Sort, Update
Description
The name of the product classification attribute.

OwnerId Type
reference
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
The ID of the product classification attribute owner.
This field is a polymorphic relationship field.
Relationship Name
Owner
Relationship Type
Lookup
Refers To
Group, User

31
Product Catalog Management Product Catalog Management Standard Objects

Field Details
ProductClassificationId Type
reference
Properties
Create, Filter, Group, Sort
Description
The ID of the product classification that the attribute is associated with. This field is unique
within your organization.
This field is a relationship field.
Relationship Name
ProductClassification
Relationship Type
Lookup
Refers To
ProductClassification

Sequence Type
int
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The display sequence of the attribute when configuring the product during run time.

Status Type
picklist
Properties
Create, Defaulted on create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
The lifecycle status of the product classification attribute.
Valid values are:
• Active
• Draft
• Inactive
The default value is Draft.

StepValue Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update

32
Product Catalog Management Product Catalog Management Standard Objects

Field Details

Description
The increment or decrement by which a slider's value changes as the user adjusts the product
classification attribute value. Available in API version 61.0 and later.

ValueDescription Type
textarea
Properties
Create, Nillable, Update
Description
The description of the value assigned to this attribute. This field takes on the value description
from the attribute definition.

Associated Objects
This object has the following associated objects. If the API version isn’t specified, they’re available in the same API versions as this object.
Otherwise, they’re available in the specified API version and later.
ProductClassificationAttrFeed on page 1661
Feed tracking is available for the object.
ProductClassificationAttrHistory on page 1668
History is available for tracked fields of the object.
Sharing rules are available for the object.
ProductClassificationAttrShare on page 1672
Sharing is available for the object.

ProductComponentGrpOverride
Represents override information for a Product Component Group. The cardinality of the product component group can be overridden
in the context of a product bundle. This object is available in API version 60.0 and later.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), undelete(), update(), upsert()

Special Access Rules


Product Catalog Management must be enabled to access this object.

33
Product Catalog Management Product Catalog Management Standard Objects

Fields

Field Details
IsExcluded Type
boolean
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
Indicates whether the product component group is excluded from the product bundle in
the runtime. Excluding a group automatically excludes all child components of the group.
The default value is false.

LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The date the product component override record was last referenced.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The date the product component override record was last viewed.

MaxBundleComponents Type
int
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The maximum number of components that can be added to a group.

MinBundleComponents Type
int
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The minimum number of components that must be added to a group.

Name Type
string

34
Product Catalog Management Product Catalog Management Standard Objects

Field Details

Properties
Autonumber, Defaulted on create, Filter, idLookup, Sort
Description
The name of the overridden product component group.

OverrideContextId Type
reference
Properties
Create, Filter, Group, Sort
Description
The root bundle product in whose context the group cardinality is overridden.
This field is a polymorphic relationship field.
Relationship Name
OverrideContext
Relationship Type
Lookup
Refers To
Product2

OwnerId Type
reference
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
The owner of the product component group override record.
This field is a polymorphic relationship field.
Relationship Name
Owner
Relationship Type
Lookup
Refers To
Group, User

ProductComponentGroupId Type
reference
Properties
Create, Filter, Group, Sort
Description
The ID of the product component group record.
This field is a relationship field.

35
Product Catalog Management Product Catalog Management Standard Objects

Field Details

Relationship Name
ProductComponentGroup
Relationship Type
Lookup
Refers To
ProductComponentGroup

ProductDisqualification
Represents disqualification rules for products. The rules determine when the product doesn’t qualify to be displayed to users. The rules
are based on user context. This object is available in API version 60.0 and later.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), search(), undelete(), update(), upsert()

Special Access Rules


Product Catalog Management must be enabled to access this object.

Fields

Field Details
EffectiveFromDate Type
date
Properties
Create, Filter, Group, Sort, Update
Description
The date from which the disqualification rule for the product comes into effect.

EffectiveToDate Type
date
Properties
Create, Filter, Group, Sort, Update
Description
The date to which the disqualification rule for the product ceases to be in effect.

IsDisqualified Type
boolean

36
Product Catalog Management Product Catalog Management Standard Objects

Field Details

Properties
Defaulted on create, Filter, Group, Sort
Description
Indicates whether the product is disqualified based on the disqualification rules (true) or
not (false).
The default value is false.

LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The date the product disqualification record was last referenced.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The date the product disqualification record was last viewed.

Name Type
string
Properties
Autonumber, Defaulted on create, Filter, idLookup, Sort
Description
The name of the product disqualification record.

OwnerId Type
reference
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
The owner of the product disqualification record.
This field is a polymorphic relationship field.
Relationship Name
Owner
Relationship Type
Lookup
Refers To
Group, User

37
Product Catalog Management Product Catalog Management Standard Objects

Field Details
ParentProductId Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The ID of the immediate parent product in the product bundle hierarchy.
This field is a relationship field.
Relationship Name
ParentProduct
Relationship Type
Lookup
Refers To
Product2

ProductId Type
reference
Properties
Create, Filter, Group, Sort, Update
Description
The product for which the disqualification rule is defined.
This field is a relationship field.
Relationship Name
Product
Relationship Type
Lookup
Refers To
Product2

Reason Type
textarea
Properties
Create, Nillable, Update
Description
The reason to disqualify the product.

RootProductId Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The ID of the root product in the product bundle hierarchy.

38
Product Catalog Management Product Catalog Management Standard Objects

Field Details
This field is a relationship field.
Relationship Name
RootProduct
Relationship Type
Lookup
Refers To
Product2

Associated Objects
This object has the following associated objects. If the API version isn’t specified, they’re available in the same API versions as this object.
Otherwise, they’re available in the specified API version and later.
ProductDisqualificationFeed on page 1661
Feed tracking is available for the object.
ProductDisqualificationHistory on page 1668
History is available for tracked fields of the object.
ProductDisqualificationShare on page 1672
Sharing is available for the object.

ProductQualification
Represents qualification rules for products. The rules determine when the product qualifies to be displayed to users. The rules are based
on user context. This object is available in API version 60.0 and later.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), search(), undelete(), update(), upsert()

Special Access Rules


Product Catalog Management must be enabled to access this object.

Fields

Field Details
EffectiveFromDate Type
date
Properties
Create, Filter, Group, Sort, Update
Description
The date from which the qualification rule for the product comes into effect.

39
Product Catalog Management Product Catalog Management Standard Objects

Field Details
EffectiveToDate Type
date
Properties
Create, Filter, Group, Sort, Update
Description
The date to which the qualification rule for the product ceases to be in effect.

IsQualified Type
boolean
Properties
Defaulted on create, Filter, Group, Sort
Description
Indicates whether the product is qualified based on the qualification rules (true) or not
(false). For a product to qualify, this field should be true.
The default value is false.

LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The date the product qualification record was last referenced.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The date the product qualification record was last viewed.

Name Type
string
Properties
Autonumber, Defaulted on create, Filter, idLookup, Sort
Description
The name of the product qualification record.

OwnerId Type
reference
Properties
Create, Defaulted on create, Filter, Group, Sort, Update

40
Product Catalog Management Product Catalog Management Standard Objects

Field Details

Description
The owner of the product qualification record.
This field is a polymorphic relationship field.
Relationship Name
Owner
Relationship Type
Lookup
Refers To
Group, User

ParentProductId Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The ID of the immediate parent product in the product bundle hierarchy.
This field is a relationship field.
Relationship Name
ParentProduct
Relationship Type
Lookup
Refers To
Product2

ProductId Type
reference
Properties
Create, Filter, Group, Sort, Update
Description
The product for which the qualification rule is defined.
This field is a relationship field.
Relationship Name
Product
Relationship Type
Lookup
Refers To
Product2

RootProductId Type
reference

41
Product Catalog Management Product Catalog Management Standard Objects

Field Details

Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The ID of the root product in the product bundle hierarchy.
This field is a relationship field.
Relationship Name
RootProduct
Relationship Type
Lookup
Refers To
Product2

Associated Objects
This object has the following associated objects. If the API version isn’t specified, they’re available in the same API versions as this object.
Otherwise, they’re available in the specified API version and later.
ProductQualificationFeed on page 1661
Feed tracking is available for the object.
ProductQualificationHistory on page 1668
History is available for tracked fields of the object.
ProductQualificationShare on page 1672
Sharing is available for the object.

ProductRampSegment
Represents the ramp period within a ramp deal where terms, volumes, and other commitments change over time. This object is available
in API version 62.0 and later.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), search(), undelete(), update(), upsert()

Special Access Rules


Product Catalog Management must be enabled to access this object.

Fields

Field Details
DurationType Type
picklist

42
Product Catalog Management Product Catalog Management Standard Objects

Field Details

Properties
Create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
The unit of time within which users can try the product for free.
Valid values are:
• Days
• Months

LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The date the product ramp segment was last referenced.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The date the product ramp segment was last viewed.

Name Type
string
Properties
Autonumber, Defaulted on create, Filter, idLookup, Sort
Description
The name of the product ramp segment.

OwnerId Type
reference
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
The ID of the owner of the product ramp segment.
This field is a polymorphic relationship field.
Relationship Name
Owner
Refers To
Group, User

43
Product Catalog Management Product Catalog Management Standard Objects

Field Details
ProductId Type
reference
Properties
Create, Filter, Group, Sort
Description
The ID of the product associated with the product ramp segment.
This field is a relationship field.
Relationship Name
Product
Refers To
Product2

ProductSellingModelId Type
reference
Properties
Create, Filter, Group, Sort
Description
The ID of the product selling model associated with the product ramp segment.
This field is a relationship field.
Relationship Name
ProductSellingModel
Refers To
ProductSellingModel

SegmentType Type
picklist
Properties
Create, Defaulted on create, Filter, Group, Restricted picklist, Sort, Update
Description
The time duration within the ramp deal where specific terms, volumes, and commitments
are applied to the subscription product.
Valid values are:
• Custom
• FreeTrial
• Yearly
The default value is Yearly.

TrialDuration Type
int

44
Product Catalog Management Product Catalog Management Standard Objects

Field Details

Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The duration within which users can try the product for free.

Associated Objects
This object has the following associated objects. If the API version isn’t specified, they’re available in the same API versions as this object.
Otherwise, they’re available in the specified API version and later.
ProductRampSegmentFeed on page 1661
Feed tracking is available for the object.
ProductRampSegmentHistory on page 1668
History is available for tracked fields of the object.
ProductRampSegmentShare on page 1672
Sharing is available for the object.

ProductRelComponentOverride
Represents the cardinality overrides for product components in a bundle. This object is available in API version 60.0 and later.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), search(), undelete(), update(), upsert()

Special Access Rules


Product Catalog Management must be enabled to access this object.

Fields

Field Details
DoesBundlePriceIncludeChild Type
boolean
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
Indicates whether the bundle price includes the associated child component's price (true)
or not (false).
The default value is false.

45
Product Catalog Management Product Catalog Management Standard Objects

Field Details
IsComponentRequired Type
boolean
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
Indicates whether the component is a required component in the product bundle.
The default value is false.

IsDefaultComponent Type
boolean
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
Indicates whether this component is included in the product component group by default.
The default value is false.

IsExcluded Type
boolean
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
Indicates whether the bundle excludes the component (true) or not (false).
The default value is false.

IsQuantityEditable Type
boolean
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
Indicates whether the product component quantity can be edited (true) or not (false).
The default value is false.

LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The date the product related component override record was last referenced.

LastViewedDate Type
dateTime

46
Product Catalog Management Product Catalog Management Standard Objects

Field Details

Properties
Filter, Nillable, Sort
Description
The date the product related component override record was last viewed.

MaxQuantity Type
double
Properties
Create, Filter, Nillable, Sort, Update
Description
The maximum quantity for the product component in the product bundle.

MinQuantity Type
double
Properties
Create, Filter, Nillable, Sort, Update
Description
The minimum quantity for the product component in the product bundle

Name Type
string
Properties
Autonumber, Defaulted on create, Filter, idLookup, Sort
Description
The name of the product related component override. The maximum length is 255 characters
(of any type).

OverrideContextId Type
reference
Properties
Create, Filter, Group, Sort
Description
The ID associated with the root product in a bundle.
This field is a polymorphic relationship field.
Relationship Name
OverrideContext
Relationship Type
Lookup
Refers To
Product2

47
Product Catalog Management Product Catalog Management Standard Objects

Field Details
OwnerId Type
reference
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
The owner ID of the product related component override record.
This field is a polymorphic relationship field.
Relationship Name
Owner
Relationship Type
Lookup
Refers To
Group, User

ProductRelatedComponentId Type
reference
Properties
Create, Filter, Group, Sort
Description
The ID associated with the product related component record.
This field is a relationship field.
Relationship Name
ProductRelatedComponent
Relationship Type
Lookup
Refers To
ProductRelatedComponent

Quantity Type
double
Properties
Create, Filter, Nillable, Sort, Update
Description
The default number of child product related components.

QuantityScaleMethod Type
picklist
Properties
Create, Defaulted on create, Filter, Group, Nillable, Restricted picklist, Sort, Update

48
Product Catalog Management Product Catalog Management Standard Objects

Field Details

Description
The scaling method that determines how the child product quantity changes as the quantity
of the parent product changes in the runtime cart.
Possible values are:
• Constant
• Proportional
The default value is Proportional.

Associated Objects
This object has the following associated objects. If the API version isn’t specified, they’re available in the same API versions as this object.
Otherwise, they’re available in the specified API version and later.
ProductRelComponentOverrideFeed on page 1661
Feed tracking is available for the object.
ProductRelComponentOverrideHistory on page 1668
History is available for tracked fields of the object.
ProductRelComponentOverrideShare on page 1672
Sharing is available for the object.

ProductSpecificationRecType
Represents the relationship between industry-specific product specifications and the product record type. This object is available in API
version 60.0 and later.

Supported Calls
create(), delete(), describeSObjects(), query(), retrieve(), update(), upsert()

Special Access Rules


Product Catalog Management must be enabled to access this object.

Fields

Field Details
DeveloperName Type
string
Properties
Create, Filter, Group, Sort, Update
Description
The unique name of the ProductSpecificationRecType object in the API. The name:

49
Product Catalog Management Product Catalog Management Standard Objects

Field Details
• must be 40 characters or fewer.
• can contain only underscores and alphanumeric characters.
• must begin with a letter.
• can contain only underscores and alphanumeric characters.
• can’t include spaces
• can’t end with an underscore
• can’t contain 2 consecutive underscores

IsCommercial Type
boolean
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
Indicates whether the product is sold commercially (true) or not (false)

Language Type
picklist
Properties
Create, Defaulted on create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
The combined language and locale ISO code, which controls the language of the Product
Specification Record Type.
Possible values are:
• da—Danish
• de—German
• en_US—English
• es—Spanish
• es_MX—Spanish (Mexico)
• fi—Finnish
• fr—French
• it—Italian
• ja—Japanese
• ko—Korean
• nl_NL—Dutch
• no—Norwegian
• pt_BR—Portuguese (Brazil)
• ru—Russian
• sv—Swedish
• th—Thai

50
Product Catalog Management Product Catalog Management Standard Objects

Field Details
• zh_CN—Chinese (Simplified)
• zh_TW—Chinese (Traditional)

MasterLabel Type
string
Properties
Create, Filter, Group, Sort, Update
Description
Label for this Product Specification Record Type value. This display value is the internal label
that doesn't get translated.

NamespacePrefix Type
string
Properties
Filter, Group, Nillable, Sort
Description
The namespace prefix that is associated with this object. Each Developer Edition org that
creates a managed package has a unique namespace prefix. Limit: 15 characters. You can
refer to a component in a managed package by using the
namespacePrefix_componentName
The namespace prefix can have one of the following values.
• In Developer Edition orgs, NamespacePrefix is set to the namespace prefix of the
org for all objects that support it, unless an object is in an installed managed package.
In that case, the object has the namespace prefix of the installed managed package. This
field’s value is the namespace prefix of the Developer Edition org of the package
developer.
• In orgs that aren’t Developer Edition orgs, NamespacePrefix is set only for objects
that are part of an installed managed package. All other objects have no namespace
prefix.

ProductSpecificationType Type
picklist
Properties
Create, Filter, Group, Restricted picklist, Sort, Update
Description
The product specification type that's associated with the record type.

RecordTypeId Type
reference
Properties
Create, Filter, Group, Sort, Update

51
Product Catalog Management Product Catalog Management Standard Objects

Field Details

Description
The ID of the record type that's associated with the product specification type.
This field is a relationship field.
Relationship Name
RecordType
Relationship Type
Lookup
Refers To
RecordType

ProductSpecificationType
Represents the type of product specification provided by the user to make the product terminology unique to an industry. A product
specification type is associated with a product specification record type. This object is available in API version 60.0 and later.

Supported Calls
create(), delete(), describeSObjects(), query(), retrieve(), update(), upsert()

Special Access Rules


Product Catalog Management must be enabled to access this object.

Fields

Field Details
Description Type
textarea
Properties
Create, Nillable, Update
Description
The description of the Product Specification Type.

DeveloperName Type
string
Properties
Create, Filter, Group, Sort, Update
Description
The unique name of the Product Specification Type object in the API. The name:
• must be 40 characters or fewer.
• can contain only underscores and alphanumeric characters.

52
Product Catalog Management Product Catalog Management Standard Objects

Field Details
• must begin with a letter.
• can contain only underscores and alphanumeric characters.
• can’t include spaces
• can’t end with an underscore
• can’t contain 2 consecutive underscores
In managed packages, this field prevents naming conflicts on package installations. With
this field, a developer can change the object’s name in a managed package and the changes
are reflected in a subscriber’s organization.

Language Type
picklist
Properties
Create, Defaulted on create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
The combined language and locale ISO code, which controls the language of the Product
Specification Type.
Possible values are:
• da—Danish
• de—German
• en_US—English
• es—Spanish
• es_MX—Spanish (Mexico)
• fi—Finnish
• fr—French
• it—Italian
• ja—Japanese
• ko—Korean
• nl_NL—Dutch
• no—Norwegian
• pt_BR—Portuguese (Brazil)
• ru—Russian
• sv—Swedish
• th—Thai
• zh_CN—Chinese (Simplified)
• zh_TW—Chinese (Traditional)

MasterLabel Type
string
Properties
Create, Filter, Group, Sort, Update

53
Product Catalog Management Product Catalog Management Fields on Standard Objects

Field Details

Description
Label for this Product Specification Type value. This display value is the internal label that
doesn't get translated.

NamespacePrefix Type
string
Properties
Filter, Group, Nillable, Sort
Description
The namespace prefix that is associated with this object. Each Developer Edition org that
creates a managed package has a unique namespace prefix. Limit: 15 characters. You can
refer to a component in a managed package by using the
namespacePrefix_componentName
The namespace prefix can have one of the following values.
• In Developer Edition orgs, NamespacePrefix is set to the namespace prefix of the
org for all objects that support it, unless an object is in an installed managed package.
In that case, the object has the namespace prefix of the installed managed package. This
field’s value is the namespace prefix of the Developer Edition org of the package
developer.
• In orgs that aren’t Developer Edition orgs, NamespacePrefix is set only for objects
that are part of an installed managed package. All other objects have no namespace
prefix.

Product Catalog Management Fields on Standard Objects


Product Catalog Management adds standard and custom fields to some standard Salesforce objects. These fields are available only in
orgs where Product Catalog Management is enabled. This object is available in API version 60.0 and later.

Product Catalog Management Fields on Attribute Definition


Standard and custom fields extend the standard Attribute Definition object for use in Product Catalog Management.
Product Catalog Management Fields on Product2
Standard and custom fields extend the standard Product2 object for use in Product Catalog Management to represent information
about products.
Product Catalog Management Fields on Product Catalog
Standard and custom fields extend the standard Product Catalog object for use in Product Catalog Management. This object is
available in API version 60.0 and later.
Product Catalog Management Fields on Product Category
Standard and custom fields extend the standard Product Category object for use in Product Catalog Management.
Product Catalog Management Fields on Product Component Group
Standard and custom fields extend the standard Product Component Group object for use in Product Catalog Management.

54
Product Catalog Management Product Catalog Management Fields on Standard Objects

Product Catalog Management Fields on Product Related Component


Standard and custom fields extend the standard Product Related Component object for use in Product Catalog Management.
Product Catalog Management Fields on Product Relationship Type
Standard and custom fields extend the standard Product Relationship Type object for use in Product Catalog Management.
Product Catalog Management Fields on Product Selling Model Option
Standard and custom fields extend the standard Product Selling Model Option object for use in Product Catalog Management. This
object is available in API version 60.0 and later.

Product Catalog Management Fields on Attribute Definition


Standard and custom fields extend the standard Attribute Definition object for use in Product Catalog Management.

Fields

Field Details
DataType Type
picklist
Properties
Create, Filter, Group, Restricted picklist, Sort
Description
The data type of the attribute definition.
Valid values are:
• Checkbox
• Currency—Available in API version 61.0 and later
• Date
• Datetime
• Number
• Percent—Available in API version 61.0 and later
• Picklist
• Text

SEE ALSO:
Attribute Definition

Product Catalog Management Fields on Product2


Standard and custom fields extend the standard Product2 object for use in Product Catalog Management to represent information about
products.

55
Product Catalog Management Product Catalog Management Fields on Standard Objects

Fields

Field Details
Based On Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The ID of the product classification from which this product inherits.
This field is a relationship field.
Relationship Name
BasedOn
Relationship Type
Lookup
Refers To
ProductClassification

Help Text Type


textarea
Properties
Create, Nillable, Update
Description
The help text that appears at runtime for the product. The maximum size is 32,000
alphanumeric characters. The help text can include these special characters: @ ! - < > * ? +
= % # ( ) / \ & ‘ £ € $ ”.

Availability Date Type


dateTime
Properties
Create, Filter, Nillable, Sort, Update
Description
The date when the product is available.

CanRamp Type
boolean
Properties
Defaulted on create, Filter, Group, Sort
Description
Indicates whether the product’s terms, volumes, and other commitments can be ramped
(true) at run time or not (false)
The default value is false.

56
Product Catalog Management Product Catalog Management Fields on Standard Objects

Field Details
Discontinued Date Type
dateTime
Properties
Create, Filter, Nillable, Sort, Update
Description
The date when the product is discontinued.

End Of Life Date Type


dateTime
Properties
Create, Filter, Nillable, Sort, Update
Description
The date and time after which a product isn’t supported, ordered, or maintained.

Specification Type Type


string
Properties
Filter, Group, Nillable, Sort
Description
The type of product specification that’s being created.

DecompositionScope Type
picklist
Properties
Create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
The number of fulfillment order line items that must be generated. Available in API version
61.0 and later.
Valid values are:
• Account
• Bundle
• Order
• OrderLineItem

FulfillmentQtyCalcMethod Type
picklist
Properties
Create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
Determines whether the quantity of fulfillment order line items must always be one or must
be aggregated from the source line items. Available in API version 61.0 and later.

57
Product Catalog Management Product Catalog Management Fields on Standard Objects

Field Details
Valid values are:
• Aggregate
• AlwaysOne

UsageModelType Type
picklist
Properties
Create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
The type of usage model for a product or service. Anchor is the main subscription product
or service. Pack is the add-on product or service that grants additional usage resources for
consumption. Available in API version 62.0 and later.
Valid values are:
• Anchor
• Pack

SEE ALSO:
Product2

Product Catalog Management Fields on Product Catalog


Standard and custom fields extend the standard Product Catalog object for use in Product Catalog Management. This object is available
in API version 60.0 and later.

Fields

Field Details
Code Type
string
Properties
Create, Filter, Group, idLookup, Nillable, Sort, Update
Description
A unique ID associated with the catalog. The maximum size is 80 alphanumeric characters.

Description Type
textarea
Properties
Create, Nillable, Update

58
Product Catalog Management Product Catalog Management Fields on Standard Objects

Field Details

Description
The description of the catalog that's used during design time. The maximum size is 255
alphanumeric characters.

EffectiveEndDate Type
dateTime
Properties
Create, Filter, Nillable, Sort, Update
Description
The date after which the product catalog is unavailable to end users.

EffectiveStartDate Type
dateTime
Properties
Create, Filter, Nillable, Sort, Update
Description
The date on which the product catalog is available to end users.

CatalogType Type
picklist
Properties
Create, Defaulted on create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
The category of an entry in the catalog.
Possible values are:
• Sales
• ServiceProcess—Service Process
The default value is Sales.

SEE ALSO:
Product Catalog

Product Catalog Management Fields on Product Category


Standard and custom fields extend the standard Product Category object for use in Product Catalog Management.

59
Product Catalog Management Product Catalog Management Fields on Standard Objects

Fields

Field Details
Code Type
string
Properties
Create, Filter, Group, idLookup, Nillable, Sort, Update
Description
A unique ID associated with the catalog. The maximum size is 80 alphanumeric characters.

IsNavigational Type
boolean
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
Indicates whether the category or subcategory is shown in the menu as a navigational
breadcrumb (true) or not (false). Available in API version 62.0 and later.
The default value is false.

SEE ALSO:
Product Category

Product Catalog Management Fields on Product Component Group


Standard and custom fields extend the standard Product Component Group object for use in Product Catalog Management.

Fields

Field Details
ParentGroupId Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The parent product component group in a nested group hierarchy for the same parent
product. Available in API version 62.0 and later.
This field is a relationship field.
Relationship Name
ParentGroup

60
Product Catalog Management Product Catalog Management Fields on Standard Objects

Field Details

Refers To
ProductComponentGroup

SEE ALSO:
Product Component Group

Product Catalog Management Fields on Product Related Component


Standard and custom fields extend the standard Product Related Component object for use in Product Catalog Management.

Fields

Field Details
ChildProductClassificationId Type
reference
Properties
Create, Filter, Group, Nillable, Sort
Description
The child product classification that's associated with a product.
This field is a relationship field.
Relationship Name
ChildProductClassification
Refers To
ProductClassification

SEE ALSO:
ProductRelatedComponent

Product Catalog Management Fields on Product Relationship Type


Standard and custom fields extend the standard Product Relationship Type object for use in Product Catalog Management.

Fields

Field Details
AssociatedProductRoleCat Type
picklist

61
Product Catalog Management Product Catalog Management Business APIs

Field Details

Properties
Create, Filter, Group, Nillable, Restricted picklist, Sort
Description
The role that the associated component plays in the relationship.
Valid values are:
• BundleComponent— The associated product is part of a bundle.
• ClassificationComponent— The associated component is a product
classification. Available in API version 61.0 and later

SEE ALSO:
Product Relationship Type

Product Catalog Management Fields on Product Selling Model Option


Standard and custom fields extend the standard Product Selling Model Option object for use in Product Catalog Management. This
object is available in API version 60.0 and later.

Fields

Field Details
IsDefault Type
boolean
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
Indicates the default product selling model for a product. Setting a product selling model
as default is optional. A product can only have one default product selling model.
The default value is false.

SEE ALSO:
Product Selling Model Option

Product Catalog Management Business APIs


Use primitive APIs of Product Catalog Management that serve catalog definitions to users or applications.
This table lists the available Product Catalog Management resources.

62
Product Catalog Management Product Catalog Management Business APIs

Resource Description
/connect/pcm/catalogs (POST) Retrieve, search, filter, or sort
catalog records.

/connect/pcm/catalogs/catalogId (GET) Retrieve details of catalog


records based on a catalog ID.

/connect/pcm/catalogs/catalogId/categories (GET) Retrieve the root-level


categories of a catalog based on
a catalog ID, or subcategories
based on a parent category. You
can also search, filter, or sort the
categories.

/connect/pcm/categories/categoryId (GET) Retrieve details of individual


category records based on a
category ID.

/connect/pcm/products (POST) Retrieve products. You can also


search, filter, or sort the
products.

/connect/pcm/products/productId (GET) Retrieve details of individual


product records or a bundle
based on a product ID.

/connect/pcm/products/bulk (POST) Retrieve details for multiple


products.

/connect/pcm/index/configurations (GET, PUT) Retrieve the saved index


configurations. Additionally, you
can persist the index
configuration.

/connect/pcm/relatedRecords/entityName (POST) Retrieve related


ProductRampSegment or
ProductUsageGrant records for
Product2 object.

/connect/pcm/index/snapshots (GET) Retrieve the created snapshots


and snapshot indexes.

/connect/pcm/index/deploy (POST) Create indexes for a snapshot.


Indexes improve search results
and make it easier to find
products at run time through
search terms.

/connect/pcm/index/setting (GET, PATCH) Fetch and update settings


related to indexing and search.

63
Product Catalog Management Product Catalog Management Business APIs

Resource Description
/connect/pcm/index/error (GET) Get the count and details of the
errors that occurred during the
indexing process.

/connect/pcm/deep-clone (POST) Copy related records of an


object along with the main
product record.

/connect/pcm/unit-of-measure/info (GET) Get details about the unit of


measure for a specific set of
records.

/connect/pcm/unit-of-measure/rounded-data (POST) Round off and scale decimal


data for a specific set of fields.

Resources
Learn more about the available Product Catalog Management API resources.
Request Bodies
Learn more about the available Product Catalog Management API request bodies.
Response Bodies
Learn more about the available Product Catalog Management API response bodies.

SEE ALSO:
Connect REST API Developer Guide: Introduction

Resources
Learn more about the available Product Catalog Management API resources.

Bulk Product Details (POST)


Retrieve details for multiple products.
Catalog List (POST)
Retrieve, search, filter, or sort catalog records.
Catalog By ID (GET)
Retrieve details of catalog records based on a catalog ID.
Categories List (GET)
Retrieve the root-level categories of a catalog based on a catalog ID, or subcategories based on a parent category. You can also
search, filter, or sort the categories.
Category By ID (GET)
Retrieve details of individual category records based on a category ID.
Deep Clone (POST)
Copy related records of an object along with the main product record.

64
Product Catalog Management Product Catalog Management Business APIs

Index Configuration Collection (GET, PUT)


Retrieve the saved index configurations. Additionally, you can persist the index configuration.
Index Setting (GET, PATCH)
Fetch and update settings related to indexing and search.
Product Details (GET)
Retrieve details of individual product records or a bundle based on a product ID.
Product Related Records List (POST)
Retrieve related ProductRampSegment or ProductUsageGrant records for Product2 object.
Products List (POST)
Retrieve products. You can also search, filter, or sort the products.
Snapshot Collection (GET)
Retrieve the created snapshots and snapshot indexes.
Snapshot Deployment (POST)
Create indexes for a snapshot. Indexes improve search results and make it easier to find products at run time through search terms.
Snapshot Index Error (GET)
Get the count and details of the errors that occurred during the indexing process.
Unit of Measure Info (GET)
Get details about the unit of measure for a specific set of records.
Unit of Measure Rounded Data (POST)
Round off and scale decimal data for a specific set of fields.

Bulk Product Details (POST)


Retrieve details for multiple products.
Resource
/connect/pcm/products/bulk

Resource example

https://yourInstance.salesforce.com/services/data/v63.0/connect/pcm/products/bulk

Available version
61.0
HTTP methods
POST
Request body for POST
JSON example
{
"correlationId": "cbfabffb-093f-45b3-8c2d-88b4acbd4867",
"productIds": [
"01tT1000000F0afIAC",
"01tT1000000F0afIAC"
],
"uptoLevel": 1,

65
Product Catalog Management Product Catalog Management Business APIs

"additionalFields": {
"Product2": {
"fields": [
"code__c"
]
},
"ProductAttributeDefinition": {
"fields": [
"scope"
]
}
}
}

Properties

Name Type Description Required or Available


Optional Version
additional Map<String, Map of object and list of additional Optional 61.0
Fields Additional Fields standard or custom fields to be included
Input> in the response.
The supported objects are:
• Product2
• ProductAttributeDefinition—If the
fields defined for the
ProductAttributeDefinition object
aren’t available for the
ProductClassificationAttr object, then
the API request fails.

correlation String Unique token to track and associate Optional 61.0


Id related events or transactions across
different components of the application.
If unspecified, a Universally Unique
Identifier (UUID) is generated.

productIds String[] List of product IDs that details must be Required 61.0
returned for.
If any product ID is blank, invalid, or not
found, then the request is processed with
valid and available product IDs.

uptoLevel Integer Hierarchy level to follow to return the Optional 61.0


product details. For a bundle, this
property determines the number of levels
of child components to be returned. You
can specify up to a hierarchy level of 1.

66
Product Catalog Management Product Catalog Management Business APIs

Name Type Description Required or Available


Optional Version
If unspecified, the default level is the full
bundle hierarchy.

Response body for POST


Products Output

Catalog List (POST)


Retrieve, search, filter, or sort catalog records.
Resource
/connect/pcm/catalogs

Resource example

https://yourInstance.salesforce.com/services/data/v63.0/connect/pcm/catalogs

Available version
60.0
Requires Chatter
No
HTTP methods
POST

Note: The POST method is used to retrieve the catalog records instead of the GET method as a request payload is sent to
filter the records.
Request body for POST
JSON example
This example shows how to retrieve catalogs that contain apple in the catalog name.
{
"pageSize": 100,
"offset": 0,
"filter": {
"criteria": [
{
"property": "name",
"operator": "contains",
"value": "apple"
}
]
}
}

This example shows how to retrieve catalogs with ServiceProcess as the catalog type.
{
"pageSize": 100,

67
Product Catalog Management Product Catalog Management Business APIs

"offset": 0,
"sort": {
"orders": [
{
"property": "name",
"direction": "desc"
}
]
},
"filter": {
"criteria": [
{
"property": "catalogType",
"operator": "eq",
"value": "ServiceProcess"
}
]
}
}

Properties

Name Type Description Required or Available


Optional Version
correlation String Unique token to track and associate Optional 60.0
Id related events or transactions across
different components of the application.
If unspecified, a Universally Unique
Identifier (UUID) is generated.

filter Filter Criteria to filter the records. Filters are Optional 60.0
applicable to the fields of the
ProductCatalog object. The supported
operators are:
• eq
• in
• contains
The supported properties are name and
catalogType.

offset Integer Number of records to skip. The default Optional 60.0


value is 0.

pageSize Integer Number of records per page. Valid values Optional 60.0
are from 1 through 100. If unspecified,
defaults to 100.

sort Sort Sort order of the catalog records. The Optional 60.0
supported operators are:
• asc

68
Product Catalog Management Product Catalog Management Business APIs

Name Type Description Required or Available


Optional Version
• desc

Response body for POST


Catalogs Output

Catalog By ID (GET)
Retrieve details of catalog records based on a catalog ID.
Resource

/connect/pcm/catalogs/catalogId

Resource example

https://yourInstance.salesforce.com/services/data/v63.0/connect/pcm/catalogs/0ZST100000000kUOAQ

Available version
60.0
Requires Chatter
No
HTTP methods
GET
Request parameters for GET

Parameter Type Description Required or Available


Name Optional Version
correlationId String Unique token to track and associate related Optional 60.0
events or transactions across different
components of the application. If
unspecified, a Universally Unique Identifier
(UUID) is generated.

fields String[] For internal use only. Optional 60.0

Response body for GET


Catalogs Output

Categories List (GET)


Retrieve the root-level categories of a catalog based on a catalog ID, or subcategories based on a parent category. You can also search,
filter, or sort the categories.
Resource

/connect/pcm/catalogs/catalogId/categories

69
Product Catalog Management Product Catalog Management Business APIs

Resource example

https://yourInstance.salesforce.com/services/data/v63.0/connect/pcm/catalogs/0ZST100000000kUOAQ/categories

Available version
60.0
Requires Chatter
No
HTTP methods
GET
Request parameters for GET

Parameter Type Description Required or Available


Name Optional Version
correlationId String Unique token to track and associate related Optional 60.0
events or transactions across different
components of the application. If
unspecified, a Universally Unique Identifier
(UUID) is generated.

depth Integer Number of levels in the category hierarchy Optional 60.0


to return. The default value is 1.

fields String[] For internal use only. Optional 60.0

parent String ID of the category to fetch the associated Optional 60.0


CategoryId hierarchy of subcategories. If unspecified,
then the root-level categories are returned.

Response body for GET


Categories Output

Category By ID (GET)
Retrieve details of individual category records based on a category ID.
Resource

/connect/pcm/categories/categoryId

Resource example

https://yourInstance.salesforce.com/services/data/v63.0/connect/pcm/categories/0ZGT100000000qqOAA

Available version
60.0
Requires Chatter
No
HTTP methods
GET

70
Product Catalog Management Product Catalog Management Business APIs

Request parameters for GET

Parameter Type Description Required or Available


Name Optional Version
correlationId String Unique token to track and associate related Optional 60.0
events or transactions across different
components of the application. If
unspecified, a Universally Unique Identifier
(UUID) is generated.

fields String[] For internal use only. Optional 60.0

Response body for GET


Categories Output

Deep Clone (POST)


Copy related records of an object along with the main product record.
Resource
/connect/pcm/deep-clone

Resource example

https://yourInstance.salesforce.com/services/data/v63.0/connect/pcm/deep-clone

Available version
63.0
HTTP methods
POST
Request body for POST
JSON example
{
"mainRecordId": "01tSG0000028kcSYAQ",
"mainObjectApiName": "Product2",
"mainRecordFieldValues": {
"Name": "New Cloud Storage"
}
}

Properties

Name Type Description Required or Available


Optional Version
mainObject String API name of the object. The supported Required 63.0
ApiName object is Product2.

71
Product Catalog Management Product Catalog Management Business APIs

Name Type Description Required or Available


Optional Version
mainRecord Map<String, Mapping of the API name of the field to Optional 63.0
FieldValues String> its value. The values passed through this
map are set for the created record. You
can pass the Name field only through this
map.

mainRecordId String ID of the record. Required 63.0

Response body for POST


Deep Clone Response

Index Configuration Collection (GET, PUT)


Retrieve the saved index configurations. Additionally, you can persist the index configuration.
Resource
/connect/pcm/index/configurations

Resource example

https://yourInstance.salesforce.com/services/data/v63.0/connect/pcm/index/configurations

https://yourInstance.salesforce.com/services/data/v63.0/connect/pcm/index/configurations?includeMetadata=false&fieldTypes=Standard,Custom

Available version
62.0
HTTP methods
GET, PUT
Request parameters for GET

Parameter Type Description Required or Available


Name Optional Version
correlationId String Unique token to track and associate related Optional 62.0
events or transactions across different
components of the application. If
unspecified, a Universally Unique Identifier
(UUID) is generated.

fieldTypes String[] Filters and returns only the persisted index Optional 62.0
configurations, based on the index
configuration type specified in the query
parameters.
The supported types of filters are:
• STANDARD
• CUSTOM

72
Product Catalog Management Product Catalog Management Business APIs

Parameter Type Description Required or Available


Name Optional Version
• ProductDynamicAttribute
• ProductAttributeDefinitionStandard
• ProductAttributeDefinitionCustom

include Boolean Indicates whether to include metadata Optional 62.0


Metadata (true) or not (false).

Response body for GET


Index Configuration Collection
Request body for PUT
JSON example
{
"correlationId": "8545b5aa-f3e6-429a-8f21-9cc4ce50b1d7",
"indexConfigurations": [
{
"attributeDefinitionId": "0tjT1000000002bIAA",
"name": "Color",
"type": "ProductDynamicAttribute",
"isSearchable": true
},
{
"attributeFieldId": "00Nxx000001FwnABII",
"name": "Message__c",
"type": "Custom",
"isSearchable": true
},
{
"name": "Code",
"type": "Standard",
"isSearchable": true
},
{
"facetDisplayRank": 1,
"isFacetable": false,
"isSearchable": true,
"name": "Family",
"type": "Standard"
}
]
}

73
Product Catalog Management Product Catalog Management Business APIs

Properties

Name Type Description Required or Available


Optional Version
correlationId String Unique token to track and associate Optional 62.0
related events or transactions across
different components of the application.
If unspecified, a Universally Unique
Identifier (UUID) is generated.

index Index Configuration List of index configurations. Required 62.0


Configurations Input[]

Response body for PUT


Index Configurations Update

Index Setting (GET, PATCH)


Fetch and update settings related to indexing and search.
Resource
/connect/pcm/index/setting

Resource example

https://yourInstance.salesforce.com/services/data/v63.0/connect/pcm/index/setting

Available version
63.0
HTTP methods
GET, PATCH
Response body for GET
Index Setting Results
Request body for PATCH
JSON example
{
"setting" : {
"supportedLanguages" : ["en_US","ja","es","nl_NL"],
"defaultLanguage" : "en_US",
"productsGrouping": "GROUPING_VARIATION"
}
}

74
Product Catalog Management Product Catalog Management Business APIs

Properties

Name Type Description Required or Available


Optional Version
setting Setting Input[] Object containing the setting-related Required 63.0
details.

Request parameters for PATCH

Parameter Type Description Required or Available


Name Optional Version
settingId String ID of the setting to update the details for. Required 63.0

Response body for PATCH


Index Setting Update

Product Details (GET)


Retrieve details of individual product records or a bundle based on a product ID.
Resource

/connect/pcm/products/productId

Resource example

https://yourInstance.salesforce.com/services/data/v63.0/connect/pcm/products/01tT1000000F0afIAC

Available version
60.0
Requires Chatter
No
HTTP methods
GET

Note: You must invoke this API request by using GET method only. If the request is invoked by using POST method, the
request is considered as a Products List API request.
Request parameters for GET

Parameter Type Description Required or Available


Name Optional Version
correlationId String Unique token to track and associate related Optional 60.0
events or transactions across different
components of the application. If
unspecified, a Universally Unique Identifier
(UUID) is generated.

75
Product Catalog Management Product Catalog Management Business APIs

Parameter Type Description Required or Available


Name Optional Version
fields String[] For internal use only. Optional 60.0

Response body for GET


Products

Product Related Records List (POST)


Retrieve related ProductRampSegment or ProductUsageGrant records for Product2 object.
Resource

/connect/pcm/relatedRecords/entityName

The supported entity or object is Product2.


Resource example

https://yourInstance.salesforce.com/services/data/v63.0/connect/pcm/relatedRecords/product2

Available version
62.0
HTTP methods
POST

Note: POST methods typically create an item, but for this resource POST is used to retrieve information.

Request body for POST


JSON example
{
"recordIds": [
"01txx0000006i44AAA",
"01txx0000006i5gAAA"
],
"relatedObjectNodes": [
{
"relatedObjectAPIName": "ProductRampSegment",
"pageSize": 20,
"offSet": 0
},
{
"relatedObjectAPIName": "ProductUsageGrant",
"pageSize": 10,
"offSet": 0,
"filter": {
"criteria": [
{
"property": "status",
"operator": "eq",
"value": "active"
},

76
Product Catalog Management Product Catalog Management Business APIs

{
"property": "effectivestartdate",
"operator": "lte",
"value": "2024-06-25"
},
{
"criteriaType": "CustomWhereCondition",
"value": "(effectiveenddate = null OR effectiveenddate >= 2024-06-25)"
}
]
}
}
]
}

Properties

Name Type Description Required or Available


Optional Version
correlation String Unique token to track and associate Optional 62.0
Id related events or transactions across
different components of the application.
If unspecified, a Universally Unique
Identifier (UUID) is generated.

recordIds String[] List of record IDs to return the Required 62.0


relatedObjects records for. The maximum
number of record IDs supported is 20.

related Related Object List of nodes for the related objects. The Required 62.0
ObjectNodes Node Input[] maximum number of related object
nodes supported is two.

Response body for POST


Related Records List

Products List (POST)


Retrieve products. You can also search, filter, or sort the products.
Resource
/connect/pcm/products

Resource example

https://yourInstance.salesforce.com/services/data/v63.0/connect/pcm/products?productClassificationId=11BT10000004C9SMAU

Available version
60.0
Requires Chatter
No

77
Product Catalog Management Product Catalog Management Business APIs

HTTP methods
POST

Note: POST methods typically create an item, but for this resource POST is used to retrieve information.

Request body for POST


JSON example
This example is a search request for products that contain Bundle Product in the product name.
{
"catalogIds": [
"0ZST10000004D03OAE"
],
"filter": {
"criteria": [
{
"property": "name",
"operator": "contains",
"value": "Bundle Product"
}
]
},
"relatedObjectFilters": [
{
"objectName": "ProductSpecificationRecType",
"criteria": [
{
"property": "IsCommercial",
"operator": "eq",
"value": false
}
],
"additionalFields": {
"Product2": {
"fields": [
"code__c"
]
}
}
}
]
}

This example is a search request for products that contain the specified search term in the product name and are part of a catalog.
{
"catalogIds": [
"0ZSDU0000002Og54AE"
],
"searchTerm": "Slack"
}

78
Product Catalog Management Product Catalog Management Business APIs

Query parameters

Name Type Description Required or Available


Optional Version
product String ID of the product classification template Optional 60.0
Classification that contains a collection of dynamic
Id attributes and can be reused to create
multiple products. Products that are
based on a product classification inherit
all the attributes of the product
classification.
Specify either the product classification
ID, list of category IDs, or list of catalog
IDs to retrieve products.

Properties

Name Type Description Required or Available


Optional Version
additional Map<String, Map of the object and the list of standard Optional 61.0
Fields Additional Fields and custom fields to be queried along
Input> with the standard response.
The supported object is Product2.

catalogIds List<String> List of comma-separated catalog IDs. The Optional 60.0


API returns the list of product records that
are associated with the specified catalog
IDs.
Specify either the product classification
ID, list of category IDs, or list of catalog
IDs to retrieve products.

categoryIds List<String> List of comma-separated category IDs. Optional 60.0


The API returns the list of product records
that are associated with the specified
category IDs. If unspecified, then returns
all products that are added to at least one
category.
Specify either the product classification
ID, list of category IDs, or list of catalog
IDs to retrieve products.

correlation String Unique token to track and associate Optional 60.0


Id related events or transactions across

79
Product Catalog Management Product Catalog Management Business APIs

Name Type Description Required or Available


Optional Version
different components of the application.
If unspecified, a Universally Unique
Identifier (UUID) is generated.

filter Criteria Input Criteria to filter the records. Filters are Optional 60.0
applicable to the fields of Product2
object. The supported operators are:
• eq
• in
• contains—This value isn’t
applicable if the Use Indexed Data
For Product Listing and Search
toggle from the Product Discovery
Settings page from Setup is enabled.
• gt—Specifies a greater than criteria.
Available from API version 63.0 and
later for Number, Date, and Datetime
data types only.
• lt—Specifies a less than criteria.
Available from API version 63.0 and
later for Number, Date, and Datetime
data types only.
• gte—Specifies a greater than or
equal to criteria. Available from API
version 63.0 and later for Number,
Date, and Datetime data types only.
• lte—Specifies a less than or equal
to criteria. Available from API version
63.0 and later for Number, Date, and
Datetime data types only.
If multiple criteria are specified, then the
criteria are combined by using the and
operator.
The supported properties are name,
description, and isActive. If
the Use Indexed Data For Product
Listing and Search toggle from the
Product Discovery Settings page from
Setup is enabled, then the supported
property is name only.

offset Integer Number of records to skip. The default Optional 60.0


value is 0.

80
Product Catalog Management Product Catalog Management Business APIs

Name Type Description Required or Available


Optional Version
pageSize Integer Specifies the number of records per page. Optional 60.0
Valid values are from 1 through 200. If the
value is unspecified, it defaults to 100.

related Related Object Criteria for the related objects to filter the Optional 60.0
Object Filter[] records. The supported operator is eq.
Filters The supported object is
ProductSpecificationRecType.
The supported values are true and
false. The supported property is
IsCommercial.

searchTerm String String used to get products with the Optional 62.0
product name containing the search
term. See Search Considerations When
Using Indexed Data.

sort Sort Sort order for the products. Optional 60.0

If the Use Indexed Data For Product


Listing and Search toggle from the
Product Discovery Settings page from
Setup is enabled, then you can sort
products by using name only.

Response body for POST


Products Output

Snapshot Collection (GET)


Retrieve the created snapshots and snapshot indexes.
Resource
/connect/pcm/index/snapshots

Resource example

https://yourInstance.salesforce.com/services/data/v63.0/connect/pcm/index/snapshots

Available version
62.0
HTTP methods
GET

81
Product Catalog Management Product Catalog Management Business APIs

Query Parameter for GET

Parameter Type Description Required or Available


Name Optional Version
numberOf Integer Number of index logs to include in the Optional 63.0
IndexLogs response. Specify a number from 0
through 100. The default value is 25.

Response body for GET


Snapshot Collection

Snapshot Deployment (POST)


Create indexes for a snapshot. Indexes improve search results and make it easier to find products at run time through search terms.
Resource
/connect/pcm/index/deploy

Resource example

https://yourInstance.salesforce.com/services/data/v63.0/connect/pcm/index/deploy

Available version
62.0
HTTP methods
POST
Request body for POST
JSON example
This example shows a sample request to build a new snapshot with immediate activation.
{
"snapshot": {
"activationType": "IMMEDIATE"
},
"buildType": "FULL"
}

This example shows a sample request to rebuild a snapshot in the active status.
{
"snapshot": {
"activationType": "IMMEDIATE",
"id": "1Avxx0000005DFe1AM"
},
"buildType": "FULL"
}

82
Product Catalog Management Product Catalog Management Business APIs

Properties

Name Type Description Required or Available


Optional Version
buildType String Build type of the snapshot index. Valid Required 62.0
value is:
• FULL—Specifies a full index build.
• INCREMENTAL—Specifies an
incremental index build. Available
from API version 63.0 and later.

snapshot Run-time Catalog Snapshot to deploy. Required 62.0


Snapshot Input[]

Response body for POST


Snapshot Deployment

Snapshot Index Error (GET)


Get the count and details of the errors that occurred during the indexing process.
Resource
/connect/pcm/index/error

Resource example

https://yourInstance.salesforce.com/services/data/v63.0/connect/pcm/index/error

Available version
63.0
HTTP methods
GET
Request parameters for GET

Parameter Type Description Required or Available


Name Optional Version
indexId String ID of the index. Required 63.0

snapshot String ID of the snapshot index. Required 63.0


IndexId

Response body for GET


Snapshot Index Error

Unit of Measure Info (GET)


Get details about the unit of measure for a specific set of records.

83
Product Catalog Management Product Catalog Management Business APIs

Resource
/connect/pcm/unit-of-measure/info

Resource example

https://yourInstance.salesforce.com/services/data/v63.0/connect/pcm/unit-of-measure/info

Available version
63.0
HTTP methods
GET
Query parameters for GET

Parameter Type Description Required or Available


Name Optional Version
correlationId String Unique token to track and associate related Optional 63.0
events or transactions across different
components of the application. If
unspecified, a Universally Unique Identifier
(UUID) is generated.

ids String IDs of the unit of measure records. Optional 63.0

Response body for GET


Bulk Unit Of Measure Info

Unit of Measure Rounded Data (POST)


Round off and scale decimal data for a specific set of fields.
Resource
/connect/pcm/unit-of-measure/rounded-data

Resource example

https://yourInstance.salesforce.com/services/data/v63.0/connect/pcm/unit-of-measure/rounded-data

Available version
63.0
HTTP methods
POST
Request body for POST
JSON example
{
"dataRowInputs": [
{
"key": "PRC1",
"fieldDataInputs": [

84
Product Catalog Management Product Catalog Management Business APIs

{
"fieldApiName": "MaxQuantity",
"originalValue": 1234.5678,
"unitOfMeasureId": "0hExx0000000001EAA"
},
{
"fieldApiName": "MinQuantity",
"originalValue": "987462848934739347.32232590183756545",
"unitOfMeasureId": "0hExx000000001dEAA"
}
]
},
{
"key": "PRC2",
"fieldDataInputs": [
{
"fieldApiName": "MaxQuantity",
"originalValue": 1234.5678,
"unitOfMeasureId": "uomId1"
},
{
"fieldApiName": "MinQuantity",
"originalValue": 987.4628,
"unitOfMeasureId": "Kgs Id"
}
]
},
{
"key": "PRC3",
"fieldDataInputs": [
{
"fieldApiName": "MaxQuantity",
"originalValue": 0.437584,
"unitOfMeasureId": "uomId2"
},
{
"fieldApiName": "MinQuantity",
"originalValue": 7364.58923,
"unitOfMeasureId": "uomId2"
}
]
}
]
}

Properties

Name Type Description Required or Available


Optional Version
correlation String Unique token to track and associate Optional 63.0
Id related events or transactions across
different components of the application.

85
Product Catalog Management Product Catalog Management Business APIs

Name Type Description Required or Available


Optional Version
If unspecified, a Universally Unique
Identifier (UUID) is generated.

dataRow Data Row Input[] List of row inputs for rounding the data. Required 63.0
Inputs

Response body for POST


Data Rounding

Request Bodies
Learn more about the available Product Catalog Management API request bodies.

Additional Fields Input


Input representation of the additional standard or custom fields to be included in the response.
Bulk Product Details Input
Input representation of the request to retrieve the details of multiple products.
Catalog Input
Input representation of the request to retrieve catalog records.
Criteria Input
Input representation of the filter criteria item request.
Data Rounding Input
Input representation of the details of the data rounding input.
Data Row Input
Input representation of the details of the input for a data rounding request.
Deep Clone Input
Input representation of the details of the object and associated record to be cloned.
Field Data Input
Input representation of the details of the field data input.
Filter Input
Input representation of the filter request.
Include Object Input
Input representation of the object to include in the response.
Index Configuration Collection Input
Input representation of the collection of index configurations.
Index Configuration Input
Input representation of the request to persist the index configuration.
Index Setting Input
Input representation of the index setting.

86
Product Catalog Management Product Catalog Management Business APIs

Options Input
Reserved for internal use.
Order Input
Input representation of the sort order item request.
Product Input
Input representation of a product in the catalog.
Related Object Filters Input
Input representation of the request to filter related objects.
Related Object Node Input
Input representation of the details of a related object node.
Related Records Input
Input representation of the request to retrieve related ProductRampSegment or ProductUsageGrant records for Product2 object.
Run-time Catalog Snapshot Input
Input representation of the details of a run-time catalog snapshot for deployment.
Setting Input
Input representation of the details of the index setting.
Snapshot Deployment Input
Input representation of the request to deploy a run-time catalog snapshot.
Sort Input
Input representation of the sort request.

Additional Fields Input


Input representation of the additional standard or custom fields to be included in the response.
JSON example

"additionalFields": {
"Product2": {
"fields": [
"code__c"
]
}

Properties

Name Type Description Required or Available


Optional Version
fields String[] List of additional standard or custom fields Required 61.0
to be included in the response.

Bulk Product Details Input


Input representation of the request to retrieve the details of multiple products.

87
Product Catalog Management Product Catalog Management Business APIs

JSON example
{
"correlationId": "cbfabffb-093f-45b3-8c2d-88b4acbd4867",
"productIds": [
"01tT1000000F0afIAC",
"01tT1000000F0afIAC"
],
"uptoLevel": 1,
"additionalFields": {
"Product2": {
"fields": [
"code__c"
]
},
"ProductAttributeDefinition": {
"fields": [
"scope"
]
}
}
}

Properties

Name Type Description Required or Available


Optional Version
additional Map<String, Map of object and list of additional Optional 61.0
Fields Additional Fields standard or custom fields to be included
Input> in the response.
The supported objects are:
• Product2
• ProductAttributeDefinition—If the
fields defined for the
ProductAttributeDefinition object
aren’t available for the
ProductClassificationAttr object, then
the API request fails.

correlationId String Unique token to track and associate related Optional 61.0
events or transactions across different
components of the application. If
unspecified, a Universally Unique Identifier
(UUID) is generated.

productIds String[] List of product IDs that details must be Required 61.0
returned for.
If any product ID is blank, invalid, or not
found, then the request is processed with
valid and available product IDs.

88
Product Catalog Management Product Catalog Management Business APIs

Name Type Description Required or Available


Optional Version
uptoLevel Integer Hierarchy level to follow to return the Optional 61.0
product details. For a bundle, this property
determines the number of levels of child
components to be returned. You can
specify up to a hierarchy level of 1.
If unspecified, the default level is the full
bundle hierarchy.

Catalog Input
Input representation of the request to retrieve catalog records.
JSON example
This example shows how to retrieve catalogs that contain apple in the catalog name.
{
"pageSize": 100,
"offset": 0,
"filter": {
"criteria": [
{
"property": "name",
"operator": "contains",
"value": "apple"
}
]
}
}

This example shows how to retrieve catalogs with ServiceProcess as the catalog type.
{
"pageSize": 100,
"offset": 0,
"sort": {
"orders": [
{
"property": "name",
"direction": "desc"
}
]
},
"filter": {
"criteria": [
{
"property": "catalogType",
"operator": "eq",
"value": "ServiceProcess"
}
]

89
Product Catalog Management Product Catalog Management Business APIs

}
}

Properties

Name Type Description Required or Available


Optional Version
correlationId String Unique token to track and associate related Optional 60.0
events or transactions across different
components of the application. If
unspecified, a Universally Unique Identifier
(UUID) is generated.

filter Filter Criteria to filter the records. Filters are Optional 60.0
applicable to the fields of the
ProductCatalog object. The supported
operators are:
• eq
• in
• contains
The supported properties are name and
catalogType.

offset Integer Number of records to skip. The default Optional 60.0


value is 0.

pageSize Integer Number of records per page. Valid values Optional 60.0
are from 1 through 100. If unspecified,
defaults to 100.

sort Sort Sort order of the catalog records. The Optional 60.0
supported operators are:
• asc
• desc

Criteria Input
Input representation of the filter criteria item request.
JSON example

"criteria":
[{
"attributeType": "ProductStandard",
"property": "name",
"operator": "eq",
"value": "iPhone"
},

90
Product Catalog Management Product Catalog Management Business APIs

{
"criteriaType": "CustomWhereCondition",
"value": "(effectiveenddate = null OR effectiveenddate >= 2024-06-25)"
}
]

Properties

Name Type Description Required or Available


Optional Version
attributeType String Search attribute type of the facet for a Optional 63.0
faceted search. Valid values are:
• ProductStandard
• ProductCustom
• ProductDynamicAttribute
• ProductAttributeStandard
• ProductAttributeCustom
This property is applicable if the Use
Indexed Data For Product Listing and
Search toggle from the Product Discovery
Settings page from Setup is enabled.

criteriaType String Type of criteria for the filter. Valid value is: Required 60.0
• CustomWhereCondition

operator String Operator used for the filter criteria. The Required 60.0
supported operators are:
• eq
• in
• contains—This value isn’t
applicable if the Use Indexed Data
For Product Listing and Search
toggle from the Product Discovery
Settings page from Setup is enabled.
• gt—Specifies a greater than criteria.
Available from API version 63.0 and
later for Number, Date, and Datetime
data types only.
• lt—Specifies a less than criteria.
Available from API version 63.0 and
later for Number, Date, and Datetime
data types only.
• gte—Specifies a greater than or
equal to criteria. Available from API

91
Product Catalog Management Product Catalog Management Business APIs

Name Type Description Required or Available


Optional Version
version 63.0 and later for Number,
Date, and Datetime data types only.
• lte—Specifies a less than or equal
to criteria. Available from API version
63.0 and later for Number, Date, and
Datetime data types only.

property String Property name to use in the filter, which Required 60.0
must be the same as the object field.

value Object Value for the filter criteria. Required 60.0

Data Rounding Input


Input representation of the details of the data rounding input.
JSON example
{
"dataRowInputs": [
{
"key": "PRC1",
"fieldDataInputs": [
{
"fieldApiName": "MaxQuantity",
"originalValue": 1234.5678,
"unitOfMeasureId": "0hExx0000000001EAA"
},
{
"fieldApiName": "MinQuantity",
"originalValue": "987462848934739347.32232590183756545",
"unitOfMeasureId": "0hExx000000001dEAA"
}
]
},
{
"key": "PRC2",
"fieldDataInputs": [
{
"fieldApiName": "MaxQuantity",
"originalValue": 1234.5678,
"unitOfMeasureId": "uomId1"
},
{
"fieldApiName": "MinQuantity",
"originalValue": 987.4628,
"unitOfMeasureId": "Kgs Id"
}
]
},

92
Product Catalog Management Product Catalog Management Business APIs

{
"key": "PRC3",
"fieldDataInputs": [
{
"fieldApiName": "MaxQuantity",
"originalValue": 0.437584,
"unitOfMeasureId": "uomId2"
},
{
"fieldApiName": "MinQuantity",
"originalValue": 7364.58923,
"unitOfMeasureId": "uomId2"
}
]
}
]
}

Properties

Name Type Description Required or Available


Optional Version
correlationId String Unique token to track and associate related Optional 63.0
events or transactions across different
components of the application. If
unspecified, a Universally Unique Identifier
(UUID) is generated.

dataRowInputs Data Row Input[] List of row inputs for rounding the data. Required 63.0

Data Row Input


Input representation of the details of the input for a data rounding request.
JSON example
JSON example
{
"dataRowInputs": [
{
"key": "PRC1",
"fieldDataInputs": [
{
"fieldApiName": "MaxQuantity",
"originalValue": 1234.5678,
"unitOfMeasureId": "0hExx0000000001EAA"
},
{
"fieldApiName": "MinQuantity",
"originalValue": "987462848934739347.32232590183756545",
"unitOfMeasureId": "0hExx000000001dEAA"
}
]

93
Product Catalog Management Product Catalog Management Business APIs

},
{
"key": "PRC2",
"fieldDataInputs": [
{
"fieldApiName": "MaxQuantity",
"originalValue": 1234.5678,
"unitOfMeasureId": "uomId1"
},
{
"fieldApiName": "MinQuantity",
"originalValue": 987.4628,
"unitOfMeasureId": "Kgs Id"
}
]
},
{
"key": "PRC3",
"fieldDataInputs": [
{
"fieldApiName": "MaxQuantity",
"originalValue": 0.437584,
"unitOfMeasureId": "uomId2"
},
{
"fieldApiName": "MinQuantity",
"originalValue": 7364.58923,
"unitOfMeasureId": "uomId2"
}
]
}
]
}

Properties

Name Type Description Required or Available


Optional Version
fieldData Field Data Input[] List of field-level data inputs. Required 63.0
Inputs

key String Key that identifies a unique data row. Required 63.0

Deep Clone Input


Input representation of the details of the object and associated record to be cloned.
JSON example
{
"mainRecordId": "01tSG0000028kcSYAQ",
"mainObjectApiName": "Product2",
"mainRecordFieldValues": {

94
Product Catalog Management Product Catalog Management Business APIs

"Name": "New Cloud Storage"


}
}

Properties

Name Type Description Required or Available


Optional Version
mainObject String API name of the object. The supported Required 63.0
ApiName object is Product2.

mainRecord Map<String, Mapping of the API name of the field to its Optional 63.0
FieldValues String> value. The values passed through this map
are set for the created record. You can pass
the Name field only through this map.

mainRecordId String ID of the record. Required 63.0

Field Data Input


Input representation of the details of the field data input.
JSON example
"fieldDataInputs": [
{
"fieldApiName": "MaxQuantity",
"originalValue": 0.437584,
"unitOfMeasureId": "uomId2"
},
{
"fieldApiName": "MinQuantity",
"originalValue": 7364.58923,
"unitOfMeasureId": "uomId2"
}
]

Properties

Name Type Description Required or Available


Optional Version
fieldApiName String Unique API name of the field. Required 63.0

originalValue String Original value of the fields. Required 63.0

unitOf String ID of the unit of measure record that’s Required 63.0


MeasureId associated to the field.

Filter Input
Input representation of the filter request.

95
Product Catalog Management Product Catalog Management Business APIs

JSON example

"filter":
{
"criteria": [ {
"property": "name",
"operator": "eq",
"value": "iPhone"
},
{
"criteriaType": "CustomWhereCondition",
"value": "(effectiveenddate = null OR effectiveenddate >= 2024-06-25)"
}
]
}

Properties

Name Type Description Required or Available


Optional Version
criteria Criteria[] Details of the filter criteria. Required if the 60.0
filter property
is specified.

Include Object Input


Input representation of the object to include in the response.
JSON example
"includeObjects":
[{
"objectName": "ProductCategory"
}]

Properties

Name Type Description Required or Available


Optional Version
objectName String Name of the object to include in the Required if the 60.0
response. The supported object is options
ProductCategory. property is specified.

Index Configuration Collection Input


Input representation of the collection of index configurations.
JSON example
{
"correlationId": "8545b5aa-f3e6-429a-8f21-9cc4ce50b1d7",

96
Product Catalog Management Product Catalog Management Business APIs

"indexConfigurations": [
{
"attributeDefinitionId": "0tjT1000000002bIAA",
"name": "Color",
"type": "ProductDynamicAttribute",
"isSearchable": true
},
{
"attributeFieldId": "00Nxx000001FwnABII",
"name": "Message__c",
"type": "Custom",
"isSearchable": true
},
{
"name": "Code",
"type": "Standard",
"isSearchable": true
},
{
"facetDisplayRank": 1,
"isFacetable": false,
"isSearchable": true,
"name": "Family",
"type": "Standard"
}
]
}

Properties

Name Type Description Required or Available


Optional Version
correlationId String Unique token to track and associate related Optional 62.0
events or transactions across different
components of the application. If
unspecified, a Universally Unique Identifier
(UUID) is generated.

index Index Configuration List of index configurations. Required 62.0


Configurations Input[]

Index Configuration Input


Input representation of the request to persist the index configuration.
JSON example
"indexConfigurations": [
{
"attributeDefinitionId": "0tjT1000000002bIAA",
"name": "Color",
"type": "ProductDynamicAttribute",
"isSearchable": true

97
Product Catalog Management Product Catalog Management Business APIs

},
{
"attributeFieldId": "00Nxx000001FwnABII",
"name": "Message__c",
"type": "Custom",
"isSearchable": true
},
{
"name": "Code",
"type": "Standard",
"isSearchable": true
},
{
"facetDisplayRank": 1,
"isFacetable": false,
"isSearchable": true,
"name": "Family",
"type": "Standard"
}
]

Properties

Name Type Description Required or Available


Optional Version
attribute String ID of the attribute definition. Required if the 62.0
DefinitionId attribute
FieldIdproperty
isn’t specified.

attribute String ID of the attribute field. Required if the 62.0


FieldId attribute
DefinitionIdproperty
isn’t specified.

facet Integer Sort order for displaying the facets at run Optional 63.0
DisplayRank time.

isFacetable Boolean Indicates whether the field is facetable Optional 63.0


(true) or not (false).

isSearchable Boolean Indicates whether the index-configured Optional 62.0


field is searchable (true) or not (false).

name String Name of the index-configured field. Required 62.0

type String Type of the index-configured field. Required 62.0

Index Setting Input


Input representation of the index setting.

98
Product Catalog Management Product Catalog Management Business APIs

JSON example
{
"setting" : {
"supportedLanguages" : ["en_US","ja","es","nl_NL"],
"defaultLanguage" : "en_US",
"productsGrouping": "GROUPING_VARIATION"
}
}

Properties

Name Type Description Required or Available


Optional Version
setting Setting Input[] Object containing the setting-related Required 63.0
details.

Options Input
Reserved for internal use.

Order Input
Input representation of the sort order item request.
JSON example
"sort":{
"orders":
[{
"property": "name",
"direction": "asc"
}]
}

Properties

Name Type Description Required or Available


Optional Version
direction String Direction to sort the list items, such as in Required 60.0
ascending order or descending order.

property String Property to use for the sorting of the list Required 60.0
items.

Product Input
Input representation of a product in the catalog.

99
Product Catalog Management Product Catalog Management Business APIs

JSON example
This example is a search request for products that contain Bundle Product in the product name.
{
"catalogIds": [
"0ZST10000004D03OAE"
],
"filter": {
"criteria": [
{
"property": "name",
"operator": "contains",
"value": "Bundle Product"
}
]
},
"relatedObjectFilters": [
{
"objectName": "ProductSpecificationRecType",
"criteria": [
{
"property": "IsCommercial",
"operator": "eq",
"value": false
}
],
"additionalFields": {
"Product2": {
"fields": [
"code__c"
]
}
}
}
]
}

This example is a search request for products that contain the specified search term in the product name and are part of a catalog.
{
"catalogIds": [
"0ZSDU0000002Og54AE"
],
"searchTerm": "Slack"
}

Query parameters

Name Type Description Required or Available


Optional Version
product String ID of the product classification template Optional 60.0
Classification that contains a collection of dynamic
Id attributes and can be reused to create

100
Product Catalog Management Product Catalog Management Business APIs

Name Type Description Required or Available


Optional Version
multiple products. Products that are based
on a product classification inherit all the
attributes of the product classification.
Specify either the product classification ID,
list of category IDs, or list of catalog IDs to
retrieve products.

Properties

Name Type Description Required or Available


Optional Version
additional Map<String, Map of the object and the list of standard Optional 61.0
Fields Additional Fields and custom fields to be queried along with
Input> the standard response.
The supported object is Product2.

catalogIds List<String> List of comma-separated catalog IDs. The Optional 60.0


API returns the list of product records that
are associated with the specified catalog
IDs.
Specify either the product classification ID,
list of category IDs, or list of catalog IDs to
retrieve products.

categoryIds List<String> List of comma-separated category IDs. The Optional 60.0


API returns the list of product records that
are associated with the specified category
IDs. If unspecified, then returns all
products that are added to at least one
category.
Specify either the product classification ID,
list of category IDs, or list of catalog IDs to
retrieve products.

correlationId String Unique token to track and associate related Optional 60.0
events or transactions across different
components of the application. If
unspecified, a Universally Unique Identifier
(UUID) is generated.

101
Product Catalog Management Product Catalog Management Business APIs

Name Type Description Required or Available


Optional Version
filter Criteria Input Criteria to filter the records. Filters are Optional 60.0
applicable to the fields of Product2 object.
The supported operators are:
• eq
• in
• contains—This value isn’t
applicable if the Use Indexed Data
For Product Listing and Search
toggle from the Product Discovery
Settings page from Setup is enabled.
• gt—Specifies a greater than criteria.
Available from API version 63.0 and
later for Number, Date, and Datetime
data types only.
• lt—Specifies a less than criteria.
Available from API version 63.0 and
later for Number, Date, and Datetime
data types only.
• gte—Specifies a greater than or
equal to criteria. Available from API
version 63.0 and later for Number,
Date, and Datetime data types only.
• lte—Specifies a less than or equal
to criteria. Available from API version
63.0 and later for Number, Date, and
Datetime data types only.
If multiple criteria are specified, then the
criteria are combined by using the and
operator.
The supported properties are name,
description, and isActive. If the
Use Indexed Data For Product Listing
and Search toggle from the Product
Discovery Settings page from Setup is
enabled, then the supported property is
name only.

offset Integer Number of records to skip. The default Optional 60.0


value is 0.

pageSize Integer Specifies the number of records per page. Optional 60.0
Valid values are from 1 through 200. If the
value is unspecified, it defaults to 100.

102
Product Catalog Management Product Catalog Management Business APIs

Name Type Description Required or Available


Optional Version
relatedObject Related Object Criteria for the related objects to filter the Optional 60.0
Filters Filter[] records. The supported operator is eq. The
supported object is
ProductSpecificationRecType.
The supported values are true and
false. The supported property is
IsCommercial.

searchTerm String String used to get products with the Optional 62.0
product name containing the search term.
See Search Considerations When Using
Indexed Data.

sort Sort Sort order for the products. Optional 60.0

If the Use Indexed Data For Product


Listing and Search toggle from the
Product Discovery Settings page from
Setup is enabled, then you can sort
products by using name only.

Related Object Filters Input


Input representation of the request to filter related objects.
JSON example
"relatedObjectFilters":
[{
"criteria": [
{
"property": "IsCommercial",
"operator": "eq",
"value": true
}
],
"objectName": "ProductSpecificationRecType"
}]

Properties

Name Type Description Required or Available


Optional Version
criteria Criteria[] Criteria to filter the related objects. Required if the 60.0
relatedObjectFilters
property is specified.

103
Product Catalog Management Product Catalog Management Business APIs

Name Type Description Required or Available


Optional Version
objectName String API name of the object that’s related to the Required if the 60.0
main object. relatedObjectFilters
property is specified.

Related Object Node Input


Input representation of the details of a related object node.
JSON example
"relatedObjectNodes": [
{
"relatedObjectAPIName": "ProductRampSegment",
"pageSize": 20,
"offSet": 0
},
{
"relatedObjectAPIName": "ProductUsageGrant",
"pageSize": 10,
"offSet": 0,
"filter": {
"criteria": [
{
"property": "status",
"operator": "eq",
"value": "active"
},
{
"property": "effectivestartdate",
"operator": "lte",
"value": "2024-06-25"
},
{
"criteriaType": "CustomWhereCondition",
"value": "(effectiveenddate = null OR effectiveenddate >= 2024-06-25)"
}
]
}
}
]

Properties

Name Type Description Required or Available


Optional Version
filter Criteria[] Criteria to filter records. The supported Optional 62.0
properties are:
• StartDate
• EndDate

104
Product Catalog Management Product Catalog Management Business APIs

Name Type Description Required or Available


Optional Version
• Status
The supported operators are:
• eq
• gte
• lte
The supported related object is
ProductUsageGrant.
If multiple criteria are specified, then the
resultant criteria are combined by using
the and operator.

offSet Integer Number of records to skip. The default Optional 62.0


value is 0.

pageSize Integer Number of records per page. Valid values Optional 62.0
are from 1 through 100. If unspecified, the
default value is 100.

relatedObject String API name of the related object to return Required 62.0
APIName the records for. The supported related
objects are ProductRampSegment and
ProductUsageGrant.

Related Records Input


Input representation of the request to retrieve related ProductRampSegment or ProductUsageGrant records for Product2 object.
JSON example
{
"recordIds": [
"01txx0000006i44AAA",
"01txx0000006i5gAAA"
],
"relatedObjectNodes": [
{
"relatedObjectAPIName": "ProductRampSegment",
"pageSize": 20,
"offSet": 0
},
{
"relatedObjectAPIName": "ProductUsageGrant",
"pageSize": 10,
"offSet": 0,
"filter": {
"criteria": [
{
"property": "status",

105
Product Catalog Management Product Catalog Management Business APIs

"operator": "eq",
"value": "active"
},
{
"property": "effectivestartdate",
"operator": "lte",
"value": "2024-06-25"
},
{
"criteriaType": "CustomWhereCondition",
"value": "(effectiveenddate = null OR effectiveenddate >= 2024-06-25)"
}
]
}
}
]
}

Properties

Name Type Description Required or Available


Optional Version
correlationId String Unique token to track and associate related Optional 62.0
events or transactions across different
components of the application. If
unspecified, a Universally Unique Identifier
(UUID) is generated.

recordIds String[] List of record IDs to return the Required 62.0


relatedObjects records for. The maximum
number of record IDs supported is 20.

related Related Object List of nodes for the related objects. The Required 62.0
ObjectNodes Node Input[] maximum number of related object nodes
supported is two.

Run-time Catalog Snapshot Input


Input representation of the details of a run-time catalog snapshot for deployment.
JSON example
"snapshot": {
"activationType": "IMMEDIATE",
"activationDate": "2024-05-06T05:12:59.000Z",
"id": "1Avxx0000005DFe1AM"
}

106
Product Catalog Management Product Catalog Management Business APIs

Properties

Name Type Description Required or Available


Optional Version
activationDate String Activation date of the snapshot. Optional 62.0

activationType String Activation type of the snapshot. Valid value Required 62.0
is:
• IMMEDIATE—Snapshot is activated
immediately after a successful build.

id String ID of the snapshot. Required 62.0

Setting Input
Input representation of the details of the index setting.
JSON example
"setting" : {
"supportedLanguages" : ["en_US","ja","es","nl_NL"],
"defaultLanguage" : "en_US"
}

Properties

Name Type Description Required or Available


Optional Version
default String Default language for the API. Required 63.0
Language

supported String[] List of supported language locales for Required 63.0


Languages indexing.

Snapshot Deployment Input


Input representation of the request to deploy a run-time catalog snapshot.
JSON example
This example shows a sample request to build a new snapshot with immediate activation.
{
"snapshot": {
"activationType": "IMMEDIATE"
},
"buildType": "FULL"
}

This example shows a sample request to rebuild a snapshot in the active status.
{
"snapshot": {

107
Product Catalog Management Product Catalog Management Business APIs

"activationType": "IMMEDIATE",
"id": "1Avxx0000005DFe1AM"
},
"buildType": "FULL"
}

Properties

Name Type Description Required or Available


Optional Version
buildType String Build type of the snapshot index. Valid Required 62.0
value is:
• FULL—Specifies a full index build.
• INCREMENTAL—Specifies an
incremental index build. Available
from API version 63.0 and later.

snapshot Run-time Catalog Snapshot to deploy. Required 62.0


Snapshot Input[]

Sort Input
Input representation of the sort request.
JSON example
"sort":
{
"orders":
[{
"property": "name",
"direction": "asc"
}]
}

Properties

Name Type Description Required or Available


Optional Version
orders Order[] Details of the sort order. Required if the 60.0
sort property is
specified.

Response Bodies
Learn more about the available Product Catalog Management API response bodies.

Attribute Category
Output representation of the attribute category.

108
Product Catalog Management Product Catalog Management Business APIs

Attribute Definition
Output representation of the attribute definition.
Attribute Picklist
Output representation of the attribute picklist.
Attribute Picklist Value
Output representation of the attribute picklist value.
Bulk Unit Of Measure Info
Output representation of the details of the unit of measure records along with error details.
Data Rounding
Output representation of the data rounding response.
Data Row
Output representation of the details of a data row.
Catalog Output
Output representation of the catalog definition.
Catalogs Output
Output representation of the retrieved catalog result.
Categories Output
Output representation of the retrieved categories result.
Category Output
Output representation of the category definition.
Deep Clone Error
Output representation of the error details related to the deep clone request.
Deep Clone Record Response
Output representation of the details of the cloned related records.
Deep Clone Response
Output representation of the details of the cloned record.
Error Output
Output representation of the error details.
Facet Value
Output representation of the facet values found in the search result.
Field Data
Output representation of the field data.
Fields Info
Output representation of the metadata fields in an object.
Index Configuration Collection
Output representation of the collection of index configuration details.
Index Configuration Field
Output representation of the details of the index-configured field.
Index Configurations Update
Output representation of the updated index configuration.

109
Product Catalog Management Product Catalog Management Business APIs

Index Error
Output representation of the error details related to an index.
Index Setting
Output representation of the retrieved index settings.
Index Setting Update
Output representation of the details of the updated index setting.
Invalid Related Object Node
Output representation of the invalid related object node with details of errors.
Metadata
Output representation of the metadata details for objects.
Object Info
Output representation of the object details along with its fields.
Product Classification
Output representation of the product classification details.
Product Component Group
Output representation of the product component group.
Product
Output representation of the product definition.
Product Related Component
Output representation of the product-related component.
Product Selling Model
Output representation of the definition of the product selling model.
Product Selling Model Option
Output representation of the definition of the product selling model option.
Product Specification Type
Output representation of the product specification type.
Products
Output representation of the list of retrieved products.
Related Object Records
Output representation of the related records for a specified record ID and related object API name.
Related Records
Output representation of the list of relatedObject records for a specified record ID.
Related Records List
Output representation of the list of related records.
Search Facet
Output representation of the details of the faceted search.
Setting
Output representation of the setting that’s used in indexing.
Setting Metadata
Output representation of the metadata associated with a setting.

110
Product Catalog Management Product Catalog Management Business APIs

Snapshot
Output representation of the list of active snapshots.
Snapshot Collection
Output representation of the retrieved snapshot collection.
Snapshot Deployment
Output representation of the snapshot deployment.
Snapshot Index
Output representation of the snapshot index of a run-time catalog.
Snapshot Index Error
Output representation of the error details related to a snapshot index.
Snapshot Index Info
Output representation of the details of a snapshot index.
Snapshot Index Log
Output representation of a snapshot index log.
Status
Output representation of the status of the request.
Unit of Measure Error
Output representation of the details of errors encountered during the processing of the Unit of Measure API request.
Unit of Measure Info
Output representation of the details of a unit of measure record.
Unit of Measure Status
Output representation of the status of the Unit of Measure API request.

Attribute Category
Output representation of the attribute category.
JSON example
"attributeCategory": [
{
"attributes": [
{
"additionalFields": {
"scope": "Order"
},
"attributeNameOverride": "AD Text",
"code": "AD02",
"dataType": "Text",
"defaultValue": "AD Text DV",
"description": "AD Text Desc",
"displayType": "Text",
"helpText": "AD Text DHT",
"id": "0tjT1000000002bIAA",
"isHidden": false,
"isPriceImpacting": true,
"isReadOnly": true,

111
Product Catalog Management Product Catalog Management Business APIs

"isRequired": true,
"label": "AD Text Label",
"maximumCharacterCount": "20",
"maximumValue": "100",
"minimumCharacterCount": "1",
"minimumValue": "50",
"name": "AD Text",
"sequence": 1,
"status": "Active",
"valueDescription": "AD Text VD"
}
],
"code": "AC001",
"id": "0v3T1000000000BIAQ",
"name": "build and make"
}
]

Property Name Type Description Filter Group and Available Version


Version
attributes Attribute Definition[] List of categorized attributes associated with Small, 60.0 60.0
the product.

code String Code of the attribute category. Small, 60.0 60.0

id String ID associated with the attribute category. Small, 60.0 60.0

name String Name of the attribute category. Small, 60.0 60.0

Attribute Definition
Output representation of the attribute definition.
JSON example
"attributes": [
{
"additionalFields": {
"scope": "Order"
},
"attributeNameOverride": "AD Text",
"code": "AD02",
"dataType": "Text",
"defaultValue": "AD Text DV",
"description": "AD Text Desc",
"displayType": "Text",
"helpText": "AD Text DHT",
"id": "0tjT1000000002bIAA",
"isHidden": false,
"isPriceImpacting": true,
"isReadOnly": true,
"isRequired": true,
"label": "AD Text Label",

112
Product Catalog Management Product Catalog Management Business APIs

"maximumCharacterCount": 20,
"maximumValue": "100",
"minimumCharacterCount": 1,
"minimumValue": "50",
"name": "AD Text",
"sequence": 1,
"status": "Active",
"valueDescription": "AD Text VD"
}
],
"code": "AC001",
"id": "0v3T1000000000BIAQ",
"name": "build and make"
}]

Property Name Type Description Filter Group and Available Version


Version
additional Map<String, Key-value pair of additional standard or Small, 61.0 61.0
Fields Additional Fields custom fields to include in the response.
Input>

attributeName String Name to display for the attribute, which Small, 60.0 60.0
Override overrides the name on the attribute. For
example, the Color attribute is overridden
to display as Laptop Color.

code String Unique code of the attribute definition. Small, 60.0 60.0

dataType String Data type of the attribute definition value. Small, 60.0 60.0

defaultValue String Default value of the attribute. Small, 60.0 60.0

description String Description of the attribute. Small, 60.0 60.0

displayType String Display types of the attribute. Valid values Small, 60.0 60.0
are:
• Radio Button
• Checkbox
• Toggle
• Input Date
• DateTime
• Currency Symbol
• Currency Code
• Currency Name
• Percentage
• Text
• Combobox
• Radio Button

113
Product Catalog Management Product Catalog Management Business APIs

Property Name Type Description Filter Group and Available Version


Version
• MultiSelect
• MultiSelectCheckboxes

HelpText String Help text that appears at run time for the Small, 60.0 60.0
attribute.

id String ID of the attribute definition. Small, 60.0 60.0

is Boolean Reserved for future use. Small, 60.0 60.0


Configurable

isHidden Boolean Indicates whether to hide the attribute from Small, 60.0 60.0
the users in the order capture interface
(true) or not (false).

isPrice Boolean Indicates whether the attribute impacts the Small, 60.0 60.0
Impacting product price (true) or not (false).

isReadOnly Boolean Indicates whether the product attribute is Small, 60.0 60.0
read-only for the end users in the order
capture page (true) or not (false).

isRequired Boolean Indicates whether a value for the attribute Small, 60.0 60.0
is required for the assigned parent object
(true) or not (false).

isValue Boolean Reserved for future use. Small, 60.0 60.0


Cloneable

label String Label of the attribute. Small, 60.0 60.0

maximum Integer Maximum number of alphanumeric Small, 60.0 60.0


Character characters that can be entered for attributes
Count of type number and text in run time.

maximumValue String Maximum value that can be entered for Small, 60.0 60.0
attributes of type number, currency, and
percent in run time.

minimum Integer Minimum number of alphanumeric Small, 60.0 60.0


Character characters that can be entered for attributes
Count of type number and text in run time. The
minimum character count must be less than
or equal to the maximum character count.

minimumValue String Minimum value that can be entered for Small, 60.0 60.0
attributes of type number, currency, and
percent in run time. The minimum value
must be less than or equal to the maximum
value.

name String Name of the attribute. Small, 60.0 60.0

114
Product Catalog Management Product Catalog Management Business APIs

Property Name Type Description Filter Group and Available Version


Version
picklist Attribute Picklist ID of the attribute picklist that provides the Small, 60.0 60.0
valid values for the attribute.

sequence Integer Order in which the attribute values appear Small, 60.0 60.0
in the attribute definition when the product
is configured at run time.

status String Lifecycle state of the attribute picklist. Valid Small, 60.0 60.0
values are:
• Active
• Draft
• Inactive

stepValue String Reserved for future use. Small, 60.0 60.0

valueDecoder String Reserved for future use. Small, 60.0 60.0

value String Description of the value assigned to the Small, 60.0 60.0
Description attribute.

Attribute Picklist
Output representation of the attribute picklist.
JSON example
"picklist": {
"dataType": "Text",
"description": "Fabric Module options",
"id": "0v51Q000000TNDkQAO",
"name": "Fabric Module options",
"values": [
{
"abbreviation": "IFM1"
"code": "PV0051",
"displayValue": "25G Intelligent Fabric Module with 8x 25G SFP28 ports",
"id": "0v61Q0000008OMYQA2",
"name": "25G Intelligent Fabric Module with 8x 25G SFP28 ports",
"sequence": "1",
"value": "25G Intelligent Fabric Module with 8x 25G SFP28 ports",
"status" : "Active"
},
{
"abbreviation": "IFM2"
"code": "PV0052",
"displayValue": "100G Intelligent Fabric Module with 8x 100G QSFP28 ports",
"id": "0v61Q0000008OMZQA2",
"name": "100G Intelligent Fabric Module with 8x 100G QSFP28 ports",
"sequence": "2",
"value": "100G Intelligent Fabric Module with 8x 100G QSFP28 ports",

115
Product Catalog Management Product Catalog Management Business APIs

"status" : "Active"
}
]
}

Property Name Type Description Filter Group and Available Version


Version
dataType String Data type of the values in the picklist. Valid Small, 60.0 60.0
values are:
• Boolean
• Date
• Datetime
• Number
• Text
• Currency
• Percent

description String Description of the picklist, such as the Small, 60.0 60.0
picklist purpose or the associated product.

id String ID associated with the attribute picklist Small, 60.0 60.0


record.

name String Name of the picklist value. Small, 60.0 60.0

values Attribute Picklist List of values associated with the picklist. Small, 60.0 60.0
Value[]

Attribute Picklist Value


Output representation of the attribute picklist value.
JSON example
"values": [
{
"abbreviation": "IFM1"
"code": "PV0051",
"displayValue": "25G Intelligent Fabric Module with 8x 25G SFP28 ports",
"id": "0v61Q0000008OMYQA2",
"name": "25G Intelligent Fabric Module with 8x 25G SFP28 ports",
"sequence": "1",
"value": "25G Intelligent Fabric Module with 8x 25G SFP28 ports",
"status" : "Active"
}
]

116
Product Catalog Management Product Catalog Management Business APIs

Property Name Type Description Filter Group and Available Version


Version
abbreviation String Name of the picklist value that appears at Small, 60.0 60.0
run time.

code String Unique code of the picklist value within the Small, 60.0 60.0
picklist.

displayValue String Picklist value that appears at run time in the Small, 60.0 60.0
order capture page.

id String ID associated with the attribute picklist Small, 60.0 60.0


value.

name String Name of the picklist value. Small, 60.0 60.0

sequence String Order in which the picklist value appears in Small, 60.0 60.0
the picklist.

status String Status of the attribute picklist value. Small, 62.0 62.0

value String Value of the picklist item. Value must be Small, 60.0 60.0
unique within the picklist.

Bulk Unit Of Measure Info


Output representation of the details of the unit of measure records along with error details.
JSON example
{
"correlationId": "928ea35f-8a2f-4932-9f7e-ec6cdbcabdbe",
"errorCodeToErrorMap": {
"UNIT_OF_MEASURE_INFO_INVALID_UOM_IDS": {
"errorCode": "UOM_INFO_API_003",
"messageDetail": "Invalid uomId is passed. Please specify a valid uomId.",
"messageTitle": "Invalid uomId is passed.",
"recordIds": [
"sample"
],
"source": "Unit_Of_Measure_Info_Api"
}
},
"status": {
"errors": [],
"httpStatusCode": "200",
"message": " Successfully fetched UnitOfMeasure Info. "
},
"uomIdToUnitOfMeasureInfo": {
"0hEU200000003M5MAI": {
"id": "0hEU200000003M5MAI",
"name": "Pounds",
"roundingMethod": "Nearest",
"scale": 1,

117
Product Catalog Management Product Catalog Management Business APIs

"unitCode": "Pounds"
},
"0hEU200000003KTMAY": {
"id": "0hEU200000003KTMAY",
"name": "Grams",
"roundingMethod": "Down",
"scale": 5,
"unitCode": "Grams"
}
}
}

Property Name Type Description Filter Group and Available Version


Version
correlationId String Unique token to track and associate related Small, 63.0 63.0
events or transactions across different
components of the application. If
unspecified, a Universally Unique Identifier
(UUID) is generated.

errorCode Map<String, Unit Of Error codes mapped to their details. Small, 63.0 63.0
ToErrorMap Measure Error>

status Unit Of Measure Status of the API request. Small, 63.0 63.0
Status[]

uomIdToUnit Map<String, Unit Of Unit of measure record IDs mapped to their Small, 63.0 63.0
OfMeasureInfo Measure Info> details.

Data Rounding
Output representation of the data rounding response.
JSON example
{
"keyToUomDataRowOutput": {
"PRC1": {
"key": "PRC1",
"fieldApiNameToFieldDataOutput": {
"MaxQuantity": {
"fieldApiName": "MaxQuantity",
"originalValue": 1234.5678,
"isRoundingApplicable": true,
"roundedValue": 1234.56,
"unitOfMeasureId": "uomId1",
"errorCodeToErrorMap" : []
},
"MinQuantity": {
"fieldApiName": "MinQuantity",
"originalValue": 643.1,
"isRoundingApplicable": true,
"roundedValue": 643.1,

118
Product Catalog Management Product Catalog Management Business APIs

"unitOfMeasureId": "uomId1"
}
},
"errorCodeToErrorMap" : []
},
"PRC2": {
"key": "PRC2",
"fieldApiNameToFieldDataOutput": {
"MaxQuantity": {
"fieldApiName": "MaxQuantity",
"originalValue": 1234.5678,
"isRoundingApplicable": true,
"roundedValue": 1234.56,
"unitOfMeasureId": "uomId1"
},
"MinQuantity": {
"fieldApiName": "MinQuantity",
"originalValue": 987.4628,
"isRoundingApplicable": true,
"errorCodeToErrorMap": {
"message": "arithrmetic operation"
},
"unitOfMeasureId": "uomId1"
}
},
"errorCodeToErrorMap": []
},
"PRC3": {
"key": "PRC3",
"fieldApiNameToFieldDataOutput": {
"MaxQuantity": {
"fieldApiName": "MaxQuantity",
"originalValue": 1234.5678,
"isRoundingApplicable": false,
"unitOfMeasureId": "uomId2"
},
"MinQuantity": {
"fieldApiName": "MinQuantity",
"originalValue": 987.4628,
"isRoundingApplicable": false,
"unitOfMeasureId": "uomId2"
}
},
"errorCodeToErrorMap": []
}
}
}

Property Name Type Description Filter Group and Available Version


Version
correlationId String Unique token to track and associate related Small, 63.0 63.0
events or transactions across different
components of the application. If

119
Product Catalog Management Product Catalog Management Business APIs

Property Name Type Description Filter Group and Available Version


Version
unspecified, a Universally Unique Identifier
(UUID) is generated.

errorCode Map<String, Unit Of Error codes mapped to their details. Small, 63.0 63.0
ToErrorMap Measure Error>

keyToData Map<String, Data Data row key mapped to the associated data Small, 63.0 63.0
RowOutput Row> row.

status Unit Of Measure Status of the API request. Small, 63.0 63.0
Status[]

Data Row
Output representation of the details of a data row.
JSON example
{
"keyToUomDataRowOutput": {
"PRC1": {
"key": "PRC1",
"fieldApiNameToFieldDataOutput": {
"MaxQuantity": {
"fieldApiName": "MaxQuantity",
"originalValue": 1234.5678,
"isRoundingApplicable": true,
"roundedValue": 1234.56,
"unitOfMeasureId": "uomId1",
"errorCodeToErrorMap" : []
},
"MinQuantity": {
"fieldApiName": "MinQuantity",
"originalValue": 643.1,
"isRoundingApplicable": true,
"roundedValue": 643.1,
"unitOfMeasureId": "uomId1"
}
},
"errorCodeToErrorMap" : []
},
"PRC2": {
"key": "PRC2",
"fieldApiNameToFieldDataOutput": {
"MaxQuantity": {
"fieldApiName": "MaxQuantity",
"originalValue": 1234.5678,
"isRoundingApplicable": true,
"roundedValue": 1234.56,
"unitOfMeasureId": "uomId1"
},

120
Product Catalog Management Product Catalog Management Business APIs

"MinQuantity": {
"fieldApiName": "MinQuantity",
"originalValue": 987.4628,
"isRoundingApplicable": true,
"errorCodeToErrorMap": {
"message": "arithrmetic operation"
},
"unitOfMeasureId": "uomId1"
}
},
"errorCodeToErrorMap": []
},
"PRC3": {
"key": "PRC3",
"fieldApiNameToFieldDataOutput": {
"MaxQuantity": {
"fieldApiName": "MaxQuantity",
"originalValue": 1234.5678,
"isRoundingApplicable": false,
"unitOfMeasureId": "uomId2"
},
"MinQuantity": {
"fieldApiName": "MinQuantity",
"originalValue": 987.4628,
"isRoundingApplicable": false,
"unitOfMeasureId": "uomId2"
}
},
"errorCodeToErrorMap": []
}
}
}

Property Name Type Description Filter Group and Available Version


Version
errorCode Map<String, Unit Of Map of error codes to their details. Small, 63.0 63.0
ToErrorMap Measure Error>

fieldApi Map<String, Field Map of field API name to associated field Small, 63.0 63.0
NameToField Data> data.
DataOutput

key String Unique key of the data row. Small, 63.0 63.0

Catalog Output
Output representation of the catalog definition.
JSON example
catalogs": [
{
"catalogType": "Sales",

121
Product Catalog Management Product Catalog Management Business APIs

"code": "CAT009",
"description": "SmartBytes B2B Catalog",
"effectiveEndDate": "31-07-2023",
"effectiveStartDate": "24-07-2023",
"id": "0ZS1Q000000XbZAWA0",
"name": "SmartBytes B2B Catalog",
"numberOfCategories": 8
}
]

Property Name Type Description Filter Group and Available Version


Version
catalogType String The category of an entry in the catalog, Small, 60.0 60.0
which is customizable. For example, catalog
types, such as sellable products, services,
parts, technical services, or technical
resources.

code String Unique ID associated with the catalog. Small, 60.0 60.0

description String Description of the catalog. Small, 60.0 60.0

effective String Date and time from when the catalog isn't Small, 60.0 60.0
EndDate available to the end users.

effective String Date and time from when the catalog is Small, 60.0 60.0
StartDate available to the end users.

id String ID of the catalog. Small, 60.0 60.0

name String Name of the catalog. Small, 60.0 60.0

numberOf Integer Number of categories in the catalog. Small, 60.0 60.0


Categories

Catalogs Output
Output representation of the retrieved catalog result.
JSON example
{
"catalogs": [
{
"catalogType": "Sales",
"code": "CAT009",
"id": "0ZS1Q000000XbZAWA0",
"name": "SmartBytes B2B Catalog",
"numberOfCategories": 8
}
],
"correlationId": "0b7b6a30-895c-407a-91b3-e67482d339a3",
"count": 1,
"status": {

122
Product Catalog Management Product Catalog Management Business APIs

"code": "200",
"errors": [],
"message": "Successfully fetched the catalog records."
}
}

Property Name Type Description Filter Group and Available Version


Version
catalogs Catalog Output[] List of the catalogs. Small, 60.0 60.0

correlationId String Unique token to track and associate related Small, 60.0 60.0
events or transactions across different
components of the application. If
unspecified, a Universally Unique Identifier
(UUID) is generated.

count Integer Total number of the catalog records Small, 60.0 60.0
retrieved after the query execution, wherein
the pageSize property determines the
number of records returned in every page.

status Status Status of the request. Small, 60.0 60.0

Categories Output
Output representation of the retrieved categories result.
JSON example
{
"categories": [
{
"catalogId": "0ZS1Q000000XbZAWA0",
"code": "B2B Category",
"description": "Products Category",
"hasSubCategories": true,
"id": "0ZG1Q000000XbVGWA0",
"name": "Unified Computing",
"numberOfProducts": 2,
"parentCategoryId": "0ZGT100000000qlOAA",
"sortOrder": 2,
"subCategories": [],
"isNavigational: false
}
],
"correlationId": "30230973-0a09-405e-b148-f085bb6dd66e",
"status": {
"code": "200",
"errors": [],
"message": "Successfully fetched the category records."
}
}

123
Product Catalog Management Product Catalog Management Business APIs

Property Name Type Description Filter Group and Available Version


Version
categories Category Output[] List of the retrieved categories. Small, 60.0 60.0

correlationId String Unique token to track and associate related Small, 60.0 60.0
events or transactions across different
components of the application. If
unspecified, a Universally Unique Identifier
(UUID) is generated.

status Status Status of the request. Small, 60.0 60.0

Category Output
Output representation of the category definition.
JSON example
"categories": [
{
"catalogId": "0ZS1Q000000XbZAWA0",
"code": "B2B Category",
"description": "Products Category",
"hasSubCategories": true,
"id": "0ZG1Q000000XbVGWA0",
"name": "Unified Computing",
"numberOfProducts": 2,
"parentCategoryId": "0ZGT100000000qlOAA",
"sortOrder": 2,
"subCategories": [],
"isNavigational: false
}
]

Property Name Type Description Filter Group and Available Version


Version
catalogId String ID of the catalog that the category is Small, 60.0 60.0
associated with.

code String Unique code of the product category. Small, 60.0 60.0

description String Description of the category. If data Small, 60.0 60.0


translation is set up and specified in the org,
the translated description is available.

hasSub Boolean Indicates whether the subcategories are Small, 60.0 60.0
Categories available (true) or not (false).

id String ID of the category. Small, 60.0 60.0

isNavigational Boolean Indicates whether the category node is Small, 62.0 62.0
navigational (true) or not (false).

124
Product Catalog Management Product Catalog Management Business APIs

Property Name Type Description Filter Group and Available Version


Version
name String Name of the category. If data translation is Small, 60.0 60.0
set up and specified in the org, the
translated name is available.

numberOf Integer Number of products associated with the Small, 60.0 60.0
Products category.

parent String ID of the parent category. Small, 60.0 60.0


CategoryId

sortOrder Integer Display order of the product category Small, 60.0 60.0
relative to the siblings with the same parent
category.

subCategories Category Output[] List of subcategories, if available. This Small, 60.0 60.0
property is returned with the Categories List
(GET) API response.

Deep Clone Error


Output representation of the error details related to the deep clone request.

Property Name Type Description Filter Group and Available Version


Version
errorCode String Code of the error message related to the Small, 63.0 63.0
deep clone request.

errorMessage String Details of the error message related to the Small, 63.0 63.0
deep clone request.

Deep Clone Record Response


Output representation of the details of the cloned related records.
JSON example
"createdRecordList": [
{
"createdRecordId": "01tSG0000030Yb3YAE",
"entityApiName": "Product2",
"entityLabel": "Product"
},
{
"createdRecordId": "0iOSG0000002rMn2AI",
"entityApiName": "ProductSellingModelOption",
"entityLabel": "Product Selling Model Option"
},
{
"createdRecordId": "0v7SG0000001ktdYAA",

125
Product Catalog Management Product Catalog Management Business APIs

"entityApiName": "ProductAttributeDefinition",
"entityLabel": "Product Attribute Definition"
}
]

Property Name Type Description Filter Group and Available Version


Version
created String ID of the created related record. Small, 63.0 63.0
RecordId

entityApiName String API name of the created object. Small, 63.0 63.0

entityLabel String Label of the created object. Small, 63.0 63.0

Deep Clone Response


Output representation of the details of the cloned record.
JSON example
{
"createdRecordList": [
{
"createdRecordId": "01tSG0000030Yb3YAE",
"entityApiName": "Product2",
"entityLabel": "Product"
},
{
"createdRecordId": "0iOSG0000002rMn2AI",
"entityApiName": "ProductSellingModelOption",
"entityLabel": "Product Selling Model Option"
},
{
"createdRecordId": "0v7SG0000001ktdYAA",
"entityApiName": "ProductAttributeDefinition",
"entityLabel": "Product Attribute Definition"
}
],
"createdRootRecordId": "01tSG0000030Yb3YAE",
"errorList": [],
"isSuccessful": true
}

Property Name Type Description Filter Group and Available Version


Version
created Deep Clone Record List of cloned related records of the main Small, 63.0 63.0
RecordList Response[] record.

createdRoot String ID of the created root record. Small, 63.0 63.0


RecordId

errorList Deep Clone Error[] Details of errors, if any. Small, 63.0 63.0

126
Product Catalog Management Product Catalog Management Business APIs

Property Name Type Description Filter Group and Available Version


Version
errorMessage String Error message if the API request fails. Small, 63.0 63.0

isSuccessful Boolean Indicates whether the API request is Small, 63.0 63.0
successful (true) or not (false).

Error Output
Output representation of the error details.

Property Name Type Description Filter Group and Available Version


Version
errorCode String Code of the error message. Small, 60.0 60.0

messageDetail String Details of the error message. Small, 60.0 60.0

messageTitle String Title of the error message. Small, 60.0 60.0

nodeProductId String ID of the product node. Small, 61.0 61.0

recordId String ID of the record. Small, 60.0 60.0

recordName String Name of the record. Small, 60.0 60.0

related Invalid Related List of related object nodes with errors. Small, 62.0 62.0
ObjectNodes Object Node[]

source String Name of the API that’s the source of the Small, 60.0 60.0
error.

Facet Value
Output representation of the facet values found in the search result.
JSON example

"values": [
{
"displayName": "Simple",
"nameOrId": "Simple",
"productCount": 9
}
]

Property Name Type Description Filter Group and Available Version


Version
displayName String Display name of the facet value. Small, 63.0 63.0

nameOrId String Facet value name or ID. Reserved for internal Small, 63.0 63.0
use.

127
Product Catalog Management Product Catalog Management Business APIs

Property Name Type Description Filter Group and Available Version


Version
productCount Number of products in the search result that Small, 63.0 63.0
match the facet value.

Field Data
Output representation of the field data.

Property Name Type Description Filter Group and Available Version


Version
errorCode Map<String, Unit Of Error codes mapped to their details. Small, 63.0 63.0
ToErrorMap Measure Error>

fieldApiName String Unique API Name of the field. Small, 63.0 63.0

isRounding Boolean Indicates whether data rounding is Small, 63.0 63.0


Applicable applicable to the decimal (true) or not
(false).

originalValue String Original value of the field. Small, 63.0 63.0

roundedValue String Rounded field value that corresponds to the Small, 63.0 63.0
original value, if data rounding is applicable.

unitOf String ID of the unit of measure record that’s Small, 63.0 63.0
MeasureId associated to the field.

Fields Info
Output representation of the metadata fields in an object.
JSON example
"fields": [
{
"dataType": "text",
"isFacetableConfigurable": true,
"isSearchableConfigurable": false,
"label": "Product Name",
"name": "Name",
"type": "Standard"
},
{
"dataType": "multilinetext",
"isFacetableConfigurable": false,
"isSearchableConfigurable": true,
"label": "Product Description",
"name": "Description",
"type": "Standard"
}
]

128
Product Catalog Management Product Catalog Management Business APIs

Property Name Type Description Filter Group and Available Version


Version
customFieldId String ID of the custom field. Small, 62.0 62.0

dataType String Type of data. Small, 62.0 62.0

is Boolean Reserved for internal use. Small, 62.0 62.0


Configurable

isFacetable Boolean Indicates whether the field is facetable Small, 63.0 Small, 63.0
Configurable (true) or not (false).

isSearchable Boolean Indicates whether the field is searchable Small, 63.0 Small, 63.0
Configurable (true) or not (false).

label String Label of the object field. Small, 62.0 62.0

name String Name of the object field. Small, 62.0 62.0

type String Type of the object field. Small, 62.0 62.0

Index Configuration Collection


Output representation of the collection of index configuration details.
JSON example
{
"correlationId": "ad960cb6-392d-4d11-bac3-3824baedf67e",
"errors": [],
"indexConfigurations": [
{
"isSearchable": true,
"name": "Name",
"type": "Standard"
}
],
"metadata": {
"objectInfos": [
{
"fields": [
{
"dataType": "text",
"isFacetableConfigurable": true,
"isSearchableConfigurable": false,
"label": "Product Name",
"name": "Name",
"type": "Standard"
},
{
"dataType": "multilinetext",
"isFacetableConfigurable": false,
"isSearchableConfigurable": true,
"label": "Product Description",

129
Product Catalog Management Product Catalog Management Business APIs

"name": "Description",
"type": "Standard"
}
],
"name": "Product2"
},
{
"fields": [
{
"dataType": "stringplusclob",
"label": "Description",
"name": "Description",
"type": "ProductAttributeDefinitionStandard"
},
{
"dataType": "text",
"label": "Name",
"name": "Name",
"type": "ProductAttributeDefinitionStandard"
},
],
"name": "ProductAttributeDefinition"
}
]
},
"statusCode": "200"
}

Property Name Type Description Filter Group and Available Version


Version
correlationId String Unique token to track and associate related Small, 62.0 62.0
events or transactions across different
components of the application. If
unspecified, a Universally Unique Identifier
(UUID) is generated.

errors Error Output[] List of errors, if any. Small, 62.0 62.0

index Index Configuration Details of the index-configured fields. Small, 62.0 62.0
Configurations Field[]

metadata Metadata[] Details of the metadata for objects. Small, 62.0 62.0

statusCode String Code that indicates the status of the request. Small, 62.0 62.0

Index Configuration Field


Output representation of the details of the index-configured field.
JSON example
"indexConfigurations": [
{

130
Product Catalog Management Product Catalog Management Business APIs

"attributeDefinitionId": "0tjT1000000002bIAA",
"name": "Color",
"type": "ProductDynamicAttribute",
"isSearchable": true
},
{
"attributeFieldId": "00Nxx000001FwnABII",
"name": "Message__c",
"type": "Custom",
"isSearchable": true
},
{
"name": "Code",
"type": "Standard",
"isSearchable": true
},
{
"facetDisplayRank": 1,
"isFacetable": false,
"isSearchable": true,
"name": "Family",
"type": "Standard"
}
]

Property Name Type Description Filter Group and Available Version


Version
attribute String ID of the attribute definition. Small, 62.0 62.0
DefinitionId

attribute String ID of the attribute field. Small, 62.0 62.0


FieldId

facetDisplay Integer Sort order for displaying the facets at run Small, 63.0 63.0
Rank time.

isFacetable Boolean Indicates whether the field is facetable Small, 63.0 63.0
(true) or not (false).

isSearchable Boolean Indicates whether the index-configured field Small, 62.0 62.0
is searchable (true) or not (false).

name String Name of the index-configured field. Small, 62.0 62.0

type String Type of the index-configured field. Small, 62.0 62.0

Index Configurations Update


Output representation of the updated index configuration.
JSON example
{
"correlationId": "8545b5aa-f3e6-429a-8f21-9cc4ce50b1d7",

131
Product Catalog Management Product Catalog Management Business APIs

"errors": [],
"indexConfigurations": [
{
"attributeDefinitionId": "0tjT1000000002bIAA",
"name": "Color",
"type": "ProductDynamicAttribute",
"isSearchable": true
},
{
"attributeFieldId": "00Nxx000001FwnABII",
"name": "Message__c",
"type": "Custom",
"isSearchable": true
},
{
"name": "Code",
"type": "Standard",
"isSearchable": true
},
{
"facetDisplayRank": 1,
"isFacetable": false,
"isSearchable": true,
"name": "Family",
"type": "Standard"
}
],
"statusCode": "200"
}

Property Name Type Description Filter Group and Available Version


Version
correlationId String Unique token to track and associate related Small, 62.0 62.0
events or transactions across different
components of the application. If
unspecified, a Universally Unique Identifier
(UUID) is generated.

errors Error Output[] List of errors, if any. Small, 62.0 62.0

index Index Configuration Details of the index-configured fields. Small, 62.0 62.0
Configurations Field[]

statusCode String Code that indicates the status of the request. Small, 62.0 62.0

Index Error
Output representation of the error details related to an index.
JSON example
"indexErrorDetails": {
"errorFileId": "069xx0000004C92AAE",

132
Product Catalog Management Product Catalog Management Business APIs

"indexCreatedDate": "2024-10-03T05:24:18.000Z",
"indexErrorsCount": 1,
"indexLastUpdatedDate": "2024-10-03T05:27:00.000Z",
"itemLevelErrorsCount": 1
}

Property Name Type Description Filter Group and Available Version


Version
errorFileId String ID of the exported error file that contains Small, 63.0 63.0
the index errors.

indexCreated String Date on which the index was created. Small, 63.0 63.0
Date

index Integer Number of index-level errors. Small, 63.0 63.0


ErrorsCount

indexLast String Date on which the index was last updated. Small, 63.0 63.0
UpdatedDate

itemLevel Integer Number of item-level errors. Small, 63.0 63.0


ErrorsCount

Index Setting
Output representation of the retrieved index settings.
JSON example
{
"errors": [],
"metadata": {
"activeLanguages": ["en_US","ja","es","nl_NL"]
},
"setting": {
"defaultLanguage": "en_US",
"id": "1JySG0000000GUb0AM",
"supportedLanguages": ["en_US","ja","es","nl_NL"]
},
"statusCode": "200"
}

Property Name Type Description Filter Group and Available Version


Version
errors Error Output[] List of errors, if any. Small, 63.0 63.0

metadata Setting Metadata[] Metadata associated with the setting. Small, 63.0 63.0

setting Setting[] Setting that’s used in indexing and Small, 63.0 63.0
maintained for an org.

statusCode String Code that indicates the status of the request. Small, 63.0 63.0

133
Product Catalog Management Product Catalog Management Business APIs

Index Setting Update


Output representation of the details of the updated index setting.
JSON example
{
"setting" : {
"supportedLanguages" : ["en_US","ja","es","nl_NL"],
"id": "1JySG0000000GUb0AM",
"defaultLanguage" : "en_US"
},
"errors" : [],
"statusCode" : "200"
}

Property Name Type Description Filter Group and Available Version


Version
errors Error Output[] List of errors, if any. Small, 63.0 63.0

setting Setting[] Setting that’s used in indexing and Small, 63.0 63.0
maintained for an org.

statusCode String Code that indicates the status of the API Small, 63.0 63.0
request.

Invalid Related Object Node


Output representation of the invalid related object node with details of errors.
JSON example
To add

Property Name Type Description Filter Group and Available Version


Version
errorMessages String[] List of error messages. Small, 62.0 62.0

relatedObject String API name of the related object. Small, 62.0 62.0
APIName

Metadata
Output representation of the metadata details for objects.
JSON example
"metadata": {
"objectInfos": [
{
"fields": [
{
"dataType": "text",

134
Product Catalog Management Product Catalog Management Business APIs

"isFacetableConfigurable": true,
"isSearchableConfigurable": false,
"label": "Product Name",
"name": "Name",
"type": "Standard"
},
{
"dataType": "multilinetext",
"isFacetableConfigurable": false,
"isSearchableConfigurable": true,
"label": "Product Description",
"name": "Description",
"type": "Standard"
}
],
"name": "Product2"
},
{
"fields": [
{
"dataType": "stringplusclob",
"label": "Description",
"name": "Description",
"type": "ProductAttributeDefinitionStandard"
},
{
"dataType": "text",
"label": "Name",
"name": "Name",
"type": "ProductAttributeDefinitionStandard"
},
],
"name": "ProductAttributeDefinition"
}
]
}

Property Name Type Description Filter Group and Available Version


Version
objectInfos Object Info[] Metadata details for objects. Small, 62.0 62.0

Object Info
Output representation of the object details along with its fields.
JSON example
"objectInfos": [
{
"fields": [
{
"dataType": "text",
"isFacetableConfigurable": true,

135
Product Catalog Management Product Catalog Management Business APIs

"isSearchableConfigurable": false,
"label": "Product Name",
"name": "Name",
"type": "Standard"
},
{
"dataType": "multilinetext",
"isFacetableConfigurable": false,
"isSearchableConfigurable": true,
"label": "Product Description",
"name": "Description",
"type": "Standard"
}
],
"name": "Product2"
},
{
"fields": [
{
"dataType": "stringplusclob",
"label": "Description",
"name": "Description",
"type": "ProductAttributeDefinitionStandard"
},
{
"dataType": "text",
"label": "Name",
"name": "Name",
"type": "ProductAttributeDefinitionStandard"
},
],
"name": "ProductAttributeDefinition"
}
]

Property Name Type Description Filter Group and Available Version


Version
fields Fields Info[] Fields of the object. Small, 62.0 62.0

name String Name of the object. Small, 62.0 62.0

Product Classification
Output representation of the product classification details.
JSON example
"productClassification": {
"id": "11BT10000004C9SMAU",
"name" : "class",
"code" : "code",
"status" : "Active"
}

136
Product Catalog Management Product Catalog Management Business APIs

Property Name Type Description Filter Group and Available Version


Version
code String Code of the product classification record. Small, 61.0 61.0

id String ID of the product classification record. Small, 60.0 60.0

name String Name of the product classification record. Small, 61.0 61.0

status String Status of the product classification record. Small, 61.0 61.0

Product Component Group


Output representation of the product component group.
JSON example
"productComponentGroups":[
{
"childGroups":[
{
"childGroups":[],
" components":[
{
"additionalFields":{},
"attributeCategory":[],
"attributes":[],
"catalogs":[],
"categories":[],
"childProducts":[],
"id":"01txx0000006i2aAAA",
"isActive":true,
"isAssetizable":true,
"isSoldOnlyWithOtherProds":true,
"name":"GenWatt Diesel 1000kW",
"nodeType":"simpleProduct",
"productCode":"GC1060",
"productComponentGroups":[],
"productRelatedComponent":
{
"childProductId":"01txx0000006i2aAAA",
"doesBundlePriceIncludeChild":true,
"id":"0dSxx00000001P7EAI",
"isComponentRequired":false,
"isDefaultComponent":true,
"isExcluded":false,
"isQuantityEditable":false,
"parentProductId":"01txx0000006iC8AAI",
"productRelationshipTypeId":"0yoxx000000001dAAA",
"quantity":1,
"quantityScaleMethod":"Proportional"
},
"productSellingModelOptions":[]
},
{

137
Product Catalog Management Product Catalog Management Business APIs

"additionalFields":{},
"attributeCategory":[],
"attributes":[],
"catalogs":[],
"categories":[],
"childProducts":[],
"id":"01txx0000006i2TAAQ",
"isActive":true,
"isAssetizable":true,
"isSoldOnlyWithOtherProds":true,
"name":"GenWatt Diesel 10kW",
"nodeType":"simpleProduct",
"productCode":"GC1020",
"productComponentGroups":[],
"productRelatedComponent":{
"childProductId":"01txx0000006i2TAAQ",
"doesBundlePriceIncludeChild":true,
"id":"0dSxx00000001P8EAI",
"isComponentRequired":false,
"isDefaultComponent":true,
"isExcluded":false,
"isQuantityEditable":false,
"parentProductId":"01txx0000006iC8AAI",
"productRelationshipTypeId":"0yoxx000000001dAAA",
"quantity":1,"quantityScaleMethod":"Proportional"
},
"productSellingModelOptions":[]
},
{
"additionalFields":{},
"attributeCategory":[],
"attributes":[],
"catalogs":[],
"categories":[],
"childProducts":[],
"id":"01txx0000006i2SAAQ",
"isActive":true,
"isAssetizable":true,
"isSoldOnlyWithOtherProds":true,
"name":"GenWatt Diesel 200kW",
"nodeType":"simpleProduct",
"productCode":"GC1040",
"productComponentGroups":[],
"productRelatedComponent":
{
"childProductId":"01txx0000006i2SAAQ",
"doesBundlePriceIncludeChild":true,
"id":"0dSxx00000001P9EAI",
"isComponentRequired":false,
"isDefaultComponent":true,
"isExcluded":false,
"isQuantityEditable":false,
"parentProductId":"01txx0000006iC8AAI",
"productRelationshipTypeId":"0yoxx000000001dAAA",

138
Product Catalog Management Product Catalog Management Business APIs

"quantity":1,
"quantityScaleMethod":"Proportional"
},
"productSellingModelOptions":[]
}
],
"id":"0y7xx000000015lAAA",
"isExcluded":false,
"name":"G1.1",
"parentGroupId":"0y7xx0000000149AAA",
"parentProductId":"01txx0000006iC8AAI"
}
],
"components":[],
"id":"0y7xx0000000149AAA",
"isExcluded":false,
"name":"G1",
"parentProductId":"01txx0000006iC8AAI"
}
]

Property Name Type Description Filter Group and Available Version


Version
code String Unique code of the product component Small, 60.0 60.0
group, which is used only during design
time.

components Product[] List of the product details. Small, 60.0 60.0

childGroups Product Component List of child product components groups. Small, 62.0 62.0
Group[]

description String Description of the product component Small, 60.0 60.0


group.

id String ID of the record. Small, 60.0 60.0

isExcluded Boolean Indicates whether the product component Small, 60.0 60.0
group is excluded from the product bundle
for selection in the run time (true) or not
(false).

maxBundle Integer Maximum number of product components Small, 60.0 60.0


Components that can be added to a group.

minBundle Integer Minimum number of product components Small, 60.0 60.0


Components that can be added to a group.

name String Name of the record. Small, 60.0 60.0

parentProduct String ID associated with the parent product Small, 60.0 60.0
Id record.

parentGroupId String ID of the parent group record. Small, 62.0 62.0

139
Product Catalog Management Product Catalog Management Business APIs

Property Name Type Description Filter Group and Available Version


Version
sequence Integer Order in which the groups are listed in the Small, 60.0 60.0
bundle.

Product
Output representation of the product definition.
JSON example
This example shows a sample of the Product List (POST) API response.
{
"products": [
{
"additionalFields": {
"code__c": "SWX445"
},
"attributeCategory": [
{
"attributes": [
{
"additionalFields": {
"scope": "Order"
},
"attributeNameOverride": "AD Text",
"code": "AD02",
"dataType": "Text",
"displayType": "Text",
"MinimumCharacterCount": "1",
"MaximumCharacterCount": "20",
"defaultValue": "AD Text DV",
"description": "AD Text Desc",
"helpText": "AD Text DHT",
"id": "0tjT1000000002bIAA",
"isHidden": false,
"isPriceImpacting": true,
"isReadOnly": true,
"isRequired": true,
"label": "AD Text Label",
"name": "AD Text",
"sequence": 1,
"status": "Active",
"valueDescription": "AD Text VD"
}
],
"code": "AC001",
"id": "0v3T1000000000BIAQ",
"name": "build and make"
}
],
"attributes": [
{

140
Product Catalog Management Product Catalog Management Business APIs

"additionalFields": {
"scope": "SWX445"
},
"attributeNameOverride": "AD Picklist",
"code": "AD001",
"dataType": "Picklist",
"defaultValue": "Red",
"description": "AD Picklist Description",
"helpText": "AD Picklist DHT",
"id": "0tjT1000000002WIAQ",
"isHidden": false,
"isPriceImpacting": false,
"isReadOnly": false,
"isRequired": true,
"label": "AD Picklist Label",
"name": "AD Picklist",
"picklist": {
"dataType": "Text",
"description": "APV Description",
"id": "0v5T10000000001IAA",
"name": "Color",
"values": [
{
"abbreviation": "Blue Abb",
"code": "APV03",
"displayValue": "Blue DV",
"id": "0v6T10000000006IAA",
"name": "Blue",
"sequence": "3",
"value": "Blue b",
"status": "Active"
},
{
"abbreviation": "Red Abb",
"code": "APV04",
"displayValue": "Red",
"id": "0v6T10000000001IAA",
"name": "Red",
"sequence": "4",
"value": "Red",
"status": "Active"
},
{
"abbreviation": "One Abb",
"code": "APV02",
"displayValue": "One DV",
"id": "0v6T1000000000uIAA",
"name": "One",
"sequence": "2",
"value": "One 1",
"status": "Active"
},
{
"abbreviation": "Red Abbreviation",

141
Product Catalog Management Product Catalog Management Business APIs

"code": "APV01",
"displayValue": "Red Display Value",
"id": "0v6T1000000001OIAQ",
"name": "Red",
"sequence": "1",
"value": "red12",
"status": "Active"
}
]
},
"sequence": 1,
"status": "Active",
"valueDescription": "AD Picklist VD"
}
],
"categories": [],
"childProducts": [
{
"attributeCategory": [],
"attributes": [],
"categories": [],
"childProducts": [],
"configureDuringSale": "NotAllowed",
"id": "01tZ7000000AJkaIAG",
"isActive": false,
"isAssetizable": true,
"isSoldOnlyWithOtherProds": false,
"name": "Earphones",
"nodeType": "bundleProduct",
"productComponentGroups": [],
"productRelatedComponent": {
"childProductId": "01tZ7000000AJkaIAG",
"doesBundlePriceIncludeChild": true,
"id": "0dSZ700000000cdMAA",
"isComponentRequired": false,
"isDefaultComponent": true,
"isExcluded": false,
"isQuantityEditable": false,
"parentProductId": "01tZ7000000AJXOIA4",
"productRelationshipTypeId": "0yoZ700000000kPIAQ",
"quantity": 1,
"quantityScaleMethod": "Proportional"
},
"productSellingModelOptions": []
}
],
"description": "Keep your organization connected with seamless collaboration across
distributed teams. No matter where employees are located, organizations are seeking
stronger employee engagement and customer experiences to enable more productivity and
greater business agility. More effective collaboration helps organizations work smarter.",

"displayUrl":
"https://dispatch.m.io/wp-content/uploads/2023/01/History-of-Webex.png",
"id": "01t1Q000008CD2eQAG",

142
Product Catalog Management Product Catalog Management Business APIs

"isActive": true,
"isAssetizable": true,
"isSoldOnlyWithOtherProds": false,
"name": "SmartBytes Collaboration Suite",
"nodeType": "bundleProduct",
"productClassification": {
"id": "11B1Q0000008OMGUA2"
},
"productCode": "P0143",
"productComponentGroups": [
{
"components": [
{
"attributeCategory": [],
"attributes": [],
"categories": [],
"childProducts": [],
"id": "01tZ7000000AJXTIA4",
"isActive": false,
"isAssetizable": true,
"isSoldOnlyWithOtherProds": false,
"name": "Charger",
"nodeType": "bundleProduct",
"productComponentGroups": [],
"productRelatedComponent": {
"childProductId": "01tZ7000000AJXTIA4",
"doesBundlePriceIncludeChild": true,
"id": "0dSZ700000000YLMAY",
"isComponentRequired": false,
"isDefaultComponent": true,
"isExcluded": false,
"isQuantityEditable": false,
"parentProductId": "01tZ7000000AJXOIA4",
"productRelationshipTypeId": "0yoZ700000000kPIAQ",
"quantity": 1,
"quantityScaleMethod": "Proportional"
},
"productSellingModelOptions": []
}
],
"id": "0y7Z700000000TtIAI",
"isExcluded": false,
"name": "Box",
"parentProductId": "01tZ7000000AJXOIA4"
}
],
"productSellingModelOptions": [
{
"id": "0iO1Q0000008OkeUAE",
"productId": "01t1Q000008CD2eQAG",
"productSellingModel": {
"id": "0jP1Q000000CaVFUA0",
"isDefault": true,
"name": "One Time",

143
Product Catalog Management Product Catalog Management Business APIs

"sellingModelType": "OneTime",
"status": "Active"
}
}
],
"productSpecificationType": {
"name": "None"
}
}
],
"status": {
"code": "200",
"correlationId": "fd158d80-d73c-4a1f-a009-9225db804d70",
"errors": [],
"message": "Successfully fetched product records."
}
}

This example shows a sample of the Bulk Product Details (POST) API response.
{
"products": [
{
"additionalFields": {
"code__c": "SWX445"
},
"attributeCategory": [
{
"attributes": [
{
"additionalFields": {
"scope": "Order"
},
"attributeNameOverride": "AD Text",
"code": "AD02",
"dataType": "Text",
"displayType": "Text",
"MinimumCharacterCount": "1",
"MaximumCharacterCount": "20",
"defaultValue": "AD Text DV",
"description": "AD Text Desc",
"helpText": "AD Text DHT",
"id": "0tjT1000000002bIAA",
"isHidden": false,
"isPriceImpacting": true,
"isReadOnly": true,
"isRequired": true,
"label": "AD Text Label",
"name": "AD Text",
"sequence": 1,
"status": "Active",
"valueDescription": "AD Text VD"
}
],
"code": "AC001",

144
Product Catalog Management Product Catalog Management Business APIs

"id": "0v3T1000000000BIAQ",
"name": "build and make"
}
],
"attributes": [
{
"additionalFields": {
"scope": "SWX445"
},
"attributeNameOverride": "AD Picklist",
"code": "AD001",
"dataType": "Picklist",
"defaultValue": "Red",
"description": "AD Picklist Description",
"helpText": "AD Picklist DHT",
"id": "0tjT1000000002WIAQ",
"isHidden": false,
"isPriceImpacting": false,
"isReadOnly": false,
"isRequired": true,
"label": "AD Picklist Label",
"name": "AD Picklist",
"picklist": {
"dataType": "Text",
"description": "APV Description",
"id": "0v5T10000000001IAA",
"name": "Color",
"values": [
{
"abbreviation": "Blue Abb",
"code": "APV03",
"displayValue": "Blue DV",
"id": "0v6T10000000006IAA",
"name": "Blue",
"sequence": "3",
"value": "Blue b",
"status": "Active"
},
{
"abbreviation": "Red Abb",
"code": "APV04",
"displayValue": "Red",
"id": "0v6T10000000001IAA",
"name": "Red",
"sequence": "4",
"value": "Red",
"status": "Active"
},
{
"abbreviation": "One Abb",
"code": "APV02",
"displayValue": "One DV",
"id": "0v6T1000000000uIAA",
"name": "One",

145
Product Catalog Management Product Catalog Management Business APIs

"sequence": "2",
"value": "One 1",
"status": "Active"
},
{
"abbreviation": "Red Abbreviation",
"code": "APV01",
"displayValue": "Red Display Value",
"id": "0v6T1000000001OIAQ",
"name": "Red",
"sequence": "1",
"value": "red12",
"status": "Active"
}
]
},
"sequence": 1,
"status": "Active",
"valueDescription": "AD Picklist VD"
}
],
"categories": [],
"childProducts": [
{
"attributeCategory": [],
"attributes": [],
"categories": [],
"childProducts": [],
"configureDuringSale": "NotAllowed",
"id": "01tZ7000000AJkaIAG",
"isActive": false,
"isAssetizable": true,
"isSoldOnlyWithOtherProds": false,
"name": "Earphones",
"nodeType": "bundleProduct",
"productComponentGroups": [],
"productRelatedComponent": {
"childProductId": "01tZ7000000AJkaIAG",
"doesBundlePriceIncludeChild": true,
"id": "0dSZ700000000cdMAA",
"isComponentRequired": false,
"isDefaultComponent": true,
"isExcluded": false,
"isQuantityEditable": false,
"parentProductId": "01tZ7000000AJXOIA4",
"productRelationshipTypeId": "0yoZ700000000kPIAQ",
"quantity": 1,
"quantityScaleMethod": "Proportional"
},
"productSellingModelOptions": []
}
],
"description": "Keep your organization connected with seamless collaboration across
distributed teams. No matter where employees are located, organizations are seeking

146
Product Catalog Management Product Catalog Management Business APIs

stronger employee engagement and customer experiences to enable more productivity and
greater business agility. More effective collaboration helps organizations work smarter.",

"displayUrl":
"https://dispatch.m.io/wp-content/uploads/2023/01/History-of-Webex.png",
"id": "01t1Q000008CD2eQAG",
"isActive": true,
"isAssetizable": true,
"isSoldOnlyWithOtherProds": false,
"name": "SmartBytes Collaboration Suite",
"nodeType": "bundleProduct",
"productClassification": {
"id": "11B1Q0000008OMGUA2",
"name" : "class",
"code" : "code",
"status" : "Active"
},
"productCode": "P0143",
"productComponentGroups": [
{
"components": [
{
"attributeCategory": [],
"attributes": [],
"categories": [],
"childProducts": [],
"id": "01tZ7000000AJXTIA4",
"isActive": false,
"isAssetizable": true,
"isSoldOnlyWithOtherProds": false,
"name": "Charger",
"nodeType": "bundleProduct",
"productComponentGroups": [],
"productRelatedComponent": {
"childProductId": "01tZ7000000AJXTIA4",
"doesBundlePriceIncludeChild": true,
"id": "0dSZ700000000YLMAY",
"isComponentRequired": false,
"isDefaultComponent": true,
"isExcluded": false,
"isQuantityEditable": false,
"parentProductId": "01tZ7000000AJXOIA4",
"productRelationshipTypeId": "0yoZ700000000kPIAQ",
"quantity": 1,
"quantityScaleMethod": "Proportional"
},
"productSellingModelOptions": []
}
],
"id": "0y7Z700000000TtIAI",
"isExcluded": false,
"name": "Box",
"parentProductId": "01tZ7000000AJXOIA4"
}

147
Product Catalog Management Product Catalog Management Business APIs

],
"productSellingModelOptions": [
{
"id": "0iO1Q0000008OkeUAE",
"productId": "01t1Q000008CD2eQAG",
"productSellingModel": {
"id": "0jP1Q000000CaVFUA0",
"isDefault": true,
"name": "One Time",
"sellingModelType": "OneTime",
"status": "Active"
}
}
],
"productSpecificationType": {
"name": "None"
}
}
],
"status": {
"code": "200",
"correlationId": "fd158d80-d73c-4a1f-a009-9225db804d70",
"errors": [],
"message": "Successfully fetched product records."
}
}

This example shows a sample of the Product By ID (GET) API response.


{
"products": [
{
"attributeCategory": [
{
"attributes": [
{
"attributeNameOverride": "AD Text",
"code": "AD02",
"dataType": "Text",
"displayType": "Text",
"MinimumCharacterCount": "1",
"MaximumCharacterCount": "20",
"defaultValue": "AD Text DV",
"description": "AD Text Desc",
"helpText": "AD Text DHT",
"id": "0tjT1000000002bIAA",
"isHidden": false,
"isPriceImpacting": true,
"isReadOnly": true,
"isRequired": true,
"label": "AD Text Label",
"name": "AD Text",
"sequence": 1,
"status": "Active",
"valueDescription": "AD Text VD"

148
Product Catalog Management Product Catalog Management Business APIs

}
],
"code": "AC001",
"id": "0v3T1000000000BIAQ",
"name": "build and make"
}
],
"attributes": [
{
"attributeNameOverride": "AD Picklist",
"code": "AD001",
"dataType": "Picklist",
"defaultValue": "Red",
"description": "AD Picklist Description",
"helpText": "AD Picklist DHT",
"id": "0tjT1000000002WIAQ",
"isHidden": false,
"isPriceImpacting": false,
"isReadOnly": false,
"isRequired": true,
"label": "AD Picklist Label",
"name": "AD Picklist",
"picklist": {
"dataType": "Text",
"description": "APV Description",
"id": "0v5T10000000001IAA",
"name": "Color",
"values": [
{
"abbreviation": "Blue Abb",
"code": "APV03",
"displayValue": "Blue DV",
"id": "0v6T10000000006IAA",
"name": "Blue",
"sequence": "3",
"value": "Blue b",
"status": "Active"
},
{
"abbreviation": "Red Abb",
"code": "APV04",
"displayValue": "Red",
"id": "0v6T10000000001IAA",
"name": "Red",
"sequence": "4",
"value": "Red",
"status": "Active"
},
{
"abbreviation": "One Abb",
"code": "APV02",
"displayValue": "One DV",
"id": "0v6T1000000000uIAA",
"name": "One",

149
Product Catalog Management Product Catalog Management Business APIs

"sequence": "2",
"value": "One 1",
"status": "Active"
},
{
"abbreviation": "Red Abbreviation",
"code": "APV01",
"displayValue": "Red Display Value",
"id": "0v6T1000000001OIAQ",
"name": "Red",
"sequence": "1",
"value": "red12",
"status": "Active"
}
]
},
"sequence": 1,
"status": "Active",
"valueDescription": "AD Picklist VD"
}
],
"availabilityDate": "2023-07-12T19:00:00.000Z",
"categories": [],
"childProducts": [],
"configureDuringSale": "Allowed",
"description": "Bundle Product Description",
"discontinuedDate": "2023-07-27T19:00:00.000Z",
"displayUrl": "www.google.com",
"endOfLifeDate": "2023-07-31T19:00:00.000Z",
"id": "01tT1000000F0afIAC",
"isActive": true,
"isAssetizable": true,
"isSoldOnlyWithOtherProds": true,
"name": "Bundle Product",
"nodeType": "bundleProduct",
"productClassification": {
"id": "11BT10000004C9SMAU",
"name" : "class",
"code" : "code",
"status" : "Active"
},
"productCode": "P001",
"productComponentGroups": [
{
"code": "PCG002",
"components": [
{
"attributeCategory": [],
"attributes": [],
"categories": [],
"childProducts": [],
"nodeType": "productClass",
"productClassification": {
"id": "11BT10000004C9SMAU",

150
Product Catalog Management Product Catalog Management Business APIs

"name" : "class",
"code" : "code",
"status" : "Active"
},
"productComponentGroups": [],
"productRelatedComponent": {
"childSellingModelId": "0jPT10000004CAfMAM",
"doesBundlePriceIncludeChild": true,
"id": "0dST100000000rlMAA",
"isComponentRequired": false,
"isDefaultComponent": false,
"isQuantityEditable": true,
"maxQuantity": 5,
"minQuantity": 1,
"parentProductId": "01tT1000000F0afIAC",
"productClassificationId": "11BT10000004C9SMAU",
"productRelationshipTypeId": "0yoT10000004CBEIA2",
"quantity": 1,
"quantityScaleMethod": "Proportional",
"sequence": 2,
"isExcluded": false
},
"productSellingModelOptions": []
}
],
"description": "PCG002 desc",
"id": "0y7T10000004C9IIAU",
"maxBundleComponents": 5,
"minBundleComponents": 1,
"name": "PCG002",
"parentProductId": "01tT1000000F0afIAC",
"sequence": 2,
"isExcluded": false
},
{
"code": "PCG001",
"components": [
{
"attributeCategory": [],
"attributes": [
{
"attributeNameOverride": "AD Picklist",
"code": "AD001",
"dataType": "Picklist",
"defaultValue": "Red",
"description": "AD Picklist Description",
"helpText": "AD Picklist DHT",
"id": "0tjT1000000002WIAQ",
"isHidden": false,
"isPriceImpacting": false,
"isReadOnly": false,
"isRequired": true,
"label": "AD Picklist Label",
"name": "AD Picklist",

151
Product Catalog Management Product Catalog Management Business APIs

"picklist": {
"dataType": "Text",
"description": "APV Description",
"id": "0v5T10000000001IAA",
"name": "Color",
"values": [
{
"abbreviation": "Blue Abb",
"code": "APV03",
"displayValue": "Blue DV",
"id": "0v6T10000000006IAA",
"name": "Blue",
"sequence": "3",
"value": "Blue b",
"status": "Active"
},
{
"abbreviation": "Red Abb",
"code": "APV04",
"displayValue": "Red",
"id": "0v6T10000000001IAA",
"name": "Red",
"sequence": "4",
"value": "Red",
"status": "Active"
},
{
"abbreviation": "One Abb",
"code": "APV02",
"displayValue": "One DV",
"id": "0v6T1000000000uIAA",
"name": "One",
"sequence": "2",
"value": "One 1",
"status": "Active"
},
{
"abbreviation": "Red Abbreviation",
"code": "APV01",
"displayValue": "Red Display Value",
"id": "0v6T1000000001OIAQ",
"name": "Red",
"sequence": "1",
"value": "red12",
"status": "Active"
}
]
},
"sequence": 1,
"status": "Active",
"valueDescription": "AD Picklist VD"
},
{
"attributeNameOverride": "AD Text",

152
Product Catalog Management Product Catalog Management Business APIs

"code": "AD02",
"dataType": "Text",
"displayType": "Text",
"MinimumCharacterCount": "1",
"MaximumCharacterCount": "20",
"defaultValue": "AD Text DV",
"description": "AD Text Desc",
"helpText": "AD Text DHT",
"id": "0tjT1000000002bIAA",
"isHidden": false,
"isPriceImpacting": false,
"isReadOnly": false,
"isRequired": true,
"label": "AD Text Label",
"name": "AD Text",
"status": "Active",
"valueDescription": "AD Text VD"
}
],
"availabilityDate": "2023-07-17T19:00:00.000Z",
"categories": [],
"childProducts": [],
"configureDuringSale": "Allowed",
"description": "P003 desc",
"discontinuedDate": "2023-07-19T19:00:00.000Z",
"displayUrl": "www.google.com",
"endOfLifeDate": "2023-07-28T19:00:00.000Z",
"id": "01tT1000000F0YyIAK",
"isActive": false,
"isAssetizable": true,
"isSoldOnlyWithOtherProds": false,
"name": "Child1 - Bundle with PCG",
"nodeType": "bundleProduct",
"productClassification": {
"id": "11BT10000004C9SMAU",
"name" : "class",
"code" : "code",
"status" : "Active"
},
"productCode": "P003",
"productComponentGroups": [
{
"code": "PCG2",
"components": [
{
"attributeCategory": [],
"attributes": [],
"categories": [],
"childProducts": [],
"id": "01tT1000000F0Z8IAK",
"isActive": false,
"isAssetizable": true,
"isSoldOnlyWithOtherProds": false,
"name": "Super Child2 - Bundle with PCG",

153
Product Catalog Management Product Catalog Management Business APIs

"nodeType": "bundleProduct",
"productComponentGroups": [],
"productRelatedComponent": {
"childProductId": "01tT1000000F0Z8IAK",
"doesBundlePriceIncludeChild": true,
"id": "0dST100000000rWMAQ",
"isComponentRequired": false,
"isDefaultComponent": false,
"isQuantityEditable": false,
"parentProductId": "01tT1000000F0YyIAK",
"productRelationshipTypeId": "0yoT1000000002WIAQ",
"quantity": 1,
"quantityScaleMethod": "Proportional",
"sequence": 2,
"isExcluded": false
},
"productSellingModelOptions": [],
"productSpecificationType": {
"name": "NonCommercialSpecType",
"productSpecificationRecordType": null
}
},
{
"attributeCategory": [],
"attributes": [],
"availabilityDate": "2023-07-15T19:00:00.000Z",
"categories": [],
"childProducts": [],
"configureDuringSale": "Allowed",
"discontinuedDate": "2023-07-16T19:00:00.000Z",
"displayUrl": "Test",
"endOfLifeDate": "2023-07-17T19:00:00.000Z",
"id": "01tT1000000F0YzIAK",
"isActive": false,
"isAssetizable": true,
"isSoldOnlyWithOtherProds": false,
"name": "SuperChild1 - Bundle with PCG",
"nodeType": "bundleProduct",
"productCode": "Test",
"productComponentGroups": [],
"productRelatedComponent": {
"childProductId": "01tT1000000F0YzIAK",
"doesBundlePriceIncludeChild": true,
"id": "0dST100000000rXMAQ",
"isComponentRequired": false,
"isDefaultComponent": false,
"isQuantityEditable": false,
"parentProductId": "01tT1000000F0YyIAK",
"productRelationshipTypeId": "0yoT1000000002WIAQ",
"quantity": 1,
"quantityScaleMethod": "Proportional",
"sequence": 1,
"isExcluded": false
},

154
Product Catalog Management Product Catalog Management Business APIs

"productSellingModelOptions": [],
"productSpecificationType": {
"name": "NonCommercialSpecType",
"productSpecificationRecordType": null
}
},
{
"attributeCategory": [],
"attributes": [],
"categories": [],
"childProducts": [],
"configureDuringSale": "Allowed",
"id": "01tT1000000F0apIAC",
"isActive": false,
"isAssetizable": true,
"isSoldOnlyWithOtherProds": false,
"name": "Bundle2",
"nodeType": "bundleProduct",
"productCode": "PC003",
"productComponentGroups": [],
"productRelatedComponent": {
"childProductId": "01tT1000000F0apIAC",
"doesBundlePriceIncludeChild": true,
"id": "0dST100000000rqMAA",
"isComponentRequired": false,
"isDefaultComponent": false,
"isQuantityEditable": false,
"parentProductId": "01tT1000000F0YyIAK",
"productRelationshipTypeId": "0yoT1000000002WIAQ",
"quantity": 1,
"quantityScaleMethod": "Proportional",
"isExcluded": false
},
"productSellingModelOptions": [],
"productSpecificationType": {
"name": "NonCommercialSpecType",
"productSpecificationRecordType": null
}
}
],
"description": "Group for components at level 2",
"id": "0y7T10000004C98IAE",
"maxBundleComponents": 5,
"minBundleComponents": 1,
"name": "PCG2",
"parentProductId": "01tT1000000F0YyIAK",
"isExcluded": false
}
],
"productRelatedComponent": {
"childProductId": "01tT1000000F0YyIAK",
"childSellingModelId": "0jPT10000004CAfMAM",
"doesBundlePriceIncludeChild": true,
"id": "0dST100000000rgMAA",

155
Product Catalog Management Product Catalog Management Business APIs

"isComponentRequired": false,
"isDefaultComponent": false,
"isQuantityEditable": true,
"maxQuantity": 3,
"minQuantity": 1,
"parentProductId": "01tT1000000F0afIAC",
"parentSellingModelId": "0jPT10000004CAfMAM",
"productRelationshipTypeId": "0yoT1000000002WIAQ",
"quantity": 1,
"quantityScaleMethod": "Proportional",
"sequence": 1,
"isExcluded": false
},
"productSellingModelOptions": [
{
"id": "0iOT10000004CMrMAM",
"productId": "01tT1000000F0YyIAK",
"isDefault": false,
"productSellingModel": {
"id": "0jPT10000004CAfMAM",
"name": "OneTimePSM",
"sellingModelType": "OneTime",
"status": "Active"
}
}
],
"productSpecificationType": {
"name": "NonCommercialSpecType",
"productSpecificationRecordType": null
}
}
],
"description": "PCG001 Description",
"id": "0y7T10000004C9DIAU",
"maxBundleComponents": 5,
"minBundleComponents": 1,
"name": "PCG001",
"parentProductId": "01tT1000000F0afIAC",
"sequence": 1,
"isExcluded": false
}
],
"productSellingModelOptions": [
{
"id": "0iOT10000004CMmMAM",
"productId": "01tT1000000F0afIAC",
"productSellingModel": {
"id": "0jPT10000004CAfMAM",
"name": "OneTimePSM",
"sellingModelType": "OneTime",
"status": "Active"
}
}
],

156
Product Catalog Management Product Catalog Management Business APIs

"productSpecificationType": {
"name": "NonCommercialSpecType",
"productSpecificationRecordType": null
}
},
{
"attributeCategory": [
{
"attributes": [
{
"attributeNameOverride": "AD Text",
"code": "AD02",
"dataType": "Text",
"displayType": "Text",
"MinimumCharacterCount": "1",
"MaximumCharacterCount": "20",
"defaultValue": "AD Text DV",
"description": "AD Text Desc",
"helpText": "AD Text DHT",
"id": "0tjT1000000002bIAA",
"isHidden": false,
"isPriceImpacting": true,
"isReadOnly": true,
"isRequired": true,
"label": "AD Text Label",
"name": "AD Text",
"sequence": 1,
"status": "Active",
"valueDescription": "AD Text VD"
}
],
"code": "AC001",
"id": "0v3T1000000000BIAQ",
"name": "build and make"
}
],
"attributes": [
{
"attributeNameOverride": "AD Picklist",
"code": "AD001",
"dataType": "Picklist",
"defaultValue": "Red",
"description": "AD Picklist Description",
"helpText": "AD Picklist DHT",
"id": "0tjT1000000002WIAQ",
"isHidden": false,
"isPriceImpacting": false,
"isReadOnly": false,
"isRequired": true,
"label": "AD Picklist Label",
"name": "AD Picklist",
"picklist": {
"dataType": "Text",
"description": "APV Description",

157
Product Catalog Management Product Catalog Management Business APIs

"id": "0v5T10000000001IAA",
"name": "Color",
"values": [
{
"abbreviation": "Blue Abb",
"code": "APV03",
"displayValue": "Blue DV",
"id": "0v6T10000000006IAA",
"name": "Blue",
"sequence": "3",
"value": "Blue b",
"status": "Active"
},
{
"abbreviation": "Red Abb",
"code": "APV04",
"displayValue": "Red",
"id": "0v6T10000000001IAA",
"name": "Red",
"sequence": "4",
"value": "Red",
"status": "Active"
},
{
"abbreviation": "One Abb",
"code": "APV02",
"displayValue": "One DV",
"id": "0v6T1000000000uIAA",
"name": "One",
"sequence": "2",
"value": "One 1",
"status": "Active"
},
{
"abbreviation": "Red Abbreviation",
"code": "APV01",
"displayValue": "Red Display Value",
"id": "0v6T1000000001OIAQ",
"name": "Red",
"sequence": "1",
"value": "red12",
"status": "Active"
}
]
},
"sequence": 1,
"status": "Active",
"valueDescription": "AD Picklist VD"
}
],
"availabilityDate": "2023-07-12T19:00:00.000Z",
"categories": [],
"childProducts": [],
"configureDuringSale": "Allowed",

158
Product Catalog Management Product Catalog Management Business APIs

"description": "Bundle Product Description",


"discontinuedDate": "2023-07-27T19:00:00.000Z",
"displayUrl": "www.google.com",
"endOfLifeDate": "2023-07-31T19:00:00.000Z",
"id": "01tT1000000F0afIAC",
"isActive": true,
"isAssetizable": true,
"isSoldOnlyWithOtherProds": true,
"name": "Bundle Product",
"nodeType": "bundleProduct",
"productClassification": {
"id": "11BT10000004C9SMAU",
"name" : "class",
"code" : "code",
"status" : "Active"
},
"productCode": "P001",
"productComponentGroups": [
{
"code": "PCG002",
"components": [
{
"attributeCategory": [],
"attributes": [],
"categories": [],
"childProducts": [],
"nodeType": "productClass",
"productClassification": {
"id": "11BT10000004C9SMAU",
"name" : "class",
"code" : "code",
"status" : "Active"
},
"productComponentGroups": [],
"productRelatedComponent": {
"childSellingModelId": "0jPT10000004CAfMAM",
"doesBundlePriceIncludeChild": true,
"id": "0dST100000000rlMAA",
"isComponentRequired": false,
"isDefaultComponent": false,
"isQuantityEditable": true,
"maxQuantity": 5,
"minQuantity": 1,
"parentProductId": "01tT1000000F0afIAC",
"productClassificationId": "11BT10000004C9SMAU",
"productRelationshipTypeId": "0yoT10000004CBEIA2",
"quantity": 1,
"quantityScaleMethod": "Proportional",
"sequence": 2,
"isExcluded": false
},
"productSellingModelOptions": []
}
],

159
Product Catalog Management Product Catalog Management Business APIs

"description": "PCG002 desc",


"id": "0y7T10000004C9IIAU",
"maxBundleComponents": 5,
"minBundleComponents": 1,
"name": "PCG002",
"parentProductId": "01tT1000000F0afIAC",
"sequence": 2,
"isExcluded": false
},
{
"code": "PCG001",
"components": [
{
"attributeCategory": [],
"attributes": [
{
"attributeNameOverride": "AD Picklist",
"code": "AD001",
"dataType": "Picklist",
"defaultValue": "Red",
"description": "AD Picklist Description",
"helpText": "AD Picklist DHT",
"id": "0tjT1000000002WIAQ",
"isHidden": false,
"isPriceImpacting": false,
"isReadOnly": false,
"isRequired": true,
"label": "AD Picklist Label",
"name": "AD Picklist",
"picklist": {
"dataType": "Text",
"description": "APV Description",
"id": "0v5T10000000001IAA",
"name": "Color",
"values": [
{
"abbreviation": "Blue Abb",
"code": "APV03",
"displayValue": "Blue DV",
"id": "0v6T10000000006IAA",
"name": "Blue",
"sequence": "3",
"value": "Blue b",
"status": "Active"
},
{
"abbreviation": "Red Abb",
"code": "APV04",
"displayValue": "Red",
"id": "0v6T10000000001IAA",
"name": "Red",
"sequence": "4",
"value": "Red",
"status": "Active"

160
Product Catalog Management Product Catalog Management Business APIs

},
{
"abbreviation": "One Abb",
"code": "APV02",
"displayValue": "One DV",
"id": "0v6T1000000000uIAA",
"name": "One",
"sequence": "2",
"value": "One 1",
"status": "Active"
},
{
"abbreviation": "Red Abbreviation",
"code": "APV01",
"displayValue": "Red Display Value",
"id": "0v6T1000000001OIAQ",
"name": "Red",
"sequence": "1",
"value": "red12",
"status": "Active"
}
]
},
"sequence": 1,
"status": "Active",
"valueDescription": "AD Picklist VD"
},
{
"attributeNameOverride": "AD Text",
"code": "AD02",
"dataType": "Text",
"displayType": "Text",
"MinimumCharacterCount": "1",
"MaximumCharacterCount": "20",
"defaultValue": "AD Text DV",
"description": "AD Text Desc",
"helpText": "AD Text DHT",
"id": "0tjT1000000002bIAA",
"isHidden": false,
"isPriceImpacting": false,
"isReadOnly": false,
"isRequired": true,
"label": "AD Text Label",
"name": "AD Text",
"status": "Active",
"valueDescription": "AD Text VD"
}
],
"availabilityDate": "2023-07-17T19:00:00.000Z",
"categories": [],
"childProducts": [],
"configureDuringSale": "Allowed",
"description": "P003 desc",
"discontinuedDate": "2023-07-19T19:00:00.000Z",

161
Product Catalog Management Product Catalog Management Business APIs

"displayUrl": "www.google.com",
"endOfLifeDate": "2023-07-28T19:00:00.000Z",
"id": "01tT1000000F0YyIAK",
"isActive": false,
"isAssetizable": true,
"isSoldOnlyWithOtherProds": false,
"name": "Child1 - Bundle with PCG",
"nodeType": "bundleProduct",
"productClassification": {
"id": "11BT10000004C9SMAU",
"name" : "class",
"code" : "code",
"status" : "Active"
},
"productCode": "P003",
"productComponentGroups": [
{
"code": "PCG2",
"components": [
{
"attributeCategory": [],
"attributes": [],
"categories": [],
"childProducts": [],
"id": "01tT1000000F0Z8IAK",
"isActive": false,
"isAssetizable": true,
"isSoldOnlyWithOtherProds": false,
"name": "Super Child2 - Bundle with PCG",
"nodeType": "bundleProduct",
"productComponentGroups": [],
"productRelatedComponent": {
"childProductId": "01tT1000000F0Z8IAK",
"doesBundlePriceIncludeChild": true,
"id": "0dST100000000rWMAQ",
"isComponentRequired": false,
"isDefaultComponent": false,
"isQuantityEditable": false,
"parentProductId": "01tT1000000F0YyIAK",
"productRelationshipTypeId": "0yoT1000000002WIAQ",
"quantity": 1,
"quantityScaleMethod": "Proportional",
"sequence": 2,
"isExcluded": false
},
"productSellingModelOptions": [],
"productSpecificationType": {
"name": "NonCommercialSpecType",
"productSpecificationRecordType": null
}
},
{
"attributeCategory": [],
"attributes": [],

162
Product Catalog Management Product Catalog Management Business APIs

"availabilityDate": "2023-07-15T19:00:00.000Z",
"categories": [],
"childProducts": [],
"configureDuringSale": "Allowed",
"discontinuedDate": "2023-07-16T19:00:00.000Z",
"displayUrl": "Test",
"endOfLifeDate": "2023-07-17T19:00:00.000Z",
"id": "01tT1000000F0YzIAK",
"isActive": false,
"isAssetizable": true,
"isSoldOnlyWithOtherProds": false,
"name": "SuperChild1 - Bundle with PCG",
"nodeType": "bundleProduct",
"productCode": "Test",
"productComponentGroups": [],
"productRelatedComponent": {
"childProductId": "01tT1000000F0YzIAK",
"doesBundlePriceIncludeChild": true,
"id": "0dST100000000rXMAQ",
"isComponentRequired": false,
"isDefaultComponent": false,
"isQuantityEditable": false,
"parentProductId": "01tT1000000F0YyIAK",
"productRelationshipTypeId": "0yoT1000000002WIAQ",
"quantity": 1,
"quantityScaleMethod": "Proportional",
"sequence": 1,
"isExcluded": false
},
"productSellingModelOptions": [],
"productSpecificationType": {
"name": "NonCommercialSpecType",
"productSpecificationRecordType": null
}
},
{
"attributeCategory": [],
"attributes": [],
"categories": [],
"childProducts": [],
"configureDuringSale": "Allowed",
"id": "01tT1000000F0apIAC",
"isActive": false,
"isAssetizable": true,
"isSoldOnlyWithOtherProds": false,
"name": "Bundle2",
"nodeType": "bundleProduct",
"productCode": "PC003",
"productComponentGroups": [],
"productRelatedComponent": {
"childProductId": "01tT1000000F0apIAC",
"doesBundlePriceIncludeChild": true,
"id": "0dST100000000rqMAA",
"isComponentRequired": false,

163
Product Catalog Management Product Catalog Management Business APIs

"isDefaultComponent": false,
"isQuantityEditable": false,
"parentProductId": "01tT1000000F0YyIAK",
"productRelationshipTypeId": "0yoT1000000002WIAQ",
"quantity": 1,
"quantityScaleMethod": "Proportional",
"isExcluded": false
},
"productSellingModelOptions": [],
"productSpecificationType": {
"name": "NonCommercialSpecType",
"productSpecificationRecordType": null
}
}
],
"description": "Group for components at level 2",
"id": "0y7T10000004C98IAE",
"maxBundleComponents": 5,
"minBundleComponents": 1,
"name": "PCG2",
"parentProductId": "01tT1000000F0YyIAK",
"isExcluded": false
}
],
"productRelatedComponent": {
"childProductId": "01tT1000000F0YyIAK",
"childSellingModelId": "0jPT10000004CAfMAM",
"doesBundlePriceIncludeChild": true,
"id": "0dST100000000rgMAA",
"isComponentRequired": false,
"isDefaultComponent": false,
"isQuantityEditable": true,
"maxQuantity": 3,
"minQuantity": 1,
"parentProductId": "01tT1000000F0afIAC",
"parentSellingModelId": "0jPT10000004CAfMAM",
"productRelationshipTypeId": "0yoT1000000002WIAQ",
"quantity": 1,
"quantityScaleMethod": "Proportional",
"sequence": 1,
"isExcluded": false
},
"productSellingModelOptions": [
{
"id": "0iOT10000004CMrMAM",
"productId": "01tT1000000F0YyIAK",
"isDefault": false,
"productSellingModel": {
"id": "0jPT10000004CAfMAM",
"name": "OneTimePSM",
"sellingModelType": "OneTime",
"status": "Active"
}
}

164
Product Catalog Management Product Catalog Management Business APIs

],
"productSpecificationType": {
"name": "NonCommercialSpecType",
"productSpecificationRecordType": null
}
}
],
"description": "PCG001 Description",
"id": "0y7T10000004C9DIAU",
"maxBundleComponents": 5,
"minBundleComponents": 1,
"name": "PCG001",
"parentProductId": "01tT1000000F0afIAC",
"sequence": 1,
"isExcluded": false
}
],
"productSellingModelOptions": [
{
"id": "0iOT10000004CMmMAM",
"productId": "01tT1000000F0afIAC",
"productSellingModel": {
"id": "0jPT10000004CAfMAM",
"name": "OneTimePSM",
"sellingModelType": "OneTime",
"status": "Active"
}
}
],
"productSpecificationType": {
"name": "NonCommercialSpecType",
"productSpecificationRecordType": null
}
}
],
"status": {
"code": "200",
"correlationId": "fd158d80-d73c-4a1f-a009-9225db804d70",
"errors": [],
"message": "Successfully fetched Product records."
}
}

Property Name Type Description Filter Group and Available Version


Version
additional Map<String, Key-value pair of additional standard or Small, 61.0 61.0
Fields Additional Fields custom fields with their values.
Input>

attribute Attribute Category[] List of categorized attributes related to the Small, 60.0 60.0
Category product.

165
Product Catalog Management Product Catalog Management Business APIs

Property Name Type Description Filter Group and Available Version


Version
attributes Attribute Definition[] List of uncategorized attributes related to Small, 60.0 60.0
the product.

availability String Date when the part is used in the product Small, 60.0 60.0
Date or is made available for sale.

catalogs Catalog[] List of the associated catalogs returned with Small, 61.0 61.0
the Product List API (POST) response. The
Product By ID API (GET) returns an empty
catalog list in the response.
Returns the name and id values only.

categories Category[] List of the associated categories returned Small, 60.0 60.0
with the Product List API (POST) response.
The Product By ID API (GET) returns an
empty category list in the response.
Returns the name and id values only.

childProducts Product[] Hierarchy of the child products. Small, 60.0 60.0

configure String Determines whether to allow or prevent Small, 60.0 60.0


DuringSale configuration when a bundle is sold.

description String Description of the product. If data Small, 60.0 60.0


translation is set up and specified in the org,
the translated description is available.

discontinued String Date from when the part can’t be used in Small, 60.0 60.0
Date the product or sold.

displayUrl String Display image URL of the product. Small, 60.0 60.0

endOfLifeDate String Date after which a product isn’t supported, Small, 60.0 60.0
ordered, or maintained.

id String ID of the product. Small, 60.0 60.0

isActive Boolean Indicates if the product is active (true) or Small, 60.0 60.0
not (false).

isAssetizable Boolean Indicates if the product instance remains a Small, 60.0 60.0
customer asset after it's purchased (true)
or not (false).

isSoldOnly Boolean Indicates whether the product can't be sold Small, 60.0 60.0
WithOther separately (true) or not (false).
Prods

166
Product Catalog Management Product Catalog Management Business APIs

Property Name Type Description Filter Group and Available Version


Version
name String Name of the product. If data translation is Small, 60.0 60.0
set up and specified in the org, the
translated name is available.

nodeType String Type of the node, such as a product or Small, 60.0 60.0
bundled product.

product Product Details of the product classification that the Small, 60.0 60.0
Classification Classification product is based on.

productCode String Universal product code that's used to track Small, 60.0 60.0
the part that’s used in the product.

product Product Component Logical grouping of the component Small, 60.0 60.0
Component Group[] products in a bundle and the group
Groups cardinality for ordering the product
components.

product Product Related Details of the related components of a Small, 60.0 60.0
Related Component product.
Component

product Product Selling Details of the product selling model options. Small, 60.0 60.0
SellingModel Model Option[]
Options

product Product Specification Details of the product specification type. Small, 60.0 60.0
Specification Type
Type

quantityScale String Method to scale the quantity of the child Small, 60.0 60.0
Method product in relation to the quantity of the
parent.

Product Related Component


Output representation of the product-related component.
JSON example
"productRelatedComponent": {
"childProductId": "01tT1000000F0YyIAK",
"childSellingModelId": "0jPT10000004CAfMAM",
"doesBundlePriceIncludeChild": true,
"id": "0dST100000000rgMAA",
"isComponentRequired": false,
"isDefaultComponent": false,
"isExcluded": false,
"isQuantityEditable": true,
"maxQuantity": 3,
"minQuantity": 1,

167
Product Catalog Management Product Catalog Management Business APIs

"parentProductId": "01tT1000000F0afIAC",
"parentSellingModelId": "0jPT10000004CAfMAM",
"productClassificationId": "11BRO00000000222AA",
"productRelationshipTypeId": "0yoT1000000002WIAQ",
"quantity": 1,
"quantityScaleMethod": "Proportional",
"sequence": 1
}

Property Name Type Description Filter Group and Available Version


Version
childProduct String Lookup to the child product in the bundle. Small, 60.0 60.0
Id

childSelling String ID of the child product selling model record. Small, 60.0 60.0
ModelId

doesBundle Boolean Indicates whether the price of the bundle Small, 60.0 60.0
PriceInclude includes the child product (true) or not
Child (false).

id String ID of the record. Small, 60.0 60.0

isComponent Boolean Indicates whether the component is Small, 60.0 60.0


Required required in the bundle (true) or not
(false).

isDefault Boolean Indicates whether to select the component Small, 60.0 60.0
Component in the bundle group by default (true) or
not (false).

isExcluded Boolean Indicates whether the component is Small, 60.0 60.0


excluded in the bundle group (true) or
not (false).

isQuantity Boolean Indicates whether to allow changes to the Small, 60.0 60.0
Editable quantity of the component in the bundle
(true) or not (false).

maxQuantity Double Maximum quantity of the product in the Small, 60.0 60.0
opportunity, quote, or order line item.

minQuantity Double Minimum quantity of the product in the Small, 60.0 60.0
opportunity, quote, or order line item.

parentProduct String Lookup to the parent product. Small, 60.0 60.0


Id

parentSelling String ID of the product selling model record. Small, 60.0 60.0
ModelId

product String ID of the product classification record. Small, 60.0 60.0


Classification
Id

168
Product Catalog Management Product Catalog Management Business APIs

Property Name Type Description Filter Group and Available Version


Version
productInstance String Reserved for future use. Small, 62.0 62.0
Reuse

product String ID of the product relationship type record. Small, 60.0 60.0
Relationship
TypeId

quantity Double Quantity of the child products. Small, 60.0 60.0

quantityScale String Method to scale the quantity of the child Small, 60.0 60.0
Method product in relation to the quantity of the
parent.

sequence Integer Order in which the child products are Small, 60.0 60.0
displayed.

Product Selling Model


Output representation of the definition of the product selling model.
JSON example
"productSellingModel":
{
"id": "0jPT10000004CAfMAM",
"name": "OneTimePSM",
"pricingTerm": 1,
"pricingTermUnit": "Months",
"sellingModelType": "TermDefined",
"status": "Active"
}
}]

Property Name Type Description Filter Group and Available Version


Version
id String ID of the record. Small, 60.0 60.0

name String Name of the record. Small, 60.0 60.0

pricingTerm Integer Duration of the selling model. Small, 60.0 60.0

pricingTerm String Units of the pricing term. Small, 60.0 60.0


Unit

sellingModel String Different models of selling the product. Valid Small, 60.0 60.0
Type values are:
• OneTime
• TermDefined
• Evergreen

169
Product Catalog Management Product Catalog Management Business APIs

Property Name Type Description Filter Group and Available Version


Version
status String Status of the selling model. For example, Small, 60.0 60.0
whether the selling model is active and can
be used in transactions.

Product Selling Model Option


Output representation of the definition of the product selling model option.

Important: Where possible, we changed noninclusive terms to align with our company value of Equality. We maintained certain
terms to avoid any effect on customer implementations.
JSON example
"productSellingModelOptions": [
{
"id": "0iOT10000004CMrMAM",
"isDefault": false,
"productId": "01tT1000000F0YyIAK",
"productSellingModel": {
"id": "0jPT10000004CAfMAM",
"name": "OneTimePSM",
"pricingTerm": 1,
"pricingTermUnit": "Months",
"sellingModelType": "TermDefined",
"status": "Active"
}
}]

Property Name Type Description Filter Group and Available Version


Version
id String ID of the record. Small, 60.0 60.0

isDefault Boolean Indicates whether this model option is the Small, 60.0 60.0
default product selling model option
(true) or not (false).

productId String ID of the product. Small, 60.0 60.0

product Product Selling Master-detail field to the product selling Small, 60.0 60.0
SellingModel Model model.

Product Specification Type


Output representation of the product specification type.
JSON example
"productSpecificationType":
{

170
Product Catalog Management Product Catalog Management Business APIs

"name": "NonCommercialSpecType",
}

Property Name Type Description Filter Group and Available Version


Version
name String Name of the product specification type. Small, 60.0 60.0

Products
Output representation of the list of retrieved products.
JSON example
{
"correlationId": "9b6bc520-3c82-4d6c-a458-47590370681a",
"facets":[
{
"attributeType": "ProductStandard",
"displayName": "Product Type",
"displayRank": 1,
"displayType": "MultiSelect",
"nameOrId": "Type",
"values": [
{
"displayName": "Simple",
"nameOrId": "Simple",
"productCount": 9
}
]
},
{
"attributeType": "ProductStandard",
"displayName": "Active",
"displayRank": 2,
"displayType": "MultiSelect",
"nameOrId": "IsActive",
"values": [
{
"displayName": "true",
"nameOrId": "true",
"productCount": 47
}
]
}
],
"count": 3,
"products": [
{
"attributeCategory": [],
"attributes": [],
"categories": [],
"childProducts": [],
"description": "Keep your organization connected with seamless collaboration across

171
Product Catalog Management Product Catalog Management Business APIs

distributed teams. No matter where employees are located, organizations are seeking
stronger employee engagement and customer experiences to enable more productivity and
greater business agility. More effective collaboration helps organizations work smarter.",

"displayUrl":
"https://dispatch.m.io/wp-content/uploads/2023/01/History-of-Webex.png",
"id": "01t1Q000008CD2eQAG",
"isActive": true,
"isAssetizable": true,
"isSoldOnlyWithOtherProds": false,
"name": "SmartBytes Collaboration Suite",
"nodeType": "bundleProduct",
"productClassification": {
"id": "11B1Q0000008OMGUA2"
},
"productCode": "P0143",
"productComponentGroups": [],
"productSellingModelOptions": [
{
"id": "0iO1Q0000008OkeUAE",
"productId": "01t1Q000008CD2eQAG",
"productSellingModel": {
"id": "0jP1Q000000CaVFUA0",
"name": "One Time",
"sellingModelType": "OneTime",
"status": "Active"
}
}
],
"productSpecificationType": {
"name": "None"
}
},
{
"attributeCategory": [],
"attributes": [],
"categories": [],
"childProducts": [],
"configureDuringSale": "Allowed",
"displayUrl":
"https://www.cisco.com/c/dam/en/us/products/collateral/wireless/small-business-300-series-wireless-access-points/datasheet-c78-732143.doc/_jcr_content/renditions/datasheet-c78-732143_1.jpg",

"id": "01t1Q000008CD36QAG",
"isActive": true,
"isAssetizable": true,
"isSoldOnlyWithOtherProds": false,
"name": "SmartBytes Repeater",
"nodeType": "simpleProduct",
"productClassification": {
"id": "11B1Q0000008OMMUA2"
},
"productCode": "BS_R001",
"productComponentGroups": [],
"productSellingModelOptions": [

172
Product Catalog Management Product Catalog Management Business APIs

{
"id": "0iO1Q0000008OlsUAE",
"productId": "01t1Q000008CD36QAG",
"productSellingModel": {
"id": "0jP1Q000000CaVFUA0",
"name": "One Time",
"sellingModelType": "OneTime",
"status": "Active"
}
}
],
"productSpecificationType": {
"name": "COM_Offer"
}
},
{
"attributeCategory": [],
"attributes": [],
"categories": [],
"childProducts": [],
"configureDuringSale": "Allowed",
"description": "A converged data center architecture that integrates computing,
networking and storage resources to increase efficiency and enable centralized management.
UCS products are designed and configured to work together effectively.",
"displayUrl":
"https://www.cisco.com/c/dam/en/us/products/collateral/servers-unified-computing/ucs-x-series-modular-system/sap-hana-scaleup-appliance-with-xseries-wp.docx/_jcr_content/renditions/sap-hana-scaleup-appliance-with-xseries-wp_3.png",

"id": "01t1Q000008CD2sQAG",
"isActive": true,
"isAssetizable": true,
"isSoldOnlyWithOtherProds": false,
"name": "SmartBytes Unified Computing System",
"nodeType": "bundleProduct",
"productCode": "P0157",
"productComponentGroups": [],
"productSellingModelOptions": [
{
"id": "0iO1Q0000008OkzUAE",
"productId": "01t1Q000008CD2sQAG",
"productSellingModel": {
"id": "0jP1Q000000CaVFUA0",
"name": "One Time",
"sellingModelType": "OneTime",
"status": "Active"
}
},
{
"id": "0iO1Q0000008OlWUAU",
"productId": "01t1Q000008CD2sQAG",
"productSellingModel": {
"id": "0jP1Q000000CaVHUA0",
"name": "Evergreen",
"pricingTerm": 1,
"pricingTermUnit": "Months",

173
Product Catalog Management Product Catalog Management Business APIs

"sellingModelType": "Evergreen",
"status": "Active"
}
}
],
"productSpecificationType": {
"name": "None"
}
}
],
"status": {
"code": "200",
"errors": [],
"message": "Successfully fetched the product records."
}
}

Property Name Type Description Filter Group and Available Version


Version
correlationId String Unique token to track and associate related Small, 60.0 60.0
events or transactions across different
components of the application. If
unspecified, a Universally Unique Identifier
(UUID) is generated.

count Integer Total count of the products matching the Small, 60.0 60.0
request query.

facets Search Facet Details of the faceted search. This property Small, 63.0 63.0
is applicable if the Use Indexed Data For
Product Listing and Search toggle from
the Product Discovery Settings page from
Setup is enabled.

products Product[] List of products matching the request query. Small, 60.0 60.0

status Status Status of the request. Small, 60.0 60.0

Related Object Records


Output representation of the related records for a specified record ID and related object API name.
JSON example
"relatedObjectRecords": [
{
"count": 2,
"records": [
{
"SegmentType": "Yearly",
"DurationType": "Months",
"TrialDuration": null,
"ProductSellingModelId": "0jPxx000000001dEAA",

174
Product Catalog Management Product Catalog Management Business APIs

"ProductId": "01txx0000006i44AAA",
"Id": "1FTxx0000004CDtGAM",
"Name": "PPRS-000000005"
},
{
"SegmentType": "FreeTrial",
"DurationType": "Days",
"TrialDuration": null,
"ProductSellingModelId": "0jPxx000000001dEAA",
"ProductId": "01txx0000006i44AAA",
"Id": "1FTxx0000004CFUGA2",
"Name": "PPRS-000000006"
}
],
"relatedObjectAPIName": "ProductRampSegment"
},
{
"count": 2,
"records": [
{
"UsageMetricId": "1BRxx0000004CAeGAM",
"UsageMetricName": "Test Usage Metric 2",
"UsageDefinitionProductId": null,
"Label": "PUG-103",
"Quantity": 100,
"Id": "1BXxx0000004CCGGA2"
},
{
"UsageMetricId": "1BRxx0000004CCGGA2",
"UsageMetricName": "Test Usage Metric 3",
"UsageDefinitionProductId": "01txx0000006i2eAAA",
"Label": "PUG-105",
"Quantity": 500,
"Id": "1BXxx0000004CFUGA2"
}
],
"relatedObjectAPIName": "ProductUsageGrant"
}
]

Property Name Type Description Filter Group and Available Version


Version
count Integer Total count of the related records that are Small, 62.0 62.0
returned.

records Map<String, List of related object records. Small, 62.0 62.0


Object>

relatedObject String API name of the related object to return the Small, 62.0 62.0
APIName records for.

175
Product Catalog Management Product Catalog Management Business APIs

Related Records
Output representation of the list of relatedObject records for a specified record ID.
JSON example
"relatedRecords": [
{
"recordId": "01txx0000006i44AAA",
"relatedObjectRecords": [
{
"count": 2,
"records": [
{
"SegmentType": "Yearly",
"DurationType": "Months",
"TrialDuration": null,
"ProductSellingModelId": "0jPxx000000001dEAA",
"ProductId": "01txx0000006i44AAA",
"Id": "1FTxx0000004CDtGAM",
"Name": "PPRS-000000005"
},
{
"SegmentType": "FreeTrial",
"DurationType": "Days",
"TrialDuration": null,
"ProductSellingModelId": "0jPxx000000001dEAA",
"ProductId": "01txx0000006i44AAA",
"Id": "1FTxx0000004CFUGA2",
"Name": "PPRS-000000006"
}
],
"relatedObjectAPIName": "ProductRampSegment"
},
{
"count": 2,
"records": [
{
"UsageMetricId": "1BRxx0000004CAeGAM",
"UsageMetricName": "Test Usage Metric 2",
"UsageDefinitionProductId": null,
"Label": "PUG-103",
"Quantity": 100,
"Id": "1BXxx0000004CCGGA2"
},
{
"UsageMetricId": "1BRxx0000004CCGGA2",
"UsageMetricName": "Test Usage Metric 3",
"UsageDefinitionProductId": "01txx0000006i2eAAA",
"Label": "PUG-105",
"Quantity": 500,
"Id": "1BXxx0000004CFUGA2"
}
],
"relatedObjectAPIName": "ProductUsageGrant"
}

176
Product Catalog Management Product Catalog Management Business APIs

]
},
{
"recordId": "01txx0000006i5gAAA",
"relatedObjectRecords": [
{
"count": 4,
"records": [
{
"SegmentType": "Yearly",
"DurationType": "Months",
"TrialDuration": null,
"ProductSellingModelId": "0jPxx0000000001EAA",
"ProductId": "01txx0000006i5gAAA",
"Id": "1FTxx0000004C92GAE",
"Name": "PPRS-000000001"
},
{
"SegmentType": "Custom",
"DurationType": "Days",
"TrialDuration": null,
"ProductSellingModelId": "0jPxx0000000001EAA",
"ProductId": "01txx0000006i5gAAA",
"Id": "1FTxx0000004CAeGAM",
"Name": "PPRS-000000002"
},
{
"SegmentType": "FreeTrial",
"DurationType": "Months",
"TrialDuration": 6,
"ProductSellingModelId": "0jPxx0000000001EAA",
"ProductId": "01txx0000006i5gAAA",
"Id": "1FTxx0000004CCGGA2",
"Name": "PPRS-000000003"
},
{
"SegmentType": "Custom",
"DurationType": null,
"TrialDuration": null,
"ProductSellingModelId": "0jPxx0000000001EAA",
"ProductId": "01txx0000006i5gAAA",
"Id": "1FTxx0000004CDsGAM",
"Name": "PPRS-000000004"
}
],
"relatedObjectAPIName": "ProductRampSegment"
},
{
"count": 0,
"records": [],
"relatedObjectAPIName": "ProductUsageGrant"
}
]

177
Product Catalog Management Product Catalog Management Business APIs

}
]

Property Name Type Description Filter Group and Available Version


Version
recordId String ID of the record. Small, 62.0 62.0

relatedObject Related Object List of related object records. Small, 62.0 62.0
Records Records[]

Related Records List


Output representation of the list of related records.
JSON example
{
"correlationId": "f4d6b42a-d9b7-49c9-8fa8-1c7bb6fe99aa",
"relatedRecords": [
{
"recordId": "01txx0000006i44AAA",
"relatedObjectRecords": [
{
"count": 2,
"records": [
{
"SegmentType": "Yearly",
"DurationType": "Months",
"TrialDuration": null,
"ProductSellingModelId": "0jPxx000000001dEAA",
"ProductId": "01txx0000006i44AAA",
"Id": "1FTxx0000004CDtGAM",
"Name": "PPRS-000000005"
},
{
"SegmentType": "FreeTrial",
"DurationType": "Days",
"TrialDuration": null,
"ProductSellingModelId": "0jPxx000000001dEAA",
"ProductId": "01txx0000006i44AAA",
"Id": "1FTxx0000004CFUGA2",
"Name": "PPRS-000000006"
}
],
"relatedObjectAPIName": "ProductRampSegment"
},
{
"count": 2,
"records": [
{
"UsageMetricId": "1BRxx0000004CAeGAM",
"UsageMetricName": "Test Usage Metric 2",
"UsageDefinitionProductId": null,

178
Product Catalog Management Product Catalog Management Business APIs

"Label": "PUG-103",
"Quantity": 100,
"Id": "1BXxx0000004CCGGA2"
},
{
"UsageMetricId": "1BRxx0000004CCGGA2",
"UsageMetricName": "Test Usage Metric 3",
"UsageDefinitionProductId": "01txx0000006i2eAAA",
"Label": "PUG-105",
"Quantity": 500,
"Id": "1BXxx0000004CFUGA2"
}
],
"relatedObjectAPIName": "ProductUsageGrant"
}
]
},
{
"recordId": "01txx0000006i5gAAA",
"relatedObjectRecords": [
{
"count": 4,
"records": [
{
"SegmentType": "Yearly",
"DurationType": "Months",
"TrialDuration": null,
"ProductSellingModelId": "0jPxx0000000001EAA",
"ProductId": "01txx0000006i5gAAA",
"Id": "1FTxx0000004C92GAE",
"Name": "PPRS-000000001"
},
{
"SegmentType": "Custom",
"DurationType": "Days",
"TrialDuration": null,
"ProductSellingModelId": "0jPxx0000000001EAA",
"ProductId": "01txx0000006i5gAAA",
"Id": "1FTxx0000004CAeGAM",
"Name": "PPRS-000000002"
},
{
"SegmentType": "FreeTrial",
"DurationType": "Months",
"TrialDuration": 6,
"ProductSellingModelId": "0jPxx0000000001EAA",
"ProductId": "01txx0000006i5gAAA",
"Id": "1FTxx0000004CCGGA2",
"Name": "PPRS-000000003"
},
{
"SegmentType": "Custom",
"DurationType": null,
"TrialDuration": null,

179
Product Catalog Management Product Catalog Management Business APIs

"ProductSellingModelId": "0jPxx0000000001EAA",
"ProductId": "01txx0000006i5gAAA",
"Id": "1FTxx0000004CDsGAM",
"Name": "PPRS-000000004"
}
],
"relatedObjectAPIName": "ProductRampSegment"
},
{
"count": 0,
"records": [],
"relatedObjectAPIName": "ProductUsageGrant"
}
]
}
],
"status": {
"code": "200",
"errors": [
],
"message": ""
}
}

Property Name Type Description Filter Group and Available Version


Version
correlationId String Unique token to track and associate related Small, 62.0 62.0
events or transactions across different
components of the application. If
unspecified, a Universally Unique Identifier
(UUID) is generated.

related Related Records[] List of related records. Small, 62.0 62.0


Records

status Status[] Status of the API request. Small, 62.0 62.0

Search Facet
Output representation of the details of the faceted search.
JSON example

"facets":[
{
"attributeType": "ProductStandard",
"displayName": "Product Type",
"displayRank": 1,
"displayType": "MultiSelect",
"nameOrId": "Type",
"values": [
{

180
Product Catalog Management Product Catalog Management Business APIs

"displayName": "Simple",
"nameOrId": "Simple",
"productCount": 9
}
]
},
{
"attributeType": "ProductStandard",
"displayName": "Active",
"displayRank": 2,
"displayType": "MultiSelect",
"nameOrId": "IsActive",
"values": [
{
"displayName": "true",
"nameOrId": "true",
"productCount": 47
}
]
}
]

Property Name Type Description Filter Group and Available Version


Version
attributeType String Search attribute type of the facet. Small, 63.0 63.0

displayName String Display name of the facet. Small, 63.0 63.0

displayRank Integer Display rank of the facet. Small, 63.0 63.0

displayType String Display type of the face. Small, 63.0 63.0

nameOrId String Facet name or ID. Reserved for internal use. Small, 63.0 63.0

values Facet Value[] Values of the facet found in the search Small, 63.0 63.0
result. Sorted by display name in
alphabetical order.

Setting
Output representation of the setting that’s used in indexing.
JSON example

"setting": {
"defaultLanguage": "en_US",
"id": "1JySG0000000GUb0AM",
"supportedLanguages": ["en_US","ja","es","nl_NL"]
}

181
Product Catalog Management Product Catalog Management Business APIs

Property Name Type Description Filter Group and Available Version


Version
default String Default language for the API. Small, 63.0 63.0
Language

id String ID of the setting. Small, 63.0 63.0

supported String[] List of supported language locales for Small, 63.0 63.0
Languages indexing.

Setting Metadata
Output representation of the metadata associated with a setting.
JSON example

"metadata": {
"activeLanguages": [
"en_US"
]
}

Property Name Type Description Filter Group and Available Version


Version
active String[] List of active languages in an org. Small, 63.0 63.0
Languages

Snapshot
Output representation of the list of active snapshots.
JSON example
"snapshots": [
{
"activationDate": "2024-11-06T06:58:02.000Z",
"activationStatus": "ACTIVE",
"activationType": "IMMEDIATE",
"id": "1Avxx0000004C92CAE",
"snapshotIndexes": [
{
"createdDate": "2024-11-06T06:56:49.000Z",
"id": "1D6xx0000004C92CAE",
"indexBuildType": "FULL",
"indexInfos": [
{
"buildType": "FULL",
"id": "0axxx00000000T3AAI",
"isIncrementable": true,
"usageType": "LIVE"
}

182
Product Catalog Management Product Catalog Management Business APIs

],
"indexLogs": [
{
"catalogSnapshotTime": "2024-11-06T16:14:30.000Z",
"completionTime": "2024-11-06T16:16:02.000Z",
"createdById": "005xx000001X7x7AAC",
"indexBuildStatus": "COMPLETED",
"indexBuildType": "FULL",
"indexId": "0axxx00000000T3AAI",
"numberOfChanges": 7
},
{
"catalogSnapshotTime": "2024-11-06T15:03:32.000Z",
"completionTime": "2024-11-06T15:05:02.000Z",
"createdById": "005xx000001X7x7AAC",
"indexBuildStatus": "COMPLETED_WITH_ERRORS",
"indexBuildType": "INCREMENTAL",
"indexId": "0axxx00000000RRAAY",
"message": "Warning: Product errors found.",
"numberOfChanges": 3
},
{
"catalogSnapshotTime": "2024-11-06T12:35:34.000Z",
"completionTime": "2024-11-06T12:35:34.000Z",
"createdById": "005xx000001X7x7AAC",
"indexBuildStatus": "COMPLETED",
"indexBuildType": "INCREMENTAL",
"indexId": "0axxx00000000RRAAY",
"message": "There are no changes for the partial update.",
"numberOfChanges": 0
},
{
"catalogSnapshotTime": "2024-11-06T12:07:32.000Z",
"completionTime": "2024-11-06T12:09:02.000Z",
"createdById": "005xx000001X7x7AAC",
"indexBuildStatus": "COMPLETED_WITH_ERRORS",
"indexBuildType": "FULL",
"message": "Warning: Product errors found.",
"numberOfChanges": 1
}
],
"indexType": "PRODUCT",
"lastBuildStatus": "IN_PROGRESS",
"venueId": "1D6xx0000004C92CAE"
}
]
}
]

Property Name Type Description Filter Group and Available Version


Version
activation String Activation date of the snapshot. Small, 62.0 62.0
Date

183
Product Catalog Management Product Catalog Management Business APIs

Property Name Type Description Filter Group and Available Version


Version
activation String Activation status of the snapshot. Valid Small, 62.0 62.0
Status values are:
• NONE
• ACTIVE—Snapshot is in active status.
• EXPIRED—Snapshot is in expired
status.

activation String Activation type of the snapshot. Valid values Small, 62.0 62.0
Type are:
• IMMEDIATE—Snapshot is activated
immediately after a successful build.

id String ID of the snapshot. Small, 61.0 61.0

snapshot Snapshot Index[] List of indexes created in the snapshot. Small, 62.0 62.0
Indexes

Snapshot Collection
Output representation of the retrieved snapshot collection.
JSON example
{
"errors": [],
"snapshots": [
{
"activationDate": "2024-11-06T06:58:02.000Z",
"activationStatus": "ACTIVE",
"activationType": "IMMEDIATE",
"id": "1Avxx0000004C92CAE",
"snapshotIndexes": [
{
"createdDate": "2024-11-06T06:56:49.000Z",
"id": "1D6xx0000004C92CAE",
"indexBuildType": "FULL",
"indexInfos": [
{
"buildType": "FULL",
"id": "0axxx00000000T3AAI",
"isIncrementable": true,
"usageType": "LIVE"
}
],
"indexLogs": [
{
"catalogSnapshotTime": "2024-11-06T16:14:30.000Z",
"completionTime": "2024-11-06T16:16:02.000Z",
"createdById": "005xx000001X7x7AAC",

184
Product Catalog Management Product Catalog Management Business APIs

"indexBuildStatus": "COMPLETED",
"indexBuildType": "FULL",
"indexId": "0axxx00000000T3AAI",
"numberOfChanges": 7
},
{
"catalogSnapshotTime": "2024-11-06T15:03:32.000Z",
"completionTime": "2024-11-06T15:05:02.000Z",
"createdById": "005xx000001X7x7AAC",
"indexBuildStatus": "COMPLETED_WITH_ERRORS",
"indexBuildType": "INCREMENTAL",
"indexId": "0axxx00000000RRAAY",
"message": "Warning: Product errors found.",
"numberOfChanges": 3
},
{
"catalogSnapshotTime": "2024-11-06T12:35:34.000Z",
"completionTime": "2024-11-06T12:35:34.000Z",
"createdById": "005xx000001X7x7AAC",
"indexBuildStatus": "COMPLETED",
"indexBuildType": "INCREMENTAL",
"indexId": "0axxx00000000RRAAY",
"message": "There are no changes for the partial update.",
"numberOfChanges": 0
},
{
"catalogSnapshotTime": "2024-11-06T12:07:32.000Z",
"completionTime": "2024-11-06T12:09:02.000Z",
"createdById": "005xx000001X7x7AAC",
"indexBuildStatus": "COMPLETED_WITH_ERRORS",
"indexBuildType": "FULL",
"message": "Warning: Product errors found.",
"numberOfChanges": 1
}
],
"indexType": "PRODUCT",
"lastBuildStatus": "IN_PROGRESS",
"venueId": "1D6xx0000004C92CAE"
}
]
}
],
"statusCode": "200"
}

Property Name Type Description Filter Group and Available Version


Version
errors Error Output[] List of errors, if any. Small, 62.0 62.0

snapshots Snapshot[] List of active snapshots. Small, 62.0 62.0

statusCode String Code indicating the status of the request. Small, 62.0 62.0

185
Product Catalog Management Product Catalog Management Business APIs

Snapshot Deployment
Output representation of the snapshot deployment.
JSON example
This example shows a sample response to the request to build a new snapshot with immediate activation.
{
"errors": [],
"snapshot": {
"activationStatus": "NONE",
"activationType": "IMMEDIATE",
"id": "1Avxx0000004CFU",
"snapshotIndexes": [
{
"createdDate": "2024-07-24T21:10:48.000Z",
"id": "1D6xx0000004CFU",
"indexBuildType": "FULL",
"indexType": "PRODUCT",
"lastBuildStatus": "IN_PROGRESS"
}
]
},
"statusCode": "200"
}

This example shows a sample response of the request to rebuild a snapshot in the active status.
{
"errors": [],
"snapshot": {
"activationStatus": "NONE",
"activationType": "IMMEDIATE",
"id": "1Avxx0000004CH6",
"snapshotIndexes": [
{
"createdDate": "2024-07-24T21:13:05.000Z",
"id": "1D6xx0000004CH6",
"indexBuildType": "FULL",
"indexType": "PRODUCT",
"lastBuildStatus": "IN_PROGRESS"
}
]
},
"statusCode": "200"
}

Property Name Type Description Filter Group and Available Version


Version
errors Error Output[] List of errors, if any. Small, 62.0 62.0

snapshot Snapshot[] Run-time catalog snapshot associated with Small, 62.0 62.0
the created index.

statusCode String Code indicating the status of the request. Small, 62.0 62.0

186
Product Catalog Management Product Catalog Management Business APIs

Snapshot Index
Output representation of the snapshot index of a run-time catalog.
JSON example
"snapshotIndexes": [
{
"createdDate": "2024-11-06T06:56:49.000Z",
"id": "1D6xx0000004C92CAE",
"indexBuildType": "FULL",
"indexInfos": [
{
"buildType": "FULL",
"id": "0axxx00000000T3AAI",
"isIncrementable": true,
"usageType": "LIVE"
}
],
"indexLogs": [
{
"catalogSnapshotTime": "2024-11-06T16:14:30.000Z",
"completionTime": "2024-11-06T16:16:02.000Z",
"createdById": "005xx000001X7x7AAC",
"indexBuildStatus": "COMPLETED",
"indexBuildType": "FULL",
"indexId": "0axxx00000000T3AAI",
"numberOfChanges": 7
},
{
"catalogSnapshotTime": "2024-11-06T15:03:32.000Z",
"completionTime": "2024-11-06T15:05:02.000Z",
"createdById": "005xx000001X7x7AAC",
"indexBuildStatus": "COMPLETED_WITH_ERRORS",
"indexBuildType": "INCREMENTAL",
"indexId": "0axxx00000000RRAAY",
"message": "Warning: Product errors found.",
"numberOfChanges": 3
},
{
"catalogSnapshotTime": "2024-11-06T12:35:34.000Z",
"completionTime": "2024-11-06T12:35:34.000Z",
"createdById": "005xx000001X7x7AAC",
"indexBuildStatus": "COMPLETED",
"indexBuildType": "INCREMENTAL",
"indexId": "0axxx00000000RRAAY",
"message": "There are no changes for the partial update.",
"numberOfChanges": 0
},
{
"catalogSnapshotTime": "2024-11-06T12:07:32.000Z",
"completionTime": "2024-11-06T12:09:02.000Z",
"createdById": "005xx000001X7x7AAC",
"indexBuildStatus": "COMPLETED_WITH_ERRORS",
"indexBuildType": "FULL",
"message": "Warning: Product errors found.",

187
Product Catalog Management Product Catalog Management Business APIs

"numberOfChanges": 1
}
],
"indexType": "PRODUCT",
"lastBuildStatus": "IN_PROGRESS",
"venueId": "1D6xx0000004C92CAE"
}
]

Property Name Type Description Filter Group and Available Version


Version
completedDate String Completed date of the snapshot index. Small, 62.0 62.0

createdDate String Created date of the snapshot index. Small, 62.0 62.0

id String ID of the snapshot index. Small, 62.0 62.0

indexBuild String Build type of the snapshot index. Valid value Small, 62.0 62.0
Type is:
• FULL—Specifies a full index build.
• INCREMENTAL—Specifies an
incremental index build. Available in API
version 63.0 and later.

indexInfos Index Info Index information records associated with Small, 63.0 63.0
the snapshot index.

indexLogs Index Logs[] Index logs associated with the snapshot Small, 63.0 63.0
index.

indexType String Index type of the snapshot index. Valid value Small, 62.0 62.0
is:
• PRODUCT—Snapshot index is of
product type.

lastBuild String Last build status of the snapshot index. Valid Small, 62.0 62.0
Status values are:
• IN_PROGRESS—Snapshot index
build is in progress.
• FAILED—Snapshot index build failed.
• COMPLETED—Snapshot index build
completed successfully.

numberOf Integer Number of indexed records. Small, 62.0 62.0


Records

venueId String Venue ID of the snapshot index. Small, 63.0 63.0

188
Product Catalog Management Product Catalog Management Business APIs

Snapshot Index Error


Output representation of the error details related to a snapshot index.
JSON example
{
"errors": [],
"indexErrorDetails": {
"errorFileId": "069xx0000004C92AAE",
"indexCreatedDate": "2024-10-03T05:24:18.000Z",
"indexErrorsCount": 1,
"indexLastUpdatedDate": "2024-10-03T05:27:00.000Z",
"itemLevelErrorsCount": 1
},
"statusCode": "200"
}

Property Name Type Description Filter Group and Available Version


Version
errors Error Output[] List of errors encountered during the Small, 63.0 63.0
processing of the API request.

indexError Index Error[] Count and details of errors that occurred Small, 63.0 63.0
Details during indexing.

statusCode String Code that indicates the status of the API Small, 63.0 63.0
request.

Snapshot Index Info


Output representation of the details of a snapshot index.
JSON example
"indexInfos": [
{
"buildType": "FULL",
"id": "0axxx00000000T3AAI",
"isIncrementable": true,
"usageType": "LIVE"
}
]

Property Name Type Description Filter Group and Available Version


Version
buildType String Build type of the index. Valid values are: Small, 63.0 63.0

• FULL—Specifies a full index build.


• INCREMENTAL—Specifies an
incremental index build. Available in API
version 63.0 and later.

189
Product Catalog Management Product Catalog Management Business APIs

Property Name Type Description Filter Group and Available Version


Version
id String ID of the index information record. Small, 63.0 63.0

isIncrementable Boolean Indicates whether a partial build is enabled Small, 63.0 63.0
(true) or disabled (false).

usageType String Usage type of the index. Valid values are: Small, 63.0 63.0

• LIVE—Index usage type is live.


• OUT_OF_USE—Index usage type is
out of use.

Snapshot Index Log


Output representation of a snapshot index log.
JSON example
"indexLogs": [
{
"catalogSnapshotTime": "2024-11-06T16:14:30.000Z",
"completionTime": "2024-11-06T16:16:02.000Z",
"createdById": "005xx000001X7x7AAC",
"indexBuildStatus": "COMPLETED",
"indexBuildType": "FULL",
"indexId": "0axxx00000000T3AAI",
"numberOfChanges": 7
},
{
"catalogSnapshotTime": "2024-11-06T15:03:32.000Z",
"completionTime": "2024-11-06T15:05:02.000Z",
"createdById": "005xx000001X7x7AAC",
"indexBuildStatus": "COMPLETED_WITH_ERRORS",
"indexBuildType": "INCREMENTAL",
"indexId": "0axxx00000000RRAAY",
"message": "Warning: Product errors found.",
"numberOfChanges": 3
},
{
"catalogSnapshotTime": "2024-11-06T12:35:34.000Z",
"completionTime": "2024-11-06T12:35:34.000Z",
"createdById": "005xx000001X7x7AAC",
"indexBuildStatus": "COMPLETED",
"indexBuildType": "INCREMENTAL",
"indexId": "0axxx00000000RRAAY",
"message": "There are no changes for the partial update.",
"numberOfChanges": 0
},
{
"catalogSnapshotTime": "2024-11-06T12:07:32.000Z",
"completionTime": "2024-11-06T12:09:02.000Z",
"createdById": "005xx000001X7x7AAC",

190
Product Catalog Management Product Catalog Management Business APIs

"indexBuildStatus": "COMPLETED_WITH_ERRORS",
"indexBuildType": "FULL",
"message": "Warning: Product errors found.",
"numberOfChanges": 1
}
]

Property Name Type Description Filter Group and Available Version


Version
catalog String Catalog snapshot time of the index. Small, 63.0 63.0
SnapshotTime

completion String Completion time of the index. Small, 63.0 63.0


Time

createdById String ID of the user that initiated the index build. Small, 63.0 63.0

indexBuild String Status of the index build. Small, 63.0 63.0


Status

indexBuild String Type of the index build. Valid values are: Small, 63.0 63.0
Type
• FULL—Specifies a full index build.
• INCREMENTAL—Specifies an
incremental index build. Available in API
version 63.0 and later.

indexId String ID of the index. Small, 63.0 63.0

message String Message for the index status. Small, 63.0 63.0

numberOf Integer Number of new or changed products Small, 63.0 63.0


Changes included in the index.

Status
Output representation of the status of the request.
JSON example
"status": {
"code": "200",
"errors": [],
"message": "Successfully fetched the catalog records."
}

Property Name Type Description Filter Group and Available Version


Version
code String Code of the error message. Small, 60.0 60.0

errors Error[] Details of the error. Small, 60.0 60.0

191
Product Catalog Management Product Catalog Management Business APIs

Property Name Type Description Filter Group and Available Version


Version
message String Error message. Small, 60.0 60.0

Unit of Measure Error


Output representation of the details of errors encountered during the processing of the Unit of Measure API request.
JSON example
"errorCodeToErrorMap": {
"UNIT_OF_MEASURE_INFO_INVALID_UOM_IDS": {
"errorCode": "UOM_INFO_API_003",
"messageDetail": "Invalid uomId is passed. Please specify a valid uomId.",
"messageTitle": "Invalid uomId is passed.",
"recordIds": [
"sample"
],
"source": "Unit_Of_Measure_Info_Api"
}
}

Property Name Type Description Filter Group and Available Version


Version
errorCode String Localized error code. Small, 63.0 63.0

messageDetail String Localized details of the error message. Small, 63.0 63.0

messageTitle String Localized title of the error message. Small, 63.0 63.0

recordIds String[] List of erroneous record IDs. Small, 63.0 63.0

source String Localized source of the error. Small, 63.0 63.0

Unit of Measure Info


Output representation of the details of a unit of measure record.
JSON example
"uomIdToUnitOfMeasureInfo": {
"0hEU200000003M5MAI": {
"id": "0hEU200000003M5MAI",
"name": "Pounds",
"roundingMethod": "Nearest",
"scale": 1,
"unitCode": "Pounds"
},
"0hEU200000003KTMAY": {
"id": "0hEU200000003KTMAY",
"name": "Grams",
"roundingMethod": "Down",
"scale": 5,

192
Product Catalog Management Product Catalog Management Metadata API Types

"unitCode": "Grams"
}
}

Property Name Type Description Filter Group and Available Version


Version
id String ID of the unit of measure record. Small, 63.0 63.0

name String Name of the unit of measure record. Small, 63.0 63.0

roundingMethod String Data rounding method of the unit of Small, 63.0 63.0
measure record.

scale Integer Scale of the unit of measure record. Small, 63.0 63.0

unitCode String Code of the unit of measure record. Small, 63.0 63.0

Unit of Measure Status


Output representation of the status of the Unit of Measure API request.
JSON example
"status": {
"errors": [],
"httpStatusCode": "200",
"message": " Successfully fetched UnitOfMeasure Info. "
}

Property Name Type Description Filter Group and Available Version


Version
errors Unit Of Measure Errors encountered during the processing Small, 63.0 63.0
Error[] of the API request.

httpStatus String HTTP status code of the API request. Small, 63.0 63.0
Code

message String Localized response message. Small, 63.0 63.0

Product Catalog Management Metadata API Types


Metadata API enables you to access some types and feature settings that you can customize in the user interface.

ProductSpecificationType
Represents the specification types in your org that define products with unique terminology specific to the industry.

193
Product Catalog Management Product Catalog Management Metadata API Types

ProductSpecificationRecType
Represents the association of a product specification type with record types defined on the Product object. The product specification
record type also determines if the product specification is sold commercially or not.

SEE ALSO:
Metadata API Developer Guide: Understanding Metadata API

ProductSpecificationType
Represents the specification types in your org that define products with unique terminology specific to the industry.

Important: Where possible, we changed noninclusive terms to align with our company value of Equality. We maintained certain
terms to avoid any effect on customer implementations.

Parent Type
This type extends the Metadata metadata type and inherits its fullName field.

File Suffix and Directory Location


ProductSpecificationType components have the suffix .productSpecificationType and are stored in the
productSpecificationTypes folder.

Version
ProductSpecificationType components are available in API version 60.0 and later.

Special Access Rules


Ensure Product Catalog Management is enabled to access this metadata type.

Fields

Field Name Description


description Field Type
string
Description
Required.
Description of the product specification type.

masterLabel Field Type


string
Description
Required.

194
Product Catalog Management Product Catalog Management Metadata API Types

Field Name Description


A user-friendly name for the product specification record type, which is defined when
the metadata component is created.

Declarative Metadata Sample Definition


The following is an example of a ProductSpecificationType component.

<ProductSpecificationType xmlns="http://soap.sforce.com/2006/04/metadata">
<masterLabel>sample</masterLabel>
<description>Sample Description</description>
</ProductSpecificationType>

The following is an example package.xml that references the previous definition.

<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<types>
<members>*</members>
<name>ProductSpecificationType</name>
</types>
<version>60.0</version>
</Package>

Wildcard Support in the Manifest File


This metadata type supports the wildcard character * (asterisk) in the package.xml manifest file. For information about using the
manifest file, see Deploying and Retrieving Metadata with the Zip File.

ProductSpecificationRecType
Represents the association of a product specification type with record types defined on the Product object. The product specification
record type also determines if the product specification is sold commercially or not.

Important: Where possible, we changed noninclusive terms to align with our company value of Equality. We maintained certain
terms to avoid any effect on customer implementations.

Parent Type
This type extends the Metadata metadata type and inherits its fullName field.

File Suffix and Directory Location


ProductSpecificationRecType components have the suffix .productSpecificationRecType and are stored in the
productSpecificationRecTypes folder.

Version
ProductSpecificationRecType components are available in API version 60.0 and later.

195
Product Catalog Management Product Catalog Management Metadata API Types

Special Access Rules


Ensure Product Catalog Management is enabled to access this metadata type.

Fields

Field Name Description


isCommercial Field Type
boolean
Description
Required. Indicates whether the product is sold commercially (true) or not (false).
The default value is true.

masterLabel Field Type


string
Description
Required.
A user-friendly name for the product specification record type, which is defined when
the metadata component is created.

productSpecificationType Field Type


string
Description
Required.
Product specification type that's associated with the record type. This field is unique
within your organization.

recordType Field Type


string
Description
Required.
Custom record type of Product2 object.

Declarative Metadata Sample Definition


The following is an example of a ProductSpecificationRecType component.

<ProductSpecificationRecType xmlns="http://soap.sforce.com/2006/04/metadata">
<masterLabel>sample</masterLabel>
<recordType>Product2.Offer</recordType>
<productSpecificationType>Placeholder</productSpecificationType>
<isCommercial>true</isCommercial>
</ProductSpecificationRecType>

196
Product Catalog Management Product Catalog Management Tooling API Objects

The following is an example package.xml that references the previous definition.

<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<types>
<members>*</members>
<name>ProductSpecificationRecType</name>
</types>
<types>
<members>*</members>
<name>ProductSpecificationType</name>
</types>
<types>
<members>Product2.Offer</members>
<name>RecordType</name>
</types>
<version>60.0</version>
</Package>

Wildcard Support in the Manifest File


This metadata type supports the wildcard character * (asterisk) in the package.xml manifest file. For information about using the
manifest file, see Deploying and Retrieving Metadata with the Zip File.

Product Catalog Management Tooling API Objects


Tooling API exposes metadata used in developer tooling that you can access through REST or SOAP. Tooling API’s SOQL capabilities for
many metadata types allow you to retrieve smaller pieces of metadata.

ProductSpecificationType
Represents the specification types in your org that define products with unique terminology specific to the industry. This object is
available in API version 60.0 and later.
ProductSpecificationRecType
Represents the association of a product specification type with record types defined on the Product object. The product specification
record type also determines if the product specification is sold commercially or not. This object is available in API version 60.0 and
later.

SEE ALSO:
Tooling API Developer Guide: Introducing Tooling API

ProductSpecificationType
Represents the specification types in your org that define products with unique terminology specific to the industry. This object is
available in API version 60.0 and later.

Important: Where possible, we changed noninclusive terms to align with our company value of Equality. We maintained certain
terms to avoid any effect on customer implementations.

197
Product Catalog Management Product Catalog Management Tooling API Objects

Supported SOAP API Calls


create(), delete(), describeSObjects(), query(), retrieve(), update(), upsert()

Supported REST API Methods


DELETE, GET, HEAD, PATCH, POST, Query

Special Access Rules


Ensure Product Catalog Management is enabled to access this object.

Fields

Field Details
Description Type
textarea
Properties
Create, Nillable, Update
Description
Description of the product specification type.

DeveloperName Type
string
Properties
Create, Filter, Group, Sort, Update
Description
The unique name of the object in the API. This name can contain only underscores and
alphanumeric characters, and must be unique in your org. It must begin with a letter, not
include spaces, not end with an underscore, and not contain two consecutive underscores.
In managed packages, this field prevents naming conflicts on package installations. With
this field, a developer can change the object’s name in a managed package and the changes
are reflected in a subscriber’s organization. Label is Record Type Name.

Language Type
picklist
Properties
Create, Defaulted on create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
Language of the product specification type instance.
Possible values are:
• da—Danish
• de—German
• en_US—English

198
Product Catalog Management Product Catalog Management Tooling API Objects

Field Details
• es—Spanish
• es_MX—Spanish (Mexico)
• fi—Finnish
• fr—French
• it—Italian
• ja—Japanese
• ko—Korean
• nl_NL—Dutch
• no—Norwegian
• pt_BR—Portuguese (Brazil)
• ru—Russian
• sv—Swedish
• th—Thai
• zh_CN—Chinese (Simplified)
• zh_TW—Chinese (Traditional)

ManageableState Type
picklist
Properties
Filter, Group, Nillable, Restricted picklist, Sort
Description
Type
ManageableState enumerated list
Properties
Filter, Group, Nillable, Restricted picklist, Sort
Description
Indicates the manageable state of the specified component that is contained in a package:
• beta
• deleted
• deprecated
• deprecatedEditable
• installed
• installedEditable
• released
• unmanaged

MasterLabel Type
string

199
Product Catalog Management Product Catalog Management Tooling API Objects

Field Details

Properties
Create, Filter, Group, Sort, Update
Description
Label assigned to the ProductSpecificationType object.

NamespacePrefix Type
string
Properties
Filter, Group, Nillable, Sort
Description
The namespace prefix associated with this object. Each Developer Edition organization that
creates a managed package has a unique namespace prefix. Limit: 15 characters. You can
refer to a component in a managed package by using the
namespacePrefix__componentName notation.
The namespace prefix can have one of the following values:
• In Developer Edition organizations, the namespace prefix is set to the namespace prefix
of the organization for all objects that support it. There is an exception if an object is in
an installed managed package. In that case, the object has the namespace prefix of the
installed managed package. This field’s value is the namespace prefix of the Developer
Edition organization of the package developer.
• In organizations that are not Developer Edition organizations, NamespacePrefix
is only set for objects that are part of an installed managed package. There is no
namespace prefix for all other objects.

ProductSpecificationRecType
Represents the association of a product specification type with record types defined on the Product object. The product specification
record type also determines if the product specification is sold commercially or not. This object is available in API version 60.0 and later.

Important: Where possible, we changed noninclusive terms to align with our company value of Equality. We maintained certain
terms to avoid any effect on customer implementations.

Supported SOAP API Calls


create(), delete(), describeSObjects(), query(), retrieve(), update(), upsert()

Supported REST API Methods


DELETE, GET, HEAD, PATCH, POST, Query

Special Access Rules


Ensure Product Catalog Management is enabled to access this object.

200
Product Catalog Management Product Catalog Management Tooling API Objects

Fields

Field Details
DeveloperName Type
string
Properties
Create, Filter, Group, Sort, Update
Description
The unique name of the object in the API. This name can contain only underscores and
alphanumeric characters, and must be unique in your org. It must begin with a letter, not
include spaces, not end with an underscore, and not contain two consecutive underscores.
In managed packages, this field prevents naming conflicts on package installations. With
this field, a developer can change the object’s name in a managed package and the changes
are reflected in a subscriber’s organization. Label is Record Type Name.

IsCommercial Type
boolean
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
Indicates whether the product is sold commercially (true) or not (false). The default
value is true.

Language Type
picklist
Properties
Create, Defaulted on create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
Language of the product specification record type instance.
Possible values are:
• da—Danish
• de—German
• en_US—English
• es—Spanish
• es_MX—Spanish (Mexico)
• fi—Finnish
• fr—French
• it—Italian
• ja—Japanese
• ko—Korean
• nl_NL—Dutch
• no—Norwegian

201
Product Catalog Management Product Catalog Management Tooling API Objects

Field Details
• pt_BR—Portuguese (Brazil)
• ru—Russian
• sv—Swedish
• th—Thai
• zh_CN—Chinese (Simplified)
• zh_TW—Chinese (Traditional)

ManageableState Type
picklist
Properties
Filter, Group, Nillable, Restricted picklist, Sort
Description
Type
ManageableState enumerated list
Properties
Filter, Group, Nillable, Restricted picklist, Sort
Description
Indicates the manageable state of the specified component that is contained in a package:
• beta
• deleted
• deprecated
• deprecatedEditable
• installed
• installedEditable
• released
• unmanaged

MasterLabel Type
string
Properties
Create, Filter, Group, Sort, Update
Description
Label assigned to the ProductSpecificationRecType object.

NamespacePrefix Type
string
Properties
Filter, Group, Nillable, Sort

202
Product Catalog Management Product Catalog Management Tooling API Objects

Field Details

Description
The namespace prefix associated with this object. Each Developer Edition organization that
creates a managed package has a unique namespace prefix. Limit: 15 characters. You can
refer to a component in a managed package by using the
namespacePrefix__componentName notation.
The namespace prefix can have one of the following values:
• In Developer Edition organizations, the namespace prefix is set to the namespace prefix
of the organization for all objects that support it. There is an exception if an object is in
an installed managed package. In that case, the object has the namespace prefix of the
installed managed package. This field’s value is the namespace prefix of the Developer
Edition organization of the package developer.
• In organizations that are not Developer Edition organizations, NamespacePrefix
is only set for objects that are part of an installed managed package. There is no
namespace prefix for all other objects.

ProductSpecificationType Type
picklist
Properties
Create, Filter, Group, Restricted picklist, Sort, Update
Description
Required.
Product specification type that's associated with the record type. This field is unique within
your organization.
The picklist values that are available to you depend on your industry solution and permission
sets.

RecordType Type
sObject
Properties
Nillable
Description
Custom record type of Product2 object.

RecordTypeId Type
reference
Properties
Create, Filter, Group, Sort, Update
Description
Required. ID of the product record type associated with the product specification type. This
field is unique within your organization.
This field is a relationship field.

203
Product Catalog Management Product Discovery

Field Details

Relationship Name
RecordType
Relationship Type
Lookup
Refers To
RecordType

Product Discovery
Product Discovery provides a hierarchical catalog browsing experience to identify suitable products
EDITIONS
with text-based and faceted search.
Available in: Lightning
Product Discovery Business APIs Experience
Use the Product Discovery Business APIs, which are composite APIs, to search products or to Available in: Enterprise,
discover catalogs, products, and categories during the product browsing experience. Unlimited, and Developer
Product Discovery Standard Invocable Actions Editions of Revenue Cloud
Use the standard invocable actions available with Product Discovery to find and retrieve the
product details.
Product Discovery Metadata API Types
Metadata API enables you to access some types and feature settings that you can customize in the user interface.

SEE ALSO:
Salesforce Help: Configure Product Discovery Settings
Salesforce Help: Invoke Qualification Procedures During Product Discovery

Product Discovery Business APIs


Use the Product Discovery Business APIs, which are composite APIs, to search products or to discover catalogs, products, and categories
during the product browsing experience.
This table lists the available Product Discovery resources.

Resource Description
/connect/cpq/catalogs/catalogId (POST) Get catalog details for a
specified catalog ID. This API is
a composite API for Product
Discovery.

/connect/cpq/catalogs (POST) Get a paginated list of catalogs.


This API is a composite API for
Product Discovery.

204
Product Catalog Management Product Discovery Business APIs

Resource Description
/connect/cpq/categories (POST) Get a list of categories and
subcategories of a specified
catalog. This API is a composite
API for Product Discovery.

/connect/cpq/categories/categoryId (POST) Get details of a category for a


specified category ID. This API
is a composite API for Product
Discovery.

/connect/cpq/qualification (POST) Run the qualification procedure


on a list of product IDs. This API
is a composite API for Product
Discovery.

/connect/cpq/products/search (POST) Retrieves a list of products


based on a search query or
search term. This API is a
composite API for Product
Discovery.

/connect/cpq/products/productId (POST) Get product details, such as


attributes, hierarchy, or
cardinality, for a specified
product ID. This API is a
composite API for Product
Discovery.

/connect/cpq/products (POST) Get a list of products for a


specified catalog, category, or
subcategory. This API is a
composite API for Product
Discovery.

/connect/cpq/products/bulk (POST) Retrieve details for multiple


products. This API is a
composite API for Product
Discovery.

/connect/cpq/products/guided-selection (POST) Retrieve a list of products based


on the response identifier or
search terms of a guided
selection. Guided selection
captures user requirements to
show suitable products.

Resources
Learn more about the available Product Discovery API resources.

205
Product Catalog Management Product Discovery Business APIs

Request Bodies
Learn more about the available Product Discovery API request bodies.
Response Bodies
Learn more about the available Product Discovery API response bodies.

Resources
Learn more about the available Product Discovery API resources.

Catalog Details (POST)


Get catalog details for a specified catalog ID. This API is a composite API for Product Discovery.
Catalog List (POST)
Get a paginated list of catalogs. This API is a composite API for Product Discovery.
Categories List (POST)
Get a list of categories and subcategories of a specified catalog. This API is a composite API for Product Discovery.
Category Details (POST)
Get details of a category for a specified category ID. This API is a composite API for Product Discovery.
CPQ Base Bulk Details (POST)
Retrieve details for multiple products. This API is a composite API for Product Discovery.
Global Search (POST)
Retrieves a list of products based on a search query or search term. This API is a composite API for Product Discovery.
Guided Selection (POST)
Retrieve a list of products based on the response identifier or search terms of a guided selection. Guided selection captures user
requirements to show suitable products.
Product Details (POST)
Get product details, such as attributes, hierarchy, or cardinality, for a specified product ID. This API is a composite API for Product
Discovery.
Products List (POST)
Get a list of products for a specified catalog, category, or subcategory. This API is a composite API for Product Discovery.
Qualification (POST)
Run the qualification procedure on a list of product IDs. This API is a composite API for Product Discovery.

Catalog Details (POST)


Get catalog details for a specified catalog ID. This API is a composite API for Product Discovery.
Resource

/connect/cpq/catalogs/catalogId

Resource example

https://yourInstance.salesforce.com/services/data/v63.0/connect/cpq/catalogs/0ZSxx000000009hGAA

Available version
60.0

206
Product Catalog Management Product Discovery Business APIs

HTTP methods
POST
Request body for POST
JSON example
{
"correlationId": "9cbb9650-48c5-11ed-96d1-0afcf185843b",
"userContext": {
"accountId": "001xx0000000001AAA",
"contactId": "003xx00000000D7AAI"
}
}

Properties

Name Type Description Required or Available


Optional Version
correlation String Unique identifier value that’s attached to Optional 60.0
Id the requests and messages, and accepts
references to a particular transaction or
event chain.

userContext User Context Input User context details. For example, Optional 60.0
account ID or contact ID.

Response body for POST


CPQ Base Details

Catalog List (POST)


Get a paginated list of catalogs. This API is a composite API for Product Discovery.
Resource
/connect/cpq/catalogs

Resource example

https://yourInstance.salesforce.com/services/data/v63.0/connect/cpq/catalogs

Available version
60.0
HTTP methods
POST
Request body for POST
JSON example

{
"correlationId": "9cbb9650-48c5-11ed-96d1-0afcf185843b",
"limit": 10,

207
Product Catalog Management Product Discovery Business APIs

"offset": 0,
"orderBy": [
"name:asc",
"id:desc"
],
"userContext": {
"accountId": "001xx0000000001AAA",
"contactId": "003xx00000000D7AAI"
}
}

Properties

Name Type Description Required or Available


Optional Version
correlation String Unique identifier value that’s attached to Optional 60.0
Id the requests and messages, and accepts
references to a particular transaction or
event chain.

limit Integer Number of items to include in the Optional 60.0


response.

offset Integer Offset size from which to get the catalog Optional 60.0
count.

orderBy String[] Sort order for the catalogs. Optional 60.0

userContext User Context Input User context details. For example, Optional 60.0
account ID or contact ID.

Response body for POST


CPQ Base List

Categories List (POST)


Get a list of categories and subcategories of a specified catalog. This API is a composite API for Product Discovery.
Resource
/connect/cpq/categories

Resource example

https://yourInstance.salesforce.com/services/data/v63.0/connect/cpq/categories

Available version
60.0
HTTP methods
POST

208
Product Catalog Management Product Discovery Business APIs

Request body for POST


JSON example
{
"correlationId": "9cbb9650-48c5-11ed-96d1-0afcf185843b",
"catalogId": "0ZSxx000000009hGAA",
"userContext": {
"accountId": "001xx0000000001AAA",
"contactId": "003xx00000000D7AAI"
}
}

Properties

Name Type Description Required or Available


Optional Version
catalogId String ID of the catalog. Required 60.0

correlation String Unique identifier value that’s attached to Optional 60.0


Id the requests and messages, and accepts
references to a particular transaction or
event chain.

userContext User Context Input User context details. For example, Optional 60.0
account ID or contact ID.

Response body for POST


CPQ Base List

Category Details (POST)


Get details of a category for a specified category ID. This API is a composite API for Product Discovery.
Resource

/connect/cpq/categories/categoryId

Resource example

https://yourInstance.salesforce.com/services/data/v63.0/connect/cpq/categories/0ZGxx000000001dGAA

Available version
60.0
HTTP methods
POST
Request body for POST
JSON example
{
"correlationId": "9cbb9650-48c5-11ed-96d1-0afcf185843b",
"userContext": {

209
Product Catalog Management Product Discovery Business APIs

"accountId": "001xx0000000001AAA",
"contactId": "003xx00000000D7AAI"
}
}

Properties

Name Type Description Required or Available


Optional Version
correlation String Unique identifier value that’s attached to Optional 60.0
Id the requests and messages, and accepts
references to a particular transaction or
event chain.

userContext User Context Input User context details. For example, Optional 60.0
account ID or contact ID.

Response body for POST


CPQ Base Details

CPQ Base Bulk Details (POST)


Retrieve details for multiple products. This API is a composite API for Product Discovery.
Resource
/connect/cpq/products/bulk

Resource example

https://yourInstance.salesforce.com/services/data/v63.0/connect/cpq/products/bulk

Available version
61.0
HTTP methods
POST
Request body for POST
JSON example
{
"productData": [
{
"productId": "01txx0000006ivJAAQ",
"productSellingModelId": "0jPxx000000009hEAA"
},
{
"productId": "01txx0000006ivLAAQ",
"productSellingModelId": "0jPxx000000009iEAABB"
}
],
"correlationId": "de9a674c-1807-438c-ac78-2c96f4655325",
"priceBookId" : "01sxx0000005qxxAAA",

210
Product Catalog Management Product Discovery Business APIs

"userContext": {
"accountId": "001xx0000000001AAA",
"contactId": "003xx00000000D7AAI"
}
}

Properties

Name Type Description Required or Available


Optional Version
additional Context Data Additional nodes to add to the custom Optional 61.0
ContextData Input[] or default context definition. This data is
appended to the context input and sent
for hydration and qualification. The
maximum limit of supported nodes is 10.

additional Map<String, Additional standard or custom fields of Optional 61.0


Fields Additional Fields the Product2 object to include in the
Input> response. The field values are returned in
the response for each of the products.

context String Name of the custom context definition Optional 61.0


Definition that’s sent for the context creation. If
unspecified, the default context definition
is used.

context String Context mapping details from the Optional 61.0


Mapping context definition. If specified, the API
validates if the context mapping belongs
to the specified context definition and
considers the mapping for hydration.
If unspecified, the default context
mapping of the context definition is used.

correlation String Unique token to track and associate Optional 61.0


Id related events or transactions across
different components of the application.
If unspecified, a Universally Unique
Identifier (UUID) is generated.

currencyCode String Currency code to consider for pricing and Optional 61.0
filtering.

enable Boolean Indicates whether to enable pricing for Optional 61.0


Pricing the products (true) or not (false).
The default value is true.
The Pricing Procedure toggle from the
Product Discovery Settings page from
Setup overrides this property. For
example, if the Pricing Procedure toggle

211
Product Catalog Management Product Discovery Business APIs

Name Type Description Required or Available


Optional Version
is disabled, then setting the
enablePricing property to true
has no effect and the prices property
in the API response is returned empty.

enable Boolean Indicates whether to enable qualification Optional 61.0


Qualification rules for the products (true) or not
(false). The default value is true.
The Qualification Procedure toggle
from the Product Discovery Settings page
from Setup overrides this property. For
example, if the Qualification Procedure
toggle is disabled, then setting the
enableQualification property
to true has no effect and the
qualificationContext property
in the API response isn’t returned.

priceBookId String ID of the price book to fetch the prices Optional 61.0
from.

pricing String Name of the custom pricing procedure Optional 61.0


Procedure to send for processing. If unspecified, the
default pricing procedure is executed.

productData Product Data List of maps that contain product IDs and Required 61.0
Input[] product selling model IDs.

qualification String Name of the custom qualification Optional 61.0


Procedure procedure to send for processing. If
unspecified, the default qualification
procedure is executed.

userContext User Context User context details. For example, Optional 61.0
Input[] account ID or contact ID.

Response body for POST


CPQ Base Bulk Details

Global Search (POST)


Retrieves a list of products based on a search query or search term. This API is a composite API for Product Discovery.
Resource
/connect/cpq/products/search

212
Product Catalog Management Product Discovery Business APIs

Resource example

https://yourInstance.salesforce.com/services/data/v63.0/connect/cpq/products/search

Available version
60.0
HTTP methods
POST
Request body for POST
JSON example
This example shows a sample request to search products by using a query.
{
"query": {
"textQuery": {
"searchPhrase": "firstproduct"
}
},
"catalogId": "0ZSxx0000000001GAA",
"categoryId": "0ZGT100000000qlOAA",
"correlationId":"9cbb9650-48c5-11ed-96d1-0afcf185843b",
"limit":10,
"cursor": "MTAwMDAwMDAwNg==",
"orderBy":["name:asc","id:desc"],
"userContext": {
"accountId": "001xx0000000001AAA",
"contactId": "003xx00000000D7AAI"
},
"additionalFields": {
"Product2": {
"fields" : [
"CustomField1__c",
"CustomField2__c",
"StandardField1"
]
}
}
}

This example shows a sample request to search products by using the searchTerm property.
{
"searchTerm": "Laptop",
"catalogId": "0ZSDU0000002Og64AE",
"categoryId": "0ZGDU0000002P0A4AU",
"correlationId":"d9d8f898-19f5-464a-ba2b-6a070783f6c4",
"limit":10,
"cursor": "MTAwMDAwMDAwNw==",
"orderBy":["name:asc","id:desc"],
"userContext": {
"accountId": "001DU000001o2V0YAI"
}
}

213
Product Catalog Management Product Discovery Business APIs

If a parent category ID is specified in the request body, then the API returns all products associated to all child categories.
Properties

Name Type Description Required or Available


Optional Version
additional Context Data Additional nodes that are added to the Optional 60.0
ContextData Input[] custom or default context definition. The
maximum number of supported nodes
is 10.

additional Map<String, Additional standard or custom fields of Optional 61.0


Fields Additional Fields the Product2 object to include in the
Input> response.
If the requested fields are invalid or access
to fields isn’t available, then the API
throws an error.

catalogId String ID of the catalog. If the catalog ID is Optional 60.0


specified, then the API returns the list of
offers from the catalog with the pricing
details related to the catalog.

categoryId String ID of the category. If the category ID isn’t Optional 60.0


specified, then the API returns the
matching query offers from the catalog.

context String API name of the custom context Optional 60.0


Definition definition that’s sent for context creation.
If this property isn’t specified, then the
default context definition is used.

context String Default context mapping of the context Optional 60.0


Mapping definition. If a context mapping is
specified, then the API checks whether
the mapping belongs to the specified
context definition to process the details
for hydration.

correlation String Unique identifier of the request. Optional 60.0


Id

currencyCode String Currency code that’s considered for Optional 60.0


pricing and filtering request.

cursor String Unique ID to represent the position of Optional 60.0


each product in the dataset.

214
Product Catalog Management Product Discovery Business APIs

Name Type Description Required or Available


Optional Version
enable Boolean Indicates whether to enable pricing for Optional 60.0
Pricing the products (true) or not (false).
The default value is true.
The Pricing Procedure toggle from the
Product Discovery Settings page from
Setup overrides this property. For
example, if the Pricing Procedure toggle
is disabled, then setting the
enablePricing property to true
has no effect and the prices property
in the API response is returned empty.

enable Boolean Indicates whether to enable qualification Optional 60.0


Qualification rules for the products (true) or not
(false). The default value is true.
The Qualification Procedure toggle
from the Product Discovery Settings page
from Setup overrides this property. For
example, if the Qualification Procedure
toggle is disabled, then setting the
enableQualification property
to true has no effect and the
qualificationContext property
in the API response isn’t returned.

filter Filter Input Filters records based on supported Optional 60.0


criteria.
The supported property is name.
The supported operators are:
• eq
• in
• contains
• gt—Specifies a greater than criteria.
Available from API version 63.0 and
later for Number, Date, and Datetime
data types only.
• lt—Specifies a less than criteria.
Available from API version 63.0 and
later for Number, Date, and Datetime
data types only.
• gte—Specifies a greater than or
equal to criteria. Available from API

215
Product Catalog Management Product Discovery Business APIs

Name Type Description Required or Available


Optional Version
version 63.0 and later for Number,
Date, and Datetime data types only.
• lte—Specifies a less than or equal
to criteria. Available from API version
63.0 and later for Number, Date, and
Datetime data types only.
If multiple criteria are specified, then the
resultant criteria are combined by using
the and operator.

include Boolean Indicates whether to include catalog Optional 61.0


Catalog details in the response (true) or not
Details (false).

limit Integer Number of items to include in the Optional 60.0


response. The default value is 10.

offset Integer Reserved for internal use. Optional 60.0

orderBy String[] Sort order of the results, which is either Optional 60.0
ascending or descending order. The
default sort order is ascending order. The
default value is asc.

priceBookId String ID of the price book to get the prices Optional 60.0
from. If this property isn’t specified, then
prices from the standard price book are
fetched.

pricing String API name of the custom pricing Optional 60.0


Procedure procedure that’s used for the pricing
process. If this property isn’t specified,
then the default pricing procedure is
executed.

product String ID of the product classification. Optional 60.0


Classification
Id

qualification String API name of the custom qualification Optional 60.0


Procedure procedure that’s used for the product
qualification process. If this property isn’t
specified, then the default qualification
procedure is executed.

query Map<String, Query to search the products. Required 60.0


Object>>

216
Product Catalog Management Product Discovery Business APIs

Name Type Description Required or Available


Optional Version
related Related Object Filter records based on supported criteria Optional 60.0
ObjectFilter Filter Input[] for related objects.
The supported object is
ProductSpecificationRecType.
The supported property is
IsCommerical.
The supported operator is eq.
The supported values are true and
false.

searchTerm String String used to get products with the Optional 62.0
product name containing the search
term. See Search Considerations When
Using Indexed Data.

userContext User Context Input User context details. For example, Optional 60.0
account ID or contact ID.

Response body for POST


CPQ Base List

Guided Selection (POST)


Retrieve a list of products based on the response identifier or search terms of a guided selection. Guided selection captures user
requirements to show suitable products.
Resource
/connect/cpq/products/guided-selection

Resource example

https://yourInstance.salesforce.com/services/data/v63.0/connect/cpq/products/guided-selection

Available version
62.0
HTTP methods
POST
Request body for POST
JSON example
This input request includes properties from the Products List API. To learn about the other input properties, see Products List
(POST).
{
"correlationId": "corrId",
"catalogId": "0ZSxx0000000001GAA",

217
Product Catalog Management Product Discovery Business APIs

"priceBookId": "pricebookId",
"limit": 10,
"cursor": "MTAwMDAwMDAwNg==",
"userContext": {
"accountId": "accId"
},
"guidedSelectionResponseId": "ABCxx0000000001GAA",
"searchTerms": [
{
"term": "IPhone"
},
{
"term": "4GB"
},
{
"term": "64GB"
}
],
"enableQualification": true,
"enablePricing": true,
"includeCatalogDetails": false
}

Properties

Name Type Description Required or Available


Optional Version
guided String Response identifier of the guided Required if the 62.0
Selection selection. searchTerms
ResponseId property isn’t
specified.

searchTerms Guided Selection Search terms of the guided selection. Required if the 62.0
Search Term Input[] guided
Selection
ResponseId
property isn’t
specified.

If both the guidedSelectionResponseId and searchTerms properties are specified, then the searchTerms
property is considered in the input request.
Response body for POST
Guided Selection

Product Details (POST)


Get product details, such as attributes, hierarchy, or cardinality, for a specified product ID. This API is a composite API for Product Discovery.
Resource

/connect/cpq/products/productId

218
Product Catalog Management Product Discovery Business APIs

Resource example

https://yourInstance.salesforce.com/services/data/v63.0/connect/cpq/products/01txx0000006j08AAA

Available version
60.0
HTTP methods
POST
Request body for POST
JSON example
{
"correlationId": "9cbb9650-48c5-11ed-96d1-0afcf185843b",
"catalogId": "0ZSxx0000000001GAA",
"priceBookId" : "01s26000002ZT71AAG",
"productSellingModelId" : "0jP1Q000000CaVFUA0",
"userContext": {
"accountId": "001xx0000000001AAA",
"contactId": "003xx00000000D7AAI"
},
"enablePricing" : true,
"enableQualification" : true,
"qualificationProcedure": "QualificationProcedure",
"pricingProcedure": "Preview",
"contextDefinition": "TestDefinition",
"contextMapping": "TestDefinitionNode",
"additionalFields": {
"Product2": {
"fields": [
"field1",
"field2"
]
},
"ProductAttributeDefinition": {
"fields": [
"field3",
"field4"
]
}
},
"additionalContextData":
[{
"nodeName": "Contract",
"nodeData":
{
"id": "xxxxx231",
"name": "Contract1"
}
},
{
"nodeName": "Lead",
"nodeData":
{

219
Product Catalog Management Product Discovery Business APIs

"id": "lllllll31",
"name": "Lead1"
}
}]
}

Properties

Name Type Description Required or Available


Optional Version
additional Context Data Additional nodes that are added to the Optional 60.0
ContextData Input[] custom or default context definition. The
maximum number of supported nodes
is 10.

additional Map<String, Additional standard or custom fields to Optional 61.0


Fields Additional Fields include in the response.
Input> The supported objects are:
• Product2
• ProductAttributeDefinition—If the
fields defined for the
ProductAttributeDefinition object
aren’t available for the
ProductClassificationAttr object, then
the API request fails.

catalogId String ID of the catalog. If the catalog ID is Optional 60.0


specified, then the API returns the list of
offers from the catalog with the pricing
details related to the catalog.

context String API name of the custom context Optional 60.0


Definition definition that’s sent for context creation.
If this property isn’t specified, then the
default context definition is used.

context String Default context mapping of the context Optional 60.0


Mapping definition. If a context mapping is
specified, then the API checks whether
the mapping belongs to the specified
context definition to process the details
for hydration.

correlation String Unique identifier value that’s attached to Optional 60.0


Id the requests and messages, and accepts
references to a particular transaction or
event chain.

currencyCode String Currency code that’s considered for Optional 60.0


pricing and filtering request. If multiple
currencies are enabled for the org, then

220
Product Catalog Management Product Discovery Business APIs

Name Type Description Required or Available


Optional Version
the currencyCode property is
required.

enable Boolean Indicates whether to enable pricing for Optional 60.0


Pricing the products (true) or not (false).
The default value is true.
The Pricing Procedure toggle from the
Product Discovery Settings page from
Setup overrides this property. For
example, if the Pricing Procedure toggle
is disabled, then setting the
enablePricing property to true
has no effect and the prices property
in the API response is returned empty.

enable Boolean Indicates whether to enable qualification Optional 60.0


Qualification rules for the products (true) or not
(false). The default value is true.
The Qualification Procedure toggle
from the Product Discovery Settings page
from Setup overrides this property. For
example, if the Qualification Procedure
toggle is disabled, then setting the
enableQualification property
to true has no effect and the
qualificationContext property
in the API response isn’t returned.

priceBookId String ID of the price book to fetch the prices Required 60.0
from. If this property isn’t specified, then
the prices from the standard price book
are fetched.

pricing String API name of the custom pricing Optional 60.0


Procedure procedure that’s used for the pricing
process. If this property isn’t specified,
then the default pricing procedure is
executed.

product String ID of the product selling model. Optional 60.0


SellingModel
Id

qualification String API name of the custom qualification Optional 60.0


Procedure procedure that’s used for the product
qualification process. If this property isn’t

221
Product Catalog Management Product Discovery Business APIs

Name Type Description Required or Available


Optional Version
specified, then the default qualification
procedure is executed.

userContext User Context Input User context details. For example, Optional 60.0
account ID or contact ID.

Response body for POST


CPQ Base Details

Products List (POST)


Get a list of products for a specified catalog, category, or subcategory. This API is a composite API for Product Discovery.
Resource
/connect/cpq/products

Resource example

https://yourInstance.salesforce.com/services/data/v63.0/connect/cpq/products

Available version
60.0
HTTP methods
POST
Request body for POST
JSON example
{
"correlationId": "eeaa1db2-f371-4227-a886-c77e2f66ce1d",
"limit": 60,
"cursor": "MTAwMDAwMDAwNg==",
"orderBy": [
"name:asc"
],
"catalogId": "0ZSDU0000002Og74AE",
"categoryId": "0ZGDU0000002P0H4AU",
"priceBookId": "01sDU000000JVsVYAW",
"productClassificationId": "11BDU0000002TCC2A2",
"currencyCode": "USD",
"userContext": {
"accountId": "001DU000001o2UzYAI"
},
"includeCatalogDetails": true,
"enableQualification": true,
"enablePricing": true,
"qualificationProcedure": "ProductQualification",
"pricingProcedure": "pricingProcedure",
"contextDefinition": "BrowseContextDefinitionExt",
"contextMapping": "ProductDiscoveryMapping",

222
Product Catalog Management Product Discovery Business APIs

"filter": {
"criteria": [
{
"property": "name",
"operator": "eq",
"value": "Laptop Pro Bundle"
}
]
},
"relatedObjectFilters": [
{
"objectName": "ProductSpecificationRecType",
"criteria": [
{
"property": "IsCommercial",
"operator": "eq",
"value": true
}
]
}
],
"additionalContextData": [
{
"nodeName": "Account",
"nodeData": {
"id": "001DU000001o2UzYAI",
"name": "Cloud Kicks"
}
}
],
"additionalFields": {
"Product2": {
"fields": [
"CanRamp",
"DecompositionScope",
"ProductCode"
]
}
}
}

If a parent category ID is specified in the request body, then the API returns all products associated to all child categories.
Properties

Name Type Description Required or Available


Optional Version
additional Context Data Additional nodes that are added to the Optional 60.0
ContextData Input[] custom or default context definition. The
maximum number of supported nodes
is 10.

223
Product Catalog Management Product Discovery Business APIs

Name Type Description Required or Available


Optional Version
additional Map<String, Additional standard or custom fields of Optional 61.0
Fields Additional Fields the Product2 object to include in the
Input> response.
If the requested fields are invalid or access
to fields isn’t available, then the API
throws an error.

catalogId String ID of the catalog. If the catalog ID is Optional 60.0


specified, then the API returns the list of
offers from the catalog with the pricing
details related to the catalog.

categoryId String ID of the category. If the category ID isn’t Optional 60.0


specified, then the API returns the list of
offers from the catalog.

context String API name of the custom context Optional 60.0


Definition definition that’s sent for context creation.
If this property isn’t specified, then the
default context definition is used.

context String Default context mapping of the context Optional 60.0


Mapping definition. If a context mapping is
specified, then the API checks whether
the mapping belongs to the specified
context definition to process the details
for hydration.

correlation String Unique identifier of the request. Optional 60.0


Id

currencyCode String Currency code that’s considered for Optional 60.0


pricing and filtering request. If multiple
currencies are enabled for the org, then
the currencyCode property is
required.

cursor String Unique ID to represent the position of Optional 60.0


each product in the dataset.

enable Boolean Indicates whether to enable pricing for Optional 60.0


Pricing the products (true) or not (false).
The default value is true.
The Pricing Procedure toggle from the
Product Discovery Settings page from
Setup overrides this property. For
example, if the Pricing Procedure toggle
is disabled, then setting the

224
Product Catalog Management Product Discovery Business APIs

Name Type Description Required or Available


Optional Version
enablePricing property to true
has no effect and the prices property
in the API response is returned empty.

enable Boolean Indicates whether to enable qualification Optional 60.0


Qualification rules for the products (true) or not
(false). The default value is true.
The Qualification Procedure toggle
from the Product Discovery Settings page
from Setup overrides this property. For
example, if the Qualification Procedure
toggle is disabled, then setting the
enableQualification property
to true has no effect and the
qualificationContext property
in the API response isn’t returned.

filter Filter Input Filters records based on supported Optional 60.0


criteria.
The supported property is name.
The supported operators are:
• eq
• in
• contains—This value isn’t
applicable if the Use Indexed Data
For Product Listing and Search
toggle from the Product Discovery
Settings page from Setup is enabled.
If multiple criteria are specified, then the
resultant criteria are combined by using
the and operator.

include Boolean Indicates whether to include catalog Optional 61.0


Catalog details in the response (true) or not
Details (false).

limit Integer Number of items to include in the Optional 60.0


response. The default value is 10.

offset Integer Reserved for internal use. Optional 60.0

orderBy String[] Sort order of the results, which is either Optional 60.0
ascending (asc) or descending order
(desc). The default sort order is

225
Product Catalog Management Product Discovery Business APIs

Name Type Description Required or Available


Optional Version
ascending order. The default value is
asc.
If the Use Indexed Data For Product
Listing and Search toggle from the
Product Discovery Settings page from
Setup is enabled, then you can sort
products by using name only.

priceBookId String ID of the price book to get the prices Required 60.0
from. If this property isn’t specified, then
prices from the standard price book are
fetched.

pricing String API name of the custom pricing Optional 60.0


Procedure procedure that’s used for the pricing
process. If this property isn’t specified,
then the default pricing procedure is
executed.

product String ID of the product classification. Optional 60.0


Classification
Id

qualification String API name of the custom qualification Optional 60.0


Procedure procedure that’s used for the product
qualification process. If this property isn’t
specified, then the default qualification
procedure is executed.

related Related Object Filter records based on supported criteria Optional 60.0
Object Filter Input[] for related objects.
Filters
The supported object is
ProductSpecificationRecType.
The supported property is
IsCommerical.
The supported operator is eq.
The supported values are true and
false.

userContext User Context Input User context details. For example, Optional 60.0
account ID or contact ID.

Response body for POST


CPQ Base List

226
Product Catalog Management Product Discovery Business APIs

Qualification (POST)
Run the qualification procedure on a list of product IDs. This API is a composite API for Product Discovery.
Resource
/connect/cpq/qualification

Resource example

https://yourInstance.salesforce.com/services/data/v63.0/connect/cpq/qualification

Available version
60.0
HTTP methods
POST
Request body for POST
JSON example
{
"productIds": [
"01txx0000006i7PAAQ",
"01txx0000006i7QAAQ",
"01txx0000006i7IAAQ"
],
"userContext": {
"accountId": "001xx000003GZHgAAO"
}
}

Properties

Name Type Description Required or Available


Optional Version
additional Context Data Additional nodes that are added to the Optional 60.0
ContextData Input[] custom or default context definition. The
maximum number of supported nodes
is 10.

catalogId String ID of the catalog. Optional 60.0

categoryId String ID of the category. Optional 60.0

context String API name of the custom context Optional 60.0


Definition definition that’s sent for context creation.
If this property isn’t specified, the default
context definition is used.

context String Default context mapping of the context Optional 60.0


Mapping definition. If a context mapping is
specified, then the API checks whether
the mapping belongs to the specified
context definition to process the details
for hydration.

227
Product Catalog Management Product Discovery Business APIs

Name Type Description Required or Available


Optional Version
correlation String Unique identifier of the request. Optional 60.0
Id

productIds String[] List of product IDs for qualification check. Required 60.0

qualification String API name of the custom qualification Optional 60.0


Procedure procedure that’s sent for processing. If
this property isn’t specified, the default
qualification procedure is executed.

userContext User Context Input User context details. For example, Optional 60.0
account ID or contact ID.

Response body for POST


CPQ Base List

Request Bodies
Learn more about the available Product Discovery API request bodies.

Additional Fields Input


Input representation of the additional standard or custom fields to include in the response.
Bulk Product Details Input
Input representation of the request to retrieve details of multiple products.
Catalog Details Input
Input representation of the request to get the catalog details.
Catalog List Input
Input representation of the request to get a list of catalogs.
Category Details Input
Input representation of the request to get category details.
Category List Input
Input representation of the request to get a list of categories.
Context Data Input
Input representation of the context data.
Guided Selection Input
Input representation of the guided selection details.
Guided Selection Search Term Input
Input representation of the search terms of a guided selection.
Filter Criteria Input
Input representation of the criteria to filter records based on supported properties.
Filter Input
Input representation of the request to filter records.

228
Product Catalog Management Product Discovery Business APIs

Product Details Input


Input representation of the request to get product details.
Product Data Input
Input representation of the product details such as the product ID and product selling model ID.
Product List Input
Input representation of the request to retrieve a list of products.
Products Search Input
Input representation of the request to search products.
QOC Qualification
Input representation of the qualification request.
Related Object Filter Input
Input representation of the request to filter records of a related object.
User Context Input
Input representation of the details with the user context.

Additional Fields Input


Input representation of the additional standard or custom fields to include in the response.
JSON example
"additionalFields" : {
"Product2" : {
"fields" : ["CustomField1__c","StandardField1"]
}
}

Properties

Name Type Description Required or Available


Optional Version
fields String[] List of additional standard or custom fields Optional 61.0
to include in the response.

Bulk Product Details Input


Input representation of the request to retrieve details of multiple products.
JSON example
{
"productData": [
{
"productId": "01txx0000006ivJAAQ",
"productSellingModelId": "0jPxx000000009hEAA"
},
{
"productId": "01txx0000006ivLAAQ",
"productSellingModelId": "0jPxx000000009iEAABB"

229
Product Catalog Management Product Discovery Business APIs

}
],
"correlationId": "de9a674c-1807-438c-ac78-2c96f4655325",
"priceBookId" : "01sxx0000005qxxAAA",
"userContext": {
"accountId": "001xx0000000001AAA",
"contactId": "003xx00000000D7AAI"
}
}

Properties

Name Type Description Required or Available


Optional Version
additional Context Data Input[] Additional nodes to add to the custom or Optional 61.0
ContextData default context definition. This data is
appended to the context input and sent
for hydration and qualification. The
maximum limit of supported nodes is 10.

additional Map<String, Additional standard or custom fields of the Optional 61.0


Fields Additional Fields Product2 object to include in the response.
Input> The field values are returned in the
response for each of the products.

context String Name of the custom context definition Optional 61.0


Definition that’s sent for the context creation. If
unspecified, the default context definition
is used.

context String Context mapping details from the context Optional 61.0
Mapping definition. If specified, the API validates if
the context mapping belongs to the
specified context definition and considers
the mapping for hydration.
If unspecified, the default context mapping
of the context definition is used.

correlationId String Unique token to track and associate related Optional 61.0
events or transactions across different
components of the application. If
unspecified, a Universally Unique Identifier
(UUID) is generated.

currencyCode String Currency code to consider for pricing and Optional 61.0
filtering.

230
Product Catalog Management Product Discovery Business APIs

Name Type Description Required or Available


Optional Version
enablePricing Boolean Indicates whether to enable pricing for the Optional 61.0
products (true) or not (false). The
default value is true.
The Pricing Procedure toggle from the
Product Discovery Settings page from
Setup overrides this property. For example,
if the Pricing Procedure toggle is
disabled, then setting the
enablePricing property to true
has no effect and the prices property
in the API response is returned empty.

enable Boolean Indicates whether to enable qualification Optional 61.0


Qualification rules for the products (true) or not
(false). The default value is true.
The Qualification Procedure toggle from
the Product Discovery Settings page from
Setup overrides this property. For example,
if the Qualification Procedure toggle is
disabled, then setting the
enableQualification property to
true has no effect and the
qualificationContext property
in the API response isn’t returned.

priceBookId String ID of the price book to fetch the prices Optional 61.0
from.

pricing String Name of the custom pricing procedure to Optional 61.0


Procedure send for processing. If unspecified, the
default pricing procedure is executed.

productData Product Data Input[] List of maps that contain product IDs and Required 61.0
product selling model IDs.

qualification String Name of the custom qualification Optional 61.0


Procedure procedure to send for processing. If
unspecified, the default qualification
procedure is executed.

userContext User Context Input[] User context details. For example, account Optional 61.0
ID or contact ID.

Catalog Details Input


Input representation of the request to get the catalog details.

231
Product Catalog Management Product Discovery Business APIs

JSON example
{
"correlationId": "9cbb9650-48c5-11ed-96d1-0afcf185843b",
"userContext": {
"accountId": "001xx0000000001AAA",
"contactId": "003xx00000000D7AAI"
}
}

Properties

Name Type Description Required or Available


Optional Version
correlationId String Unique identifier value that’s attached to Optional 60.0
the requests and messages, and accepts
references to a particular transaction or
event chain.

userContext User Context Input User context details. For example, account Optional 60.0
ID or contact ID.

Catalog List Input


Input representation of the request to get a list of catalogs.
JSON example

{
"correlationId": "9cbb9650-48c5-11ed-96d1-0afcf185843b",
"limit": 10,
"offset": 0,
"orderBy": [
"name:asc",
"id:desc"
],
"userContext": {
"accountId": "001xx0000000001AAA",
"contactId": "003xx00000000D7AAI"
}
}

Properties

Name Type Description Required or Available


Optional Version
correlationId String Unique identifier value that’s attached to Optional 60.0
the requests and messages, and accepts
references to a particular transaction or
event chain.

232
Product Catalog Management Product Discovery Business APIs

Name Type Description Required or Available


Optional Version
limit Integer Number of items to include in the Optional 60.0
response.

offset Integer Offset size from which to get the catalog Optional 60.0
count.

orderBy String[] Sort order for the catalogs. Optional 60.0

userContext User Context Input User context details. For example, account Optional 60.0
ID or contact ID.

Category Details Input


Input representation of the request to get category details.
JSON example
{
"correlationId": "9cbb9650-48c5-11ed-96d1-0afcf185843b",
"userContext": {
"accountId": "001xx0000000001AAA",
"contactId": "003xx00000000D7AAI"
}
}

Properties

Name Type Description Required or Available


Optional Version
correlationId String Unique identifier value that’s attached to Optional 60.0
the requests and messages, and accepts
references to a particular transaction or
event chain.

userContext User Context Input User context details. For example, account Optional 60.0
ID or contact ID.

Category List Input


Input representation of the request to get a list of categories.
JSON example
{
"correlationId": "9cbb9650-48c5-11ed-96d1-0afcf185843b",
"catalogId": "0ZSxx000000009hGAA",
"userContext": {
"accountId": "001xx0000000001AAA",
"contactId": "003xx00000000D7AAI"

233
Product Catalog Management Product Discovery Business APIs

}
}

Properties

Name Type Description Required or Available


Optional Version
catalogId String ID of the catalog. Required 60.0

correlationId String Unique identifier value that’s attached to Optional 60.0


the requests and messages, and accepts
references to a particular transaction or
event chain.

userContext User Context Input User context details. For example, account Optional 60.0
ID or contact ID.

Context Data Input


Input representation of the context data.
JSON example

"additionalContextData":[
{
"nodeName": "Contract",
"nodeData": {
"id": "xxxxx231",
"name": "Contract1"

}
},
{
"nodeName": "Lead",
"nodeData": {
"id": "lllllll31",
"name": "Lead1"

}
}]

Properties

Name Type Description Required or Available


Optional Version
nodeData Map<String, Details of the node. Optional 60.0
Object>

nodeName String Name of the node. Optional 60.0

234
Product Catalog Management Product Discovery Business APIs

Guided Selection Input


Input representation of the guided selection details.
JSON example
This input request includes properties from the Products List API. To learn about the other input properties, see Products List (POST).
{
"correlationId": "corrId",
"catalogId": "0ZSxx0000000001GAA",
"priceBookId": "pricebookId",
"limit": 10,
"cursor": "MTAwMDAwMDAwNg==",
"userContext": {
"accountId": "accId"
},
"guidedSelectionResponseId": "ABCxx0000000001GAA",
"searchTerms": [
{
"term": "IPhone"
},
{
"term": "4GB"
},
{
"term": "64GB"
}
],
"enableQualification": true,
"enablePricing": true,
"includeCatalogDetails": false
}

Properties

Name Type Description Required or Available


Optional Version
guided String Response identifier of the guided selection. Required if the 62.0
Selection searchTerms
ResponseId property isn’t
specified.

searchTerms Guided Selection Search terms of the guided selection. Required if the 62.0
Search Term Input[] guided
Selection
ResponseId
property isn’t
specified.

If both the guidedSelectionResponseId and searchTerms properties are specified, then the searchTerms
property is considered in the input request.

235
Product Catalog Management Product Discovery Business APIs

Guided Selection Search Term Input


Input representation of the search terms of a guided selection.
JSON example
"searchTerms": [
{
"term": "IPhone"
},
{
"term": "4GB"
},
{
"term": "64GB"
}
]

Properties

Name Type Description Required or Available


Optional Version
term String Search term for the guided selection. Required 62.0

Filter Criteria Input


Input representation of the criteria to filter records based on supported properties.
JSON example

"criteria":
[{
"attributeType": "ProductStandard",
"property": "name",
"operator": "eq",
"value": "iPhone"
}]

Properties

Name Type Description Required or Available


Optional Version
attributeType String Search attribute type of the facet for a Optional 63.0
faceted search. Valid values are:
• ProductStandard
• ProductCustom
• ProductDynamicAttribute
• ProductAttributeStandard
• ProductAttributeCustom

236
Product Catalog Management Product Discovery Business APIs

Name Type Description Required or Available


Optional Version
operator String Operator used for the filter criteria. Required 60.0

The supported operators are:


• eq
• in
• contains
• gt—Specifies a greater than criteria.
Available from API version 63.0 and
later for Number, Date, and Datetime
data types only.
• lt—Specifies a less than criteria.
Available from API version 63.0 and
later for Number, Date, and Datetime
data types only.
• gte—Specifies a greater than or
equal to criteria. Available from API
version 63.0 and later for Number,
Date, and Datetime data types only.
• lte—Specifies a less than or equal
to criteria. Available from API version
63.0 and later for Number, Date, and
Datetime data types only.

property String Property name to use in the filter, which Required 60.0
must be the same as the object field.
The supported property is name.

value Object Value for the filter criteria. Required 60.0

Filter Input
Input representation of the request to filter records.
JSON example
"filter":
{"criteria":
[ {
"attributeType": "ProductStandard",
"property": "name",
"operator": "eq",
"value": "iPhone"
}]}

237
Product Catalog Management Product Discovery Business APIs

Properties

Name Type Description Required or Available


Optional Version
criteria Filter Criteria Input[] Filter criteria to filter the records. Optional 60.0

Product Details Input


Input representation of the request to get product details.
JSON example
{
"correlationId": "9cbb9650-48c5-11ed-96d1-0afcf185843b",
"catalogId": "0ZSxx0000000001GAA",
"priceBookId" : "01s26000002ZT71AAG",
"productSellingModelId" : "0jP1Q000000CaVFUA0",
"userContext": {
"accountId": "001xx0000000001AAA",
"contactId": "003xx00000000D7AAI"
},
"enablePricing" : true,
"enableQualification" : true,
"qualificationProcedure": "QualificationProcedure",
"pricingProcedure": "Preview",
"contextDefinition": "TestDefinition",
"contextMapping": "TestDefinitionNode",
"additionalFields": {
"Product2": {
"fields": [
"field1",
"field2"
]
},
"ProductAttributeDefinition": {
"fields": [
"field3",
"field4"
]
}
},
"additionalContextData":
[{
"nodeName": "Contract",
"nodeData":
{
"id": "xxxxx231",
"name": "Contract1"
}
},
{
"nodeName": "Lead",
"nodeData":

238
Product Catalog Management Product Discovery Business APIs

{
"id": "lllllll31",
"name": "Lead1"
}
}]
}

Properties

Name Type Description Required or Available


Optional Version
additional Context Data Input[] Additional nodes that are added to the Optional 60.0
ContextData custom or default context definition. The
maximum number of supported nodes is
10.

additional Map<String, Additional standard or custom fields to Optional 61.0


Fields Additional Fields include in the response.
Input> The supported objects are:
• Product2
• ProductAttributeDefinition—If the
fields defined for the
ProductAttributeDefinition object
aren’t available for the
ProductClassificationAttr object, then
the API request fails.

catalogId String ID of the catalog. If the catalog ID is Optional 60.0


specified, then the API returns the list of
offers from the catalog with the pricing
details related to the catalog.

context String API name of the custom context definition Optional 60.0
Definition that’s sent for context creation. If this
property isn’t specified, then the default
context definition is used.

context String Default context mapping of the context Optional 60.0


Mapping definition. If a context mapping is
specified, then the API checks whether the
mapping belongs to the specified context
definition to process the details for
hydration.

correlationId String Unique identifier value that’s attached to Optional 60.0


the requests and messages, and accepts
references to a particular transaction or
event chain.

currencyCode String Currency code that’s considered for pricing Optional 60.0
and filtering request. If multiple currencies

239
Product Catalog Management Product Discovery Business APIs

Name Type Description Required or Available


Optional Version
are enabled for the org, then the
currencyCode property is required.

enablePricing Boolean Indicates whether to enable pricing for the Optional 60.0
products (true) or not (false). The
default value is true.
The Pricing Procedure toggle from the
Product Discovery Settings page from
Setup overrides this property. For example,
if the Pricing Procedure toggle is
disabled, then setting the
enablePricing property to true
has no effect and the prices property
in the API response is returned empty.

enable Boolean Indicates whether to enable qualification Optional 60.0


Qualification rules for the products (true) or not
(false). The default value is true.
The Qualification Procedure toggle from
the Product Discovery Settings page from
Setup overrides this property. For example,
if the Qualification Procedure toggle is
disabled, then setting the
enableQualification property to
true has no effect and the
qualificationContext property
in the API response isn’t returned.

priceBookId String ID of the price book to fetch the prices Required 60.0
from. If this property isn’t specified, then
the prices from the standard price book
are fetched.

pricing String API name of the custom pricing procedure Optional 60.0
Procedure that’s used for the pricing process. If this
property isn’t specified, then the default
pricing procedure is executed.

product String ID of the product selling model. Optional 60.0


SellingModel
Id

qualification String API name of the custom qualification Optional 60.0


Procedure procedure that’s used for the product
qualification process. If this property isn’t
specified, then the default qualification
procedure is executed.

240
Product Catalog Management Product Discovery Business APIs

Name Type Description Required or Available


Optional Version
userContext User Context Input User context details. For example, account Optional 60.0
ID or contact ID.

Product Data Input


Input representation of the product details such as the product ID and product selling model ID.
JSON example
"productData": [
{
"productId": "01txx0000006ivJAAQ",
"productSellingModelId": "0jPxx000000009hEAA"
},
{
"productId": "01txx0000006ivLAAQ",
"productSellingModelId": "0jPxx000000009iEAABB"
}
]

Properties

Name Type Description Required or Available


Optional Version
productId String ID of the product. Required 61.0

product String ID of the product selling model. Optional 61.0


Selling
ModelId

Product List Input


Input representation of the request to retrieve a list of products.
JSON example
{
"correlationId": "eeaa1db2-f371-4227-a886-c77e2f66ce1d",
"limit": 60,
"cursor": "MTAwMDAwMDAwNg==",
"orderBy": [
"name:asc"
],
"catalogId": "0ZSDU0000002Og74AE",
"categoryId": "0ZGDU0000002P0H4AU",
"priceBookId": "01sDU000000JVsVYAW",
"productClassificationId": "11BDU0000002TCC2A2",
"currencyCode": "USD",
"userContext": {
"accountId": "001DU000001o2UzYAI"

241
Product Catalog Management Product Discovery Business APIs

},
"includeCatalogDetails": true,
"enableQualification": true,
"enablePricing": true,
"qualificationProcedure": "ProductQualification",
"pricingProcedure": "pricingProcedure",
"contextDefinition": "BrowseContextDefinitionExt",
"contextMapping": "ProductDiscoveryMapping",
"filter": {
"criteria": [
{
"property": "name",
"operator": "eq",
"value": "Laptop Pro Bundle"
}
]
},
"relatedObjectFilters": [
{
"objectName": "ProductSpecificationRecType",
"criteria": [
{
"property": "IsCommercial",
"operator": "eq",
"value": true
}
]
}
],
"additionalContextData": [
{
"nodeName": "Account",
"nodeData": {
"id": "001DU000001o2UzYAI",
"name": "Cloud Kicks"
}
}
],
"additionalFields": {
"Product2": {
"fields": [
"CanRamp",
"DecompositionScope",
"ProductCode"
]
}
}
}

If a parent category ID is specified in the request body, then the API returns all products associated to all child categories.

242
Product Catalog Management Product Discovery Business APIs

Properties

Name Type Description Required or Available


Optional Version
additional Context Data Input[] Additional nodes that are added to the Optional 60.0
ContextData custom or default context definition. The
maximum number of supported nodes is
10.

additional Map<String, Additional standard or custom fields of the Optional 61.0


Fields Additional Fields Product2 object to include in the response.
Input>
If the requested fields are invalid or access
to fields isn’t available, then the API throws
an error.

catalogId String ID of the catalog. If the catalog ID is Optional 60.0


specified, then the API returns the list of
offers from the catalog with the pricing
details related to the catalog.

categoryId String ID of the category. If the category ID isn’t Optional 60.0


specified, then the API returns the list of
offers from the catalog.

context String API name of the custom context definition Optional 60.0
Definition that’s sent for context creation. If this
property isn’t specified, then the default
context definition is used.

context String Default context mapping of the context Optional 60.0


Mapping definition. If a context mapping is
specified, then the API checks whether the
mapping belongs to the specified context
definition to process the details for
hydration.

correlationId String Unique identifier of the request. Optional 60.0

currencyCode String Currency code that’s considered for pricing Optional 60.0
and filtering request. If multiple currencies
are enabled for the org, then the
currencyCode property is required.

cursor String Unique ID to represent the position of each Optional 60.0


product in the dataset.

enablePricing Boolean Indicates whether to enable pricing for the Optional 60.0
products (true) or not (false). The
default value is true.
The Pricing Procedure toggle from the
Product Discovery Settings page from

243
Product Catalog Management Product Discovery Business APIs

Name Type Description Required or Available


Optional Version
Setup overrides this property. For example,
if the Pricing Procedure toggle is
disabled, then setting the
enablePricing property to true
has no effect and the prices property
in the API response is returned empty.

enable Boolean Indicates whether to enable qualification Optional 60.0


Qualification rules for the products (true) or not
(false). The default value is true.
The Qualification Procedure toggle from
the Product Discovery Settings page from
Setup overrides this property. For example,
if the Qualification Procedure toggle is
disabled, then setting the
enableQualification property to
true has no effect and the
qualificationContext property
in the API response isn’t returned.

filter Filter Input Filters records based on supported criteria. Optional 60.0

The supported property is name.


The supported operators are:
• eq
• in
• contains—This value isn’t
applicable if the Use Indexed Data
For Product Listing and Search
toggle from the Product Discovery
Settings page from Setup is enabled.
If multiple criteria are specified, then the
resultant criteria are combined by using
the and operator.

include Boolean Indicates whether to include catalog Optional 61.0


Catalog details in the response (true) or not
Details (false).

limit Integer Number of items to include in the Optional 60.0


response. The default value is 10.

offset Integer Reserved for internal use. Optional 60.0

orderBy String[] Sort order of the results, which is either Optional 60.0
ascending (asc) or descending order

244
Product Catalog Management Product Discovery Business APIs

Name Type Description Required or Available


Optional Version
(desc). The default sort order is ascending
order. The default value is asc.
If the Use Indexed Data For Product
Listing and Search toggle from the
Product Discovery Settings page from
Setup is enabled, then you can sort
products by using name only.

priceBookId String ID of the price book to get the prices from. Required 60.0
If this property isn’t specified, then prices
from the standard price book are fetched.

pricing String API name of the custom pricing procedure Optional 60.0
Procedure that’s used for the pricing process. If this
property isn’t specified, then the default
pricing procedure is executed.

product String ID of the product classification. Optional 60.0


Classification
Id

qualification String API name of the custom qualification Optional 60.0


Procedure procedure that’s used for the product
qualification process. If this property isn’t
specified, then the default qualification
procedure is executed.

relatedObject Related Object Filter Filter records based on supported criteria Optional 60.0
Filters Input[] for related objects.
The supported object is
ProductSpecificationRecType.
The supported property is
IsCommerical.
The supported operator is eq.
The supported values are true and
false.

userContext User Context Input User context details. For example, account Optional 60.0
ID or contact ID.

Products Search Input


Input representation of the request to search products.

245
Product Catalog Management Product Discovery Business APIs

JSON example
This example shows a sample request to search products by using a query.
{
"query": {
"textQuery": {
"searchPhrase": "firstproduct"
}
},
"catalogId": "0ZSxx0000000001GAA",
"categoryId": "0ZGT100000000qlOAA",
"correlationId":"9cbb9650-48c5-11ed-96d1-0afcf185843b",
"limit":10,
"cursor": "MTAwMDAwMDAwNg==",
"orderBy":["name:asc","id:desc"],
"userContext": {
"accountId": "001xx0000000001AAA",
"contactId": "003xx00000000D7AAI"
},
"additionalFields": {
"Product2": {
"fields" : [
"CustomField1__c",
"CustomField2__c",
"StandardField1"
]
}
}
}

This example shows a sample request to search products by using the searchTerm property.
{
"searchTerm": "Laptop",
"catalogId": "0ZSDU0000002Og64AE",
"categoryId": "0ZGDU0000002P0A4AU",
"correlationId":"d9d8f898-19f5-464a-ba2b-6a070783f6c4",
"limit":10,
"cursor": "MTAwMDAwMDAwNw==",
"orderBy":["name:asc","id:desc"],
"userContext": {
"accountId": "001DU000001o2V0YAI"
}
}

If a parent category ID is specified in the request body, then the API returns all products associated to all child categories.
Properties

Name Type Description Required or Available


Optional Version
additional Context Data Input[] Additional nodes that are added to the Optional 60.0
ContextData custom or default context definition. The

246
Product Catalog Management Product Discovery Business APIs

Name Type Description Required or Available


Optional Version
maximum number of supported nodes is
10.

additional Map<String, Additional standard or custom fields of the Optional 61.0


Fields Additional Fields Product2 object to include in the response.
Input>
If the requested fields are invalid or access
to fields isn’t available, then the API throws
an error.

catalogId String ID of the catalog. If the catalog ID is Optional 60.0


specified, then the API returns the list of
offers from the catalog with the pricing
details related to the catalog.

categoryId String ID of the category. If the category ID isn’t Optional 60.0


specified, then the API returns the
matching query offers from the catalog.

context String API name of the custom context definition Optional 60.0
Definition that’s sent for context creation. If this
property isn’t specified, then the default
context definition is used.

context String Default context mapping of the context Optional 60.0


Mapping definition. If a context mapping is
specified, then the API checks whether the
mapping belongs to the specified context
definition to process the details for
hydration.

correlationId String Unique identifier of the request. Optional 60.0

currencyCode String Currency code that’s considered for pricing Optional 60.0
and filtering request.

cursor String Unique ID to represent the position of each Optional 60.0


product in the dataset.

enablePricing Boolean Indicates whether to enable pricing for the Optional 60.0
products (true) or not (false). The
default value is true.
The Pricing Procedure toggle from the
Product Discovery Settings page from
Setup overrides this property. For example,
if the Pricing Procedure toggle is
disabled, then setting the
enablePricing property to true
has no effect and the prices property
in the API response is returned empty.

247
Product Catalog Management Product Discovery Business APIs

Name Type Description Required or Available


Optional Version
enable Boolean Indicates whether to enable qualification Optional 60.0
Qualification rules for the products (true) or not
(false). The default value is true.
The Qualification Procedure toggle from
the Product Discovery Settings page from
Setup overrides this property. For example,
if the Qualification Procedure toggle is
disabled, then setting the
enableQualification property to
true has no effect and the
qualificationContext property
in the API response isn’t returned.

filter Filter Input Filters records based on supported criteria. Optional 60.0

The supported property is name.


The supported operators are:
• eq
• in
• contains
• gt—Specifies a greater than criteria.
Available from API version 63.0 and
later for Number, Date, and Datetime
data types only.
• lt—Specifies a less than criteria.
Available from API version 63.0 and
later for Number, Date, and Datetime
data types only.
• gte—Specifies a greater than or
equal to criteria. Available from API
version 63.0 and later for Number,
Date, and Datetime data types only.
• lte—Specifies a less than or equal
to criteria. Available from API version
63.0 and later for Number, Date, and
Datetime data types only.
If multiple criteria are specified, then the
resultant criteria are combined by using
the and operator.

include Boolean Indicates whether to include catalog Optional 61.0


Catalog details in the response (true) or not
Details (false).

248
Product Catalog Management Product Discovery Business APIs

Name Type Description Required or Available


Optional Version
limit Integer Number of items to include in the Optional 60.0
response. The default value is 10.

offset Integer Reserved for internal use. Optional 60.0

orderBy String[] Sort order of the results, which is either Optional 60.0
ascending or descending order. The
default sort order is ascending order. The
default value is asc.

priceBookId String ID of the price book to get the prices from. Optional 60.0
If this property isn’t specified, then prices
from the standard price book are fetched.

pricing String API name of the custom pricing procedure Optional 60.0
Procedure that’s used for the pricing process. If this
property isn’t specified, then the default
pricing procedure is executed.

product String ID of the product classification. Optional 60.0


Classification
Id

qualification String API name of the custom qualification Optional 60.0


Procedure procedure that’s used for the product
qualification process. If this property isn’t
specified, then the default qualification
procedure is executed.

query Map<String, Query to search the products. Required 60.0


Object>>

relatedObject Related Object Filter Filter records based on supported criteria Optional 60.0
Filter Input[] for related objects.
The supported object is
ProductSpecificationRecType.
The supported property is
IsCommerical.
The supported operator is eq.
The supported values are true and
false.

searchTerm String String used to get products with the Optional 62.0
product name containing the search term.
See Search Considerations When Using
Indexed Data.

userContext User Context Input User context details. For example, account Optional 60.0
ID or contact ID.

249
Product Catalog Management Product Discovery Business APIs

QOC Qualification
Input representation of the qualification request.
JSON example
{
"productIds": [
"01txx0000006i7PAAQ",
"01txx0000006i7QAAQ",
"01txx0000006i7IAAQ"
],
"userContext": {
"accountId": "001xx000003GZHgAAO"
}
}

Properties

Name Type Description Required or Available


Optional Version
additional Context Data Input[] Additional nodes that are added to the Optional 60.0
ContextData custom or default context definition. The
maximum number of supported nodes is
10.

catalogId String ID of the catalog. Optional 60.0

categoryId String ID of the category. Optional 60.0

context String API name of the custom context definition Optional 60.0
Definition that’s sent for context creation. If this
property isn’t specified, the default context
definition is used.

context String Default context mapping of the context Optional 60.0


Mapping definition. If a context mapping is
specified, then the API checks whether the
mapping belongs to the specified context
definition to process the details for
hydration.

correlationId String Unique identifier of the request. Optional 60.0

productIds String[] List of product IDs for qualification check. Required 60.0

qualification String API name of the custom qualification Optional 60.0


Procedure procedure that’s sent for processing. If this
property isn’t specified, the default
qualification procedure is executed.

userContext User Context Input User context details. For example, account Optional 60.0
ID or contact ID.

250
Product Catalog Management Product Discovery Business APIs

Related Object Filter Input


Input representation of the request to filter records of a related object.
JSON example
"relatedObjectFilters":
[
{
"objectName": "ProductSpecificationRecType",
"criteria":
[{
"property": "IsCommercial",
"operator": "eq",
"value": true
}]
}
]

Properties

Name Type Description Required or Available


Optional Version
criteria Filter Criteria Input[] Criteria to filter the related objects. Required if the 60.0
relatedObjectFilters
property is specified.

objectName String Name of the object that’s related to the Required if the 60.0
main object. relatedObjectFilters
property is specified.

User Context Input


Input representation of the details with the user context.
JSON example

"userContext": {
"accountId": "001xx0000000001AAA",
"contactId": "003xx00000000D7AAI",
"contextId": "e055bb18-d4e8-41c3-881e-0132b9561708"
}

Properties

Name Type Description Required or Available


Optional Version
accountId String ID of the account in a user context. Optional 60.0

contactId String ID of the contact in a user context. Optional 60.0

contextId String ID of the context that represents the Optional 60.0


created session.

251
Product Catalog Management Product Discovery Business APIs

Response Bodies
Learn more about the available Product Discovery API response bodies.

API Status
Output representation of the API status.
CPQ Base Bulk Details
Output representation of the response that contains the details of multiple products.
CPQ Base Details
Output representation of the catalog, category, or product details based on the request.
CPQ Base List
Output representation of the list of catalogs, categories, or products based on the request.
CPQ Message
Output representation of the API messages.
Facet Value
Output representation of the facet values found in the search result.
Guided Selection
Output representation of the details of a guided selection.
Guided Selection Search Term
Output representation of the search term details for a guided selection.
Search Products Facet
Output representation of the details of the faceted search.
User Context
Output representation of the user context details.

API Status
Output representation of the API status.

Property Name Type Description Filter Group and Available Version


Version
messages CPQ Message[] Status messages of the API execution. Small, 60.0 60.0

statusCode String Status code of the API execution. Small, 60.0 60.0

statusMessage String Display label for the API status. Small, 60.0 60.0

CPQ Base Bulk Details


Output representation of the response that contains the details of multiple products.
JSON example
{
"apiStatus": {
"messages": [],

252
Product Catalog Management Product Discovery Business APIs

"statusCode": "FetchedDetailsSuccessfully"
},
"contextId": "c68c7c7e85f3ea5b0e7bcfefc0f2dba9bbd24bfe2f4240ca589af50e473e2242",
"correlationId": "de9a674c-1807-438c-ac78-2c96f4655325",
"result": [
{
"additionalFields": [],
"attributeCategories": [],
"attributes": [],
"catalogs": [],
"childProducts": [],
"id": "01txx0000006ivJAAQ",
"isActive": true,
"isAssetizable": true,
"isSoldOnlyWithOtherProds": false,
"name": "iPhone12",
"nodeType": "simpleProduct",
"prices": [
{
"currencyIsoCode": "USD",
"isDefault": false,
"isSelected": true,
"price": 100,
"priceBookEntryId": "01uxx0000008zUkAAI",
"priceBookId": "01sxx0000005qxxAAA",
"pricingModel": {
"id": "0jPxx000000009hEAA",
"name": "OneTime",
"pricingModelType": "OneTime"
}
},
{
"currencyIsoCode": "USD",
"isDefault": true,
"isSelected": false,
"price": 15,
"priceBookEntryId": "01uxx0000008zUmAAI",
"priceBookId": "01sxx0000005qxxAAA",
"pricingModel": {
"frequency": "Months",
"id": "0jPxx000000009iEAA",
"name": "Monthly",
"occurrence": 1,
"pricingModelType": "TermDefined"
}
}
],
"productClassification": {},
"productCode": "iPhone12",
"productComponentGroups": [],
"productSellingModelOptions": [
{
"id": "0iOxx00000000EfEAI",
"productId": "01txx0000006ivJAAQ",

253
Product Catalog Management Product Discovery Business APIs

"productSellingModel": {
"id": "0jPxx000000009iEAA",
"name": "Monthly",
"pricingTerm": 1,
"pricingTermUnit": "Months",
"sellingModelType": "TermDefined",
"status": "Active"
},
"productSellingModelId": "0jPxx000000009iEAA"
},
{
"id": "0iOxx00000000EgEAI",
"productId": "01txx0000006ivJAAQ",
"productSellingModel": {
"id": "0jPxx000000009hEAA",
"name": "OneTime",
"sellingModelType": "OneTime",
"status": "Active"
},
"productSellingModelId": "0jPxx000000009hEAA"
}
],
"productSpecificationType": {
"name": "ProdSpecRecType1",
"productSpecificationRecordType": {}
},
"qualificationContext": {
"isQualified": true
}
},
{
"additionalFields": [],
"attributeCategories": [],
"attributes": [],
"catalogs": [],
"childProducts": [],
"id": "01txx0000006ivLAAQ",
"isActive": true,
"isAssetizable": true,
"isSoldOnlyWithOtherProds": false,
"name": "iPhone13",
"nodeType": "simpleProduct",
"prices": [
{
"currencyIsoCode": "USD",
"isDefault": true,
"isSelected": false,
"price": 1520,
"priceBookEntryId": "01uxx0000008zUpAAI",
"priceBookId": "01sxx0000005qxxAAA",
"pricingModel": {
"id": "0jPxx000000009hEAA",
"name": "OneTime",
"pricingModelType": "OneTime"

254
Product Catalog Management Product Discovery Business APIs

}
},
{
"currencyIsoCode": "USD",
"isDefault": false,
"isSelected": false,
"price": 152,
"priceBookEntryId": "01uxx0000008zUqAAI",
"priceBookId": "01sxx0000005qxxAAA",
"pricingModel": {
"frequency": "Months",
"id": "0jPxx000000009iEAA",
"name": "Monthly",
"occurrence": 1,
"pricingModelType": "TermDefined"
}
}
],
"productClassification": {},
"productCode": "iPhone13",
"productComponentGroups": [],
"productSellingModelOptions": [
{
"id": "0iOxx00000000EbEAI",
"productId": "01txx0000006ivLAAQ",
"productSellingModel": {
"id": "0jPxx000000009iEAA",
"name": "Monthly",
"pricingTerm": 1,
"pricingTermUnit": "Months",
"sellingModelType": "TermDefined",
"status": "Active"
},
"productSellingModelId": "0jPxx000000009iEAA"
},
{
"id": "0iOxx00000000EeEAI",
"productId": "01txx0000006ivLAAQ",
"productSellingModel": {
"id": "0jPxx000000009hEAA",
"name": "OneTime",
"sellingModelType": "OneTime",
"status": "Active"
},
"productSellingModelId": "0jPxx000000009hEAA"
}
],
"productSpecificationType": {
"name": "ProdSpecRecType1",
"productSpecificationRecordType": {}
},
"qualificationContext": {
"isQualified": true
}

255
Product Catalog Management Product Discovery Business APIs

}
]
}

Property Name Type Description Filter Group and Available Version


Version
apiStatus API Status[] Status of the API request. Small, 61.0 61.0

contextId String ID of the context. Small, 61.0 61.0

correlationId String Unique identifier of the request. Small, 61.0 61.0

result Any response body Result that contains the details of products. Small, 61.0 61.0

userContext User Context[] User context details. For example, account Small, 61.0 61.0
ID or contact ID.

CPQ Base Details


Output representation of the catalog, category, or product details based on the request.
JSON example
This example shows the sample catalog details.
{
"apiStatus": {
"messages": [

],
"statusCode": "FetchedDetailsSuccessfully"
},
"correlationId": "32595ed6-1922-41f7-9c2c-373c677a7d62",
"result": {
"catalogCode": "Mobiles",
"catalogType": "Sales",
"description": "Catalog for mobile phones",
"effectiveEndDate": "2028-04-01T19:00Z",
"effectiveStartDate": "2024-04-01T19:00Z",
"id": "0ZSxx0000000001GAA",
"name": "Mobiles",
"numberOfCategories": 3
}
}

This example shows the sample category details.


{
"apiStatus": {
"messages": [

],
"statusCode": "FetchedDetailsSuccessfully"
},
"correlationId": "f9fb90de-36aa-44a1-9961-a9ef5fc0cad8",

256
Product Catalog Management Product Discovery Business APIs

"result": {
"catalogId": "0ZSxx0000000001GAA",
"childCategories": [

],
"description": "Category for Samsung phones",
"id": "0ZGxx000000004rGAA",
"name": "Samsung",
"isNavigational": true,
"sortOrder": 2
}
}

This example shows the sample product details.


{
"apiStatus": {
"messages": [

],
"statusCode": "FetchedDetailsSuccessfully"
},
"correlationId": "822a8941-7412-4883-bb80-e488f908471e",
"result": {
"additionalFields": {
"CustomField1__c": "TextValue",
"CustomField2__c": "10",
"StandardField1": "false"
},
"attributeCategories": [

],
"attributes": [

],
"catalogs": [

],
"childProducts": [

],
"id": "01txx0000006i2WAAQ",
"isActive": true,
"isAssetizable": true,
"isSoldOnlyWithOtherProds": false,
"name": "iPhone15",
"nodeType": "simpleProduct",
"prices": [

],
"productClassification": {

},
"productCode": "iPhone15",
"productComponentGroups": [

257
Product Catalog Management Product Discovery Business APIs

],
"productSellingModelOptions": [
{
"id": "0iOxx0000000003EAA",
"productId": "01txx0000006i2WAAQ",
"productSellingModel": {
"id": "0jPxx0000000001EAA",
"name": "OneTime",
"sellingModelType": "OneTime",
"status": "Active"
},
"productSellingModelId": "0jPxx0000000001EAA"
},
{
"id": "0iOxx0000000004EAA",
"productId": "01txx0000006i2WAAQ",
"productSellingModel": {
"id": "0jPxx0000000002EAA",
"name": "Monthly",
"pricingTerm": 1,
"pricingTermUnit": "Months",
"sellingModelType": "TermDefined",
"status": "Active"
},
"productSellingModelId": "0jPxx0000000002EAA"
}
],
"productSpecificationType": {
"name": "ProdSpecRecType1",
"productSpecificationRecordType": {

}
}
}
}

Property Name Type Description Filter Group and Available Version


Version
apiStatus API Status Status of the API request. Small, 60.0 60.0

contextId String ID of the context. Small, 60.0 60.0

correlationId String Unique identifier of the request. Small, 60.0 60.0

result Any response body Result that contains the details of catalogs, Small, 60.0 60.0
categories, or products as per the requested
resource.

userContext User Context User context details. For example, account Small, 60.0 60.0
ID or contact ID.

258
Product Catalog Management Product Discovery Business APIs

CPQ Base List


Output representation of the list of catalogs, categories, or products based on the request.
JSON example
This example shows a sample catalog list.
{
"apiStatus": {
"messages": [

],
"statusCode": "FetchedDetailsSuccessfully"
},
"correlationId": "9f417514-9587-4063-9e48-18a2cf2477c0",
"limit": 10,
"offSet": 0,
"query": {

},
"result": [
{
"catalogCode": "Mobiles",
"catalogType": "Sales",
"description": "Catalog for mobile phones",
"effectiveEndDate": "2028-04-01T19:00Z",
"effectiveStartDate": "2024-04-01T19:00Z",
"id": "0ZSxx0000000001GAA",
"name": "Mobiles",
"numberOfCategories": 3
}
],
"total": 1
}

This example shows a sample category list.


{
"apiStatus": {
"messages": [

],
"statusCode": "FetchedDetailsSuccessfully"
},
"correlationId": "3f2a8f45-e7d2-42ec-bc4c-b981d750e912",
"query": {

},
"result": [
{
"catalogId": "0ZSxx0000000001GAA",
"childCategories": [

],
"description": "Category for Apple phones and iPads",
"id": "0ZGxx0000000001GAA",

259
Product Catalog Management Product Discovery Business APIs

"name": "Apple",
"sortOrder": 1,
"isNavigational": true
},
{
"catalogId": "0ZSxx0000000001GAA",
"childCategories": [

],
"description": "Category for Samsung phones",
"id": "0ZGxx000000004rGAA",
"name": "Samsung",
"sortOrder": 2,
"isNavigational": true
},
{
"catalogId": "0ZSxx0000000001GAA",
"childCategories": [

],
"description": "Category for Android phones",
"id": "0ZGxx000000006TGAQ",
"name": "Android",
"isNavigational": true
}
],
"total": 3
}

This example shows a sample product list.


{
"apiStatus": {
"messages": [],
"statusCode": "FetchedDetailsSuccessfully"
},
"contextId": "f36f8e73f1fc338cc4e93c61613cba07a6a0129941d97e5dd6e52a2885776ce4",
"correlationId": "eeaa1db2-f371-4227-a886-c77e2f66ce1d",
"cursor": "MTAwMDAwMDAwNg==",
"query": {},
"result": [
{
"additionalFields": {
"DecompositionScope": "OrderLineItem",
"ProductCode": "LPB001",
"CanRamp": false
},
"attributeCategories": [],
"catalogs": [
{
"customFields": {},
"id": "0ZSDU0000002Og74AE",
"name": "Service Catalog",
"numberOfCategories": 5
}

260
Product Catalog Management Product Discovery Business APIs

],
"categories": [
{
"catalogId": "0ZSDU0000002Og74AE",
"childCategories": [],
"customFields": {},
"hasSubCategories": false,
"id": "0ZGDU0000002P0H4AU",
"name": "Cloud Services",
"qualificationContext": {
"isQualified": true
}
}
],
"childProducts": [],
"configureDuringSale": "Allowed",
"description": "The laptop pro bundle includes a Laptop, mouse, warranty for 2
years, premium support and printer bundle",
"displayUrl":
"https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSCrGjPR1fvJqg4yP3RMyqjI0H9eL6tk1fvzw&amp;usqp=CAU",

"id": "01tDU000000ExkZYAS",
"isActive": true,
"isAssetizable": true,
"isSoldOnlyWithOtherProds": false,
"name": "Laptop Pro Bundle",
"nodeType": "bundleProduct",
"prices": [],
"productClassification": {},
"productCode": "LPB001",
"productComponentGroups": [],
"productSellingModelOptions": [
{
"id": "0iODU0000002TBN2A2",
"productId": "01tDU000000ExkZYAS",
"productSellingModel": {
"id": "0jPDU0000002OTv2AM",
"name": "One Time",
"sellingModelType": "OneTime",
"status": "Active"
},
"productSellingModelId": "0jPDU0000002OTv2AM"
}
],
"productSpecificationType": {
"name": "Commercial",
"productSpecificationRecordType": {}
},
"productType": "Bundle",
"qualificationContext": {
"isQualified": true
}
}

261
Product Catalog Management Product Discovery Business APIs

]
}

This example shows a sample of the list of products retrieved based on the Laptop search term.
{
"apiStatus": {
"messages": [],
"statusCode": "FetchedDetailsSuccessfully"
},
"correlationId": "d9d8f898-19f5-464a-ba2b-6a070783f6c4",
"cursor": "MTAwMDAwMDAwMw==",
"facets": [
{
"attributeType": "ProductStandard",
"displayName": "Product Type",
"displayRank": 2,
"nameOrId": "Type",
"values": [
{
"displayName": "Bundle",
"nameOrId": "Bundle"
}
]
},
{
"attributeType": "ProductDynamicAttribute",
"displayName": "Display",
"displayRank": 3,
"nameOrId": "0tjDU0000003K5BYAU",
"values": [
{
"displayName": "1080p Built-in Display",
"nameOrId": "1080p Built-in Display"
},
{
"displayName": "2k Built-in Display",
"nameOrId": "2k Built-in Display"
},
{
"displayName": "4k Built-in Display",
"nameOrId": "4k Built-in Display"
}
]
}
],
"limit": 10,
"query": {},
"result": [
{
"additionalFields": {},
"attributeCategories": [],
"catalogs": [],
"categories": [
{

262
Product Catalog Management Product Discovery Business APIs

"catalogId": "0ZSDU0000002Og64AE",
"childCategories": [],
"customFields": {},
"hasSubCategories": false,
"id": "0ZGDU0000002P0A4AU",
"name": "Laptops",
"qualificationContext": {
"isQualified": true
}
}
],
"configureDuringSale": "Allowed",
"description": "Battery- or AC-powered personal computer (PC) smaller than a
briefcase",
"displayUrl":
"https://media.istockphoto.com/id/1023428598/photo/3d-illustration-laptop-isolated-on-white-background-laptop-with-empty-space-screen-laptop-at.jpg?s=612x612&amp;w=0&amp;k=20&amp;c=ssK6er5v1fGpSghGiqySwoD8tn5blC7xgefQJI2xU38=",

"id": "01tDU000000ExkWYAS",
"isActive": true,
"isAssetizable": true,
"isSoldOnlyWithOtherProds": false,
"name": "Laptop",
"nodeType": "simpleProduct",
"prices": [],
"productClassification": {
"id": "11BDU0000002TCD2A2"
},
"productCode": "LP001",
"productComponentGroups": [],
"productSellingModelOptions": [
{
"id": "0iODU0000002TBF2A2",
"productId": "01tDU000000ExkWYAS",
"productSellingModel": {
"id": "0jPDU0000002OTv2AM",
"name": "One Time",
"sellingModelType": "OneTime",
"status": "Active"
},
"productSellingModelId": "0jPDU0000002OTv2AM"
}
],
"productSpecificationType": {
"name": "Commercial",
"productSpecificationRecordType": {}
},
"qualificationContext": {
"isQualified": true
}
},
{
"additionalFields": {},
"attributeCategories": [],
"catalogs": [],

263
Product Catalog Management Product Discovery Business APIs

"categories": [
{
"catalogId": "0ZSDU0000002Og64AE",
"childCategories": [],
"customFields": {},
"hasSubCategories": false,
"id": "0ZGDU0000002P0A4AU",
"name": "Laptops",
"qualificationContext": {
"isQualified": true
}
}
],
"configureDuringSale": "Allowed",
"description": "The laptop basic bundle includes a Laptop, mouse, and warranty
for 1 year.",
"displayUrl":
"https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTbf49JG4zZogCmZMJuXU38qOkR9X36MN4bSw&amp;usqp=CAU",

"id": "01tDU000000ExkXYAS",
"isActive": true,
"isAssetizable": true,
"isSoldOnlyWithOtherProds": false,
"name": "Laptop Basic Bundle",
"nodeType": "bundleProduct",
"prices": [],
"productClassification": {},
"productCode": "LB001",
"productComponentGroups": [],
"productSellingModelOptions": [
{
"id": "0iODU0000002TBD2A2",
"productId": "01tDU000000ExkXYAS",
"productSellingModel": {
"id": "0jPDU0000002OTv2AM",
"name": "One Time",
"sellingModelType": "OneTime",
"status": "Active"
},
"productSellingModelId": "0jPDU0000002OTv2AM"
}
],
"productSpecificationType": {
"name": "Commercial",
"productSpecificationRecordType": {}
},
"productType": "Bundle",
"qualificationContext": {
"isQualified": true
}
},
{
"additionalFields": {},
"attributeCategories": [],

264
Product Catalog Management Product Discovery Business APIs

"catalogs": [],
"categories": [
{
"catalogId": "0ZSDU0000002Og64AE",
"childCategories": [],
"customFields": {},
"hasSubCategories": false,
"id": "0ZGDU0000002P0A4AU",
"name": "Laptops",
"qualificationContext": {
"isQualified": true
}
}
],
"configureDuringSale": "Allowed",
"description": "The laptop pro bundle includes a Laptop, mouse, warranty for 2
years, premium support and printer bundle",
"displayUrl":
"https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSCrGjPR1fvJqg4yP3RMyqjI0H9eL6tk1fvzw&amp;usqp=CAU",

"id": "01tDU000000ExkZYAS",
"isActive": true,
"isAssetizable": true,
"isSoldOnlyWithOtherProds": false,
"name": "Laptop Pro Bundle",
"nodeType": "bundleProduct",
"prices": [],
"productClassification": {},
"productCode": "LPB001",
"productComponentGroups": [],
"productSellingModelOptions": [
{
"id": "0iODU0000002TBN2A2",
"productId": "01tDU000000ExkZYAS",
"productSellingModel": {
"id": "0jPDU0000002OTv2AM",
"name": "One Time",
"sellingModelType": "OneTime",
"status": "Active"
},
"productSellingModelId": "0jPDU0000002OTv2AM"
}
],
"productSpecificationType": {
"name": "Commercial",
"productSpecificationRecordType": {}
},
"productType": "Bundle",
"qualificationContext": {
"isQualified": true
}
},
{
"additionalFields": {},

265
Product Catalog Management Product Discovery Business APIs

"attributeCategories": [],
"catalogs": [],
"categories": [
{
"catalogId": "0ZSDU0000002Og64AE",
"childCategories": [],
"customFields": {},
"hasSubCategories": false,
"id": "0ZGDU0000002P0A4AU",
"name": "Laptops",
"qualificationContext": {
"isQualified": true
}
}
],
"configureDuringSale": "Allowed",
"description": "Laptop, Laptop Bag, Laptop stand, Mouse, Keyboard, USB-C
Hub,External Hard Drive, Noise Cancelling Headphones, office 365",
"displayUrl": "https://m.media-amazon.com/images/I/613Fno-NLYL._AC_SL1000_.jpg",
"id": "01tDU000000ExlAYAS",
"isActive": true,
"isAssetizable": true,
"isSoldOnlyWithOtherProds": false,
"name": "Laptop Productivity Bundle",
"nodeType": "bundleProduct",
"prices": [],
"productClassification": {},
"productCode": "LPB001",
"productComponentGroups": [],
"productSellingModelOptions": [
{
"id": "0iODU0000002TBq2AM",
"productId": "01tDU000000ExlAYAS",
"productSellingModel": {
"id": "0jPDU0000002OTv2AM",
"name": "One Time",
"sellingModelType": "OneTime",
"status": "Active"
},
"productSellingModelId": "0jPDU0000002OTv2AM"
}
],
"productSpecificationType": {
"name": "Commercial",
"productSpecificationRecordType": {}
},
"productType": "Bundle",
"qualificationContext": {
"isQualified": true
}
}
],
"total": 4
}

266
Product Catalog Management Product Discovery Business APIs

This example shows a sample of the results of a qualification procedure that’s executed on a list of product IDs.
{
"apiStatus": {
"messages": [

],
"statusCode": "FetchedDetailsSuccessfully"
},
"contextId": "e055bb18-d4e8-41c3-881e-0132b9561708",
"correlationId": "c280c1b0-fd3f-4eac-9b08-075bdf1cbefc",
"query": {

},
"result": [
{
"productId": "01txx0000006i7PAAQ",
"qualificationContext": {
"isQualified": true
}
},
{
"productId": "01txx0000006i7QAAQ",
"qualificationContext": {
"isQualified": true
}
},
{
"productId": "01txx0000006i7IAAQ",
"qualificationContext": {
"isQualified": true
}
}
]
}

Property Name Type Description Filter Group and Available Version


Version
apiStatus API Status Status of the API request. Small, 60.0 60.0

contextId String ID of the context. Small, 60.0 60.0

correlationId String Unique ID of the request. Small, 60.0 60.0

cursor String Unique ID to represent the position of each Small, 60.0 60.0
product in the dataset.

facets Search Products Details of the faceted search. Small, 63.0 63.0
Facet

limit Integer Number of items fetched in the response. Small, 60.0 60.0

offSet Integer Offset size from which the item count is Small, 60.0 60.0
fetched.

267
Product Catalog Management Product Discovery Business APIs

Property Name Type Description Filter Group and Available Version


Version
query Map<String, Query that was used for the search request. Small, 60.0 60.0
Object>>

result Any response body Result that contains the list of catalogs, Small, 60.0 60.0
categories, or products as per the requested
resource.

total Integer Number of fetched records. Small, 60.0 60.0

userContext User Context User context details. For example, account Small, 60.0 60.0
ID or contact ID.

CPQ Message
Output representation of the API messages.

Property Name Type Description Filter Group and Available Version


Version
code String Code specifying the type of message. Valid Small, 60.0 60.0
value is CartValidationError.

detail String Required details other than the message Small, 60.0 60.0
text.

message String Text of the API message. Small, 60.0 60.0

severity String Severity of the API message. Valid values Small, 60.0 60.0
are:
• Error
• Info
• Warning

Facet Value
Output representation of the facet values found in the search result.
JSON example

"values": [
{
"displayName": "1080p Built-in Display",
"nameOrId": "1080p Built-in Display"
},
{
"displayName": "2k Built-in Display",
"nameOrId": "2k Built-in Display"
},

268
Product Catalog Management Product Discovery Business APIs

{
"displayName": "4k Built-in Display",
"nameOrId": "4k Built-in Display"
}
]

Property Name Type Description Filter Group and Available Version


Version
displayName String Display name of the facet value. Small, 63.0 63.0

nameOrId String ID or the internal name of the facet value. Small, 63.0 63.0

Guided Selection
Output representation of the details of a guided selection.
JSON example
{
"apiStatus": {
"messages": [],
"statusCode": "FETCHED_DETAILS_SUCCESSFULLY"
},
"correlationId": "corrId",
"cursor": "MTAwMDAwMDAwNg==",
"searchTerms": [
{
"term": "IPhone"
},
{
"term": "4GB"
},
{
"term": "64GB"
}
],
"result": [
{
"additionalFields": {
"CustomField1__c": "TextValue",
"CustomField2__c": "10",
"StandardField1": "false"
},
"description": "IPhone-13",
"id": "01txx0000006kYwAAI",
"name": "Sample product 1",
"prices": [
{
"price": 150,
"priceBookEntryId": "12Axx0000004DF7EAM",
"priceBookId": "01sxx0000005puLAAQ",
"pricingModel": {
"frequency": "Monthly",

269
Product Catalog Management Product Discovery Business APIs

"id": "12Bxx000000CiCDEA0",
"name": "IPhone-13",
"occurrence": 6,
"pricingModelType": "Recurring"
}
},
{
"price": 400,
"priceBookEntryId": "12Axx0000004DGjEAM",
"priceBookId": "01sxx0000005puLAAQ",
"pricingModel": {
"id": "12Bxx000000CiCCEA0",
"name": "IPhone-13",
"pricingModelType": "OneTime"
}
}
],
"qualificationContext": {
"isQualified": true
}
}
]
}

Property Name Type Description Filter Group and Available Version


Version
searchTerms Guided Selection Search terms for the guided selection. Small, 62.0 62.0
Search Term[]

Guided Selection Search Term


Output representation of the search term details for a guided selection.
JSON example
"searchTerms": [
{
"term": "IPhone"
},
{
"term": "4GB"
},
{
"term": "64GB"
}
]

Property Name Type Description Filter Group and Available Version


Version
term String Search term value for the guided selection. Small, 62.0 62.0

270
Product Catalog Management Product Discovery Business APIs

Search Products Facet


Output representation of the details of the faceted search.
JSON example
"facets": [
{
"attributeType": "ProductStandard",
"displayName": "Product Type",
"displayRank": 2,
"nameOrId": "Type",
"values": [
{
"displayName": "Bundle",
"nameOrId": "Bundle"
}
]
},
{
"attributeType": "ProductDynamicAttribute",
"displayName": "Display",
"displayRank": 3,
"nameOrId": "0tjDU0000003K5BYAU",
"values": [
{
"displayName": "1080p Built-in Display",
"nameOrId": "1080p Built-in Display"
},
{
"displayName": "2k Built-in Display",
"nameOrId": "2k Built-in Display"
},
{
"displayName": "4k Built-in Display",
"nameOrId": "4k Built-in Display"
}
]
}
]

Property Name Type Description Filter Group and Available Version


Version
attributeType String Search attribute type of the facet. Small, 63.0 63.0

displayName String Display name of the facet. Small, 63.0 63.0

displayRank Integer Display rank for the facet. Small, 63.0 63.0

nameOrId String ID or the internal name of the facet. Small, 63.0 63.0

values Facet Value[] Values of the facet found in the search Medium, 63.0 63.0
result. Sorted by display name in
alphabetical order.

271
Product Catalog Management Product Discovery Standard Invocable Actions

User Context
Output representation of the user context details.

Property Name Type Description Filter Group and Available Version


Version
contextId String ID of the context. Small, 60.0 60.0

Product Discovery Standard Invocable Actions


Use the standard invocable actions available with Product Discovery to find and retrieve the product details.

Find Products Action


Search for the products from a catalog, category, or subcategory by using the specified search term.
Get Products Action
Get products from the specified catalog, category, or subcategory, including product qualification and pricing details.
Get Product Details Action
Get details such as attributes, hierarchy, and cardinality for the specified product.

Find Products Action


Search for the products from a catalog, category, or subcategory by using the specified search term.
This action is available in API version 62.0 and later.

Special Access Rules


The Find Products action is available in Enterprise, Unlimited, and Developer Editions where Product Discovery is enabled.

Supported REST HTTP Methods


URI
/services/data/v63.0/actions/standard/findProducts
Formats
JSON, XML
HTTP Methods
POST
Authentication
Authorization: Bearer token

272
Product Catalog Management Product Discovery Standard Invocable Actions

Inputs

Input Details
additionalContextData Type

Apex-defined
Description
An array of Apex runtime_industries_cpq.AdditionalContextData records
that contain the additional nodes that are used along with the context definition nodes for data
hydration.
The maximum number of supported nodes is 10.

additionalFields Type
Apex-defined
Description
An Apex runtime_industries_cpq.AdditionalFields record that contains an
array of additional standard or custom fields to include in the response.
The supported objects are:
• Product2
• ProductAttributeDefinition—If the fields defined for the
ProductAttributeDefinition object aren’t available for the
ProductClassificationAttr object, then the API request fails.

catalogId Type
string
Description
Catalog ID that’s used to find and retrieve the products.

categoryId Type
string
Description
ID of the category or subcategory to get the products for.

contextDefinition Type
string
Description
API name of the context definition used for context creation. If you don’t specify a value, the
context selected on the Product Discovery Settings page from Setup is used.

contextMapping Type
string

273
Product Catalog Management Product Discovery Standard Invocable Actions

Input Details

Description
API name of the context mapping that’s used for data hydration. The value of this parameter is
used only if it belongs to the specified context definition.

correlationId Type
string
Description
Currency code that’s used to calculate and show prices. Only the products with the currency
code matching the specified currency code are fetched.

currencyCode Type
string
Description
Currency code that’s used to calculate and show prices.

cursor Type
string
Description
A unique identifier that represents the position of the product from which the next set of results
are retrieved.

enablePricing Type
boolean
Description
Indicates whether the pricing procedure must run (true) or not (false).
The default value is true. To use this parameter, you must enable the Pricing Procedure setting
from Setup.

enableQualification Type
boolean
Description
Indicates whether the qualification procedure must run (true) or not (false).
The default value is true. To use this parameter, you must enable the Qualification Procedure
setting from Setup.

filter Type
Apex-defined

274
Product Catalog Management Product Discovery Standard Invocable Actions

Input Details

Description
A collection of Apex runtime_industries_cpq.FilterInputRepresentation
records where each record contains a related object and the filter criteria that’s applied on the
object.
The filter parameter supports only the name property.
The supported operators are:
• eq
• in
• contains
If this parameter contains multiple criteria, all the criteria are applied.

includeCatalogDetails Type
boolean
Description
Indicates whether catalog details must be included in the response (true) or not (false).

limit Type
integer
Description
Maximum number of results to be returned in the response. Enter a value from 1 through 100.
The default value is 10.

orderBy Type
string
Description
Comma-separated string of key-value pairs that specify how results are sorted. Each string must
contain a field name and its sort order. For example,
["name:asc",”custom_field:asc”].

priceBookId Type
string
Description
ID of the pricebook from which you wan to retrieve the pricing details.

productClassificationId Type
string
Description
ID of the product classification that’s used to filter products.

275
Product Catalog Management Product Discovery Standard Invocable Actions

Input Details
pricingProcedure Type
string
Description
API name of the pricing procedure to calculate product prices. If you don’t specify a value, the
pricing procedure selected on the Product Discovery Settings page from Setup is used.

qualificationProcedure Type

string
Description
API name of the qualification procedure to evaluate product eligibility. If you don’t specify a
value, the qualification procedure selected on the Product Discovery Settings page from Setup
is used.

relatedObjectFilters Type

Apex-defined
Description
A collection of Apex
runtime_industries_cpq.RelatedObjectFilterInputRepresentation
records, where each record contains a related object and the filter criteria that’s applied on the
object.

searchTerm Type
string
Description
Required.
Search term to find and retrieve products.

userContext Type
Apex-defined
Description
An Apex ConnectApi.UserContextInputRepresentation record that contains
the user details to evaluate product eligibility and calculate prices.

Outputs

Output Details
apiStatus Type
Apex-defined

276
Product Catalog Management Product Discovery Standard Invocable Actions

Output Details

Description
An Apex runtime_industries_cpq.ApiStatusRepresentation record that
contains a status code and message.

contextId Type
string
Description
ID of the context that’s created by using the specified context definition.

correlationId Type
string
Description
ID to reference a series of related actions.

cursor Type
string
Description
Unique identifier that represents the position of the next product in the dataset. It’s used as an
input to retrieve the next set of products.

results Type
Apex-defined
Description
An Apex runtime_industries_cpq.SearchProductsRepresentation record
that contains the products that match the query.

userContext Type
Apex-defined
Description
An Apex ConnectApi.UserContextRepresentation record that includes the user
details.

Example
POST
This sample request is for the Find Products action.
{
"inputs": [

277
Product Catalog Management Product Discovery Standard Invocable Actions

{
"searchTerm": "firstproduct",
"additionalContextData": [
{
"nodeName": "Contract",
"nodeData": {
"id": "xxxxx231",
"name": "Contract1"
}
},
{
"nodeName": "Lead",
"nodeData": {
"id": "lllllll31",
"name": "Lead1"
}
}
],
"additionalFields": {
"Product2": {
"fields": [
"CustomField1__c",
"StandardField1"
]
}
},
"correlationId": "9cbb9650-48c5-11ed-96d1-0afcf185843b",
"catalogId": "0ZSxx0000000001GAA",
"categoryId": "0ZGxx0000000004TAJ",
"currencyCode": "USD",
"priceBookId": "01sxx0000005puLAAQ",
"productClassificationId": "11BRO00000000222AA",
"limit": 10,
"cursor": "MTAwMDAwMDAwNg==",
"orderBy": [
"name:asc"
],
"userContext": {
"accountId": "001xx0000000001AAA"
},
"enableQualification": true,
"enablePricing": true,
"qualificationProcedure": "QualificationProcedure",
"pricingProcedure": "Preview",
"contextDefinition": "TestDefinition",
"contextMapping": "TestDefinitionNode",
"includeCatalogDetails": false,
"filter": {
"criteria": [
{
"property": "name",
"operator": "eq",
"value": "Catalog_Name_1"
}

278
Product Catalog Management Product Discovery Standard Invocable Actions

]
},
"relatedObjectFilters": [
{
"objectName": "ProductSpecificationRecType",
"criteria": [
{
"property": "IsCommercial",
"operator": "eq",
"value": true
}
]
}
]
}
]
}

This is the sample response for the Find Products action.


{
"apiStatus": {
"messages": [],
"statusCode": "FETCHED_DETAILS_SUCCESSFULLY"
},
"contextId": "0U3RM00000000SR0AY",
"correlationId": "9cbb9650-48c5-11ed-96d1-0afcf185843b",
"cursor": "MTAwMDAwMDAwNg==",
"result": [
{
"additionalFields": {
"CustomField1__c": "TextValue",
"CustomField2__c": "10",
"StandardField1": "false"
},
"description": "IPhone-13",
"id": "01txx0000006kYwAAI",
"name": "Sample product 1",
"prices": [
{
"price": 150,
"priceBookEntryId": "12Axx0000004DF7EAM",
"priceBookId": "01sxx0000005puLAAQ",
"pricingModel": {
"frequency": "Monthly",
"id": "12Bxx000000CiCDEA0",
"name": "IPhone-13",
"occurrence": 6,
"pricingModelType": "Recurring"
}
},
{
"price": 400,
"priceBookEntryId": "12Axx0000004DGjEAM",
"priceBookId": "01sxx0000005puLAAQ",

279
Product Catalog Management Product Discovery Standard Invocable Actions

"pricingModel": {
"id": "12Bxx000000CiCCEA0",
"name": "IPhone-13",
"pricingModelType": "OneTime"
}
}
],
"qualificationContext": {
"isQualified": true
}
},
{
"additionalFields": {
"CustomField1__c": "TextValue",
"CustomField2__c": "10",
"StandardField1": "false"
},
"description": "Sample product 2",
"name": "Sample product 2",
"id": "01txx0000006kYwAAI",
"prices": [],
"qualificationContext": {
"isQualified": false
}
},
{
"description": "Sample product 3",
"name": "Sample product 3",
"id": "01txx0000006kYwAAI",
"prices": [],
"qualificationContext": {
"isQualified": true
}
}
],
"userContext": {
"accountId": "001xx0000000001AAA"
}
}

Usage of an Apex-Defined Data Type in a Flow


To use an Apex-defined input parameter in a flow, follow these guidelines.
Create an Apex Class
Create an Apex class defining the input and output parameters. In the flow, include the Apex-defined input parameters for which
you want to add the details. In this example, we’ve created a class named ProductServiceAction that takes an object’s API name and
record ID as input, and returns the additional context data.
public class ProductServiceAction {
// Define input parameters
public class FlowInput{
@InvocableVariable(required=false)
public String objectApiName;

280
Product Catalog Management Product Discovery Standard Invocable Actions

@InvocableVariable(required=false)
public String recordId;
}

// Define output parameters


public class FlowOutput{
@invocableVariable
public runtime_industries_cpq.AdditionalContextData
additionalContextDataFinalOutput = new runtime_industries_cpq.AdditionalContextData();
}

// This method is invoked from a Flow


@InvocableMethod(label='Process Input' description='Creates the Array of
ContextDataInput for additional Context Data')
public static List<FlowOutput> processContextData(List<FlowInput> inputs){
String apiName;
String recId;
FlowOutput output = new FlowOutput();

// Capture input from the flow


for(FlowInput input: inputs){
apiName = input.objectApiName;
recId = input.recordId;
}
// Populate the ContextDataInput list to store additional context data
List<runtime_industries_cpq.ContextDataInput> listContextData = new
List<runtime_industries_cpq.ContextDataInput>();
runtime_industries_cpq.ContextDataInput cd1 = new
runtime_industries_cpq.ContextDataInput();
cd1.nodeName = apiName;
cd1.nodeData = new Map<String, Object>();
cd1.nodeData.put('id',recId);
listContextData.add(cd1);

output.additionalContextDataFinalOutput.additionalContextData = listContextData;

List<FlowOutput> flowOutputs = new List<FlowOutput>();


flowOutputs.add(output);

List<runtime_industries_cpq.RelatedObjectFilter> relatedObjectFilterList = new


List<runtime_industries_cpq.RelatedObjectFilter>();

runtime_industries_cpq.RelatedObjectFilter relatedObjectFilter = new


runtime_industries_cpq.RelatedObjectFilter();

relatedObjectFilter.objectName = 'ProductSpecificationRecType';
List<runtime_industries_cpq.FilterCriteriaInputRepresentation> criteriaList =
new List<runtime_industries_cpq.FilterCriteriaInputRepresentation>();
runtime_industries_cpq.FilterCriteriaInputRepresentation criteria = new
runtime_industries_cpq.FilterCriteriaInputRepresentation();
criteria.property = 'IsCommercial';
criteria.operator = 'eq';
criteria.value = 'true';

281
Product Catalog Management Product Discovery Standard Invocable Actions

criteriaList.add(criteria);
relatedObjectFilter.criteria = criteriaList;

relatedObjectFilterList.add(relatedObjectFilter);
output.relatedObjectFilter.relatedObjectFilter = relatedObjectFilterList;

output.userContext.accountId = '001DU000001nx9BYAQ';

return flowOutputs;

Create a Flow with the Necessary Variables and Components


Create a flow that enables users to add a search term to find products. Add the ProductService action that you’ve created above by
using Apex. When a flow is invoked from a record, the flow sends the record's objectApiName and recordId to the Apex class, which
then generates the flow output. The flow passes the objectApiName and recordId of the record that the flow is invoked from to the
Apex class to generate the flow output. See Example of How to Create a Flow for Product Discovery.
Configure the Action
Configure the action (for example, Find Products action) to add values for the Apex-defined input parameters. Use the output of the
created Apex class as the input of the Apex-defined parameter in the Find Products action, which users can use to find products.

Get Products Action


Get products from the specified catalog, category, or subcategory, including product qualification and pricing details.
If a catalog, category, or subcategory isn’t specified, then this action retrieves all the products from all catalogs. This action is available
in API version 62.0 and later.

Special Access Rules


The Get Products action is available in Enterprise, Unlimited, and Developer Editions where Product Discovery is enabled.

Supported REST HTTP Methods


URI
/services/data/v63.0/actions/standard/getProducts
Formats
JSON, XML
HTTP Methods
POST
Authentication
Authorization: Bearer token

282
Product Catalog Management Product Discovery Standard Invocable Actions

Inputs

Input Details
additionalContextData Type

Apex-defined
Description
An array of Apex runtime_industries_cpq.AdditionalContextData records
that contain the additional nodes that are used along with the context definition nodes for data
hydration.
The maximum number of supported nodes is 10.

additionalFields Type
Apex-defined
Description
An Apex runtime_industries_cpq.AdditionalFields record that contains an
array of additional standard or custom fields to include in the response.
The supported objects are:
• Product2
• ProductAttributeDefinition—If the fields defined for the
ProductAttributeDefinition object aren’t available for the
ProductClassificationAttr object, then the API request fails.

catalogId Type
string
Description
Catalog ID that’s used to find and retrieve the products.

categoryId Type
string
Description
ID of the category or subcategory to get the products for.

contextDefinition Type
string
Description
API name of the context definition that’s used for context creation.
If you don’t specify a value, the context selected on the Product Discovery Settings page from
Setup is used.

283
Product Catalog Management Product Discovery Standard Invocable Actions

Input Details
contextMapping Type
string
Description
API name of the context mapping that’s used for data hydration.
The value of this parameter is used only if it belongs to the specified context definition.

correlationId Type
string
Description
Unique ID that’s used to reference a series of related actions.

currencyCode Type
string
Description
Currency code that’s used to calculate and show prices. Only the products with the currency
code matching the specified currency code are fetched.

cursor Type
string
Description
Unique identifier that represents the position of the product from which the next set of results
are retrieved.

enablePricing Type
boolean
Description
Indicates whether the pricing procedure must run (true) or not (false).
The default value is true. To use this parameter, you must enable the Pricing Procedure setting
from Setup.

enableQualification Type
boolean
Description
Indicates whether the qualification procedure must run (true) or not (false).
The default value is true. To use this parameter, you must enable the Qualification Procedure
setting from Setup.

284
Product Catalog Management Product Discovery Standard Invocable Actions

Input Details
filter Type
Apex-defined
Description
A collection of Apex runtime_industries_cpq.FilterInputRepresentation
records where each record contains a related object and the filter criteria that’s applied on the
object.
The filter parameter supports only the name property.
The supported operators are:
• eq
• in
• contains
If this parameter contains multiple criteria, all the criteria are applied.

includeCatalogDetails Type
boolean
Description
Indicates whether catalog details must be included in the response (true) or not (false).

limit Type
integer
Description
Maximum number of results to be returned in the response. Specify a value from 1 through 100.
The default value is 10.

orderBy Type
string
Description
Comma-separated string of key-value pairs that specify how the results are sorted. Each string
must contain a field name and its sort order. For example,
["name:asc",”custom_field:asc”].

priceBookId Type
string
Description
ID of the pricebook that the pricing details are retrieved from.

pricingProcedure Type
string

285
Product Catalog Management Product Discovery Standard Invocable Actions

Input Details

Description
API name of the pricing procedure to calculate product prices. If you don’t specify a value, the
pricing procedure selected on the Product Discovery Settings page from Setup is used.

productClassificationId Type
string
Description
ID of the product classification that’s used to filter the products.

qualificationProcedure Type

string
Description
API name of the qualification procedure to evaluate product eligibility. If you don’t specify a
value, the qualification procedure selected on the Product Discovery Settings page from Setup
is used.

relatedObjectFilters Type

Apex-defined
Description
A collection of Apex
runtime_industries_cpq.RelatedObjectFilterInputRepresentation
records, where each record contains a related object and the filter criteria that’s applied on the
object.

userContext Type
Apex-defined
Description
An Apex ConnectApi.UserContextInputRepresentation record that contains
the user details to evaluate product eligibility and calculate prices.

Outputs

Output Details
apiStatus Type
Apex-defined
Description
An Apex runtime_industries_cpq.ApiStatusRepresentation record that
contains a status code and message.

286
Product Catalog Management Product Discovery Standard Invocable Actions

Output Details
contextId Type
string
Description
ID of the context that’s created by using the specified context definition.

correlationId Type
string
Description
ID to reference a series of related actions.

cursor Type
string
Description
Unique identifier that represents the position of the product from which the next set of results
are retrieved.

results Type
Apex-defined
Description
An Apex runtime_industries_cpq.ProductListRepresentation record that
contains the retrieved products.

userContext Type
Apex-defined
Description
An Apex ConnectApi.UserContextRepresentation record that includes the user
details.

Example
POST
This sample request is for the Get Products action.
{
"inputs": [
{
"additionalContextData": [
{
"nodeName": "Contract",
"nodeData": {
"id": "xxxxx231",

287
Product Catalog Management Product Discovery Standard Invocable Actions

"name": "Contract1"
}
},
{
"nodeName": "Lead",
"nodeData": {
"id": "lllllll31",
"name": "Lead1"
}
}
],
"additionalFields": {
"Product2": {
"fields": [
"CustomField1__c",
"StandardField1"
]
}
},
"correlationId": "9cbb9650-48c5-11ed-96d1-0afcf185843b",
"catalogId": "0ZSxx0000000001GAA",
"categoryId": "0ZGxx0000000004TAJ",
"currencyCode": "USD",
"priceBookId": "01sxx0000005puLAAQ",
"productClassificationId": "11BRO00000000222AA",
"limit": 10,
"cursor": "MTAwMDAwMDAwNg==",
"orderBy": [
"name:asc"
],
"userContext": {
"accountId": "001xx0000000001AAA"
},
"enableQualification": true,
"enablePricing": true,
"qualificationProcedure": "QualificationProcedure",
"pricingProcedure": "Preview",
"contextDefinition": "TestDefinition",
"contextMapping": "TestDefinitionNode",
"filter": {
"criteria": [
{
"property": "name",
"operator": "eq",
"value": "Catalog_Name_1"
}
]
},
"relatedObjectFilters": [
{
"objectName": "ProductSpecificationRecType",
"criteria": [
{
"property": "IsCommercial",

288
Product Catalog Management Product Discovery Standard Invocable Actions

"operator": "eq",
"value": true
}
]
}
]
}
]
}

This is the sample response for the Get Products action.


{
"apiStatus": {
"messages": [],
"statusCode": "FETCHED_DETAILS_SUCCESSFULLY"
},
"contextId": "0U3RM00000000SR0AY",
"correlationId": "9cbb9650-48c5-11ed-96d1-0afcf185843b",
"cursor": "MTAwMDAwMDAwNg==",
"result": [
{
"additionalFields": {
"CustomField1__c": "TextValue",
"CustomField2__c": "10",
"StandardField1": "false"
},
"description": "IPhone-13",
"id": "01txx0000006kYwAAI",
"name": "Sample product 1",
"prices": [
{
"price": 150,
"priceBookEntryId": "12Axx0000004DF7EAM",
"priceBookId": "01sxx0000005puLAAQ",
"pricingModel": {
"frequency": "Monthly",
"id": "12Bxx000000CiCDEA0",
"name": "IPhone-13",
"occurrence": 6,
"pricingModelType": "Recurring"
}
},
{
"price": 400,
"priceBookEntryId": "12Axx0000004DGjEAM",
"priceBookId": "01sxx0000005puLAAQ",
"pricingModel": {
"id": "12Bxx000000CiCCEA0",
"name": "IPhone-13",
"pricingModelType": "OneTime"
}
}
],
"qualificationContext": {

289
Product Catalog Management Product Discovery Standard Invocable Actions

"isQualified": true
}
},
{
"additionalFields": {
"CustomField1__c": "TextValue",
"CustomField2__c": "10",
"StandardField1": "false"
},
"description": "Sample product 2",
"name": "Sample product 2",
"id": "01txx0000006kYwAAI",
"prices": [],
"qualificationContext": {
"isQualified": false
}
},
{
"description": "Sample product 3",
"name": "Sample product 3",
"id": "01txx0000006kYwAAI",
"prices": [],
"qualificationContext": {
"isQualified": true
}
}
],
"userContext": {
"accountId": "001xx0000000001AAA"
}
}

Usage of an Apex-Defined Data Type in a Flow


To use an Apex-defined input parameter in a Flow, follow these guidelines.
Create an Apex class
Create an Apex class defining the input and output parameters. In the flow, include the Apex-defined input parameters for which
you want to add the details. In this example, we have created a class named ProductServiceAction that takes an object’s API name
and record ID as input, and returns the additional context data.
public class ProductServiceAction {
// Define input parameters
public class FlowInput{
@InvocableVariable(required=false)
public String objectApiName;

@InvocableVariable(required=false)
public String recordId;
}

// Define output parameters


public class FlowOutput{
@invocableVariable

290
Product Catalog Management Product Discovery Standard Invocable Actions

public runtime_industries_cpq.AdditionalContextData
additionalContextDataFinalOutput = new runtime_industries_cpq.AdditionalContextData();

// This method is invoked from a Flow


@InvocableMethod(label='Process Input' description='Creates the Array of
ContextDataInput for additional Context Data')
public static List<FlowOutput> processContextData(List<FlowInput> inputs){
String apiName;
String recId;
FlowOutput output = new FlowOutput();

// Capture input from the flow


for(FlowInput input: inputs){
apiName = input.objectApiName;
recId = input.recordId;
}
// Populate the ContextDataInput list to store additional context data
List<runtime_industries_cpq.ContextDataInput> listContextData = new
List<runtime_industries_cpq.ContextDataInput>();
runtime_industries_cpq.ContextDataInput cd1 = new
runtime_industries_cpq.ContextDataInput();
cd1.nodeName = apiName;
cd1.nodeData = new Map<String, Object>();
cd1.nodeData.put('id',recId);
listContextData.add(cd1);

output.additionalContextDataFinalOutput.additionalContextData = listContextData;

List<FlowOutput> flowOutputs = new List<FlowOutput>();


flowOutputs.add(output);

List<runtime_industries_cpq.RelatedObjectFilter> relatedObjectFilterList = new


List<runtime_industries_cpq.RelatedObjectFilter>();

runtime_industries_cpq.RelatedObjectFilter relatedObjectFilter = new


runtime_industries_cpq.RelatedObjectFilter();

relatedObjectFilter.objectName = 'ProductSpecificationRecType';
List<runtime_industries_cpq.FilterCriteriaInputRepresentation> criteriaList =
new List<runtime_industries_cpq.FilterCriteriaInputRepresentation>();
runtime_industries_cpq.FilterCriteriaInputRepresentation criteria = new
runtime_industries_cpq.FilterCriteriaInputRepresentation();
criteria.property = 'IsCommercial';
criteria.operator = 'eq';
criteria.value = 'true';
criteriaList.add(criteria);
relatedObjectFilter.criteria = criteriaList;

relatedObjectFilterList.add(relatedObjectFilter);
output.relatedObjectFilter.relatedObjectFilter = relatedObjectFilterList;

output.userContext.accountId = '001DU000001nx9BYAQ';

291
Product Catalog Management Product Discovery Standard Invocable Actions

return flowOutputs;

Create a Flow with the necessary variables and components


Create a flow that enables users to add a search term to find products. Add the ProductService action that you’ve created above by
using Apex. When a flow is invoked from a record, the flow sends the record's objectApiName and recordId to the Apex class, which
then generates the flow output. The flow passes the objectApiName and recordId of the record that the flow is invoked from to the
Apex class to generate the flow output. See Example of How to Create a Flow for Product Discovery.
Configure the action
Configure the action (for example, Get Products action) to add values for the Apex-defined input parameters. Use the output of the
created Apex class as the input of the Apex-defined parameter in the Get Products action, which users can use to get products.

Get Product Details Action


Get details such as attributes, hierarchy, and cardinality for the specified product.
This action is available in API version 62.0 and later.

Special Access Rules


The Get Product Details action is available in Enterprise, Unlimited, and Developer Editions where Product Discovery is enabled.

Supported REST HTTP Methods


URI
/services/data/v63.0/actions/standard/getProductDetails
Formats
JSON, XML
HTTP Methods
POST
Authentication
Authorization: Bearer token

Inputs

Input Details
additionalContextData Type

Apex-defined
Description
An array of Apex runtime_industries_cpq.AdditionalContextData records
that contain the additional nodes that are used along with the context definition nodes for data
hydration.

292
Product Catalog Management Product Discovery Standard Invocable Actions

Input Details
The maximum number of supported nodes is 10.

additionalFields Type
Apex-defined
Description
An Apex runtime_industries_cpq.AdditionalFields record that contains an
array of additional standard or custom fields to include in the response.
The supported objects are:
• Product2
• ProductAttributeDefinition—If the fields defined for the
ProductAttributeDefinition object aren’t available for the
ProductClassificationAttr object, then the API request fails.

catalogId Type
string
Description
Catalog ID that’s used to find and retrieve the products.

contextDefinition Type
string
Description
API name of the context definition for context creation.
If you don’t provide a value, the context selected on the Product Discovery Settings page from
Setup is used.

contextMapping Type
string
Description
API name of the context mapping for data hydration. The value of this parameter is used only if
it belongs to the specified context definition.

correlationId Type
string
Description
Currency code that’s used to calculate and show prices. Only the products with the currency
code matching the specified currency code are fetched.

currencyCode Type
string

293
Product Catalog Management Product Discovery Standard Invocable Actions

Input Details

Description
Currency code that’s used to calculate and show prices.

enablePricing Type
boolean
Description
Indicates whether the pricing procedure must run (true) or not (false).
The default value is true.
To use this parameter, you must enable the Pricing Procedure setting from Setup.

enableQualification Type
boolean
Description
Indicates whether the qualification procedure must run (true) or not (false).
The default value is true.
To use this parameter, you must enable the Qualification Procedure setting from Setup.

priceBookId Type
string
Description
ID of the pricebook from which you want to retrieve the pricing details.

pricingProcedure Type
string
Description
API name of the pricing procedure to calculate product prices.
If you don’t specify a value, the pricing procedure selected on the Product Discovery Settings
page from Setup is used.

productId Type
string
Description
Required.
ID of the product to get the details for.

productSellingModelId Type
string

294
Product Catalog Management Product Discovery Standard Invocable Actions

Input Details

Description
ID of the product selling model.

qualificationProcedure Type

string
Description
API name of the qualification procedure to evaluate product eligibility.
If you don’t specify a value, the qualification procedure selected on the Product Discovery Settings
page from Setup is used.

userContext Type
Apex-defined
Description
An Apex ConnectApi.UserContextInputRepresentation record that contains
the user details to evaluate product eligibility and calculate prices.

Outputs

Output Details
apiStatus Type
Apex-defined
Description
An Apex runtime_industries_cpq.ApiStatusRepresentation record that
contains a status code and message.

contextId Type
string
Description
ID of the context that’s created by using the specified context definition.

correlationId Type
string
Description
ID to reference a series of related actions.

results Type
Apex-defined

295
Product Catalog Management Product Discovery Standard Invocable Actions

Output Details

Description
An Apex runtime_industries_cpq.ProductDetailsRepresentation record
that contains the product details.

userContext Type
Apex-defined
Description
An Apex ConnectApi.UserContextRepresentation record that contains the user
details.

Example
POST
This sample request is for the Get Product Details action.
{
"inputs": [{
"additionalContextData": [
{
"nodeName": "Contract",
"nodeData": {
"id": "xxxxx231",
"name": "Contract1"
}
},
{
"nodeName": "Lead",
"nodeData": {
"id": "lllllll31",
"name": "Lead1"
}
}
],
"additionalFields": {
"Product2": {
"fields": [
"CustomField1__c",
"StandardField1"
]
}
},
"correlationId": "9cbb9650-48c5-11ed-96d1-0afcf185843b",
"catalogId": "0ZSxx0000000001GAA",
"currencyCode": "USD",
"priceBookId": "01sxx0000005puLAAQ",
"productId": "01txx0000006j08AAA",
"productSellingModelId": "0jPxx000000004rEAA",
"userContext": {

296
Product Catalog Management Product Discovery Standard Invocable Actions

"accountId": "001xx0000000001AAA"
},
"enableQualification": true,
"enablePricing": true,
"qualificationProcedure": "QualificationProcedure",
"pricingProcedure": "Preview",
"contextDefinition": "TestDefinition",
"contextMapping": "TestDefinitionNode"
}]
}

This is the sample response for the Get Product Details action.
{
"apiStatus": {
"messages": [],
"statusCode": "FETCHED_DETAILS_SUCCESSFULLY"
},
"contextId": "0U3RM00000000SR0AY",
"correlationId": "9cbb9650-48c5-11ed-96d1-0afcf185843b",
"result": [
{
"additionalFields": {
"CustomField1__c": "TextValue",
"CustomField2__c": "10",
"StandardField1": "false"
},
"description": "IPhone-13",
"id": "01txx0000006kYwAAI",
"name": "Sample product 1",
"prices": [
{
"price": 150,
"priceBookEntryId": "12Axx0000004DF7EAM",
"priceBookId": "01sxx0000005puLAAQ",
"pricingModel": {
"frequency": "Monthly",
"id": "12Bxx000000CiCDEA0",
"name": "IPhone-13",
"occurrence": 6,
"pricingModelType": "Recurring"
}
},
{
"price": 400,
"priceBookEntryId": "12Axx0000004DGjEAM",
"priceBookId": "01sxx0000005puLAAQ",
"pricingModel": {
"id": "12Bxx000000CiCCEA0",
"name": "IPhone-13",
"pricingModelType": "OneTime"
}
}
],
"qualificationContext": {

297
Product Catalog Management Product Discovery Standard Invocable Actions

"isQualified": true
}
},
{
"additionalFields": {
"CustomField1__c": "TextValue",
"CustomField2__c": "10",
"StandardField1": "false"
},
"description": "Sample product 2",
"name": "Sample product 2",
"id": "01txx0000006kYwAAI",
"prices": [],
"qualificationContext": {
"isQualified": false
}
},
{
"description": "Sample product 3",
"name": "Sample product 3",
"id": "01txx0000006kYwAAI",
"prices": [],
"qualificationContext": {
"isQualified": true
}
}
],
"userContext": {
"accountId": "001xx0000000001AAA"
}
}

Usage of an Apex-Defined Data Type in a Flow


To use an Apex-defined input parameter in a flow, follow these guidelines.
Create an Apex Class
Create an Apex class defining the input and output parameters. In the flow, include the Apex-defined input parameters for which
you want to add the details. In this example, we have created a class named ProductServiceAction that takes an object’s API name
and record ID as input, and returns the additional context data.
public class ProductServiceAction {
// Define input parameters
public class FlowInput{
@InvocableVariable(required=false)
public String objectApiName;

@InvocableVariable(required=false)
public String recordId;
}

// Define output parameters


public class FlowOutput{
@invocableVariable

298
Product Catalog Management Product Discovery Standard Invocable Actions

public runtime_industries_cpq.AdditionalContextData
additionalContextDataFinalOutput = new runtime_industries_cpq.AdditionalContextData();

// This method is invoked from a Flow


@InvocableMethod(label='Process Input' description='Creates the Array of
ContextDataInput for additional Context Data')
public static List<FlowOutput> processContextData(List<FlowInput> inputs){
String apiName;
String recId;
FlowOutput output = new FlowOutput();

// Capture input from the flow


for(FlowInput input: inputs){
apiName = input.objectApiName;
recId = input.recordId;
}
// Populate the ContextDataInput list to store additional context data
List<runtime_industries_cpq.ContextDataInput> listContextData = new
List<runtime_industries_cpq.ContextDataInput>();
runtime_industries_cpq.ContextDataInput cd1 = new
runtime_industries_cpq.ContextDataInput();
cd1.nodeName = apiName;
cd1.nodeData = new Map<String, Object>();
cd1.nodeData.put('id',recId);
listContextData.add(cd1);

output.additionalContextDataFinalOutput.additionalContextData = listContextData;

List<FlowOutput> flowOutputs = new List<FlowOutput>();


flowOutputs.add(output);

List<runtime_industries_cpq.RelatedObjectFilter> relatedObjectFilterList = new


List<runtime_industries_cpq.RelatedObjectFilter>();

runtime_industries_cpq.RelatedObjectFilter relatedObjectFilter = new


runtime_industries_cpq.RelatedObjectFilter();

relatedObjectFilter.objectName = 'ProductSpecificationRecType';
List<runtime_industries_cpq.FilterCriteriaInputRepresentation> criteriaList =
new List<runtime_industries_cpq.FilterCriteriaInputRepresentation>();
runtime_industries_cpq.FilterCriteriaInputRepresentation criteria = new
runtime_industries_cpq.FilterCriteriaInputRepresentation();
criteria.property = 'IsCommercial';
criteria.operator = 'eq';
criteria.value = 'true';
criteriaList.add(criteria);
relatedObjectFilter.criteria = criteriaList;

relatedObjectFilterList.add(relatedObjectFilter);
output.relatedObjectFilter.relatedObjectFilter = relatedObjectFilterList;

output.userContext.accountId = '001DU000001nx9BYAQ';

299
Product Catalog Management Product Discovery Metadata API Types

return flowOutputs;

Create a Flow with the Necessary Variables and Components


Create a flow that enables users to add a search term to find products. Add the ProductService action that you’ve created above by
using Apex. When a flow is invoked from a record, the flow sends the record's objectApiName and recordId to the Apex class, which
then generates the flow output. The flow passes the objectApiName and recordId of the record that the flow is invoked from to the
Apex class to generate the flow output. See Example of How to Create a Flow for Product Discovery.
Configure the action
Configure the action (for example, Get Product Details action) to add values for the Apex-defined input parameters. Use the output
of the created Apex class as the input of the Apex-defined parameter in the Get Product Details action, which users can use to get
the product details.

Product Discovery Metadata API Types


Metadata API enables you to access some types and feature settings that you can customize in the user interface.

Flow for Product Discovery


Represents the metadata associated with a flow. With Flow, you can create an application that takes users through a series of pages
to query and update the records in the database. You can also run logic and provide branching capability based on user input to
build dynamic applications.
ProductDiscoverySettings
Represents the settings for Product Discovery.

Flow for Product Discovery


Represents the metadata associated with a flow. With Flow, you can create an application that takes users through a series of pages to
query and update the records in the database. You can also run logic and provide branching capability based on user input to build
dynamic applications.

FlowActionCall
Product Discovery exposes additional actionType values for the FlowActionCall metadata type.

Field Name Field Type Description


actionType InvocableActionType Required.
(enumeration of
type string) The action type. Additional valid values for Product Discovery are:
• findProducts—Search for the products from a catalog,
category, or subcategory by using the specified search term.
• GetProducts—Get products from the specified catalog,
category, or subcategory, including product qualification and pricing
details.

300
Product Catalog Management Product Discovery Metadata API Types

Field Name Field Type Description


• GetProductDetails—Get details such as attributes, hierarchy,
and cardinality for the specified product.

ProductDiscoverySettings
Represents the settings for Product Discovery.

Parent Type and Manifest Access


This type extends the Metadata metadata type and inherits its fullName field.
In the package manifest, all the settings metadata types for the org are accessed using the “Settings” name. See Settings for more details.

File Suffix and Directory Location


ProductDiscoverySettings values are stored in the ProductDiscoverySettings.settings file in the settings
folder. The .settings files are different from other named components, because there is only one settings file for each settings
component.

Version
ProductDiscoverySettings components are available in API version 62.0 and later.

Fields

Field Name Description


enableGuidedSelling Field Type
boolean
Description
Indicates whether guided product selection is enabled (true) or not (false). Using
guided product selection, you can manage dynamic forms that assess user requirements
and show relevant products. The default value is false. Available in API version 63.0
and later.

discoverProductsFlowNameOrgValue Field Type


string
Description
Name of the custom flow for browsing and adding products. If this field isn’t specified,
the Discover Products flow is used for browsing and adding products. Available in API
version 63.0 and later.

prodDiscBrowseContextDefOrgValue Field Type


string

301
Product Catalog Management Product Discovery Metadata API Types

Field Name Description

Description
Context definition that gets updated based on the user-selected options and provides
summary data.

prodDiscPricingEnabledOrgValue Field Type


string
Description
Indicates whether pricing is enabled (true) or not (false). The default value is
false.

prodDiscProcedureOrgValue Field Type


string
Description
Pricing procedure that calculates the list price.

prodDiscQualEnabledOrgValue Field Type


string
Description
Indicates whether product qualification is enabled (true) or not (false). The default
value is false.

prodDiscQualificationOrgValue Field Type


string
Description
Qualification procedure that determines product eligibility.

Declarative Metadata Sample Definition


The following is an example of a ProductDiscoverySettings component.
<ProductDiscoverySettings xmlns="http://soap.sforce.com/2006/04/metadata">
<enableGuidedSelling>true</enableGuidedSelling>

<discoverProductsFlowNameOrgValue>revenue_products__DiscoverProducts</discoverProductsFlowNameOrgValue>

<prodDiscPricingEnabledOrgValue>true</prodDiscPricingEnabledOrgValue>
<prodDiscQualEnabledOrgValue>true</prodDiscQualEnabledOrgValue>
<prodDiscProcedureOrgValue>PricingProcedure</prodDiscProcedureOrgValue>
<prodDiscQualificationOrgValue>QualificationProcedure</prodDiscQualificationOrgValue>

<prodDiscBrowseContextDefOrgValue>BrowseContextDefinition</prodDiscBrowseContextDefOrgValue>
</ProductDiscoverySettings>

302
Product Catalog Management Product Discovery Metadata API Types

The following is an example package.xml that references the previous definition.


<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<types>
<members>ProductDiscovery</members>
<name>Settings</name>
</types>
<version>63.0</version>
</Package>

Wildcard Support in the Manifest File


The wildcard character * (asterisk) in the package.xml manifest file doesn’t apply to metadata types for feature settings. The wildcard
applies only when retrieving all settings, not for an individual setting. For details, see Settings. For information about using the manifest
file, see Deploying and Retrieving Metadata with the Zip File.

303
CHAPTER 3 Salesforce Pricing
In this chapter ... Create customized price adjustment methods and pricing
EDITIONS
procedures. Determine the discounts to apply to your products
• Salesforce Pricing and services by using price adjustment methods. Get visibility into Available in: Lightning
Standard Objects the pricing calculation process by using pricing procedures. Experience
• Salesforce Pricing
Business APIs Available in: Enterprise,
SEE ALSO: Unlimited, and Developer
• Salesforce Pricing
Standard Invocable
Salesforce Help: Permissions for Salesforce Pricing Editions of Revenue Cloud
Actions where Salesforce Pricing is
enabled
• Salesforce Pricing
Metadata API Types
• Salesforce Pricing
Tooling API Objects

304
Salesforce Pricing Salesforce Pricing Standard Objects

Salesforce Pricing Standard Objects


The Salesforce Pricing data model provides objects and fields to manage pricing processes, such as product management and calculation
and application of discounts.

AttributeAdjustmentCondition
Represents the condition applied to an attribute that determines the price of a product or service being sold. This object is available
in API version 60.0 and later.
AttributeBasedAdjRule
Represents the attribute conditions in a rule associated with the attribute based adjustment made for a product or service being
sold. This object is available in API version 60.0 and later.
AttributeBasedAdjustment
Represents the association between the product selling model and the price adjustment for product or service being sold based on
its attributes. This object stores information about the attributes that define the price of the product or service, the discounts applied,
along with its value for a given date range. This object is available in API version 60.0 and later.
AttributeDefinition
Represents a product, asset, or object attribute, for example, a hardware specification or software detail. This object is available in
API version 60.0 and later.
BundleBasedAdjustment
Represents the association between the product selling model and the price adjustment for a product or service being sold as a
bundle. This object stores information of the product or service's price, the discounts applied, along with its value for a given date
range. This object is available in API version 60.0 and later.
CostBook
Represents the cost book that contains multiple cost book entries. This object is available in API version 61.0 and later.
ContractItemPrice
Represents the price of a product on the contract. This object is available in API version 61.0 and later.
CostBookEntry
Represents the total cost of a product or service that’s determined based on various factors that affect a product's price. For example,
when a product is manufactured, the weight of the raw material can be a cost factor based on the amount of material required and
its shipping cost. This object is available in API version 61.0 and later.
PriceAdjustmentSchedule
Represents a series of tiered discounts based on the number of items purchased. This object is available in API version 60.0 and later.
PriceAdjustmentTier
Represents a discount tier in a price adjustment schedule. This object is available in API version 60.0 and later.
PriceBook2
Represents a price book that contains the list of products that your org sells. This object is available in API version 60.0 and later.
PriceBookEntry
Represents a product entry (an association between a Pricebook2 and Product2) in a price book. This object is available in API version
60.0 and later.
PriceBookEntryDerivedPrice
Represents the price of a product that’s derived from another source such as a product or an asset. This object is available in API
version 61.0 and later.

305
Salesforce Pricing AttributeAdjustmentCondition

PricingAdjBatchJob
Represents the collective update of multiple records on their prices and other adjustments. This object is available in API version
62.0 and later.
PricingAdjBatchJobLog
Represents the report that contains a list of failed adjustment requests along with an error message that describes the reason for
failure. This object is available in API version 62.0 and later.
PricingAPIExecution
Represents the pricing resolution for an pricing element determined using strategy name and formula. This object is available in API
version 63.0 and later.
PricingProcedureResolution
Represents a selection for a pricing procedure to execute a pricing process from a list of pricing procedures available. This object is
available in API version 60.0 and later.
PricingProcessExecution
Represents a record generated during the execution of a discovery or pricing procedure. Multiple procedures may be performed
within a single API call, with each recorded in a Pricing API Execution record. This object is available in API version 63.0 and later.
ProductPriceHistoryLog
Stores historical pricing data based on the product's price range. This object is available in API version 62.0 and later.
ProductPriceRange
Represents the price range of a product determined by using a product selling model that’s stored in the relevant price book. This
object is available in API version 62.0 and later.
ProductSellingModel
Defines one method by which a product can be sold; for example, as a one-time sale, an evergreen subscription, or a termed
subscription. If the product is sold on subscription, this object defines the subscription’s term. A product can have multiple product
selling models. This object is available in API version 60.0 and later.
ProductSellingModelDataTranslation
Represents the translated values of the data stored within the ProductSellingModel record’s fields. This object is available in API
version 61.0 and later.
ProductSellingModelOption
A junction object between Product Selling Model and Product2. This object is available in API version 60.0 and later.

SEE ALSO:
Object Reference for the Salesforce Platform: Overview of Salesforce Objects and Fields
SOAP API Developer Guide: Introduction to SOAP API

AttributeAdjustmentCondition
Represents the condition applied to an attribute that determines the price of a product or service being sold. This object is available in
API version 60.0 and later.

Supported Calls
create(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(), retrieve(),
search(), update(), upsert()

306
Salesforce Pricing AttributeAdjustmentCondition

Fields
Field Details
AttributeBasedAdjRuleId Type
reference
Properties
Create, Filter, Group, Sort
Description
Specifies the attribute adjustment rule record for which the condition is to be applied.
This field is a relationship field.
Relationship Name
AttributeBasedAdjRule
Relationship Type
Lookup
Refers To
AttributeBasedAdjRule

AttributeDefinitionId Type
reference
Properties
Create, Filter, Group, Sort, Update
Description
Specifies the attribute definition record for which the condition is to be applied.
This field is a relationship field.
Relationship Name
AttributeDefinition
Relationship Type
Lookup
Refers To
AttributeDefinition

BooleanValue Type
picklist
Properties
Create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
Specifies the boolean value of the operator.
Possible values are:
• False
• True

307
Salesforce Pricing AttributeAdjustmentCondition

Field Details
DateTimeValue Type
dateTime
Properties
Create, Filter, Nillable, Sort, Update
Description
The date time value of the attribute.

DateValue Type
date
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The date value of the attribute.

DoubleValue Type
double
Properties
Create, Filter, Nillable, Sort, Update
Description
The double value of the attribute.

IntegerValue Type
int
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The integer value of the attribute.

LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The timestamp for when the current user last referred to this record.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The timestamp for when the current user last viewed a record related to this record.

308
Salesforce Pricing AttributeAdjustmentCondition

Field Details
Name Type
string
Properties
Autonumber, Defaulted on create, Filter, idLookup, Sort
Description
Name of the attribute adjustment condition.

Operator Type
picklist
Properties
Create, Defaulted on create, Filter, Group, Restricted picklist, Sort, Update
Description
Operator used by the attribute.
Possible values are:
• doesnotexistin—Does Not Exist In
• equals—Equals
• existsin—Exists In
• greaterorequal—Greater Or Equal
• greaterthan—Greater Than
• lessorequal—Less Or Equal
• lessthan—Less Than
• matches—Matches
• notequals—Not Equals
The default value is equals.

ProductId Type
reference
Properties
Create, Filter, Group, Sort, Update
Description
The ID of the product associated with the attribute adjustment condition.
This field is a relationship field.
Relationship Name
Product
Relationship Type
Lookup
Refers To
Product2

309
Salesforce Pricing AttributeBasedAdjRule

Field Details
StringValue Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The string value of the attribute.

UsageType Type
picklist
Properties
Filter, Group, Restricted picklist, Sort
Description
The type of record where the attribute adjustment condition is used.
Possible values are:
• Pricing
• Rating

Associated Objects
This object has these associated objects. If the API version isn’t specified, they’re available in the same API versions as this object. Otherwise,
they’re available in the specified API version and later.
AttributeAdjustmentConditionFeed on page 1661
Feed tracking is available for the object.
AttributeAdjustmentConditionHistory on page 1668
History is available for tracked fields of the object.

AttributeBasedAdjRule
Represents the attribute conditions in a rule associated with the attribute based adjustment made for a product or service being sold.
This object is available in API version 60.0 and later.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), search(), undelete(), update(), upsert()

310
Salesforce Pricing AttributeBasedAdjRule

Fields
Field Details
AttributeCount Type
int
Properties
Filter, Group, Nillable, Sort
Description
The number of attributes.

LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The date the attribute based adjustment rule was last referenced.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The timestamp for when the current user last viewed a record related to this record.

Name Type
string
Properties
Create, Filter, Group, idLookup, Sort, Update
Description
Name of the attribute based adjustment rule.

OwnerId Type
reference
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
ID of the owner of the attribute based adjustment rule.
This field is a polymorphic relationship field.
Relationship Name
Owner
Relationship Type
Lookup

311
Salesforce Pricing AttributeBasedAdjustment

Field Details

Refers To
Group, User

UsageType Type
picklist
Properties
Create, Filter, Group, Restricted picklist, Sort, Update
Description
The type of record where the attribute-based adjustment rule is used.
Possible values are:
• Pricing
• Rating

Associated Objects
This object has these associated objects. If the API version isn’t specified, they’re available in the same API versions as this object. Otherwise,
they’re available in the specified API version and later.
AttributeBasedAdjRuleFeed on page 1661
Feed tracking is available for the object.
AttributeBasedAdjRuleHistory on page 1668
History is available for tracked fields of the object.
AttributeBasedAdjRuleShare on page 1672
Sharing is available for the object.

AttributeBasedAdjustment
Represents the association between the product selling model and the price adjustment for product or service being sold based on its
attributes. This object stores information about the attributes that define the price of the product or service, the discounts applied, along
with its value for a given date range. This object is available in API version 60.0 and later.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), search(), undelete(), update(), upsert()

Fields
Field Details
AdjustmentType Type
picklist

312
Salesforce Pricing AttributeBasedAdjustment

Field Details

Properties
Create, Filter, Group, Restricted picklist, Sort, Update
Description
The type of pricing adjustment being made.
Possible values are:
• Amount
• Override
• Percentage

AdjustmentValue Type
double
Properties
Create, Filter, Sort, Update
Description
The value of the adjustment being made based on the adjustment type.

AttributeBasedAdjRuleId Type
reference
Properties
Create, Filter, Group, Sort
Description
The attribute based adjustment rule associated with this attribute based adjustment record.
This field is a relationship field.
Relationship Name
AttributeBasedAdjRule
Relationship Type
Lookup
Refers To
AttributeBasedAdjRule

AttributeCount Type
int
Properties
Filter, Group, Nillable, Sort
Description
The number of attributes.

CurrencyIsoCode Type
picklist
Properties
Create, Defaulted on create, Filter, Group, Nillable, Restricted picklist, Sort, Update

313
Salesforce Pricing AttributeBasedAdjustment

Field Details

Description
ISO code of the currency. Must be one of the valid alphabetic, three-letter currency ISO codes
defined by the ISO 4217 standard, such as USD, GBP, or JPY. Must be unique within your
organization.
Possible values are:
• BHD—Bahraini Dinar
• JPY—Japanese Yen
• USD—U.S. Dollar
The default value is USD.

EffectiveFrom Type
dateTime
Properties
Create, Filter, Sort, Update
Description
The date and time when the price list entry comes into effect.

EffectiveTo Type
dateTime
Properties
Create, Filter, Nillable, Sort, Update
Description
The date and time till when the price list entry remains effective.

LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The date the attribute based adjustment was last referenced.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The timestamp for when the current user last viewed a record related to this record.

Name Type
string

314
Salesforce Pricing AttributeBasedAdjustment

Field Details

Properties
Autonumber, Defaulted on create, Filter, idLookup, Sort
Description
Name of the attribute based adjustment.

PriceAdjustmentScheduleId Type
reference
Properties
Create, Filter, Group, Sort
Description
The price adjustment schedule associated with the attribute based adjustment record.
This field is a relationship field.
Relationship Name
PriceAdjustmentSchedule
Relationship Type
Lookup
Refers To
PriceAdjustmentSchedule

PricingTerm Type
int
Properties
Filter, Group, Nillable, Sort
Description
The number of pricing term units in the pricing term. Used with PricingTermUnit to define
the length of the pricing term. For example, if PricingTermUnit is Months and this field is 1,
the subscription is priced monthly.If the selling model is one-time, this field must be null.

PricingTermUnit Type
picklist
Properties
Filter, Group, Nillable, Restricted picklist, Sort
Description
The unit of time used to define the pricing term. Used with PricingTerm to define the length
of the pricing term. For example, if this field is Months and PricingTerm is 1, the subscription
is priced monthly. If the selling model is one-time, this field must be null.
Possible values are:
• Annual—Years
• Months
• Quarterly
• Semi-Annual

315
Salesforce Pricing AttributeBasedAdjustment

Field Details
ProductId Type
reference
Properties
Create, Filter, Group, Sort
Description
The ID of the product associated with the product attribute set.
This field is a relationship field.
Relationship Name
Product
Relationship Type
Lookup
Refers To
Product2

ProductSellingModelId Type
reference
Properties
Create, Filter, Group, Nillable, Sort
Description
The ID of the ProductSellingModel record associated with this attribute based adjustment
record.
This field is a relationship field.
Relationship Name
ProductSellingModel
Relationship Type
Lookup
Refers To
ProductSellingModel

SellingModelType Type
picklist
Properties
Defaulted on create, Filter, Group, Nillable, Restricted picklist, Sort
Description
Indicates whether the product is sold as a one-time sale, an evergreen subscription, or a
subscription with a defined term.
Possible values are:
• Evergreen
• OneTime—One Time
• TermDefined—Term-Defined

316
Salesforce Pricing AttributeDefinition

Field Details
The default value is OneTime.

Weight__c Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
Weight value of the attribute.

WiFi_Standard__c Type
picklist
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
WiFi value of the attribute.
Possible values are:
• Checkbox
• Currency
• Date
• Datetime
• Multipicklist
• Number
• Percent
• Picklist
• Text

Associated Objects
This object has the following associated objects. If the API version isn’t specified, they’re available in the same API versions as this object.
Otherwise, they’re available in the specified API version and later.
AttributeBasedAdjustmentFeed on page 1661
Feed tracking is available for the object.
AttributeBasedAdjustmentHistory on page 1668
History is available for tracked fields of the object.

AttributeDefinition
Represents a product, asset, or object attribute, for example, a hardware specification or software detail. This object is available in API
version 60.0 and later.

317
Salesforce Pricing AttributeDefinition

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), search(), undelete(), update(), upsert()

Fields
Field Details
Code Type
string
Properties
Create, Filter, Group, idLookup, Nillable, Sort, Update
Description
Code for the attribute definition. This field is unique within your organization.

CurrencyIsoCode Type
picklist
Properties
Create, Defaulted on create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
Available only if the multicurrency feature is enabled. Contains the ISO code for any currency
allowed by the organization.
Possible values are:
• BHD—Bahraini Dinar
• JPY—Japanese Yen
• USD—U.S. Dollar
The default value is USD.

DataType Type
picklist
Properties
Create, Filter, Group, Restricted picklist, Sort
Description
The data type of the attribute definition.
Possible values are:
• Checkbox
• Currency
• Date
• Datetime
• Multipicklist
• Number

318
Salesforce Pricing AttributeDefinition

Field Details
• Percent
• Picklist
• Text

DefaultHelpText Type
textarea
Properties
Create, Nillable, Update
Description
The default help text for this attribute.

DefaultValue Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The default value for this attribute.

Description Type
textarea
Properties
Create, Nillable, Update
Description
Description of this attribute.

DeveloperName Type
string
Properties
Create, Filter, Group, Sort
Description
The unique name of the attribute definition record.
This name must begin with a letter and use only alphanumeric characters and underscores.
It can't include spaces, end with an underscore, or have two consecutive underscores.

IsActive Type
boolean
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
Indicates that the attribute definition is active. Active attributes definitions can be selected
for products.

319
Salesforce Pricing AttributeDefinition

Field Details
The default value is false.

IsRequired Type
boolean
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
Indicates whether the attribute definition is required for a product.
The default value is false.

Label Type
string
Properties
Create, Filter, Group, Sort, Update
Description
The label for the attribute.

LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The date the attribute definition was last referenced.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The date the attribute definition was last viewed.

Name Type
string
Properties
Create, Filter, Group, idLookup, Sort, Update
Description
The name of the attribute.

OwnerId Type
reference
Properties
Create, Defaulted on create, Filter, Group, Sort, Update

320
Salesforce Pricing AttributeDefinition

Field Details

Description
The owner of the attribute definition.
This field is a polymorphic relationship field.
Relationship Name
Owner
Relationship Type
Lookup
Refers To
Group, User

PicklistId Type
reference
Properties
Create, Filter, Group, Nillable, Sort
Description
The ID of the attribute picklist with the valid values for this attribute.
This field is a relationship field.
Relationship Name
Picklist
Relationship Type
Lookup
Refers To
AttributePicklist

SourceSystemIdentifier Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The identifier of the attribute definition in an external system.

ValueDescription Type
textarea
Properties
Create, Nillable, Update
Description
The default value description for this attribute.

321
Salesforce Pricing BundleBasedAdjustment

Associated Objects
This object has the following associated objects. If the API version isn’t specified, they’re available in the same API versions as this object.
Otherwise, they’re available in the specified API version and later.
AttributeDefinitionFeed on page 1661
Feed tracking is available for the object.
AttributeDefinitionHistory on page 1668
History is available for tracked fields of the object.
AttributeDefinitionShare on page 1672
Sharing is available for the object.

BundleBasedAdjustment
Represents the association between the product selling model and the price adjustment for a product or service being sold as a bundle.
This object stores information of the product or service's price, the discounts applied, along with its value for a given date range. This
object is available in API version 60.0 and later.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), search(), undelete(), update(), upsert()

Fields
Field Details
AdjustmentType Type
picklist
Properties
Create, Filter, Group, Restricted picklist, Sort, Update
Description
The type of pricing adjustment being made.
Possible values are:
• Amount
• Override
• Percentage

AdjustmentValue Type
double
Properties
Create, Filter, Sort, Update
Description
The type of pricing adjustment being made.

322
Salesforce Pricing BundleBasedAdjustment

Field Details
CurrencyIsoCode Type
picklist
Properties
Create, Defaulted on create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
ISO code of the currency. Must be one of the valid alphabetic, three-letter currency ISO codes
defined by the ISO 4217 standard, such as USD, GBP, or JPY. Must be unique within your
organization.
Possible values are:
• BHD—Bahraini Dinar
• JPY—Japanese Yen
• USD—U.S. Dollar
The default value is USD.

EffectiveFrom Type
dateTime
Properties
Create, Filter, Sort, Update
Description
The date and time when the bundle based adjustment comes into effect.

EffectiveTo Type
dateTime
Properties
Create, Filter, Nillable, Sort, Update
Description
The date and time till when the bundle based adjustment remains effective.

LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The date the bundle based adjustment was last referenced.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The date the bundle based adjustment was last viewed.

323
Salesforce Pricing BundleBasedAdjustment

Field Details
Name Type
string
Properties
Autonumber, Defaulted on create, Filter, idLookup, Sort
Description
The name of the bundle based adjustment record.

ParentProductId Type
reference
Properties
Create, Filter, Group, Sort
Description
Represents the immediate parent in the product bundle that the price is configured for.
This field is a relationship field.
Relationship Name
ParentProduct
Relationship Type
Lookup
Refers To
Product2

ParentProductSellingModelId Type
reference
Properties
Create, Filter, Group, Nillable, Sort
Description
The immediate parent node of a product selling model when nodes are represented in a
hierarchial structure.
This field is a relationship field.
Relationship Name
ParentProductSellingModel
Relationship Type
Lookup
Refers To
ProductSellingModel

PriceAdjustmentScheduleId Type
reference
Properties
Create, Filter, Group, Sort

324
Salesforce Pricing BundleBasedAdjustment

Field Details

Description
The price adjustment schedule associated with the bundle based adjustment record.
This field is a relationship field.
Relationship Name
PriceAdjustmentSchedule
Relationship Type
Lookup
Refers To
PriceAdjustmentSchedule

PricingTerm Type
int
Properties
Filter, Group, Nillable, Sort
Description
The number of pricing term units in the pricing term. Used with PricingTermUnit to define
the length of the pricing term. For example, if PricingTermUnit is Months and this field is 1,
the subscription is priced monthly.If the selling model is one-time, this field must be null.

PricingTermUnit Type
picklist
Properties
Filter, Group, Nillable, Restricted picklist, Sort
Description
The unit of time used to define the pricing term. Used with PricingTerm to define the length
of the pricing term. For example, if this field is Months and PricingTerm is 1, the subscription
is priced monthly. If the selling model is one-time, this field must be null.
Possible values are:
• Annual—Years
• Months
• Quarterly
• Semi-Annual

ProductId Type
reference
Properties
Create, Filter, Group, Sort
Description
The ID of the product associated with the product bundle set.
This field is a relationship field.

325
Salesforce Pricing BundleBasedAdjustment

Field Details

Relationship Name
Product
Relationship Type
Lookup
Refers To
Product2

ProductSellingModelId Type
reference
Properties
Create, Filter, Group, Nillable, Sort
Description
The ID of the ProductSellingModel record associated with this bundle based adjustment
record.
This field is a relationship field.
Relationship Name
ProductSellingModel
Relationship Type
Lookup
Refers To
ProductSellingModel

RootBundleId Type
reference
Properties
Create, Filter, Group, Sort
Description
Represents the structural root product in a product's bundle that the price is configured for.
This field is a relationship field.
Relationship Name
RootBundle
Relationship Type
Lookup
Refers To
Product2

RootProductSellingModelId Type
reference
Properties
Create, Filter, Group, Nillable, Sort

326
Salesforce Pricing CostBook

Field Details

Description
The root product selling model. The primary or base product selling method.
This field is a relationship field.
Relationship Name
RootProductSellingModel
Relationship Type
Lookup
Refers To
ProductSellingModel

SellingModelType Type
picklist
Properties
Defaulted on create, Filter, Group, Nillable, Restricted picklist, Sort
Description
Indicates whether the product is sold as a one-time sale, an evergreen subscription, or a
subscription with a defined term.
Possible values are:
• Evergreen
• OneTime—One Time
• TermDefined—Term-Defined
The default value is OneTime.

Associated Objects
This object has the following associated objects. If the API version isn’t specified, they’re available in the same API versions as this object.
Otherwise, they’re available in the specified API version and later.
BundleBasedAdjustmentFeed on page 1661
Feed tracking is available for the object.
BundleBasedAdjustmentHistory on page 1668
History is available for tracked fields of the object.

CostBook
Represents the cost book that contains multiple cost book entries. This object is available in API version 61.0 and later.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), search(), undelete(), update(), upsert()

327
Salesforce Pricing CostBook

Fields
Field Details
EffectiveFrom Type
dateTime
Properties
Create, Filter, Sort, Update
Description
Date and time when the cost book comes into effect.

EffectiveTo Type
dateTime
Properties
Create, Filter, Nillable, Sort, Update
Description
Date and time till when the cost book is no longer in effect.

IsDefault Type
boolean
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
Indicates whether the cost book is default (true) or not (false).
The default value is true.

LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
Timestamp for when the current user last referred to this record.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
Timestamp for when the current user last viewed a record related to this record.

Name Type
string

328
Salesforce Pricing ContractItemPrice

Field Details

Properties
Create, Filter, Group, idLookup, Sort, Update
Description
Name of the cost book.

OwnerId Type
reference
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
ID of the user who created the record.
This field is a polymorphic relationship field.
Relationship Name
Owner
Relationship Type
Lookup
Refers To
Group, User

Associated Objects
This object has the following associated objects. If the API version isn’t specified, they’re available in the same API versions as this object.
Otherwise, they’re available in the specified API version and later.
CostBookFeed on page 1661
Feed tracking is available for the object.
CostBookHistory on page 1668
History is available for tracked fields of the object.
CostBookShare on page 1672
Sharing is available for the object.

ContractItemPrice
Represents the price of a product on the contract. This object is available in API version 61.0 and later.

Important: Where possible, we changed noninclusive terms to align with our company value of Equality. We maintained certain
terms to avoid any effect on customer implementations.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), undelete(), update(), upsert()

329
Salesforce Pricing ContractItemPrice

Fields
Field Details
ContractId Type
reference
Properties
Create, Filter, Group, Sort
Description
The contract record associated with this contract item price record.
This field is a relationship field.
Relationship Name
Contract
Relationship Type
Master-detail
Refers To
Contract (the master object)

CurrencyIsoCode Type
picklist
Properties
Defaulted on create, Filter, Group, Restricted picklist, Sort
Description
Contains the ISO code for any currency allowed by the organization. Available only if the
multicurrency feature is enabled.
Valid value is:
• USD—U.S. Dollar
The default value is USD.

DiscountType Type
picklist
Properties
Create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
The unit of the discount.
Valid values are:
• AdjustmentAmount
• AdjustmentPercentage

DiscountValue Type
double

330
Salesforce Pricing ContractItemPrice

Field Details

Properties
Create, Filter, Nillable, Sort, Update
Description
The value of the discount.

EndDate Type
dateTime
Properties
Create, Filter, Nillable, Sort, Update
Description
The date and time till when the contract item price is no longer in effect.

ItemId Type
reference
Properties
Create, Filter, Group, Sort, Update
Description
The ID of the line item record associated with this contract item price record.
This field is a polymorphic relationship field.
Relationship Name
Item
Relationship Type
Lookup
Refers To
Product2, ProductCategory

LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The timestamp for when the current user last referred to this record.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The timestamp for when the current user last viewed a record related to this record.

331
Salesforce Pricing ContractItemPrice

Field Details
Name Type
string
Properties
Autonumber, Defaulted on create, Filter, idLookup, Sort
Description
The name of the contract item price record.

Price Type
currency
Properties
Create, Filter, Nillable, Sort, Update
Description
The unit price of the product that’s being sold as part of the contract.

ProductSellingModelId Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The ID of the product selling model record associated with this contract item price record.
This field is a relationship field.
Relationship Name
ProductSellingModel
Relationship Type
Lookup
Refers To
ProductSellingModel

SellingModelType Type
picklist
Properties
Defaulted on create, Filter, Group, Nillable, Restricted picklist, Sort
Description
Specifies whether the line item is sold as a one-time sale, an evergreen subscription, or a
subscription with a defined term.
Valid values are:
• Evergreen
• OneTime
• TermDefined
The default value is OneTime.

332
Salesforce Pricing CostBookEntry

Field Details
StartDate Type
dateTime
Properties
Create, Filter, Sort, Update
Description
The date and time when the contract item price comes into effect.

Associated Objects
This object has the following associated objects. If the API version isn’t specified, they’re available in the same API versions as this object.
Otherwise, they’re available in the specified API version and later.
ContractItemPriceFeed on page 1661
Feed tracking is available for the object.
ContractItemPriceHistory on page 1668
History is available for tracked fields of the object.

CostBookEntry
Represents the total cost of a product or service that’s determined based on various factors that affect a product's price. For example,
when a product is manufactured, the weight of the raw material can be a cost factor based on the amount of material required and its
shipping cost. This object is available in API version 61.0 and later.

Important: Where possible, we changed noninclusive terms to align with our company value of Equality. We maintained certain
terms to avoid any effect on customer implementations.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), search(), undelete(), update(), upsert()

Fields
Field Details
Cost Type
currency
Properties
Create, Filter, Sort, Update
Description
Total cost of the product.

CostBookId Type
reference

333
Salesforce Pricing CostBookEntry

Field Details

Properties
Create, Filter, Group, Sort
Description
ID of the Cost Book record with which this record is associated.
This field is a relationship field.
Relationship Name
CostBook
Relationship Type
Master-detail
Refers To
CostBook (the master object)

CurrencyIsoCode Type
picklist
Properties
Create, Defaulted on create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
ISO code for any currency allowed by the organization. Available only for organizations with
the multicurrency feature enabled.
Valid values are:
• BHD—Bahraini Dinar
• JPY—Japanese Yen
• USD—U.S. Dollar
The default value is USD.

Description Type
textarea
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
Description of this cost book entry record.

EffectiveFrom Type
dateTime
Properties
Create, Filter, Sort, Update
Description
Date and time when the cost book entry comes into effect.

EffectiveTo Type
dateTime

334
Salesforce Pricing CostBookEntry

Field Details

Properties
Create, Filter, Nillable, Sort, Update
Description
Date and time till when the cost book entry is no longer in effect.

LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
Timestamp for when the current user last referred to this record.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
Timestamp for when the current user last viewed a record related to this record.

Name Type
string
Properties
Autonumber, Defaulted on create, Filter, idLookup, Sort
Description
Name of the cost book entry.

ProductId Type
reference
Properties
Create, Filter, Group, Sort
Description
Required. ID of the Product2 record with which this record is associated. This field must be
specified when creating Product2 records. This field can’t be changed in an update.
This field is a relationship field.
Relationship Name
Product
Relationship Type
Lookup
Refers To
Product2

335
Salesforce Pricing PriceAdjustmentSchedule

Associated Objects
This object has the following associated objects. If the API version isn’t specified, they’re available in the same API versions as this object.
Otherwise, they’re available in the specified API version and later.
CostBookEntryFeed on page 1661
Feed tracking is available for the object.
CostBookEntryHistory on page 1668
History is available for tracked fields of the object.

PriceAdjustmentSchedule
Represents a series of tiered discounts based on the number of items purchased. This object is available in API version 60.0 and later.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), search(), undelete(), update(), upsert()

Fields
Field Details
AdjustmentMethod Type
picklist
Properties
Create, Defaulted on create, Filter, Group, Restricted picklist, Sort, Update
Description
The method for applying tiered pricing. Possible values are:
• Range—All items receive the discount of the highest tier the quantity falls in.
• Slab—Items receive the discount defined for the tier they fall in.
Possible values are:
• Range
• Slab
The default value is Range.

CurrencyIsoCode Type
picklist
Properties
Create, Defaulted on create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
Available only if the multicurrency feature is enabled. Contains the ISO code for any currency
allowed by the organization.
Possible values are:

336
Salesforce Pricing PriceAdjustmentSchedule

Field Details
• BHD—Bahraini Dinar
• JPY—Japanese Yen
• USD—U.S. Dollar
The default value is USD.

Description Type
textarea
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
Text description of the price adjustment schedule.

EffectiveFrom Type
dateTime
Properties
Create, Filter, Nillable, Sort, Update
Description
The date and time when the price adjustment schedule comes into effect.

EffectiveTo Type
dateTime
Properties
Create, Filter, Nillable, Sort, Update
Description
The date and time when the price adjustment schedule remains effective.

IsActive Type
boolean
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
Indicates whether the price adjustment schedule is active (true) or not (false). You can change
this field’s value as often as necessary. Label is Active. Default value is False.

LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
Indicates whether the price adjustment schedule has been archived (true) or not (false). This
field is read-only.

337
Salesforce Pricing PriceAdjustmentSchedule

Field Details
LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The timestamp for when the current user last viewed this record. If this value is null, it’s
possible that this record was referenced (LastReferencedDate) and not viewed.

Name Type
string
Properties
Create, Filter, Group, idLookup, Sort, Update
Description
Required. The name of the price adjustment schedule. This field is read-only. Label is Price
Adjustment Schedule Name.

OwnerId Type
reference
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
The Salesforce ID of the sales representative who owns the price adjustment schedule.
This field is a polymorphic relationship field.
Relationship Name
Owner
Relationship Type
Lookup
Refers To
Group, User

Pricebook2Id Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The price book associated with this price adjustment schedule record.
This field is a relationship field.
Relationship Name
Pricebook2
Relationship Type
Lookup

338
Salesforce Pricing PriceAdjustmentTier

Field Details

Refers To
Pricebook2

ScheduleType Type
picklist
Properties
Create, Defaulted on create, Filter, Group, Restricted picklist, Sort, Update
Description
The type of price adjustment schedule.
Possible values are:
• Attribute
• Bundle
• Custom
• Term
• Volume
The default value is Volume.

Associated Objects
This object has the following associated objects. If the API version isn’t specified, they’re available in the same API versions as this object.
Otherwise, they’re available in the specified API version and later.
PriceAdjustmentScheduleShare on page 1672
Sharing is available for the object.

PriceAdjustmentTier
Represents a discount tier in a price adjustment schedule. This object is available in API version 60.0 and later.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), undelete(), update(), upsert()

Fields
Field Details
AdjustmentType Type
picklist
Properties
Create, Defaulted on create, Filter, Group, Nillable, Restricted picklist, Sort, Update

339
Salesforce Pricing PriceAdjustmentTier

Field Details

Description
The type of price adjustment.

CurrencyIsoCode Type
picklist
Properties
Create, Defaulted on create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
Available only if the multicurrency feature is enabled. Contains the ISO code for any currency
allowed by the organization.
Possible values are:
• BHD—Bahraini Dinar
• JPY—Japanese Yen
• USD—U.S. Dollar
The default value is USD.

EffectiveFrom Type
dateTime
Properties
Create, Filter, Nillable, Sort, Update
Description
The date and time when the price adjustment tier comes into effect.

EffectiveTo Type
dateTime
Properties
Create, Filter, Nillable, Sort, Update
Description
The date and time when the price adjustment tier remains effective.

LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
Indicates when the user last referred to this record.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort

340
Salesforce Pricing PriceAdjustmentTier

Field Details

Description
The timestamp for when the current user last viewed this record. If this value is null, it’s
possible that this record was referenced (LastReferencedDate) and not viewed.

LowerBound Type
double
Properties
Create, Filter, Sort, Update
Description
The minimum quantity the discount can be applied to. It must be a positive integer and less
than or equal to the upper bound of the tier.

Name Type
string
Properties
Autonumber, Defaulted on create, Filter, idLookup, Sort
Description
The name of the price adjustment tier.

PriceAdjustmentScheduleId Type
reference
Properties
Create, Filter, Group, Sort
Description
The ID of the price adjustment schedule that the discount is applied to.
This field is a relationship field.
Relationship Name
PriceAdjustmentSchedule
Relationship Type
Lookup
Refers To
PriceAdjustmentSchedule

PricingTerm Type
int
Properties
Filter, Group, Nillable, Sort
Description
The number of pricing term units in the pricing term. Used with PricingTermUnit to define
the length of the pricing term. For example, if PricingTermUnit is Months and this field is 1,
the subscription is priced monthly.If the selling model is one-time, this field must be null.

341
Salesforce Pricing PriceAdjustmentTier

Field Details
PricingTermUnit Type
picklist
Properties
Filter, Group, Nillable, Restricted picklist, Sort
Description
The unit of time used to define the pricing term. Used with PricingTerm to define the length
of the pricing term. For example, if this field is Months and PricingTerm is 1, the subscription
is priced monthly. If the selling model is one-time, this field must be null.
Possible values are:
• Annual—Years
• Months

Product2Id Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The ID of the product associated with the price adjustment tier.
This field is a relationship field.
Relationship Name
Product2
Relationship Type
Lookup
Refers To
Product2

ProductSellingModelId Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The ID of the ProductSellingModel record associated with this price adjustment tier record.
This field is a relationship field.
Relationship Name
ProductSellingModel
Relationship Type
Lookup
Refers To
ProductSellingModel

342
Salesforce Pricing PriceAdjustmentTier

Field Details
SellingModelType Type
picklist
Properties
Defaulted on create, Filter, Group, Restricted picklist, Sort
Description
Indicates whether the product is sold as a one-time sale, an evergreen subscription, or a
subscription with a defined term.
Possible values are:
• Evergreen
• OneTime—One Time
• TermDefined—Term-Defined
The default value is OneTime.

TierType Type
picklist
Properties
Create, Filter, Group, Restricted picklist, Sort, Update
Description
The unit of the discount. Possible values are:
• AdjustmentAmount—An amount discounted from an item’s list price
• AdjustmentPercentage—A percentage discounted from an item’s list price
Possible values are:
• AdjustmentAmount—Amount
• AdjustmentPercentage—Percentage
• OverrideAmount—Override

TierValue Type
double
Properties
Create, Filter, Sort, Update
Description
The value of the discount.

UpperBound Type
double
Properties
Create, Filter, Nillable, Sort, Update
Description
The maximum quantity the discount can be applied to. Must be a positive integer. Not
inclusive. Set this value one digit higher than the quantity you want the tier to include. For

343
Salesforce Pricing PriceBook2

Field Details
example, if a tier’s upper bound is 99, set the value of UpperBound to 100. For the last tier,
the value is optional.

Usage
To use PriceAdjustmentTiers, associate them with a PriceAdjustmentSchedule.
Tiers can’t overlap, and no gaps are allowed between tiers.

Associated Objects
This object has the following associated objects. If the API version isn’t specified, they’re available in the same API versions as this object.
Otherwise, they’re available in the specified API version and later.
PriceAdjustmentTierFeed on page 1661
Feed tracking is available for the object.
PriceAdjustmentTierHistory on page 1668
History is available for tracked fields of the object.

PriceBook2
Represents a price book that contains the list of products that your org sells. This object is available in API version 60.0 and later.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), search(), undelete(), update(), upsert()

Fields
Field Details
CurrencyIsoCode Type
picklist
Properties
Create, Defaulted on create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
Available only if the multicurrency feature is enabled. Contains the ISO code for any currency
allowed by the organization.
Possible values are:
• BHD—Bahraini Dinar
• JPY—Japanese Yen
• USD—U.S. Dollar
The default value is USD.

344
Salesforce Pricing PriceBook2

Field Details
Description Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
Text description of the price book.

IsActive Type
boolean
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
Indicates whether the price book is active (true) or not (false). Inactive price books are hidden
in many areas in the user interface. You can change this field’s value as often as necessary.
Label is Active.
The default value is false.

IsArchived Type
boolean
Properties
Defaulted on create, Filter, Group, Sort
Description
Indicates whether the price book has been archived (true) or not (false). This field is read
only.
The default value is false.

IsStandard Type
boolean
Properties
Defaulted on create, Filter, Group, Sort
Description
Indicates whether the price book is the standard price book for the org (true) or not (false).
Every org has one standard price book—all other price books are custom price books.
The default value is false.

LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The timestamp for when the current user last viewed a record related to this record.

345
Salesforce Pricing PriceBook2

Field Details
LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The timestamp for when the current user last viewed this record. If this value is null, it’s
possible that this record was referenced (LastReferencedDate) and not viewed.

Name Type
string
Properties
Create, Filter, Group, idLookup, Sort, Update
Description
Required. Name of this object. This field is read-only for the standard price book.

ValidFrom Type
dateTime
Properties
Create, Filter, Nillable, Sort, Update
Description
The date and time when a price book is initially valid. If this field is null, the price book is valid
immediately when active.

ValidTo Type
dateTime
Properties
Create, Filter, Nillable, Sort, Update
Description
The date and time when a price book is valid to. If this field is null, the price book is valid
until it’s deactivated.

Usage
A price book is a list of products that your org sells.
• Each org has one standard price book that defines the standard or generic list price for each product or service that it sells.
• An org can have multiple custom price books to use for specialized purposes, such as for discounts, different channels or markets,
or select accounts or opportunities. While your client application can create, delete, and update custom price books, your client
application can only update the standard price book.
• For some orgs, the standard price book is the only price needed. If you set up other price books, you can reference the standard
price book when setting up list prices in custom price books.

346
Salesforce Pricing PriceBookEntry

Use this object to query standard and custom price books that have been configured for your org. A common use of this object is to
allow your client application to obtain valid Pricebook2 object IDs for use when configuring PricebookEntry records via the API.

Associated Objects
This object has the following associated objects. If the API version isn’t specified, they’re available in the same API versions as this object.
Otherwise, they’re available in the specified API version and later.
PriceBook2ChangeEvent on page 1659
Change events are available for the object.
PriceBook2History on page 1668
History is available for tracked fields of the object.

PriceBookEntry
Represents a product entry (an association between a Pricebook2 and Product2) in a price book. This object is available in API version
60.0 and later.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), update(), upsert()

Fields
Note: Salesforce Object Search Language (SOSL) allows you to search records across standard and custom objects. When filtering
records in the PriceBookEntry object using SOSL, you can only sort by fields related to Product2.

Field Details
ActivePriceAdjustmentQuantity Type
int
Properties
Filter, Group, Nillable, Sort
Description
The count of active price adjustment schedules associated with the price book entry.

CurrencyIsoCode Type
picklist
Properties
Create, Defaulted on create, Filter, Group, Restricted picklist, Sort
Description
Available only for organizations with the multicurrency feature enabled. Contains the ISO
code for any currency allowed by the organization.
Possible values are:
• BHD—Bahraini Dinar

347
Salesforce Pricing PriceBookEntry

Field Details
• JPY—Japanese Yen
• USD—U.S. Dollar
The default value is USD.

IsActive Type
boolean
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
Indicates whether this price book entry is active (true) or not (false). Although you can never
delete PricebookEntry records, your client application can set this flag to false.
Inactive PricebookEntry records are hidden in many areas in the user interface. You can
change this flag on a PricebookEntry record as often as necessary.
The default value is false.

IsArchived Type
boolean
Properties
Defaulted on create, Filter, Group, Sort
Description
Indicates whether the PricebookEntry has been archived (true) or not (false). This field is set
to true when the Product2 record it’s associated with is archived, or when the Pricebook2
record is archived. This field is read only.
The default value is false.

IsDerived Type
boolean
Properties
Create, Defaulted on create, Filter, Group, Sort
Description
Indicates whether the product's price was derived (yes) or not (no).
The default value is false.

Name Type
string
Properties
Filter, Group, Nillable, Sort
Description
Name of this price book entry record. This read-only field references the value in the Name
field of the Product2 record.

348
Salesforce Pricing PriceBookEntry

Field Details
Pricebook2Id Type
reference
Properties
Create, Filter, Group, Sort
Description
Required. ID of the Pricebook2 record with which this record is associated. This field must
be specified when creating Pricebook2 records. It can’t be changed in an update.
This field is a relationship field.
Relationship Name
Pricebook2
Relationship Type
Lookup
Refers To
Pricebook2

Product2Id Type
reference
Properties
Create, Filter, Group, Sort
Description
Required. ID of the Product2 record with which this record is associated. This field must be
specified when creating Product2 records. It can’t be changed in an update.
This field is a relationship field.
Relationship Name
Product2
Relationship Type
Lookup
Refers To
Product2

ProductCode Type
string
Properties
Filter, Group, Nillable, Sort
Description
Product code for this record. This read-only field references the value in the ProductCode field
of the associated Product2 record.

ProductSellingModelId Type
reference

349
Salesforce Pricing PriceBookEntry

Field Details

Properties
Create, Filter, Group, Nillable, Sort
Description
The ID of the related product selling model.
This field is a relationship field.
Relationship Name
ProductSellingModel
Relationship Type
Lookup
Refers To
ProductSellingModel

UnitPrice Type
currency
Properties
Create, Filter, Sort, Update
Description
Required. Unit price for this price book entry. You can specify a value only
if UseStandardPrice is set to false.

UseStandardPrice Type
boolean
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
Indicates whether this price book entry uses the standard price defined in the standard
Pricebook2 record (true) or not (false). If set to true, then the UnitPrice field is read-only, and
the value is the same as the UnitPrice value in the corresponding PricebookEntry in the
standard price book (that is, the PricebookEntry record whose Pricebook2Id refers to the
standard price book and whose Product2Id and CurrencyIsoCode are the same as this record).
For PricebookEntry records associated with the standard Pricebook2 record, this field must
be set to true.
The default value is false.

Usage
Use this object to define the association between your organization’s products (Product2) and your organization’s standard price book
or to custom price books ( Pricebook2). Create one PricebookEntry record for each standard or custom price and currency combination
for a product in a Pricebook2.
When creating these records, you must specify the IDs of the associated Pricebook2 record and Product2 record. Once these records are
created, your client application can’t update these IDs.

350
Salesforce Pricing PriceBookEntryDerivedPrice

This object is defined only for those organizations that have products enabled as a feature. If the organization doesn’t have the products
feature enabled, then the PricebookEntry object doesn’t appear in the describeGlobal call, and you can’t access it.
If you delete a PriceBookEntry that is referenced by a line item, the line item is unaffected, but the PriceBookEntry is archived and
unavailable from the API. Deleted PriceBookEntry records can’t be recovered.
You must load the standard price for a product before you’re permitted to load its custom prices.

Associated Objects
This object has the following associated objects. If the API version isn’t specified, they’re available in the same API versions as this object.
Otherwise, they’re available in the specified API version and later.
PriceBookEntryChangeEvent on page 1659
Change events are available for the object.
PriceBookEntryHistory on page 1668
History is available for tracked fields of the object.

PriceBookEntryDerivedPrice
Represents the price of a product that’s derived from another source such as a product or an asset. This object is available in API version
61.0 and later.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), search(), undelete(), update(), upsert()

Fields
Field Details
ContributingProductId Type
reference
Properties
Create, Filter, Group, Nillable, Sort
Description
Source product from which the derived price is calculated. The source product is associated
with the derived price product.
This field is a relationship field.
Relationship Name
ContributingProduct
Relationship Type
Lookup
Refers To
Product2

351
Salesforce Pricing PriceBookEntryDerivedPrice

Field Details
CurrencyIsoCode Type
picklist
Properties
Create, Defaulted on create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
ISO code for any currency allowed by the organization. Available only if the multicurrency
feature is enabled.
Valid values are:
• BHD—Bahraini Dinar
• JPY—Japanese Yen
• USD—U.S. Dollar
The default value is USD.

DerivedPricingScope Type
picklist
Properties
Create, Filter, Group, Restricted picklist, Sort, Update
Description
Scope of the product based on which the derived price is calculated.
Valid values are:
• Both
• NonTransactional
• Transactional

EffectiveFrom Type
dateTime
Properties
Create, Filter, Sort, Update
Description
Date and time when the derived pricing comes into effect.

EffectiveTo Type
dateTime
Properties
Create, Filter, Nillable, Sort, Update
Description
Date and time when the derived pricing is no longer in effect.

Formula Type
string

352
Salesforce Pricing PriceBookEntryDerivedPrice

Field Details

Properties
Create, Filter, Sort, Update
Description
Coded format of the formula used to calculate the derived price of a product from another
product or asset.

LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
Timestamp for when the current user last referred to this record.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
Timestamp for when the current user last viewed this record. If this value is null, it’s possible
that this record was referenced (LastReferencedDate) and not viewed.

Name Type
string
Properties
Autonumber, Defaulted on create, Filter, idLookup, Sort
Description
Name of the derived price record.

OwnerId Type
reference
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
ID of the user who created the record.
This field is a polymorphic relationship field.
Relationship Name
Owner
Relationship Type
Lookup
Refers To
Group, User

353
Salesforce Pricing PriceBookEntryDerivedPrice

Field Details
PricebookEntryId Type
reference
Properties
Create, Filter, Group, Sort
Description
Price book entry associated with the source product.
This field is a relationship field.
Relationship Name
PricebookEntry
Relationship Type
Lookup
Refers To
PricebookEntry

PricebookId Type
reference
Properties
Create, Filter, Group, Nillable, Sort
Description
Price book associated with the source product.
This field is a relationship field.
Relationship Name
Pricebook
Relationship Type
Lookup
Refers To
Pricebook2

PricingSource Type
picklist
Properties
Create, Filter, Group, Nillable, Restricted picklist, Sort
Description
Pricing type used to calculate the derived price of the product.
Valid values are:
• Header
• Product

ProductId Type
reference

354
Salesforce Pricing PricingAdjBatchJob

Field Details

Properties
Filter, Group, Sort
Description
Product associated with the derived pricing.
This field is a relationship field.
Relationship Name
Product
Relationship Type
Lookup
Refers To
Product2

ProductSellingModelId Type
reference
Properties
Filter, Group, Sort
Description
Product selling model associated with this record.
This field is a relationship field.
Relationship Name
ProductSellingModel
Relationship Type
Lookup
Refers To
ProductSellingModel

Associated Objects
This object has the following associated objects. If the API version isn’t specified, they’re available in the same API versions as this object.
Otherwise, they’re available in the specified API version and later.
PriceBookEntryDerivedPriceFeed on page 1661
Feed tracking is available for the object.
PriceBookEntryDerivedPriceHistory on page 1668
History is available for tracked fields of the object.
PriceBookEntryDerivedPriceShare on page 1672
Sharing is available for the object.

PricingAdjBatchJob
Represents the collective update of multiple records on their prices and other adjustments. This object is available in API version 62.0
and later.

355
Salesforce Pricing PricingAdjBatchJob

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), search(), undelete(), update(), upsert()

Fields
Field Details
EffectiveFrom Type
dateTime
Properties
Create, Filter, Nillable, Sort, Update
Description
The date and time when the updated value can be considered for a pricing adjustment batch
job.

EffectiveTo Type
dateTime
Properties
Create, Filter, Nillable, Sort, Update
Description
The date and time until when the updated value is effective and can be considered for a
pricing adjustment batch job.

LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
Indicates whether the pricing adjustment batch job has been archived (true) or not
(false). This field is read-only.

LastTriggeredDate Type
dateTime
Properties
Create, Filter, Nillable, Sort, Update
Description
The date and time when the pricing adjustment batch job was last triggered.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort

356
Salesforce Pricing PricingAdjBatchJob

Field Details

Description
The timestamp for when the current user last viewed this record. If this value is null, it’s
possible that this record was referenced (LastReferencedDate) and not viewed.

Name Type
string
Properties
Autonumber, Defaulted on create, Filter, idLookup, Sort
Description
The name of the pricing adjustment batch job.

OwnerId Type
reference
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
The Salesforce ID of the sales representative who owns the pricing procedure resolution.
This field is a polymorphic relationship field.
Relationship Name
Owner
Refers To
Group, User

ProcessedRecordsCount Type
long
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The total number of records that were successfully updated.

RecordCount Type
long
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The total number of records that have been processed.

RecordList Type
textarea
Properties
Create

357
Salesforce Pricing PricingAdjBatchJob

Field Details

Description
The list of record IDs eligible for a pricing adjustment batch job.

ShouldSkipBulkRetry Type
boolean
Properties
Create, Filter, Group, Nillable, Sort
Description
For internal use only.

Status Type
picklist
Properties
Create, Filter, Group, Restricted picklist, Sort, Update
Description
The processing status of the pricing adjustment batch job.
Valid values are:
• Completed
• Failed
• InProgress
• New
• PartiallyCompleted
• Rerun

TargetObject Type
picklist
Properties
Create, Filter, Group, Restricted picklist, Sort
Description
The target object of the pricing adjustment batch job.
Valid values are:
• AttributeBasedAdjustment
• BundleBasedAdjustment
• PriceAdjustmentTier
• PricebookEntry

UpdateType Type
picklist
Properties
Create, Filter, Group, Restricted picklist, Sort, Update

358
Salesforce Pricing PricingAdjBatchJobLog

Field Details

Description
The type of update being made by the pricing adjustment batch job.
Valid values are:
• Amount
• Override
• Percentage

UpdateValue Type
double
Properties
Create, Filter, Sort, Update
Description
The numerical value of the update.

Associated Objects
This object has the following associated objects. If the API version isn’t specified, they’re available in the same API versions as this object.
Otherwise, they’re available in the specified API version and later.
PricingAdjBatchJobFeed on page 1661
Feed tracking is available for the object.
PricingAdjBatchJobHistory on page 1668
History is available for tracked fields of the object.
PricingAdjBatchJobShare on page 1672
Sharing is available for the object.

PricingAdjBatchJobLog
Represents the report that contains a list of failed adjustment requests along with an error message that describes the reason for failure.
This object is available in API version 62.0 and later.

Important: Where possible, we changed noninclusive terms to align with our company value of Equality. We maintained certain
terms to avoid any effect on customer implementations.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), search(), undelete(), update(), upsert()

359
Salesforce Pricing PricingAdjBatchJobLog

Fields
Field Details
AdjustedValue Type
double
Properties
Create, Filter, Nillable, Sort, Update
Description
The adjusted value of a record. The stored value is used even if another pricing adjustment
batch job is triggered again.

EffectiveFrom Type
dateTime
Properties
Create, Filter, Nillable, Sort, Update
Description
The date and time when the failed versioned record is generated. This is only applicable for
Price Adjustment records.

EffectiveTo Type
dateTime
Properties
Create, Filter, Nillable, Sort, Update
Description
The date and time until when the failed versioned record is available. This is applicable only
for Price Adjustment records.

ErrorCode Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The error code for the failure during the record update process.

ErrorMessage Type
textarea
Properties
Create, Update
Description
The error message that’s generated for the failure during the record update process.

LastReferencedDate Type
dateTime

360
Salesforce Pricing PricingAdjBatchJobLog

Field Details

Properties
Filter, Nillable, Sort
Description
Indicates whether the pricing adjustment batch job has been archived (true) or not
(false). This field is read-only.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The timestamp for when the current user last viewed this record. If this value is null, it’s
possible that this record was referenced (LastReferencedDate) and not viewed.

Name Type
string
Properties
Autonumber, Defaulted on create, Filter, idLookup, Sort
Description
Required. The name of the pricing adjustment batch job.

PricingAdjBatchJobId Type
reference
Properties
Create, Filter, Group, Sort
Description
The pricing adjustment batch job associated with the pricing adjustment batch job log.
This field is a relationship field.
Relationship Name
PricingAdjBatchJob
Relationship Type
Master-detail
Refers To
PricingAdjBatchJob (the master object)

TargetRecord Type
string
Properties
Create, Filter, Group, idLookup, Sort, Update
Description
The ID of the record for which a pricing adjustment error was generated.

361
Salesforce Pricing PricingAPIExecution

Associated Objects
This object has the following associated objects. If the API version isn’t specified, they’re available in the same API versions as this object.
Otherwise, they’re available in the specified API version and later.
PricingAdjBatchJobLogFeed
Feed tracking is available for the object.
PricingAdjBatchJobLogHistory on page 1668
History is available for tracked fields of the object.

PricingAPIExecution
Represents the pricing resolution for an pricing element determined using strategy name and formula. This object is available in API
version 63.0 and later.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), search(), undelete(), update(), upsert()

Fields
Field Details
ApiEndpoint Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The unique API endpoint that is called.

ApiType Type
picklist
Properties
Create, Defaulted on create, Filter, Group, Restricted picklist, Sort, Update
Description
Specifies the API type of the pricing API execution.
Possible values are:
• NGP
The default value is NGP.

CurrencyIsoCode Type
picklist
Properties
Create, Defaulted on create, Filter, Group, Nillable, Restricted picklist, Sort, Update

362
Salesforce Pricing PricingAPIExecution

Field Details

Description
Available only if the multicurrency feature is enabled. Contains the ISO code for any currency
allowed by the organization.
Possible values are:
• BHD—Bahraini Dinar
• JPY—Japanese Yen
• USD—U.S. Dollar
The default value is USD.

ExecutionKey Type
string
Properties
Create, Filter, Group, Sort, Update
Description
The unique execution ID generated each time a pricing API runs.

LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The timestamp for when the current user last viewed a record related to this record.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The timestamp for when the current user last viewed this record. If this value is null, it’s
possible that this record was referenced (LastReferencedDate) and not viewed.

Name Type
string
Properties
Autonumber, Defaulted on create, Filter, idLookup, Sort
Description
The name of the record.

OwnerId Type
reference

363
Salesforce Pricing PricingAPIExecution

Field Details

Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
The Salesforce ID of the sales representative who owns the pricing procedure resolution.
This field is a polymorphic relationship field.
Relationship Name
Owner
Refers To
Group, User

ReferenceKey Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
Optional. The reference ID that a consuming workstream must pass in the API to search for
specific logs in the Pricing Operations Console.

Status Type
picklist
Properties
Create, Defaulted on create, Filter, Group, Restricted picklist, Sort, Update
Description
The status of the API response.
Possible values are:
• Failure
• Partial_Success—Partial Success
• Success
The default value is Success.

Associated Objects
This object has the following associated objects. If the API version isn’t specified, they’re available in the same API versions as this object.
Otherwise, they’re available in the specified API version and later.
PricingAPIExecutionFeed on page 1661
Feed tracking is available for the object.
PricingAPIExecutionHistory on page 1668
History is available for tracked fields of the object.
PricingAPIExecutionShare on page 1672
Sharing is available for the object.

364
Salesforce Pricing PricingProcedureResolution

PricingProcedureResolution
Represents a selection for a pricing procedure to execute a pricing process from a list of pricing procedures available. This object is
available in API version 60.0 and later.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), search(), undelete(), update(), upsert()

Fields
Field Details
CurrencyIsoCode Type
picklist
Properties
Create, Defaulted on create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
Available only if the multicurrency feature is enabled. Contains the ISO code for any currency
allowed by the organization.
Possible values are:
• BHD—Bahraini Dinar
• JPY—Japanese Yen
• USD—U.S. Dollar
The default value is USD.

EffectiveFrom Type
dateTime
Properties
Create, Filter, Sort, Update
Description
The date and time when the pricing procedure resolution comes into effect.

EffectiveTo Type
dateTime
Properties
Create, Filter, Nillable, Sort, Update
Description
The date and time till when the pricing procedure resolution remains effective.

LastReferencedDate Type
dateTime

365
Salesforce Pricing PricingProcedureResolution

Field Details

Properties
Filter, Nillable, Sort
Description
Indicates whether the pricing procedure resolution has been archived (true) or not (false).
This field is read-only.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The timestamp for when the current user last viewed this record. If this value is null, it’s
possible that this record was referenced (LastReferencedDate) and not viewed.

Name Type
string
Properties
Autonumber, Defaulted on create, Filter, idLookup, Sort
Description
Required. The name of the pricing procedure resolution.

OwnerId Type
reference
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
The Salesforce ID of the sales representative who owns the pricing procedure resolution.
This field is a polymorphic relationship field.
Relationship Name
Owner
Relationship Type
Lookup
Refers To
Group, User

PricingProcedureId Type
reference
Properties
Create, Filter, Group, Sort
Description
The pricing procedure record associated with this pricing procedure resolution.

366
Salesforce Pricing PricingProcessExecution

Field Details
This field is a relationship field.
Relationship Name
PricingProcedure
Relationship Type
Lookup
Refers To
ExpressionSet

ProcedureType Type
picklist
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The pricing data store associated with this pricing recipe field mappings.

Associated Objects
This object has the following associated objects. If the API version isn’t specified, they’re available in the same API versions as this object.
Otherwise, they’re available in the specified API version and later.
PricingProcedureResolutionFeed on page 1661
Feed tracking is available for the object.
PricingProcedureResolutionHistory on page 1668
History is available for tracked fields of the object.
PricingProcedureResolutionShare on page 1672
Sharing is available for the object.

PricingProcessExecution
Represents a record generated during the execution of a discovery or pricing procedure. Multiple procedures may be performed within
a single API call, with each recorded in a Pricing API Execution record. This object is available in API version 63.0 and later.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), search(), undelete(), update(), upsert()

Fields
Field Details
CurrencyIsoCode Type
picklist

367
Salesforce Pricing PricingProcessExecution

Field Details

Properties
Create, Defaulted on create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
Available only if the multicurrency feature is enabled. Contains the ISO code for any currency
allowed by the organization.
Possible values are:
• BHD—Bahraini Dinar
• JPY—Japanese Yen
• USD—U.S. Dollar
The default value is USD.

ExecutionKey Type
string
Properties
Create, Filter, Group, idLookup, Sort, Update
Description
The unique execution ID generated each time a pricing API runs.

ExecutionType Type
picklist
Properties
Create, Defaulted on create, Filter, Group, Restricted picklist, Sort, Update
Description
The type of execution defined internally within the pricing API.
Possible values are:
• Api_Execution—Api Execution
• Discovery
• Discovery_Line—Discovery Line
• Pricing
• Pricing_Line—Pricing Line
The default value is Pricing.

ExecutionTypeKey Type
string
Properties
Create, Filter, Group, Sort, Update
Description
The unique execution type ID generated internally for procedure executions, such as pricing
or discovery procedures.

368
Salesforce Pricing PricingProcessExecution

Field Details
LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The timestamp for when the current user last viewed a record related to this record.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The timestamp for when the current user last viewed this record. If this value is null, it’s
possible that this record was referenced (LastReferencedDate) and not viewed.

Message Type
textarea
Properties
Create, Nillable, Update
Description
The message generated upon running a pricing process.

Name Type
string
Properties
Autonumber, Defaulted on create, Filter, idLookup, Sort
Description
The name of the record.

OwnerId Type
reference
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
The Salesforce ID of the sales representative who owns the pricing procedure resolution.
This field is a polymorphic relationship field.
Relationship Name
Owner
Refers To
Group, User

369
Salesforce Pricing ProductPriceHistoryLog

Field Details
Status Type
picklist
Properties
Create, Defaulted on create, Filter, Group, Restricted picklist, Sort, Update
Description
Specifies the status of the execution type.
Possible values are:
• Failure
• Partial_Success—Partial Success
• Success
The default value is Success.

Associated Objects
This object has the following associated objects. If the API version isn’t specified, they’re available in the same API versions as this object.
Otherwise, they’re available in the specified API version and later.
PricingProcessExecutionFeed on page 1661
Feed tracking is available for the object.
PricingProcessExecutionHistory on page 1668
History is available for tracked fields of the object.
PricingProcessExecutionShare on page 1672
Sharing is available for the object.

ProductPriceHistoryLog
Stores historical pricing data based on the product's price range. This object is available in API version 62.0 and later.

Important: Where possible, we changed noninclusive terms to align with our company value of Equality. We maintained certain
terms to avoid any effect on customer implementations.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), search(), undelete(), update(), upsert()

Fields
Field Details
CurrencyIsoCode Type
picklist

370
Salesforce Pricing ProductPriceHistoryLog

Field Details

Properties
Create, Defaulted on create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
ISO code for any currency allowed by the organization. Available only for organizations with
the multicurrency feature enabled.
Valid values are:
• BHD—Bahraini Dinar
• JPY—Japanese Yen
• USD—U.S. Dollar
The default value is USD.

Date Type
date
Properties
Create, Filter, Group, Sort, Update
Description
The date when the product price history log record is created.

LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
Indicates whether the product price history log has been archived (true) or not (false).
This field is read-only.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The timestamp for when the current user last viewed this record. If this value is null, it’s
possible that this record was referenced (LastReferencedDate) and not viewed.

Name Type
string
Properties
Autonumber, Defaulted on create, Filter, idLookup, Sort
Description
Required. The name of the product price history log.

371
Salesforce Pricing ProductPriceRange

Field Details
ProductPriceRangeId Type
reference
Properties
Create, Filter, Group, Sort
Description
The product price range associated with this product price history log record.
This field is a relationship field.
Relationship Name
ProductPriceRange
Relationship Type
Master-detail
Refers To
ProductPriceRange (the master object)

TrackedPrice Type
currency
Properties
Create, Filter, Sort, Update
Description
The price for a product recorded for a particular date.

Associated Objects
This object has the following associated objects. If the API version isn’t specified, they’re available in the same API versions as this object.
Otherwise, they’re available in the specified API version and later.
ProductPriceHistoryLogFeed on page 1661
Feed tracking is available for the object.
ProductPriceHistoryLogHistory on page 1668
History is available for tracked fields of the object.

ProductPriceRange
Represents the price range of a product determined by using a product selling model that’s stored in the relevant price book. This object
is available in API version 62.0 and later.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), search(), undelete(), update(), upsert()

372
Salesforce Pricing ProductPriceRange

Fields
Field Details
CurrencyIsoCode Type
picklist
Properties
Create, Defaulted on create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
ISO code for any currency allowed by the organization. Available only for organizations with
the multicurrency feature enabled.
Valid values are:
• BHD—Bahraini Dinar
• JPY—Japanese Yen
• USD—U.S. Dollar
The default value is USD.

LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
Indicates whether the product price range has been archived (true) or not (false). This
field is read-only.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The timestamp for when the current user last viewed this record. If this value is null, it’s
possible that this record was referenced (LastReferencedDate) and not viewed.

Name Type
string
Properties
Autonumber, Defaulted on create, Filter, idLookup, Sort
Description
Required. The name of the product price range.

OwnerId Type
reference

373
Salesforce Pricing ProductSellingModel

Field Details

Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
The Salesforce ID of the sales representative who owns the product price range.
This field is a polymorphic relationship field.
Relationship Name
Owner
Refers To
Group, User

ProductId Type
reference
Properties
Create, Filter, Group, Sort, Update
Description
The product for which the price range is being determined.
This field is a relationship field.
Relationship Name
Product
Refers To
Product2

Associated Objects
This object has the following associated objects. If the API version isn’t specified, they’re available in the same API versions as this object.
Otherwise, they’re available in the specified API version and later.
ProductPriceRangeFeed on page 1661
Feed tracking is available for the object.
ProductPriceRangeHistory on page 1668
History is available for tracked fields of the object.
ProductPriceRangeShare on page 1672
Sharing is available for the object.

ProductSellingModel
Defines one method by which a product can be sold; for example, as a one-time sale, an evergreen subscription, or a termed subscription.
If the product is sold on subscription, this object defines the subscription’s term. A product can have multiple product selling models.
This object is available in API version 60.0 and later.

374
Salesforce Pricing ProductSellingModel

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), search(), undelete(), update(), upsert()

Fields
Field Details
LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
Indicates when the user last referred to this record.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
Indicates when the user last viewed this record.

Name Type
string
Properties
Create, Filter, Group, idLookup, Sort, Update
Description
The name given to the product selling model.

PricingTerm Type
int
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The number of pricing term units in the pricing term. Used with PricingTermUnit to define
the length of the pricing term. For example, if PricingTermUnit is Months and this field is 1,
the subscription is priced monthly.If the selling model is one-time, this field must be null.

PricingTermUnit Type
picklist
Properties
Create, Filter, Group, Nillable, Restricted picklist, Sort, Update

375
Salesforce Pricing ProductSellingModel

Field Details

Description
The unit of time used to define the pricing term. Used with PricingTerm to define the length
of the pricing term. For example, if this field is Months and PricingTerm is 1, the subscription
is priced monthly. If the selling model is one-time, this field must be null.
Possible values are:
• Annual—Years
• Months

SellingModelType Type
picklist
Properties
Create, Defaulted on create, Filter, Group, Restricted picklist, Sort, Update
Description
Indicates whether the product is sold as a one-time sale, an evergreen subscription, or a
subscription with a defined term.
Possible values are:
• Evergreen
• OneTime—One Time
• TermDefined—Term-Defined
The default value is OneTime.

Status Type
picklist
Properties
Create, Defaulted on create, Filter, Group, Restricted picklist, Sort, Update
Description
The status of the product selling model.
Possible values are:
• Active
• Draft
• Inactive
The default value is Draft.

Associated Objects
This object has the following associated objects. If the API version isn’t specified, they’re available in the same API versions as this object.
Otherwise, they’re available in the specified API version and later.
ProductSellingModelFeed on page 1661
Feed tracking is available for the object.

376
Salesforce Pricing ProductSellingModelDataTranslation

ProductSellingModelHistory on page 1668


History is available for tracked fields of the object.

ProductSellingModelDataTranslation
Represents the translated values of the data stored within the ProductSellingModel record’s fields. This object is available in API version
61.0 and later.

Supported Calls
create(), delete(), describeSObjects(), getDeleted(), getUpdated(), query(), retrieve(),
undelete(), update(), upsert()

Special Access Rules


• Your organization must be using Enterprise, Unlimited, or Developer edition.
• Translation Workbench and data translation must be enabled in your org.
• To view this object, you must have the “View Setup and Configuration” permission.

Fields
Field Details
IsOutOfDate Type
boolean
Properties
Defaulted on create, Filter, Group, Sort
Description
Indicates whether the translation is out-of-date (true) or current (false). A translation
is out-of-date if the parent Product2 record is updated after the last translation was filed.

Language Type
picklist
Properties
Create, Filter, Group, Restricted picklist, Sort
Description
The language for these translated values.

Name Type
string
Properties
Create, Filter, Group, idLookup, Sort, Update

377
Salesforce Pricing ProductSellingModelOption

Field Details

Description
The translated value for the ProductSellingModel record name. This field is required to
translate the text in other fields.

ParentId Type
reference
Properties
Create, Filter, Group, Sort, Update
Description
The ID of the ProductSellingModel record associated with the data that’s being translated.
This field is a relationship field.
Relationship Name
Parent
Relationship Type
Lookup
Refers To
ProductSellingModel

Usage
Use this object to translate the data stored in a ProductSellingModel record into the different languages supported by Salesforce. If data
translation is enabled for custom fields on the ProductSellingModel object, additional ProductSellingModelDataTranslation fields exist
for translating the data contained within those fields.
You can’t use a custom external id field in an upsert call for a ProductSellingModelDataTranslation object.

ProductSellingModelOption
A junction object between Product Selling Model and Product2. This object is available in API version 60.0 and later.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), search(), undelete(), update(), upsert()

Fields
Field Details
Description Type
textarea
Properties
Create, Nillable, Update

378
Salesforce Pricing ProductSellingModelOption

Field Details

Description
The description of the product selling model option.

DisplayName Type
string
Properties
Autonumber, Defaulted on create, Filter, idLookup, Sort
Description
The name of the product selling model option to display to customers.

Increment Type
int
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The number of pricing term units that can be used to increase a subscription term.

IsDefault Type
boolean
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
Indcates the default product selling model for a product. Setting a default is optional. A
product can only have one default product selling model.
The default value is false. This field requires Industries EPC.

LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The timestamp when the current user last accessed this record, a record related to this record,
or a list view.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The timestamp when the current user last viewed this record or list view. If this value is null,
the user might have only accessed this record or list view but not viewed it.

379
Salesforce Pricing ProductSellingModelOption

Field Details
Maximum Type
int
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The maximum number of pricing term units for a subscription term.

Minimum Type
int
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The minimum number of pricing term units for a subscription term.

Name Type
string
Properties
Autonumber, Defaulted on create, Filter, idLookup, Sort
Description
The name of the product selling model option.

Product2Id Type
reference
Properties
Create, Filter, Group, Sort
Description
The ID of the Product2 record associated with this ProductSellingModelOption record.
This field is a relationship field.
Relationship Name
Product2
Relationship Type
Lookup
Refers To
Product2

ProductSellingModelId Type
reference
Properties
Create, Filter, Group, Sort

380
Salesforce Pricing Salesforce Pricing Business APIs

Field Details

Description
The ID of the ProductSellingModel record associated with
this ProductSellingModelOption record.
This field is a relationship field.
Relationship Name
ProductSellingModel
Relationship Type
Lookup
Refers To
ProductSellingModel

ProrationPolicyId Type
reference
Properties
Create, Filter, Group, Nillable, Sort
Description
The ID of the ProrationPolicy record associated with this ProductSellingModelOption record.
This field is a relationship field.
Relationship Name
ProrationPolicy
Relationship Type
Lookup
Refers To
ProrationPolicy

Salesforce Pricing Business APIs


Perform pricing request, create context instance, sync pricing data, and manage pricing recipes and pricing waterfall details by using
the Salesforce Pricing Business APIs.
This table lists the available Salesforce Pricing resources.

Resource Description
/connect/core-pricing/price-contexts/contextid (POST) Perform a pricing request by
using the instance ID of a
context.

/connect/core-pricing/pricing (POST) Create and hydrate context


instance in a single request.
Provide a comprehensive
response that contains final

381
Salesforce Pricing Salesforce Pricing Business APIs

Resource Description
pricing details per line items
and related errors, if any.

/connect/core-pricing/sync/pricingSyncOrigin (GET) Sync pricing data to ensure that


the lookup tables contain the
latest pricing data.

/connect/core-pricing/recipe (GET) Get the mapping details of


pricing recipes to the associated
pricing recipe table.

/connect/core-pricing/recipe/mapping (POST) Create a mapping between the


pricing recipe and the Decision
Tables. Post recipes with lookup
tables or procedures.

/connect/core-pricing/versioned-revise-details (POST) Create revisions of a pricing


request with versions for
adjustment entities.

/connect/core-pricing/waterfall/lineItemId/executionId (GET) Get the persisted price waterfall


that stores the process logs.
Price waterfall provides insights
into every step of the pricing
process.

/connect/core-pricing/waterfall (POST) Create a log of price waterfall.


Price waterfall provides insights
into every step of the pricing
process.

/connect/core-pricing/pbeDerivedPricingSourceProduct (POST) Get the source product for the


Price Book Entry (PBE) derived
pricing.

This section lists the available Procedure Plan Definition-related resources. Use procedure plan definitions to define criteria for all pricing
process-related requirements in one central location, and to set up the procedures based on these requirements.

Resource Description
/connect/procedure-plan-definitions (GET, POST) Get the records of procedure
plan definitions. Additionally,
create a record of a procedure
plan definition.

/connect/procedure-plan-definitions/procedurePlanDefinitionId (GET, Get, update, or delete a


PATCH, DELETE) procedure plan definition
record by using the record ID.

/connect/procedure-plan-definitions/evaluate (POST) Evaluate a procedure plan


definition based on a primary

382
Salesforce Pricing Resources

Resource Description
object to check for prerequisites
such as usage type and context
mapping details.

/connect/procedure-plan-definitions/evaluate/procedurePlanDefinitionName Evaluate a procedure plan


(POST) definition based on the name
of a definition to check for
prerequisites such as usage type
and context mapping details.

/connect/procedure-plan-definitions/procedurePlanDefinitionId/version Create records of a procedure


(POST) plan version with details.

/connect/procedure-plan-definitions/versions/procedurePlanVersionId Get, update, or delete a


(GET, PATCH, DELETE) procedure plan definition
version record by using the
record ID.

Resources
Learn more about the available Salesforce Pricing resources.
Request Bodies
Learn more about the available Salesforce Pricing API request bodies.
Response Bodies
Learn more about the available Salesforce Pricing API response bodies.

SEE ALSO:
Connect REST API Developer Guide: Introduction

Resources
Learn more about the available Salesforce Pricing resources.

PBE Derived Pricing (POST)


Get the source product for the Price Book Entry (PBE) derived pricing.
Price Context (POST)
Perform a pricing request by using the instance ID of a context.
Pricing (POST)
Create and hydrate context instance in a single request. Provide a comprehensive response that contains final pricing details per
line items and related errors, if any.
Pricing Data Sync (GET)
Sync pricing data to ensure that the lookup tables contain the latest pricing data.
Pricing Recipe (GET)
Get the mapping details of pricing recipes to the associated pricing recipe table.

383
Salesforce Pricing Resources

Pricing Recipe Mapping (POST)


Create a mapping between the pricing recipe and the Decision Tables. Post recipes with lookup tables or procedures.
Pricing Versioned Revision Details (POST)
Create revisions of a pricing request with versions for adjustment entities.
Pricing Waterfall (GET)
Get the persisted price waterfall that stores the process logs. Price waterfall provides insights into every step of the pricing process.
Pricing Waterfall (POST)
Create a log of price waterfall. Price waterfall provides insights into every step of the pricing process.
Procedure Plan Definitions (GET, POST)
Get the records of procedure plan definitions. Additionally, create a record of a procedure plan definition.
Procedure Plan Definition By ID (GET, PATCH, DELETE)
Get, update, or delete a procedure plan definition record by using the record ID.
Procedure Plan Evaluation By Object (POST)
Evaluate a procedure plan definition based on a primary object to check for prerequisites such as usage type and context mapping
details.
Procedure Plan Evaluation By Definition Name (POST)
Evaluate a procedure plan definition based on the name of a definition to check for prerequisites such as usage type and context
mapping details.
Procedure Plan Version (POST)
Create records of a procedure plan version with details.
Procedure Plan Version Details (GET, PATCH, DELETE)
Get, update, or delete a procedure plan definition version record by using the record ID.

PBE Derived Pricing (POST)


Get the source product for the Price Book Entry (PBE) derived pricing.
Resource
/connect/core-pricing/pbeDerivedPricingSourceProduct

Resource example

https://yourInstance.salesforce.com/services/data/v63.0/connect/core-pricing/pbeDerivedPricingSourceProduct

Available version
61.0
HTTP methods
POST
Request body for POST
JSON example
{
"productId":"01txx0000006i2SAAQ",
"pricebookEntryId":"01uxx0000008yYcAAI",
"effectiveFrom":"2020-01-01T22:53:20.000Z",

384
Salesforce Pricing Resources

"effectiveTo":"2021-01-01T22:53:20.000Z"
}

Properties

Name Type Description Required or Available


Optional Version
effective String Date from when the price book entry is Required 61.0
From effective.

effectiveTo String Date until when the price book entry is Required 61.0
effective.

pricebook String ID of the price book entry. Required 61.0


EntryId

productId String ID of the price book. Required 61.0

Response body for POST


PBE Derived Pricing

Price Context (POST)


Perform a pricing request by using the instance ID of a context.
Resource

/connect/core-pricing/price-contexts/contextid

Resource example

https://yourInstance.salesforce.com/services/data/v63.0/connect/core-pricing/price-contexts/0U3RM00000000SR0AY

Available version
60.0
HTTP methods
POST
Request body for POST
JSON example

{
"configurationOverrides": {
"skipWaterfall": true,
"useSessionScopedContext": true,
"persistContext": true,
"taggedData": false
}
"procedureName": "ES1"
}

385
Salesforce Pricing Resources

Properties

Name Type Description Required or Available


Optional Version
configuration Configuration Parameters to override pricing Optional 60.0
Overrides Override Input configuration.

procedure String Name of the pricing procedure. Optional 60.0


Name

Response body for POST


Pricing Response

Pricing (POST)
Create and hydrate context instance in a single request. Provide a comprehensive response that contains final pricing details per line
items and related errors, if any.
Resource
/connect/core-pricing/pricing

Resource example
https://yourInstance.salesforce.com/services/data/v63.0/connect/core-pricing/pricing

Available version
60.0
Requires Chatter
No
HTTP methods
POST
Request body for POST
JSON example
{
"contextDefinitionId": "11Oxx0000006PdxEAE",
"contextMappingId": "11jxx0000004LDDAA2",
"jsonDataString": {
"Cart": [
{
"id": "cart_1001",
"cart_id": "cart_1001",
"PriceBookId": "PriceBookId_1001",
"businessObjectType": "Cart",
"CartItem": [
{
"id": "lineItem_1001",
"line_item_id": "lineItem_1001",
"Quantity": 7,

386
Salesforce Pricing Resources

"PriceType": "OneTime",
"Frequency": "",
"UOM": "",
"businessObjectType": "CartItem",
"product_id": "01txx0000006i44AAA",
"UnitPrice": 6.8,
"NetUnitPrice": 0,
"Attribute": [
{
"name": "Color",
"code": "RED",
"isPriceImpacting": true,
"businessObjectType": "Attribute",
"id": "Attribute_1001",
"attribute_id": "Attribute_1001"
},
{
"name": "Size",
"code": "10INCH",
"isPriceImpacting": true,
"businessObjectType": "Attribute",
"id": "Attribute_1002",
"attribute_id": "Attribute_1002"
}
]
},
{
"id": "lineItem_1002",
"line_item_id": "lineItem_1002",
"quantity": 3,
"PriceType": "OneTime",
"Frequency": "",
"UOM": "",
"businessObjectType": "CartItem",
"product_id": "01txx0000006i2SAAQ",
"unitprice": 6,
"NetUnitPrice": 0,
"Attribute": [
{
"name": "Color",
"code": "BLUE",
"isPriceImpacting": true,
"businessObjectType": "Attribute",
"id": "Attribute_1003",
"attribute_id": "Attribute_1003"
},
{
"name": "Size",
"code": "6INCH",
"isPriceImpacting": true,
"businessObjectType": "Attribute",
"id": "Attribute_1004",
"attribute_id": "Attribute_1004"
}

387
Salesforce Pricing Resources

]
}
]
}
]
},
"pricingProcedureId": "9QMxx0000004CKKGA2",
"configurationOverrides": {
"skipWaterfall": true,
"useSessionScopedContext": true,
"persistContext": true,
"taggedData": false
}
}

Properties

Name Type Description Required or Available


Optional Version
configuration Configuration Override Parameters to override the pricing Optional 60.0
Overrides Input configuration.

context String ID of the context definition that Required 60.0


DefinitionId defines the structure of the input
data.

context String ID of the context mapping that Required 60.0


MappingId maps the input data to the context
instance.

jsonData String Data to hydrate the context, which Required 60.0


String must be in JSON format and
passed as String. Pass the JSON
data as String by using the
stringify() method to convert the
object to string.
The keys in the
jsonDataString property
must be in accordance to the
contextMappingId property
sent in the request.

pricing String ID or API name of the pricing Optional 60.0


ProcedureId procedure used for calculating the
prices. A pricing procedure is
represented as an Expression Set
Definition in the system.

Response body for POST


Pricing Output

388
Salesforce Pricing Resources

Pricing Data Sync (GET)


Sync pricing data to ensure that the lookup tables contain the latest pricing data.
To partially synchronize pricing data, use the Decision Table Refresh Action in a Flow. See Decision Table Refresh Action.
Resource

/connect/core-pricing/sync/pricingSyncOrigin

Resource example

https://yourInstance.salesforce.com/services/data/v63.0/connect/core-pricing/sync/syncData

Available version
60.0
HTTP methods
GET
Response body for GET
Pricing Generic Response

Pricing Recipe (GET)


Get the mapping details of pricing recipes to the associated pricing recipe table.
Resource
/connect/core-pricing/recipe

Resource example
https://yourInstance.salesforce.com/services/data/v63.0/connect/core-pricing/recipe

Available version
60.0
HTTP methods
GET
Response body for GET
Pricing Recipe Response

Pricing Recipe Mapping (POST)


Create a mapping between the pricing recipe and the Decision Tables. Post recipes with lookup tables or procedures.
Resource
/connect/core-pricing/recipe/mapping

Resource example
https://yourInstance.salesforce.com/services/data/v63.0/connect/core-pricing/recipe/mapping

Available version
60.0

389
Salesforce Pricing Resources

HTTP methods
POST
Request body for POST
JSON example

{
"recipeId" : "12Gxx0000005J9MEAU",
"pricingRecipeLookUpTableInputRepresentations": [
{
lookupId: “12Gxx0000005J9MEAU”,
pricingComponentType: “CustomDiscount”
},
{
lookupId: “12Gxx0000005J9MEAU”,
pricingComponentType: “CustomDiscount”
}
],
"pricingRecipeProcedureInputRepresentation" : {
"procedureId" : "9QLxx0000004C92GAE"
}
}

Properties

Name Type Description Required or Available


Optional Version
pricing Pricing Recipe Input representation of the recipe Required 60.0
RecipeLookUp LookUp Table mapping.
TableInput Input[]
Representations

pricing Pricing Recipe Input representation of the procedure Required 60.0


Recipe Procedure Input that’s used in the pricing recipe.
Procedure
Input
Representation

recipeId String ID of the pricing recipe. Required 60.0

Response body for POST


Pricing Recipe Post

Pricing Versioned Revision Details (POST)


Create revisions of a pricing request with versions for adjustment entities.
Resource
/connect/core-pricing/versioned-revise-details

390
Salesforce Pricing Resources

Resource example
https://yourInstance.salesforce.com/services/data/v63.0/connect/core-pricing/versioned-revise-details

Available version
60.0
HTTP methods
POST
Request body for POST
JSON example
This example shows the input for versioned revision details for attribute-based adjustment.

{
"entityName":"AttributeBasedAdjustment",
"id":"entityId",
"priceAdjustmentId":"priceAdjustmentScheduleId",
"productId":"ProductId",
"productSellingModelId":"PsmId",
"adjustmentType":"AdjustmentType",
"adjustmentValue":"AdjustmentValue(Numeric)"",
"effectiveFrom":"EffectiveFrom date",
"effectiveTo":"EffectiveTo Date",
"additionalFieldsToValueMap":{
"attributeBasedAdjRuleId":"AttributeBasedAdjRuleId"
}
}

This example shows the input for versioned revision details for bundle-based adjustment.

{
"entityName": "BundleBasedAdjustment",
"id": "entityId",
"priceAdjustmentScheduleId": "priceAdjustmentScheduleId",
"productId": "ProductId",
"productSellingModelId": "PsmId",
"adjustmentType": "AdjustmentType",
"adjustmentValue": "AdjustmentValue(Numeric)",
"effectiveFrom":"EffectiveFrom date",
"effectiveTo":"EffectiveTo Date",
"additionalFieldsToValueMap": {
"rootBundleId": "RootBundleId",
"parentProductId": "ParentProductId"
}
}

391
Salesforce Pricing Resources

Properties

Name Type Description Required or Available


Optional Version
additional Map<String, Map containing the additional fields Optional 60.0
Fields String> specific to the entity.
ToValueMap

adjustment String Adjustment type such as, percentage, Required 60.0


Type amount, or override.

adjustment String Value for the adjustment. Required 60.0


Value

effective String Date from when the adjustment is Required 60.0


From effective.

effectiveTo String Date until when the adjustment is Optional 60.0


effective.

entityName String Name of the entity such as Required 60.0


AttributeBasedAdjustment entity or
BundleBasedAdjustment entity.

id String ID of the record. Required 60.0

price String ID of the price adjustment schedule Required 60.0


Adjustment record.
ScheduleId

productId String Product ID of the record. Required 60.0

product String Product selling model ID associated to Optional 60.0


Selling the record.
ModelId

Response body for POST


Pricing Versioned Revision Details

Pricing Waterfall (GET)


Get the persisted price waterfall that stores the process logs. Price waterfall provides insights into every step of the pricing process.
Resource

/connect/core-pricing/waterfall/lineItemId/executionId

Resource example

https://yourInstance.salesforce.com/services/data/v63.0/connect/core-pricing/waterfall/Gold/2yHdNNEFOZr9jAe4gHS7?tagsToFilter=UnitPrice

Available version
60.0

392
Salesforce Pricing Resources

HTTP methods
GET
Query parameters

Name Type Description Required or Available


Optional Version
tagsToFilter String Comma-separated tags to filter. Optional 61.0

usageType String Usage type of the waterfall log record. Optional 62.0
Valid values are:
• Pricing
• Rating—Specifies that the record
type is Rating. If this value is
specified, the API creates a log of
rating waterfall. See Rating Waterfall.
The default value is Pricing.

Response body for GET


Line Item Waterfall Response

Pricing Waterfall (POST)


Create a log of price waterfall. Price waterfall provides insights into every step of the pricing process.
Resource
/connect/core-pricing/waterfall

Resource example
https://yourInstance.salesforce.com/services/data/v63.0/connect/core-pricing/waterfall

Available version
60.0
HTTP methods
POST
Request body for POST
JSON example

{
"currencyCode": "USD",
"executionEndTimestamp": "2023-07-31T20:11:29.625Z",
"executionId": "executionId1",
"executionStartTimestamp": null,
"lineItemId": "item1",
"output": {

393
Salesforce Pricing Resources

"Subtotal": 38.25,
"ListPrice": 10,
"NetUnitPrice": 7.65
},
"waterfall": [{
"fieldToTagNameMapping": {
"Product2Id": "ItemProduct",
"Subtotal": "Subtotal",
"Pricebook2Id": "Pricebook",
"Quantity": "ItemQuantity",
"LineItemId": "SalesTransactionSource",
"ListPrice": "ItemListPrice"
},
"inputParameters": {
"Product2Id": "01txx0000006i44AAA",
"Pricebook2Id": "01sxx0000005q9xAAA",
"Quantity": 5,
"LineItemId": "item1"
},
"outputParameters": {
"Subtotal": 50,
"ListPrice": 10
},
"pricingElement": {
"adjustments": [{
"AdjustmentValue": "95.00",
"AdjustmentType": "Amount"
}],
"description": null,
"elementType": "ListPrice",
"name": "List Price"
},
"sequence": 1
},
{
"fieldToTagNameMapping": {
"PriceAdjustmentScheduleId": "ItemDescription",
"NetUnitPrice": "ItemNetUnitPrice",
"Product2Id": "ItemProduct",
"LowerBound": "ItemQuantity",
"UpperBound": "ItemQuantity",
"Subtotal": "Subtotal",
"Quantity": "ItemQuantity",
"LineItemId": "SalesTransactionSource",
"InputUnitPrice": "ItemListPrice"
},
"inputParameters": {
"PriceAdjustmentScheduleId": "84Xxx0000004CGSEA2",
"Product2Id": "01txx0000006i44AAA",
"LowerBound": 5,
"UpperBound": 5,
"Quantity": 5,
"LineItemId": "item1",
"InputUnitPrice": 10

394
Salesforce Pricing Resources

},
"outputParameters": {
"NetUnitPrice": 8.5,
"Subtotal": 42.5
},
"pricingElement": {
"adjustments": [{
"AdjustmentValue": "15.00",
"AdjustmentType": "Percentage"
}],
"description": null,
"elementType": "VolumeDiscount",
"name": "Volume Discount"
},
"sequence": 2
}
]
}

Properties

Name Type Description Required or Available


Optional Version
context String Context definition version ID of the Optional 60.0
Definition pricing procedure.
VersionId

context String Context mapping ID of the pricing Optional 60.0


MappingId procedure.

currencyCode String Currency code such as, USD or INR. Optional 60.0

executionEnd String End timestamp of procedure execution. Optional 60.0


Timestamp

executionId String Execution ID for a particular execution of Required 60.0


a pricing procedure.

execution String Start timestamp of procedure execution. Optional 60.0


Start
Timestamp

lineItemId String Line item ID for which the price is being Required 60.0
calculated.

output Map<String, Output of the pricing procedure. Optional 60.0


Object>

waterfall Pricing Waterfall Details of the pricing waterfall. Required 60.0


Input[]

395
Salesforce Pricing Resources

Response body for POST


Pricing Generic Response

Procedure Plan Definitions (GET, POST)


Get the records of procedure plan definitions. Additionally, create a record of a procedure plan definition.
Resource
/connect/procedure-plan-definitions

Resource example

https://yourInstance.salesforce.com/services/data/v63.0/connect/
procedure-plan-definitions?isTemplate=true

Available version
62.0
HTTP methods
GET, POST
Request parameters for GET

Parameter Type Description Required or Available


Name Optional Version
isTemplate Boolean Indicates whether to return a list of Optional 62.0
file-based definitions (true) or not
(false). This API request returns a list of
database-based definitions, by default.

Response body for GET


Procedure Plan Definitions
Request body for POST
JSON example
This example shows a sample request to create a procedure plan definition record by using the Procedure Plan Definitions (POST)
API.
{
"description": "Definition for Quote",
"developerName": "Quote_Definition_Sample",
"name": "Quote_Definition_Sample",
"primaryObject": "BusinessHours",
"procedurePlanDefinitionVersions": [
{
"active": false,
"contextDefinition": "SalesTransactionContext__stdctx",
"readContextMapping": "QuoteEntitiesMapping",
"saveContextMapping": "QuoteEntitiesMapping",
"effectiveFrom": "2024-07-15T10:15:30.000Z",
"developerName": "Quote_Definition_V1",
"rank": 1

396
Salesforce Pricing Resources

}
]
}

Properties

Name Type Description Required or Available


Optional Version
description String Description of the procedure plan Optional 62.0
definition.

developer String Developer name of the procedure plan Required if you’re 62.0
Name definition. invoking the
Procedure Plan
Definitions API
(POST).

name String Name of the procedure plan definition. Optional 62.0

primary String Source object that’s used to create a Required if you’re 62.0
Object procedure with rule-based criteria. This invoking the
property value must be a valid object Procedure Plan
name and must be unique in the Definitions API
ProcedurePlanDefinition object. (POST) and if you’re
creating a
procedure with
rule-based criteria.

procedurePlan Procedure Plan List of versions of a procedure plan Required 62.0


Definition Definition Version definition.
Versions Input[]

recordId String ID of the procedure plan definition Required if you’re 62.0


record. invoking the
Procedure Plan
Definition By ID API
(PATCH).

Response body for POST


Procedure Plan Generic

Procedure Plan Definition By ID (GET, PATCH, DELETE)


Get, update, or delete a procedure plan definition record by using the record ID.
Resource

/connect/procedure-plan-definitions/procedurePlanDefinitionId

The procedurePlanDefinitionId property value is the ID or name of the procedure plan definition record to perform the
request for.

397
Salesforce Pricing Resources

Resource example

https://yourInstance.salesforce.com/services/data/v63.0/connect/
procedure-plan-definitions/1FNxx0000004EsOGAU

Available version
62.0
HTTP methods
DELETE, GET, PATCH
You can delete a procedure plan definition only if it doesn’t include any active procedure plan version.
Response body for GET
Procedure Plan Definition
Request body for PATCH
JSON example
This example shows a sample request to update a procedure plan definition by using the Procedure Plan Definition By ID (PATCH)
API.

Note: The properties that aren’t specified in the input are deleted when updating the record.

{
"description": "Default definition patch update",
"developerName": "Quote_Definition",
"name": "Quote_Definition",
"primaryObject": "Quote",
"recordId": "1FNxx0000004EsOGAU"
}

Properties

Name Type Description Required or Available


Optional Version
description String Description of the procedure plan Optional 62.0
definition.

developer String Developer name of the procedure plan Required if you’re 62.0
Name definition. invoking the
Procedure Plan
Definitions API
(POST).

name String Name of the procedure plan definition. Optional 62.0

primary String Source object that’s used to create a Required if you’re 62.0
Object procedure with rule-based criteria. This invoking the
property value must be a valid object Procedure Plan
name and must be unique in the Definitions API
ProcedurePlanDefinition object. (POST) and if you’re
creating a
procedure with
rule-based criteria.

398
Salesforce Pricing Resources

Name Type Description Required or Available


Optional Version
procedurePlan Procedure Plan List of versions of a procedure plan Required 62.0
Definition Definition Version definition.
Versions Input[]

recordId String ID of the procedure plan definition Required if you’re 62.0


record. invoking the
Procedure Plan
Definition By ID API
(PATCH).

Response body for PATCH


Procedure Plan Definition

Procedure Plan Evaluation By Object (POST)


Evaluate a procedure plan definition based on a primary object to check for prerequisites such as usage type and context mapping
details.
Resource
/connect/procedure-plan-definitions/evaluate

Resource example

https://yourInstance.salesforce.com/services/data/v63.0/connect/
procedure-plan-definitions/evaluate

Available version
62.0
HTTP methods
POST
Request body for POST
JSON example
This example shows a sample request to evaluate a procedure plan definition by using a primary object.
{
"idList": ["a01DU000000BylcYAC"],
"evaluationDate": "2024-07-08T10:15:30.000Z",
"sectionType": ["PricingProcedure"],
"subSectionType": ["Revenue"]
}

Properties

Name Type Description Required or Available


Optional Version
evaluationDate String Date when the evaluation is applicable. Required 62.0
This property value must be within the

399
Salesforce Pricing Resources

Name Type Description Required or Available


Optional Version
date range when the procedure plan
definition is effective.

idList String[] List of record IDs of the procedure plan Required only if 62.0
definitions to be evaluated. you’re invoking the
Procedure Plan
Evaluation By
Object (POST) API .

sectionType String[] Name of section to be evaluated. Valid Optional 62.0


values are:
• PricingProcedure
• ProductDiscoveryProcedure
• ProductQualificationProcedure
• PricingDiscoveryProcedure
• DiscountSpreadServiceProcedure
• RatingProcedure
• Custom
• RatingDiscoveryProcedure

subSectionType String[] Name of subsection to be evaluated. Optional 62.0

The combination of the sectionType and subSectionType property values must be unique for every procedure plan
version.
Response body for POST
Procedure Plan Evaluation Response

Procedure Plan Evaluation By Definition Name (POST)


Evaluate a procedure plan definition based on the name of a definition to check for prerequisites such as usage type and context mapping
details.
Resource

/connect/procedure-plan-definitions/evaluate/procedurePlanDefinitionName

Resource example

https://yourInstance.salesforce.com/services/data
/v63.0/connect/procedure-plan-definitions/evaluate/Sample_Definition

Available version
62.0
HTTP methods
POST

400
Salesforce Pricing Resources

Request body for POST


JSON example
This example shows a sample request to evaluate a procedure plan definition by using a definition name.
{
"evaluationDate": "2024-07-08T10:15:30.000Z",
"sectionType": ["PricingProcedure"],
"subSectionType": ["Revenue"]
}

Properties

Name Type Description Required or Available


Optional Version
evaluationDate String Date when the evaluation is applicable. Required 62.0
This property value must be within the
date range when the procedure plan
definition is effective.

idList String[] List of record IDs of the procedure plan Required only if 62.0
definitions to be evaluated. you’re invoking the
Procedure Plan
Evaluation By
Object (POST) API .

sectionType String[] Name of section to be evaluated. Valid Optional 62.0


values are:
• PricingProcedure
• ProductDiscoveryProcedure
• ProductQualificationProcedure
• PricingDiscoveryProcedure
• DiscountSpreadServiceProcedure
• RatingProcedure
• Custom
• RatingDiscoveryProcedure

subSectionType String[] Name of subsection to be evaluated. Optional 62.0

The combination of the sectionType and subSectionType property values must be unique for every procedure plan
version.
Response body for POST
Procedure Plan Evaluation Response

Procedure Plan Version (POST)


Create records of a procedure plan version with details.

401
Salesforce Pricing Resources

Resource

/connect/procedure-plan-definitions/procedurePlanDefinitionId/version

Resource example

https://yourInstance.salesforce.com/services/data/v63.0/connect/
procedure-plan-definitions/1FNxx0000004EsOGAU/version

Available version
62.0
HTTP methods
POST
Request body for POST
JSON example
{
"active": false,
"developerName": "sample_version_input",
"effectiveFrom": "2024-07-09T00:00:00.000Z",
"contextDefinition": "SalesTransactionContext__stdctx",
"procedurePlanSections": [
{
"isInherited": false,
"procedurePlanOptions": [
{
"saveContextMapping": "AssetToSalesTransactionMapping",
"expressionSetDefinition": "9QAZ60000004ECOOA2",
"expressionSetLabel": "Revenue_Default_Pricing_Procedure",
"expressionSetApiName": "Revenue Default Pricing Procedure",
"logic": "1 AND 2 AND 3",
"priority": 1,
"procedurePlanCriterion": [
{
"conditionSequence": 1,
"fieldObject": "BillingCountry",
"fieldPath": "BillingCountry",
"literalValue": "test",
"operator": "Equals",
"dataType": "Text"
},
{
"conditionSequence": 2,
"fieldObject": "BillingPostalCode",
"fieldPath": "BillingPostalCode",
"literalValue": "sample",
"operator": "Equals",
"dataType": "Text"
},
{
"conditionSequence": 3,
"fieldObject": "LastActivityDate",
"fieldPath": "LastActivityDate",
"literalValue": "2024-07-14",

402
Salesforce Pricing Resources

"operator": "LessThan",
"dataType": "Date"
}
]
}
],
"resolutionType": "RuleBased",
"sectionType": "PricingProcedure",
"sequence": 1,
"subSectionType": "PricingProcedure",
"recordId": "1FRZ60000008OIAOA2"
}
],
"rank": 1,
"readContextMapping": "ProductDiscoveryContextMapping",
"saveContextMapping": "OrderEntitiesMapping"
}

Note: The properties that aren’t specified in the input are deleted when updating the record.

Properties

Name Type Description Required or Available


Optional Version
active Boolean Indicates whether this procedure plan Required 62.0
definition version is active (true) or not
(false). You can’t edit or delete a
procedure plan version that’s in the active
state.

context String Context definition that’s associated with Required 62.0


Definition the procedure plan definition version
record.

developer String Unique developer name of the procedure Required 62.0


Name plan definition version.

effective String Date and time from when the procedure Required 62.0
From plan definition version comes into effect.

effectiveTo String Date and time from when the procedure Required 62.0
plan definition version is no longer in
effect.

inherited String Template this procedure plan definition This property is 62.0
From version is created from. read-only.

procedure Procedure Plan Procedure setup sections for a procedure Required 62.0
PlanSections Section Input[] plan definition. Each section enables the
setup of a procedure type by using a
rule-based criteria.

403
Salesforce Pricing Resources

Name Type Description Required or Available


Optional Version
Keep these considerations in mind when
you modify this property.
• You can edit or delete a procedure
plan section if it isn’t associated with
an active procedure plan version.
• You can create a procedure plan
section with rule-based resolution
type if the primary object isn’t empty
in the definition.

rank Integer Current rank of the procedure plan Required 62.0


definition version that’s used to decide
the sequence of execution of a procedure
plan definition version.

readContext String Mapping that’s used to read data from Optional 62.0
Mapping the mapped object and populate the
context definition.
This property value must be associated
with a context definition.

recordId String ID of the procedure plan definition Required 62.0


version record.

saveContext String Mapping that’s used to save data from Optional 62.0
Mapping the context definition and populate the
mapped object.
This property value must be associated
with a context definition.

status String Status of the procedure plan definition Optional 62.0


version record.

Response body for POST


Procedure Plan Generic

Procedure Plan Version Details (GET, PATCH, DELETE)


Get, update, or delete a procedure plan definition version record by using the record ID.
Resource

/connect/procedure-plan-definitions/versions/procedurePlanVersionId

The procedurePlanVersionId property value is the ID or name of the procedure plan version record to perform the request
for.

404
Salesforce Pricing Resources

Resource example

https://yourInstance.salesforce.com/services/data/v63.0/connect/
procedure-plan-definitions/versions/1Cvxx0000004E1ACAU

Available version
62.0
HTTP methods
DELETE, GET, PATCH
You can’t delete a procedure plan version if it’s the only procedure plan version in a procedure plan definition.
Response body for GET
Procedure Plan Definition Version
Request body for PATCH
JSON example
{
"active": false,
"developerName": "sample_version_input",
"effectiveFrom": "2024-07-09T00:00:00.000Z",
"contextDefinition": "SalesTransactionContext__stdctx",
"procedurePlanSections": [
{
"isInherited": false,
"procedurePlanOptions": [
{
"saveContextMapping": "AssetToSalesTransactionMapping",
"expressionSetDefinition": "9QAZ60000004ECOOA2",
"expressionSetLabel": "Revenue_Default_Pricing_Procedure",
"expressionSetApiName": "Revenue Default Pricing Procedure",
"logic": "1 AND 2 AND 3",
"priority": 1,
"procedurePlanCriterion": [
{
"conditionSequence": 1,
"fieldObject": "BillingCountry",
"fieldPath": "BillingCountry",
"literalValue": "test",
"operator": "Equals",
"dataType": "Text"
},
{
"conditionSequence": 2,
"fieldObject": "BillingPostalCode",
"fieldPath": "BillingPostalCode",
"literalValue": "sample",
"operator": "Equals",
"dataType": "Text"
},
{
"conditionSequence": 3,
"fieldObject": "LastActivityDate",
"fieldPath": "LastActivityDate",

405
Salesforce Pricing Resources

"literalValue": "2024-07-14",
"operator": "LessThan",
"dataType": "Date"
}
]
}
],
"resolutionType": "RuleBased",
"sectionType": "PricingProcedure",
"sequence": 1,
"subSectionType": "PricingProcedure",
"recordId": "1FRZ60000008OIAOA2"
}
],
"rank": 1,
"readContextMapping": "ProductDiscoveryContextMapping",
"saveContextMapping": "OrderEntitiesMapping"
}

Note: The properties that aren’t specified in the input are deleted when updating the record.

Properties

Name Type Description Required or Available


Optional Version
active Boolean Indicates whether this procedure plan Required 62.0
definition version is active (true) or not
(false). You can’t edit or delete a
procedure plan version that’s in the active
state.

context String Context definition that’s associated with Required 62.0


Definition the procedure plan definition version
record.

developer String Unique developer name of the procedure Required 62.0


Name plan definition version.

effective String Date and time from when the procedure Required 62.0
From plan definition version comes into effect.

effectiveTo String Date and time from when the procedure Required 62.0
plan definition version is no longer in
effect.

inherited String Template this procedure plan definition This property is 62.0
From version is created from. read-only.

procedure Procedure Plan Procedure setup sections for a procedure Required 62.0
PlanSections Section Input[] plan definition. Each section enables the
setup of a procedure type by using a
rule-based criteria.

406
Salesforce Pricing Request Bodies

Name Type Description Required or Available


Optional Version
Keep these considerations in mind when
you modify this property.
• You can edit or delete a procedure
plan section if it isn’t associated with
an active procedure plan version.
• You can create a procedure plan
section with rule-based resolution
type if the primary object isn’t empty
in the definition.

rank Integer Current rank of the procedure plan Required 62.0


definition version that’s used to decide
the sequence of execution of a procedure
plan definition version.

readContext String Mapping that’s used to read data from Optional 62.0
Mapping the mapped object and populate the
context definition.
This property value must be associated
with a context definition.

recordId String ID of the procedure plan definition Required 62.0


version record.

saveContext String Mapping that’s used to save data from Optional 62.0
Mapping the context definition and populate the
mapped object.
This property value must be associated
with a context definition.

status String Status of the procedure plan definition Optional 62.0


version record.

Response body for PATCH


Procedure Plan Generic

Request Bodies
Learn more about the available Salesforce Pricing API request bodies.

Adjustment Details Input


Input representation of the adjustment details.

407
Salesforce Pricing Request Bodies

Configuration Override Input


Input representation of the details to override for a Pricing API configuration.
PBE Derived Pricing Input
Input representation of the request to get the source product for the Price Book Entry (PBE) derived pricing.
Pricing Input
Input representation of the details of a Pricing API request.
Pricing Recipe Input
Input representation to set up a pricing recipe page.
Pricing Recipe LookUp Table Input
Input representation of the lookup tables for the setup page recipe.
Pricing Recipe Procedure Input
Input representation of the procedure for the setup page recipe.
Pricing Request Input
Input representation of a pricing request.
Pricing Versioned Revision Details Input
Input representation of the versioned revision details.
Pricing Waterfall Input
Input representation of the pricing waterfall details.
Pricing Waterfall Log Input
Input representation of the request to create an explainability action log.
Procedure Plan Criterion Input
Input representation of the details of a procedure plan criterion.
Procedure Plan Definition Input
Input representation of the details of a procedure plan definition.
Procedure Plan Definition Version Input
Input representation of the details of a procedure plan definition version.
Procedure Plan Evaluation Input
Input representation of the details used to evaluate a procedure plan definition.
Procedure Plan Section Input
Input representation of the details of a procedure plan section.
Procedure Plan Option Input
Input representation of the details of a procedure plan option.

Adjustment Details Input


Input representation of the adjustment details.
JSON example

"pricingElement": {
"adjustments": [{
"AdjustmentValue": "15.00",

408
Salesforce Pricing Request Bodies

"AdjustmentType": "Percentage"
}],
"description": null,
"elementType": "VolumeDiscount",
"name": "Volume Discount"
}

Properties

Name Type Description Required or Available


Optional Version
adjustments Map<String, Details of the pricing element. Optional 60.0
Object>[]

description String Description of the pricing element. Optional 60.0

elementType String Type of the pricing element. Optional 60.0

name String Name of the pricing element. Optional 60.0

Configuration Override Input


Input representation of the details to override for a Pricing API configuration.
JSON example

"configurationOverrides": {
"skipWaterfall": true,
"useSessionScopedContext": true,
"persistContext": true,
"taggedData": false
}

Properties

Name Type Description Required or Available


Optional Version
discovery String Name of the discovery procedure to use Optional 61.0
Procedure to fetch the details of assets.

persist Boolean Indicates whether the context must be Optional 60.0


Context persisted as per the mapping (true) or
not (false).

skipDiscovery Boolean Indicates whether the discovery procedure Optional 61.0


must be skipped (true) or not (false).

skipWaterfall Boolean Indicates whether the price waterfall must Optional 60.0
be skipped in the output response (true)
or not (false).

409
Salesforce Pricing Request Bodies

Name Type Description Required or Available


Optional Version
taggedData Boolean Indicates whether the JSON data string can Optional 60.0
specify tags in the input instead of
attributes (true) or not (false).

useSession Boolean Indicates whether a session scoped Optional 60.0


ScopedContext context must be created (true) or
request scoped context (false). The
default is false.

PBE Derived Pricing Input


Input representation of the request to get the source product for the Price Book Entry (PBE) derived pricing.
JSON example
{
"productId":"01txx0000006i2SAAQ",
"pricebookEntryId":"01uxx0000008yYcAAI",
"effectiveFrom":"2020-01-01T22:53:20.000Z",
"effectiveTo":"2021-01-01T22:53:20.000Z"
}

Properties

Name Type Description Required or Available


Optional Version
effectiveFrom String Date from when the price book entry is Required 61.0
effective.

effectiveTo String Date until when the price book entry is Required 61.0
effective.

pricebook String ID of the price book entry. Required 61.0


EntryId

productId String ID of the price book. Required 61.0

Pricing Input
Input representation of the details of a Pricing API request.
JSON example
{
"contextDefinitionId": "11Oxx0000006PdxEAE",
"contextMappingId": "11jxx0000004LDDAA2",
"jsonDataString": {
"Cart": [
{
"id": "cart_1001",

410
Salesforce Pricing Request Bodies

"cart_id": "cart_1001",
"PriceBookId": "PriceBookId_1001",
"businessObjectType": "Cart",
"CartItem": [
{
"id": "lineItem_1001",
"line_item_id": "lineItem_1001",
"Quantity": 7,
"PriceType": "OneTime",
"Frequency": "",
"UOM": "",
"businessObjectType": "CartItem",
"product_id": "01txx0000006i44AAA",
"UnitPrice": 6.8,
"NetUnitPrice": 0,
"Attribute": [
{
"name": "Color",
"code": "RED",
"isPriceImpacting": true,
"businessObjectType": "Attribute",
"id": "Attribute_1001",
"attribute_id": "Attribute_1001"
},
{
"name": "Size",
"code": "10INCH",
"isPriceImpacting": true,
"businessObjectType": "Attribute",
"id": "Attribute_1002",
"attribute_id": "Attribute_1002"
}
]
},
{
"id": "lineItem_1002",
"line_item_id": "lineItem_1002",
"quantity": 3,
"PriceType": "OneTime",
"Frequency": "",
"UOM": "",
"businessObjectType": "CartItem",
"product_id": "01txx0000006i2SAAQ",
"unitprice": 6,
"NetUnitPrice": 0,
"Attribute": [
{
"name": "Color",
"code": "BLUE",
"isPriceImpacting": true,
"businessObjectType": "Attribute",
"id": "Attribute_1003",
"attribute_id": "Attribute_1003"
},

411
Salesforce Pricing Request Bodies

{
"name": "Size",
"code": "6INCH",
"isPriceImpacting": true,
"businessObjectType": "Attribute",
"id": "Attribute_1004",
"attribute_id": "Attribute_1004"
}
]
}
]
}
]
},
"pricingProcedureId": "9QMxx0000004CKKGA2",
"configurationOverrides": {
"skipWaterfall": true,
"useSessionScopedContext": true,
"persistContext": true,
"taggedData": false
}
}

Properties

Name Type Description Required or Available


Optional Version
configuration Configuration Override Parameters to override the pricing Optional 60.0
Overrides Input configuration.

context String ID of the context definition that Required 60.0


DefinitionId defines the structure of the input
data.

context String ID of the context mapping that Required 60.0


MappingId maps the input data to the context
instance.

jsonData String Data to hydrate the context, which Required 60.0


String must be in JSON format and passed
as String. Pass the JSON data as
String by using the stringify()
method to convert the object to
string.
The keys in the
jsonDataString property
must be in accordance to the
contextMappingId property
sent in the request.

pricing String ID or API name of the pricing Optional 60.0


ProcedureId procedure used for calculating the

412
Salesforce Pricing Request Bodies

Name Type Description Required or Available


Optional Version
prices. A pricing procedure is
represented as an Expression Set
Definition in the system.

Pricing Recipe Input


Input representation to set up a pricing recipe page.
JSON example

{
"recipeId" : "12Gxx0000005J9MEAU",
"pricingRecipeLookUpTableInputRepresentations": [
{
lookupId: “12Gxx0000005J9MEAU”,
pricingComponentType: “CustomDiscount”
},
{
lookupId: “12Gxx0000005J9MEAU”,
pricingComponentType: “CustomDiscount”
}
],
"pricingRecipeProcedureInputRepresentation" : {
"procedureId" : "9QLxx0000004C92GAE"
}
}

Properties

Name Type Description Required or Available


Optional Version
pricing Pricing Recipe Input representation of the recipe Required 60.0
RecipeLookUp LookUp Table mapping.
TableInput Input[]
Representations

pricingRecipe Pricing Recipe Input representation of the procedure Required 60.0


Procedure Procedure Input that’s used in the pricing recipe.
Input
Representation

recipeId String ID of the pricing recipe. Required 60.0

Pricing Recipe LookUp Table Input


Input representation of the lookup tables for the setup page recipe.

413
Salesforce Pricing Request Bodies

JSON example

"pricingRecipeLookUpTableInputRepresentations": [
{
lookupId: “12Gxx0000005J9MEAU”,
pricingComponentType: “CustomDiscount”
},
{
lookupId: “12Gxx0000005J9MEAU”,
pricingComponentType: “CustomDiscount”
}
]

Properties

Name Type Description Required or Available


Optional Version
lookupTableId String ID of the decision table. Optional 60.0

pricing String Pricing component types such as volume Optional 60.0


ComponentType discount, custom discount, attribute-based
discount, and bundle-based discount.

Pricing Recipe Procedure Input


Input representation of the procedure for the setup page recipe.
JSON example

"pricingRecipeProcedureInputRepresentation" : {
"procedureId" : "9QLxx0000004C92GAE"
}

Properties

Name Type Description Required or Available


Optional Version
procedureId String ID of the expression set. Required 60.0

Pricing Request Input


Input representation of a pricing request.
JSON example

{
"configurationOverrides": {
"skipWaterfall": true,
"useSessionScopedContext": true,

414
Salesforce Pricing Request Bodies

"persistContext": true,
"taggedData": false
}
"procedureName": "ES1"
}

Properties

Name Type Description Required or Available


Optional Version
configuration Configuration Parameters to override pricing Optional 60.0
Overrides Override Input configuration.

procedureName String Name of the pricing procedure. Optional 60.0

Pricing Versioned Revision Details Input


Input representation of the versioned revision details.
JSON example
This example shows the input for versioned revision details for attribute-based adjustment.

{
"entityName":"AttributeBasedAdjustment",
"id":"entityId",
"priceAdjustmentId":"priceAdjustmentScheduleId",
"productId":"ProductId",
"productSellingModelId":"PsmId",
"adjustmentType":"AdjustmentType",
"adjustmentValue":"AdjustmentValue(Numeric)"",
"effectiveFrom":"EffectiveFrom date",
"effectiveTo":"EffectiveTo Date",
"additionalFieldsToValueMap":{
"attributeBasedAdjRuleId":"AttributeBasedAdjRuleId"
}
}

This example shows the input for versioned revision details for bundle-based adjustment.

{
"entityName": "BundleBasedAdjustment",
"id": "entityId",
"priceAdjustmentScheduleId": "priceAdjustmentScheduleId",
"productId": "ProductId",
"productSellingModelId": "PsmId",
"adjustmentType": "AdjustmentType",
"adjustmentValue": "AdjustmentValue(Numeric)",
"effectiveFrom":"EffectiveFrom date",
"effectiveTo":"EffectiveTo Date",
"additionalFieldsToValueMap": {
"rootBundleId": "RootBundleId",

415
Salesforce Pricing Request Bodies

"parentProductId": "ParentProductId"
}
}

Properties

Name Type Description Required or Available


Optional Version
additional Map<String, Map containing the additional fields Optional 60.0
FieldsToValue String> specific to the entity.
Map

adjustment String Adjustment type such as, percentage, Required 60.0


Type amount, or override.

adjustment String Value for the adjustment. Required 60.0


Value

effectiveFrom String Date from when the adjustment is Required 60.0


effective.

effectiveTo String Date until when the adjustment is Optional 60.0


effective.

entityName String Name of the entity such as Required 60.0


AttributeBasedAdjustment entity or
BundleBasedAdjustment entity.

id String ID of the record. Required 60.0

price String ID of the price adjustment schedule record. Required 60.0


Adjustment
ScheduleId

productId String Product ID of the record. Required 60.0

product String Product selling model ID associated to the Optional 60.0


Selling record.
ModelId

Pricing Waterfall Input


Input representation of the pricing waterfall details.
JSON example

"waterfall": [{
"fieldToTagNameMapping": {
"Product2Id": "ItemProduct",
"Subtotal": "Subtotal",
"Pricebook2Id": "Pricebook",
"Quantity": "ItemQuantity",

416
Salesforce Pricing Request Bodies

"LineItemId": "SalesTransactionSource",
"ListPrice": "ItemListPrice"
},
"inputParameters": {
"Product2Id": "01txx0000006i44AAA",
"Pricebook2Id": "01sxx0000005q9xAAA",
"Quantity": 5,
"LineItemId": "item1"
},
"outputParameters": {
"Subtotal": 50,
"ListPrice": 10
},
"pricingElement": {
"adjustments": [{
"AdjustmentValue": "95.00",
"AdjustmentType": "Amount"
}],
"description": null,
"elementType": "ListPrice",
"name": "List Price"
},
"sequence": 1
},
{
"fieldToTagNameMapping": {
"PriceAdjustmentScheduleId": "ItemDescription",
"NetUnitPrice": "ItemNetUnitPrice",
"Product2Id": "ItemProduct",
"LowerBound": "ItemQuantity",
"UpperBound": "ItemQuantity",
"Subtotal": "Subtotal",
"Quantity": "ItemQuantity",
"LineItemId": "SalesTransactionSource",
"InputUnitPrice": "ItemListPrice"
},
"inputParameters": {
"PriceAdjustmentScheduleId": "84Xxx0000004CGSEA2",
"Product2Id": "01txx0000006i44AAA",
"LowerBound": 5,
"UpperBound": 5,
"Quantity": 5,
"LineItemId": "item1",
"InputUnitPrice": 10
},
"outputParameters": {
"NetUnitPrice": 8.5,
"Subtotal": 42.5
},
"pricingElement": {
"adjustments": [{
"AdjustmentValue": "15.00",
"AdjustmentType": "Percentage"
}],

417
Salesforce Pricing Request Bodies

"description": null,
"elementType": "VolumeDiscount",
"name": "Volume Discount"
},
"sequence": 2
}
]

Properties

Name Type Description Required or Available


Optional Version
fieldTo Map<String, Mappings of field to tag names. Optional 60.0
TagName String>
Mapping

input Map<String, Input parameters of the pricing element. Optional 60.0


Parameters Object>

output Map<String, Output parameters of the pricing element. Optional 60.0


Parameters Object>

pricing Adjustment Details Details of the pricing element. Optional 60.0


Element Input

sequence Integer Sequence of the pricing element Optional 60.0


execution.

Pricing Waterfall Log Input


Input representation of the request to create an explainability action log.
JSON example

{
"currencyCode": "USD",
"executionEndTimestamp": "2023-07-31T20:11:29.625Z",
"executionId": "executionId1",
"executionStartTimestamp": null,
"lineItemId": "item1",
"output": {
"Subtotal": 38.25,
"ListPrice": 10,
"NetUnitPrice": 7.65
},
"waterfall": [{
"fieldToTagNameMapping": {
"Product2Id": "ItemProduct",
"Subtotal": "Subtotal",
"Pricebook2Id": "Pricebook",
"Quantity": "ItemQuantity",
"LineItemId": "SalesTransactionSource",

418
Salesforce Pricing Request Bodies

"ListPrice": "ItemListPrice"
},
"inputParameters": {
"Product2Id": "01txx0000006i44AAA",
"Pricebook2Id": "01sxx0000005q9xAAA",
"Quantity": 5,
"LineItemId": "item1"
},
"outputParameters": {
"Subtotal": 50,
"ListPrice": 10
},
"pricingElement": {
"adjustments": [{
"AdjustmentValue": "95.00",
"AdjustmentType": "Amount"
}],
"description": null,
"elementType": "ListPrice",
"name": "List Price"
},
"sequence": 1
},
{
"fieldToTagNameMapping": {
"PriceAdjustmentScheduleId": "ItemDescription",
"NetUnitPrice": "ItemNetUnitPrice",
"Product2Id": "ItemProduct",
"LowerBound": "ItemQuantity",
"UpperBound": "ItemQuantity",
"Subtotal": "Subtotal",
"Quantity": "ItemQuantity",
"LineItemId": "SalesTransactionSource",
"InputUnitPrice": "ItemListPrice"
},
"inputParameters": {
"PriceAdjustmentScheduleId": "84Xxx0000004CGSEA2",
"Product2Id": "01txx0000006i44AAA",
"LowerBound": 5,
"UpperBound": 5,
"Quantity": 5,
"LineItemId": "item1",
"InputUnitPrice": 10
},
"outputParameters": {
"NetUnitPrice": 8.5,
"Subtotal": 42.5
},
"pricingElement": {
"adjustments": [{
"AdjustmentValue": "15.00",
"AdjustmentType": "Percentage"
}],
"description": null,

419
Salesforce Pricing Request Bodies

"elementType": "VolumeDiscount",
"name": "Volume Discount"
},
"sequence": 2
}
]
}

Properties

Name Type Description Required or Available


Optional Version
context String Context definition version ID of the pricing Optional 60.0
Definition procedure.
VersionId

context String Context mapping ID of the pricing Optional 60.0


MappingId procedure.

currencyCode String Currency code such as, USD or INR. Optional 60.0

executionEnd String End timestamp of procedure execution. Optional 60.0


Timestamp

executionId String Execution ID for a particular execution of Required 60.0


a pricing procedure.

execution String Start timestamp of procedure execution. Optional 60.0


Start
Timestamp

lineItemId String Line item ID for which the price is being Required 60.0
calculated.

output Map<String, Output of the pricing procedure. Optional 60.0


Object>

waterfall Pricing Waterfall Details of the pricing waterfall. Required 60.0


Input[]

Procedure Plan Criterion Input


Input representation of the details of a procedure plan criterion.
JSON example
"procedurePlanCriterion": [
{
"conditionSequence": 1,
"fieldObject": "BillingCountry",
"fieldPath": "BillingCountry",
"literalValue": "test",
"operator": "Equals",

420
Salesforce Pricing Request Bodies

"dataType": "Text"
},
{
"conditionSequence": 2,
"fieldObject": "BillingPostalCode",
"fieldPath": "BillingPostalCode",
"literalValue": "sample",
"operator": "Equals",
"dataType": "Text"
},
{
"conditionSequence": 3,
"fieldObject": "LastActivityDate",
"fieldPath": "LastActivityDate",
"literalValue": "2024-07-14",
"operator": "LessThan",
"dataType": "Date"
}
]

Properties

Name Type Description Required or Available


Optional Version
condition Integer Sequence to be followed to process the Required 62.0
Sequence conditions defined in the procedure plan
option.
This property value must be unique within
a procedure plan option.

dataType String Data type of the field from the selected Required 62.0
object.

fieldObject String Value of the object field that’s used to Required 62.0
resolve the procedure plan option.
This property value must belong to the
primary object that’s associated with the
procedure plan definition, at a maximum
two levels up in the hierarchy.

fieldPath String Path of the field that’s used in a procedure Required 62.0
in relation to the object that the field
belongs to.
The field path must end with the object
field that’s associated with the procedure
plan criterion.

literalValue String User-defined value that’s compared to the Optional 62.0


value of the sObject field value.

421
Salesforce Pricing Request Bodies

Name Type Description Required or Available


Optional Version
operator String Operator that’s used by the procedure plan Required 62.0
criterion.

recordId String ID of the procedure plan criterion record. Required 62.0

Procedure Plan Definition Input


Input representation of the details of a procedure plan definition.
JSON example
This example shows a sample request to create a procedure plan definition record by using the Procedure Plan Definitions (POST)
API.
{
"description": "Definition for Quote",
"developerName": "Quote_Definition_Sample",
"name": "Quote_Definition_Sample",
"primaryObject": "BusinessHours",
"procedurePlanDefinitionVersions": [
{
"active": false,
"contextDefinition": "SalesTransactionContext__stdctx",
"readContextMapping": "QuoteEntitiesMapping",
"saveContextMapping": "QuoteEntitiesMapping",
"effectiveFrom": "2024-07-15T10:15:30.000Z",
"developerName": "Quote_Definition_V1",
"rank": 1
}
]
}

This example shows a sample request to update a procedure plan definition by using the Procedure Plan Definition By ID (PATCH)
API.

Note: The properties that aren’t specified in the input are deleted when updating the record.

{
"description": "Default definition patch update",
"developerName": "Quote_Definition",
"name": "Quote_Definition",
"primaryObject": "Quote",
"recordId": "1FNxx0000004EsOGAU"
}

Properties

Name Type Description Required or Available


Optional Version
description String Description of the procedure plan Optional 62.0
definition.

422
Salesforce Pricing Request Bodies

Name Type Description Required or Available


Optional Version
developerName String Developer name of the procedure plan Required if you’re 62.0
definition. invoking the
Procedure Plan
Definitions API
(POST).

name String Name of the procedure plan definition. Optional 62.0

primaryObject String Source object that’s used to create a Required if you’re 62.0
procedure with rule-based criteria. This invoking the
property value must be a valid object Procedure Plan
name and must be unique in the Definitions API
ProcedurePlanDefinition object. (POST) and if you’re
creating a
procedure with
rule-based criteria.

procedurePlan Procedure Plan List of versions of a procedure plan Required 62.0


Definition Definition Version definition.
Versions Input[]

recordId String ID of the procedure plan definition record. Required if you’re 62.0
invoking the
Procedure Plan
Definition By ID API
(PATCH).

Procedure Plan Definition Version Input


Input representation of the details of a procedure plan definition version.
JSON example
{
"active": false,
"developerName": "sample_version_input",
"effectiveFrom": "2024-07-09T00:00:00.000Z",
"contextDefinition": "SalesTransactionContext__stdctx",
"procedurePlanSections": [
{
"isInherited": false,
"procedurePlanOptions": [
{
"saveContextMapping": "AssetToSalesTransactionMapping",
"expressionSetDefinition": "9QAZ60000004ECOOA2",
"expressionSetLabel": "Revenue_Default_Pricing_Procedure",
"expressionSetApiName": "Revenue Default Pricing Procedure",
"logic": "1 AND 2 AND 3",
"priority": 1,
"procedurePlanCriterion": [

423
Salesforce Pricing Request Bodies

{
"conditionSequence": 1,
"fieldObject": "BillingCountry",
"fieldPath": "BillingCountry",
"literalValue": "test",
"operator": "Equals",
"dataType": "Text"
},
{
"conditionSequence": 2,
"fieldObject": "BillingPostalCode",
"fieldPath": "BillingPostalCode",
"literalValue": "sample",
"operator": "Equals",
"dataType": "Text"
},
{
"conditionSequence": 3,
"fieldObject": "LastActivityDate",
"fieldPath": "LastActivityDate",
"literalValue": "2024-07-14",
"operator": "LessThan",
"dataType": "Date"
}
]
}
],
"resolutionType": "RuleBased",
"sectionType": "PricingProcedure",
"sequence": 1,
"subSectionType": "PricingProcedure",
"recordId": "1FRZ60000008OIAOA2"
}
],
"rank": 1,
"readContextMapping": "ProductDiscoveryContextMapping",
"saveContextMapping": "OrderEntitiesMapping"
}

Note: The properties that aren’t specified in the input are deleted when updating the record.

Properties

Name Type Description Required or Available


Optional Version
active Boolean Indicates whether this procedure plan Required 62.0
definition version is active (true) or not
(false). You can’t edit or delete a
procedure plan version that’s in the active
state.

424
Salesforce Pricing Request Bodies

Name Type Description Required or Available


Optional Version
context String Context definition that’s associated with Required 62.0
Definition the procedure plan definition version
record.

developerName String Unique developer name of the procedure Required 62.0


plan definition version.

effectiveFrom String Date and time from when the procedure Required 62.0
plan definition version comes into effect.

effectiveTo String Date and time from when the procedure Required 62.0
plan definition version is no longer in
effect.

inheritedFrom String Template this procedure plan definition This property is 62.0
version is created from. read-only.

procedure Procedure Plan Procedure setup sections for a procedure Required 62.0
PlanSections Section Input[] plan definition. Each section enables the
setup of a procedure type by using a
rule-based criteria.
Keep these considerations in mind when
you modify this property.
• You can edit or delete a procedure
plan section if it isn’t associated with
an active procedure plan version.
• You can create a procedure plan
section with rule-based resolution type
if the primary object isn’t empty in the
definition.

rank Integer Current rank of the procedure plan Required 62.0


definition version that’s used to decide the
sequence of execution of a procedure plan
definition version.

readContext String Mapping that’s used to read data from the Optional 62.0
Mapping mapped object and populate the context
definition.
This property value must be associated
with a context definition.

recordId String ID of the procedure plan definition version Required 62.0


record.

425
Salesforce Pricing Request Bodies

Name Type Description Required or Available


Optional Version
saveContext String Mapping that’s used to save data from the Optional 62.0
Mapping context definition and populate the
mapped object.
This property value must be associated
with a context definition.

status String Status of the procedure plan definition Optional 62.0


version record.

Procedure Plan Evaluation Input


Input representation of the details used to evaluate a procedure plan definition.
JSON example
This example shows a sample request to evaluate a procedure plan definition by using a primary object.
{
"idList": ["a01DU000000BylcYAC"],
"evaluationDate": "2024-07-08T10:15:30.000Z",
"sectionType": ["PricingProcedure"],
"subSectionType": ["Revenue"]
}

This example shows a sample request to evaluate a procedure plan definition by using a definition name.
{
"evaluationDate": "2024-07-08T10:15:30.000Z",
"sectionType": ["PricingProcedure"],
"subSectionType": ["Revenue"]
}

Properties

Name Type Description Required or Available


Optional Version
evaluationDate String Date when the evaluation is applicable. Required 62.0
This property value must be within the
date range when the procedure plan
definition is effective.

idList String[] List of record IDs of the procedure plan Required only if 62.0
definitions to be evaluated. you’re invoking the
Procedure Plan
Evaluation By Object
(POST) API .

426
Salesforce Pricing Request Bodies

Name Type Description Required or Available


Optional Version
sectionType String[] Name of section to be evaluated. Valid Optional 62.0
values are:
• PricingProcedure
• ProductDiscoveryProcedure
• ProductQualificationProcedure
• PricingDiscoveryProcedure
• DiscountSpreadServiceProcedure
• RatingProcedure
• Custom
• RatingDiscoveryProcedure

subSectionType String[] Name of subsection to be evaluated. Optional 62.0

The combination of the sectionType and subSectionType property values must be unique for every procedure plan
version.

Procedure Plan Section Input


Input representation of the details of a procedure plan section.
JSON example
"procedurePlanSections": [
{
"isInherited": false,
"procedurePlanOptions": [
{
"saveContextMapping": "AssetToSalesTransactionMapping",
"expressionSetDefinition": "9QAZ60000004ECOOA2",
"expressionSetLabel": "Revenute_Default_Pricing_Procedure",
"expressionSetApiName": "Revenue Default Pricing Procedure",
"logic": "1 AND 2 AND 3",
"priority": 1,
"procedurePlanCriterion": [
{
"conditionSequence": 1,
"fieldObject": "BillingCountry",
"fieldPath": "BillingCountry",
"literalValue": "test",
"operator": "Equals",
"dataType": "Text"
},
{
"conditionSequence": 2,
"fieldObject": "BillingPostalCode",
"fieldPath": "BillingPostalCode",
"literalValue": "sample",

427
Salesforce Pricing Request Bodies

"operator": "Equals",
"dataType": "Text"
},
{
"conditionSequence": 3,
"fieldObject": "LastActivityDate",
"fieldPath": "LastActivityDate",
"literalValue": "2024-07-14",
"operator": "LessThan",
"dataType": "Date"
}
]
}
],
"resolutionType": "RuleBased",
"sectionType": "PricingProcedure",
"sequence": 1,
"subSectionType": "PricingProcedure",
"recordId": "1FRZ60000008OIAOA2"
}
]

Properties

Name Type Description Required or Available


Optional Version
isInherited Boolean Indicates whether the procedure plan This property is 62.0
section is inherited from a template read-only.
(true) or not (false).

procedurePlan Procedure Plan List of procedure plan options that defines Required 62.0
Options Option Input[] a group of criteria.
You can edit or delete a procedure plan
option only if it isn’t associated with an
active procedure plan version.

recordId String ID of the procedure plan section record. Required 62.0

resolution String Type of resolution used to filter the Required 62.0


Type procedure. You can’t edit this property
value if the procedure plan section
includes a procedure plan option record.

sectionType String Type of section. Valid values are: Required 62.0

• PricingProcedure
• ProductDiscoveryProcedure
• ProductQualificationProcedure
• PricingDiscoveryProcedure
• DiscountSpreadServiceProcedure
• RatingProcedure

428
Salesforce Pricing Request Bodies

Name Type Description Required or Available


Optional Version
• Custom
• RatingDiscoveryProcedure

sequence Integer Sequence to be followed for the Required 62.0


processing of the procedures. This property
value must be greater than 0 and must be
unique for a procedure plan section
associated with a procedure plan version.

subSection String Procedure subsection added to the Required 62.0


Type procedure plan definition.

Procedure Plan Option Input


Input representation of the details of a procedure plan option.
JSON example
"procedurePlanOptions": [
{
"saveContextMapping": "AssetToSalesTransactionMapping",
"expressionSetDefinition": "9QAZ60000004ECOOA2",
"expressionSetLabel": "Revenute_Default_Pricing_Procedure",
"expressionSetApiName": "Revenue Default Pricing Procedure",
"logic": "1 AND 2 AND 3",
"priority": 1,
"procedurePlanCriterion": [
{
"conditionSequence": 1,
"fieldObject": "BillingCountry",
"fieldPath": "BillingCountry",
"literalValue": "test",
"operator": "Equals",
"dataType": "Text"
},
{
"conditionSequence": 2,
"fieldObject": "BillingPostalCode",
"fieldPath": "BillingPostalCode",
"literalValue": "sample",
"operator": "Equals",
"dataType": "Text"
},
{
"conditionSequence": 3,
"fieldObject": "LastActivityDate",
"fieldPath": "LastActivityDate",
"literalValue": "2024-07-14",
"operator": "LessThan",
"dataType": "Date"

429
Salesforce Pricing Request Bodies

}
]
}
]

Properties

Name Type Description Required or Available


Optional Version
expressionSet String API name of the expression set. Optional 62.0
ApiName

expressionSet String Expression set definition that’s associated Required 62.0


Definition with this procedure plan option record.

expressionSet String Label of the expression set that’s Optional 62.0


Label associated with this procedure plan option
record.

logic String Computation logic for the conditions Optional 62.0


applied to a procedure plan option.
This property value must be blank if the
resolution type is default.

priority Integer Priority for the specified criteria. This Required 62.0
property value must be greater than 0 and
must be unique within a procedure plan
section.

procedurePlan Procedure Plan Details of the rule-based criteria for the Optional 62.0
Criterion Criterion Input[] procedure.
You can edit or delete a procedure plan
criterion only if it isn’t associated with an
active procedure plan version.

readContext String Mapping that’s used to read from the Optional 62.0
Mapping mapped object and populate the context
definition.
This property value must be associated
with a context definition.

recordId String ID of the procedure plan option record. Required 62.0

saveContext String Mapping that’s used to save data from the Optional 62.0
Mapping context definition and populate the
mapped object.
This property value must be associated
with a context definition.

430
Salesforce Pricing Response Bodies

Response Bodies
Learn more about the available Salesforce Pricing API response bodies.

Adjustment Details
Output representation of a pricing adjustment request.
Line Item Waterfall Response
Output representation of the line item waterfall response.
PBE Derived Pricing
Output representation of the response that includes the source product for the Price Book Entry (PBE) derived pricing.
Pricing Error Response
Output representation of the pricing error response.
Pricing Generic Response
Output representation of a pricing data sync request.
Pricing Output
Output representation of the Salesforce pricing request.
Pricing Recipe LookUp Table Response
Output representation of a pricing recipe lookup table.
Pricing Recipe
Output representation of the pricing recipe information table.
Pricing Recipe Post
Output representation of the pricing recipe after the API request.
Pricing Recipe Response
Output representation of the pricing recipe.
Pricing Response
Output representation of the pricing request.
Pricing Result
Output representation of the pricing result.
Pricing Result Error
Output representation of the pricing result error.
Pricing Versioned Revision Details
Output representation of the versioned revision details.
Pricing Waterfall Response
Output representation of a pricing waterfall request.
Procedure Plan Criterion
Output representation of the details of a procedure plan criterion.
Procedure Plan Definition
Output representation of the details of a single procedure plan definition.
Procedure Plan Definition Version
Output representation of the version details of a procedure plan definition.

431
Salesforce Pricing Response Bodies

Procedure Plan Definitions


Output representation of the details of procedure plan definitions.
Procedure Plan Generic
Output representation of the details of the created procedure plan definition record.
Procedure Plan Generic Error
Output representation of the error details related to the procedure plan definitions.
Procedure Plan Option
Output representation of the details of a procedure plan option.
Procedure Plan Section
Output representation of the details of a procedure plan section.
Procedure Plan Section Evaluation Runtime
Output representation of the results from the procedure plan evaluation.
Procedure Plan Evaluation
Output representation of the evaluation details of a procedure plan definition.
Procedure Plan Evaluation Response
Output representation of the evaluation details of a procedure plan definition.
Procedure Plan Evaluation Result
Output representation of the evaluation result of a procedure plan definition.

Adjustment Details
Output representation of a pricing adjustment request.
JSON example

"pricingElement": {
"adjustments": [{
"adjustmentType": null,
"adjustmentValue": null
}],
"name": "List Price",
"elementType": "ListPrice"
}

Property Name Type Description Filter Group and Available Version


Version
adjustments Map<String, Details of the pricing element. Small, 60.0 60.0
Object>[]

description String Description of the pricing element. Small, 60.0 60.0

elementType String Type of the pricing element. Small, 60.0 60.0

name String Name of the pricing element. Small, 60.0 60.0

432
Salesforce Pricing Response Bodies

Line Item Waterfall Response


Output representation of the line item waterfall response.
JSON example
{
"currencyCode": "USD",
"error": null,
"executionEndTimestamp": "2023-07-31T20:11:29.625Z",
"executionId": "gdLVwn2x1uats2xWMAjV",
"executionStartTimestamp": null,
"lineItemId": "item1",
"success": true,
"usageType":"Pricing",
"output": {
"quantity": "10",
"netUnitPrice": "10",
"subtotal": "100"
},
"waterfall": []
}

Property Name Type Description Filter Group and Available Version


Version
context String Context definition version ID of the pricing Small, 60.0 60.0
Definition procedure.
VersionId

context String Context mapping ID of the record. Small, 60.0 60.0


MappingId

currencyCode String Currency code. For example, USD or INR. Small, 60.0 60.0

error Pricing Error Details of any errors. Small, 60.0 60.0


Response

executionEnd String End timestamp of procedure execution. Small, 60.0 60.0


Timestamp

executionId String Execution ID of a particular execution of a Small, 60.0 60.0


pricing procedure.

execution String Start timestamp of procedure execution. Small, 60.0 60.0


Start
Timestamp

lineItemId String Line item ID for which the price is being Small, 60.0 60.0
calculated.

output Map<String, Output of the pricing procedure. Small, 60.0 60.0


Object>

success Boolean Indicates whether the API request is Small, 60.0 60.0
successful (true) or not (false).

433
Salesforce Pricing Response Bodies

Property Name Type Description Filter Group and Available Version


Version
usageType String Usage type of the waterfall log record. Small, 62.0 62.0

waterfall Pricing Waterfall Details of the price waterfall. Small, 60.0 60.0
Response[]

PBE Derived Pricing


Output representation of the response that includes the source product for the Price Book Entry (PBE) derived pricing.
JSON example
{
"productId":"01txx0000006i2SAAQ",
"pricebookEntryId":"01uxx0000008yYcAAI",
"effectiveFrom":"2020-01-01T22:53:20.000Z",
"effectiveTo":"2021-01-01T22:53:20.000Z"
}

Property Name Type Description Filter Group and Available Version


Version
error Pricing Error Displays the error while processing the Small, 61.0 61.0
Response[] request.

isSuccess Boolean Indicates whether the request is successful Small, 61.0 61.0
(true) or not (false).

source String ID of the source product. Small, 61.0 61.0


ProceductId

Pricing Error Response


Output representation of the pricing error response.

Property Name Type Description Filter Group and Available Version


Version
errorCode String Indicates the error code. Small, 60.0 60.0

message String Specifies the message stating the reason for Small, 60.0 60.0
the error, if any.

Pricing Generic Response


Output representation of a pricing data sync request.

434
Salesforce Pricing Response Bodies

JSON example

{
"success": true
}

Property Name Type Description Filter Group and Available Version


Version
error Pricing Error Details from the pricing error response. Small, 60.0 60.0
Response

success Boolean Indicates whether the request is successful Small, 60.0 60.0
(true) or not (false).

Pricing Output
Output representation of the Salesforce pricing request.
JSON example
{
"status": "Completed",
"pricingResult": {
"subtotal": [
{
"dataPath": [
"cart_1001",
"lineItem_1002"
],
"value": 300.0,
"errors": [],
"isSuccess": true
},
{
"dataPath": [
"cart_1001",
"lineItem_1001"
],
"value":400.0,
"errors": [],
"isSuccess": true
}
],
"netunitprice": [
{
"dataPath": [
"cart_1001",
"lineItem_1002"
],
"value": xx,
"errors": [],
"isSuccess": true

435
Salesforce Pricing Response Bodies

},
{
"dataPath": [
"cart_1001",
"lineItem_1001"
],
"value": xx,
"errors": [],
"isSuccess": true
}
]
},
"pricingResultErrors": []
}

Property Name Type Description Filter Group and Available Version


Version
error Pricing Error Displays the error while processing the Small, 60.0 60.0
Response request. For example, a pricing procedure
isn’t found.

pricingResult Core Pricing Result Represents the outcomes associated with Small, 60.0 60.0
Representation the output tags defined in the contextual
definition, for which the pricing engine
establishes values. The initial attribute name
is substituted for the output tag's
designation. For instance, if the original
attribute name specified in the Context
Definition is "Subtotal," but during
contextual setup, the output tag is denoted
as "Total Price," the API output exhibits the
initial attribute name "Subtotal" in the
response.

pricingResult Core Pricing Result Errors from the pricing request, if any. Small, 60.0 60.0
Errors Error[]

status String Status of the pricing request. Valid values Small, 60.0 60.0
are:
• Completed — Pricing is completed
for all the line items.
• Partially Completed —
Pricing is completed for some line items.
• Failed — Pricing isn’t completed for
the line items.

Pricing Recipe LookUp Table Response


Output representation of a pricing recipe lookup table.

436
Salesforce Pricing Response Bodies

JSON example

"decisionTables": [
{
"id": "0lDxx00000000T3EAI",
"isInternal": true,
"pricingComponentType": "ListPrice"
},
{
"id": "0lDxx00000000T4EAI",
"isInternal": true,
"pricingComponentType": "VolumeDiscount"
},
{
"id": "0lDxx00000000HlEAI",
"isInternal": false,
"pricingComponentType": "CustomDiscount"
}
]

Property Name Type Description Filter Group and Available Version


Version
id String ID of the pricing recipe table mapping. Small, 60.0 60.0

isInternal Boolean Indicates if the decision table is available Small, 60.0 60.0
(true) or not (false).

pricing String Price component types such as, custom Small, 60.0 60.0
ComponentType discount, volume discount, attribute-based
discount, bundle-based discount, and list
price.

Pricing Recipe
Output representation of the pricing recipe information table.
JSON example

"recipes": [
{
"active": false,
"createdBy": "autoproc@00dxx0000006gmjea2",
"createdOn": "2023-07-15T13:12:38.000Z",
"decisionTables": [
{
"id": "0lDxx00000000T3EAI",
"isInternal": true,
"pricingComponentType": "ListPrice"
},
{
"id": "0lDxx00000000T4EAI",

437
Salesforce Pricing Response Bodies

"isInternal": true,
"pricingComponentType": "VolumeDiscount"
},
{
"id": "0lDxx00000000HlEAI",
"isInternal": false,
"pricingComponentType": "CustomDiscount"
}
],
"developerName": "NGPDefaultRecipe",
"id": "12Gxx0000005Ka4EAE",
"name": "NGPDefaultRecipe",
"procedureCreatedBy": "",
"procedureCreatedOn": "2023-09-19T11:39:18.983Z",
"procedureId": "",
"procedureName": ""
}]

Property Name Type Description Filter Group and Available Version


Version
active Boolean Indicates whether the recipe is active Small, 60.0 60.0
(true) or not (false).

createdBy String Details on who created the recipe. Small, 60.0 60.0

createdOn String Date when the recipe was created. Small, 60.0 60.0

decision Pricing Recipe Decision tables linked to the recipe. Small, 60.0 60.0
Tables LookUp Table
Response []

developerName String API name of the recipe. Small, 60.0 60.0

id String ID of the recipe. Small, 60.0 60.0

name String Name of the recipe. Small, 60.0 60.0

procedure String Details on who created the procedure. Small, 60.0 60.0
CreatedBy

procedure String Date when the procedure was created. Small, 60.0 60.0
CreatedOn

procedureId String ID of the procedure. Small, 60.0 60.0

procedureName String Name of the procedure. Small, 60.0 60.0

Pricing Recipe Post


Output representation of the pricing recipe after the API request.

438
Salesforce Pricing Response Bodies

JSON example

{
isSuccess : true
}

Property Name Type Description Filter Group and Available Version


Version
error Pricing Error Details from the pricing error response. Small, 60.0 60.0
Response

isSuccess Boolean Indicates whether the response was Small, 60.0 60.0
calculated successfully (true) or not
(false).

Pricing Recipe Response


Output representation of the pricing recipe.
JSON example
{
"recipes": [
{
"active": false,
"createdBy": "autoproc@00dxx0000006gmjea2",
"createdOn": "2023-07-15T13:12:38.000Z",
"decisionTables": [
{
"id": "0lDxx00000000T3EAI",
"isInternal": true,
"pricingComponentType": "ListPrice"
},
{
"id": "0lDxx00000000T4EAI",
"isInternal": true,
"pricingComponentType": "VolumeDiscount"
},
{
"id": "0lDxx00000000HlEAI",
"isInternal": false,
"pricingComponentType": "CustomDiscount"
}
],
"developerName": "NGPDefaultRecipe",
"id": "12Gxx0000005Ka4EAE",
"name": "NGPDefaultRecipe",
"procedureCreatedBy": "",
"procedureCreatedOn": "2023-09-19T11:39:18.983Z",
"procedureId": "",
"procedureName": ""
}],

439
Salesforce Pricing Response Bodies

"success": true
}

Property Name Type Description Filter Group and Available Version


Version
recipes Pricing Recipe Representation of the pricing recipe. Small, 60.0 60.0
Output
Representation[]

success Boolean Indicates if the request is successful (true) Small, 60.0 60.0
or not (false).

Pricing Response
Output representation of the pricing request.
JSON example

{
"success": true,
"executionId": "zu81o5hBCrFzyd5LWZk"
}

Property Name Type Description Filter Group and Available Version


Version
error Pricing Error Errors while processing the request, if any. Small, 60.0 60.0
Response

executionId String Auto-generated alphanumeric string for Small, 60.0 60.0


correlation to extract async waterfall and
context persistence status.

success Boolean Indicates if the request is successful (true) Small, 60.0 60.0
or not (false).

Pricing Result
Output representation of the pricing result.
JSON example
"pricingResult": {
"subtotal": [
{
"dataPath": [
"cart_1001",
"lineItem_1002"
],
"value": 300.0,
"errors": [],

440
Salesforce Pricing Response Bodies

"isSuccess": true
},
{
"dataPath": [
"cart_1001",
"lineItem_1001"
],
"value":400.0,
"errors": [],
"isSuccess": true
}
],
"netunitprice": [
{
"dataPath": [
"cart_1001",
"lineItem_1002"
],
"value": xx,
"errors": [],
"isSuccess": true
},
{
"dataPath": [
"cart_1001",
"lineItem_1001"
],
"value": xx,
"errors": [],
"isSuccess": true
}
]
}

Property Name Type Description Filter Group and Available Version


Version
dataPath String Includes the entire data route for the specific Small, 60.0 60.0
element starting from the root node. The
request must include the ID to construct the
accurate data route.
For example, if a jsonDataString
property comprises a Cart [Id = Cart1] and
its associated Cart Item [Id = CartItem1],
then the data route for CartItem appears as
[Cart1, CartItem1].

errors Pricing Error Displays processing errors related to the Small, 60.0 60.0
Response[] element as recognized by the data path.

isSuccess Boolean Displays if processing of the element for the Small, 60.0 60.0
specified data path is successful or not.

441
Salesforce Pricing Response Bodies

Property Name Type Description Filter Group and Available Version


Version
value Object Displays the value of the element into Small, 60.0 60.0
consideration. Element is uniquely identify
by the data path.

Pricing Result Error


Output representation of the pricing result error.
JSON example
"pricingResultErrors": {
"Aggregateprice": [
{
"dataPath": [
"cart_1001",
],

"errors": [
{
“errorCode”: “Dummy”
“message”:
}
]
}
]
}

Property Name Type Description Filter Group and Available Version


Version
dataPath String[] Includes the entire data route for the specific Small, 60.0 60.0
element starting from the root node. The
request must include the ID to construct the
accurate data route.
For example, if a jsonDataString
property comprises a Cart [Id = Cart1] and
its associated Cart Item [Id = CartItem1],
then the data route for CartItem appears as
[Cart1, CartItem1].

errors Pricing Error Displays processing errors related to the Small, 60.0 60.0
Response element as recognized by the data path.

Pricing Versioned Revision Details


Output representation of the versioned revision details.

442
Salesforce Pricing Response Bodies

Property Name Type Description Filter Group and Available Version


Version
error Pricing Error Details from the pricing error response. Small, 60.0 60.0
Response

success Boolean Indicates whether the request is successful Small, 60.0 60.0
(true) or not (false).

Pricing Waterfall Response


Output representation of a pricing waterfall request.
JSON example

{
"inputParameters": {
"productId": "01txx0000006i2SAAQ",
"pricebookId": "01sxx0000005ptpAAA",
"pricingModelType": "OneTime"
},
"fieldToTagNameMapping": {
"Product2Id": "ItemProduct",
"Subtotal": "Subtotal",
"Pricebook2Id": "Pricebook",
"Quantity": "ItemQuantity",
"LineItemId": "SalesTransactionSource",
"ListPrice": "ItemListPrice"
},
"sequence": 0,
"outputParameters": {
"listPrice": "10"
},
"pricingElement": {
"adjustments": [
{
"adjustmentType": null,
"adjustmentValue": null
}
],
"name": "List Price"
}
}

Property Name Type Description Filter Group and Available Version


Version
fieldTo Map<String, String> Mappings of field to tag names. Small, 60.0 60.0
TagName
Mapping

input Map<String, Parameters of pricing element input. Small, 60.0 60.0


Parameters Object>

443
Salesforce Pricing Response Bodies

Property Name Type Description Filter Group and Available Version


Version
output Map<String, Parameters of pricing element output. Small, 60.0 60.0
Parameters Object>

pricing Adjustment Details Details of the price adjustment of a pricing Small, 60.0 60.0
Element element.

sequence Integer Sequence of pricing element execution. Small, 60.0 60.0

Procedure Plan Criterion


Output representation of the details of a procedure plan criterion.
JSON example
"procedurePlanCriterion": [
{
"conditionSequence": 1,
"dataType": "Text",
"fieldObject": "BillingCountry",
"fieldPath": "BillingCountry",
"isSuccess": true,
"literalValue": "test",
"operator": "Equals",
"recordId": "1FiZ60000004C9cKAE"
},
{
"conditionSequence": 2,
"dataType": "Text",
"fieldObject": "BillingPostalCode",
"fieldPath": "BillingPostalCode",
"isSuccess": true,
"literalValue": "pramit",
"operator": "Equals",
"recordId": "1FiZ60000004C9dKAE"
},
{
"conditionSequence": 3,
"dataType": "Date",
"fieldObject": "LastActivityDate",
"fieldPath": "LastActivityDate",
"isSuccess": true,
"literalValue": "2024-07-14",
"operator": "LessThan",
"recordId": "1FiZ60000004C9eKAE"
}
]

444
Salesforce Pricing Response Bodies

Property Name Type Description Filter Group and Available Version


Version
condition Integer Sequence to be followed to process the Small, 62.0 62.0
Sequence conditions defined in the procedure plan
option.

dataType String Data type of the field from the selected Small, 62.0 62.0
object.

error Procedure Plan Details of the error encountered during the Small, 62.0 62.0
Generic Error[] processing of the API request.

fieldObject String Value of the object field that’s used to Small, 62.0 62.0
resolve the procedure plan option.

fieldPath String Path of the field that’s used in a procedure Small, 62.0 62.0
in relation to the object that the field
belongs to.

isSuccess Boolean Indicates whether the API request is Small, 62.0 62.0
successful (true) or not (false).

literalValue String User-defined value that’s compared to the Small, 62.0 62.0
value of the sObject field value.

operator String Operator that’s used by the procedure plan Small, 62.0 62.0
criterion.

recordId String ID of the procedure plan criterion record. Small, 62.0 62.0

Procedure Plan Definition


Output representation of the details of a single procedure plan definition.
JSON example
This example shows a sample response for the Procedure Plan Definition By ID (GET) request.
{
"description": "Default Definition",
"developerName": "Quote_Definition",
"name": "Quote_Definition",
"primaryObject": "Quote",
"procedurePlanDefinitionVersions": [
{
"active": false,
"contextDefinition": "11Oxx0000006PZ7EAM",
"effectiveFrom": "2024-02-03T10:15:30.000Z",
"effectiveTo": "2024-02-03T10:15:30.000Z",
"readContextMapping": "MedicalHistoryMapping",
"recordId": "1Cvxx0000004E1ACAU",
"saveContextMapping": "MedicalHistoryMapping",
"success": true
}
],

445
Salesforce Pricing Response Bodies

"recordId": "1FNxx0000004GkWGAU",
"success": true
}

This example shows a sample response for the Procedure Plan Definition By ID (PATCH) request.
{
"procedurePlanDefinitionVersions":[],
"recordId":"1FNDU00000000EX4AY",
"success":true
}

Property Name Type Description Filter Group and Available Version


Version
description String Description for the procedure plan Small, 62.0 62.0
definition.

developerName String Developer name of the procedure plan Small, 62.0 62.0
definition.

error Procedure Plan Details of the error encountered during the Small, 62.0 62.0
Generic Error[] processing of the API request.

name String Name of the procedure plan definition. Small, 62.0 62.0

primaryObject String Object that’s associated with the procedure Small, 62.0 62.0
plan definition.

procedurePlan Procedure Plan Details of the versions of a procedure plan Small, 62.0 62.0
Definition Definition Version[] definition.
Versions

recordId String ID of the procedure plan definition record. Small, 62.0 62.0

success Boolean Indicates whether the API request is Small, 62.0 62.0
successful (true) or not (false).

Procedure Plan Definition Version


Output representation of the version details of a procedure plan definition.
JSON example
"procedurePlanDefinitionVersions": [
{
"active": false,
"developerName": "sample_test",
"effectiveFrom": "2024-07-09T00:00:00.000Z",
"contextDefinition": "SalesTransactionContext__stdctx",
"procedurePlanSections": [],
"rank": 1,
"readContextMapping": "ProductDiscoveryContextMapping",
"recordId": "1CvZ60000008OIaKAM",
"success": true

446
Salesforce Pricing Response Bodies

}
]

Property Name Type Description Filter Group and Available Version


Version
active Boolean Indicates whether the procedure plan Small, 62.0 62.0
definition version is active (true) or not
(false).

context String Context definition that’s associated with the Small, 62.0 62.0
Definition procedure plan definition version.

developerName String Developer name of the procedure plan Small, 62.0 62.0
definition version.

effectiveFrom String Date and time from when the procedure Small, 62.0 62.0
plan definition version is effective.

effectiveTo String Date and time until when the procedure Small, 62.0 62.0
plan definition version is effective.

error Procedure Plan Details of the error encountered during the Small, 62.0 62.0
Generic Error[] processing of the API request.

inheritedFrom String Name of the template the procedure plan Small, 62.0 62.0
definition is extended from.

procedure Procedure Plan List of sections of the procedure plan Small, 62.0 62.0
PlanSections Section[] definition that you can organize in any
order. Each section must include a
procedure or a set of procedures to be
executed for a specific criteria.

rank Integer Rank or the order of sequence to follow for Small, 62.0 62.0
the processing of the procedure plan
definition version.

readContext String Mapping that’s used to read data from the Small, 62.0 62.0
Mapping mapped object and populate the context
definition.

recordId String ID of the procedure plan definition version Small, 62.0 62.0
record.

saveContext String Mapping that’s used to save data from the Small, 62.0 62.0
Mapping context definition and populate the mapped
object.

success Boolean Indicates whether the API request is Small, 62.0 62.0
successful (true) or not (false).

447
Salesforce Pricing Response Bodies

Procedure Plan Definitions


Output representation of the details of procedure plan definitions.
JSON example
{
"isSuccess": true,
"procedurePlanDefinitions": [
{
"description": "test description",
"developerName": "sample_test",
"name": "sample_test",
"primaryObject": "Account",
"procedurePlanDefinitionVersions": [
{
"active": false,
"developerName": "sample_test",
"effectiveFrom": "2024-07-09T00:00:00.000Z",
"contextDefinition": "SalesTransactionContext__stdctx",
"procedurePlanSections": [],
"rank": 1,
"readContextMapping": "ProductDiscoveryContextMapping",
"recordId": "1CvZ60000008OIaKAM",
"success": true
}
],
"recordId": "1FNZ60000004CAHOA2",
"success": true
},
{
"developerName": "PriceAdjustmentSchedule",
"name": "PriceAdjustmentSchedule",
"primaryObject": "PriceAdjustmentSchedule",
"procedurePlanDefinitionVersions": [
{
"active": false,
"developerName": "PriceAdjustmentSchedule",
"effectiveFrom": "2024-07-10T00:00:00.000Z",
"contextDefinition": "SalesTransactionContext__stdctx",
"procedurePlanSections": [],
"rank": 1,
"recordId": "1CvZ6000000CaRbKAK",
"success": true
}
],
"recordId": "1FNZ6000000CaSAOA0",
"success": true
}
]
}

448
Salesforce Pricing Response Bodies

Property Name Type Description Filter Group and Available Version


Version
error Procedure Plan Details of the error encountered during the Small, 62.0 62.0
Generic Error[] processing of the API request.

isSuccess Boolean Indicates whether the API request is Small, 62.0 62.0
successful (true) or not (false).

procedure Procedure Plan Details of a single procedure plan definition. Small, 62.0 62.0
PlanDefinitions Definition[]

Procedure Plan Generic


Output representation of the details of the created procedure plan definition record.
JSON example
This example shows a sample response of the details of a procedure plan definition record, created by using the Procedure Plan
Definitions (POST) API.
{
"isSuccess":true,
"recordId":"1FNDU00000000EX4AY"
}

Property Name Type Description Filter Group and Available Version


Version
error Procedure Plan Details of the error encountered during the Small, 62.0 62.0
Generic Error[] processing of the API request.

isSuccess Boolean Indicates whether the API request is Small, 62.0 62.0
successful (true) or not (false).

recordId String ID of the created procedure plan definition Small, 62.0 62.0
record.

Procedure Plan Generic Error


Output representation of the error details related to the procedure plan definitions.

Property Name Type Description Filter Group and Available Version


Version
errorCode String Code indicating the type of error. Small, 62.0 62.0

message String Message stating the reason for the error, if Small, 62.0 62.0
any.

Procedure Plan Option


Output representation of the details of a procedure plan option.

449
Salesforce Pricing Response Bodies

JSON example
"procedurePlanOptions": [
{
"expressionSetApiName": "Revenue_Mgmt_Default_Pricing_Procedure",
"expressionSetDefinition": "9QAZ60000004ECOOA2",
"expressionSetLabel": "Revenue Management Default Pricing Procedure",

"isSuccess": true,
"logic": "1 AND 2 AND 3",
"primaryObject": "Account",
"priority": 1,
"procedurePlanCriterion": [
{
"conditionSequence": 1,
"dataType": "Text",
"fieldObject": "BillingCountry",
"fieldPath": "BillingCountry",
"isSuccess": true,
"literalValue": "test",
"operator": "Equals",
"recordId": "1FiZ60000004C9cKAE"
},
{
"conditionSequence": 2,
"dataType": "Text",
"fieldObject": "BillingPostalCode",
"fieldPath": "BillingPostalCode",
"isSuccess": true,
"literalValue": "pramit",
"operator": "Equals",
"recordId": "1FiZ60000004C9dKAE"
},
{
"conditionSequence": 3,
"dataType": "Date",
"fieldObject": "LastActivityDate",
"fieldPath": "LastActivityDate",
"isSuccess": true,
"literalValue": "2024-07-14",
"operator": "LessThan",
"recordId": "1FiZ60000004C9eKAE"
}
],
"recordId": "1FYZ6000000000fOAA",
"saveContextMapping": "AssetToSalesTransactionMapping"
}
]

Property Name Type Description Filter Group and Available Version


Version
error Procedure Plan Details of the error encountered during the Small, 62.0 62.0
Generic Error[] processing of the API request.

450
Salesforce Pricing Response Bodies

Property Name Type Description Filter Group and Available Version


Version
expression String API name of the expression set. Small, 62.0 62.0
SetApiName

expressionSet String Expression set definition that’s associated Small, 62.0 62.0
Definition with this procedure plan option record.

expression String Label of the expression set that’s associated Small, 62.0 62.0
SetLabel with this procedure plan option record.

isSuccess Boolean Indicates whether the API request is Small, 62.0 62.0
successful (true) or not (false).

logic String Computation logic for the conditions Small, 62.0 62.0
applied to a procedure plan option.

primaryObject String Source object that’s used to create a Small, 62.0 62.0
procedure with rule-based criteria.

priority Integer Priority for the specified criteria. Small, 62.0 62.0

procedure Procedure Plan Details of the rule-based criteria for the Small, 62.0 62.0
PlanCriterion Criterion[] procedure.

readContext String Mapping that’s used to read from the Small, 62.0 62.0
Mapping mapped object and populate the context
definition.

recordId String ID of the procedure plan option record. Small, 62.0 62.0

saveContext String Mapping that’s used to save data from the Small, 62.0 62.0
Mapping context definition and populate the mapped
object.

Procedure Plan Section


Output representation of the details of a procedure plan section.
JSON example
"procedurePlanSections": [
{
"isInherited": false,
"isSuccess": true,
"procedurePlanOptions": [
{
"expressionSetApiName": "Revenue_Mgmt_Default_Pricing_Procedure",
"expressionSetDefinition": "9QAZ60000004ECOOA2",
"expressionSetLabel": "Revenue Management Default Pricing Procedure",

"isSuccess": true,
"logic": "1 AND 2 AND 3",
"primaryObject": "Account",

451
Salesforce Pricing Response Bodies

"priority": 1,
"procedurePlanCriterion": [
{
"conditionSequence": 1,
"dataType": "Text",
"fieldObject": "BillingCountry",
"fieldPath": "BillingCountry",
"isSuccess": true,
"literalValue": "test",
"operator": "Equals",
"recordId": "1FiZ60000004C9cKAE"
},
{
"conditionSequence": 2,
"dataType": "Text",
"fieldObject": "BillingPostalCode",
"fieldPath": "BillingPostalCode",
"isSuccess": true,
"literalValue": "pramit",
"operator": "Equals",
"recordId": "1FiZ60000004C9dKAE"
},
{
"conditionSequence": 3,
"dataType": "Date",
"fieldObject": "LastActivityDate",
"fieldPath": "LastActivityDate",
"isSuccess": true,
"literalValue": "2024-07-14",
"operator": "LessThan",
"recordId": "1FiZ60000004C9eKAE"
}
],
"recordId": "1FYZ6000000000fOAA",
"saveContextMapping": "AssetToSalesTransactionMapping"
}
],
"recordId": "1FRZ60000008OIAOA2",
"resolutionType": "RuleBased",
"sectionType": "PricingProcedure",
"sequence": 1,
"subSectionType": "PricingProcedure"
}
]

Property Name Type Description Filter Group and Available Version


Version
error Procedure Plan Details of the error encountered during the Small, 62.0 62.0
Generic Error[] processing of the API request.

isInherited Boolean Indicates whether the procedure plan Small, 62.0 62.0
section is inherited from a template (true)
or not (false).

452
Salesforce Pricing Response Bodies

Property Name Type Description Filter Group and Available Version


Version
isSuccess Boolean Indicates whether the API request is Small, 62.0 62.0
successful (true) or not (false).

procedure Procedure Plan List of procedure plan options. Small, 62.0 62.0
PlanOptions Option[]

recordId String ID of the procedure plan option record. Small, 62.0 62.0

resolution String Type of resolution that’s used to filter the Small, 62.0 62.0
Type procedure.

sectionType String Type of section. Valid values are: Small, 62.0 62.0

• PricingProcedure
• ProductDiscoveryProcedure
• ProductQualificationProcedure
• PricingDiscoveryProcedure
• DiscountSpreadServiceProcedure
• RatingProcedure
• Custom
• RatingDiscoveryProcedure

sequence Integer Sequence that’s followed for the processing Small, 62.0 62.0
of the procedures.

subSection String Subsection that’s added to the procedure Small, 62.0 62.0
Type plan definition.

Procedure Plan Section Evaluation Runtime


Output representation of the results from the procedure plan evaluation.
JSON example
"procedurePlanSections": [
{
"expressionSetApiName": "pricingProcedure_usageType_3",
"expressionSetDefinitionId": "9QAZ60000004Ef6OAE",
"expressionSetLabel": "pricingProcedure_usageType_3",
"sectionType": "PricingProcedure",
"sequence": 1,
"subSectionType": "Section1",
"usageType": "DefaultPricing"
},
{
"expressionSetApiName": "productQualification_usageType_3",
"expressionSetDefinitionId": "9QAZ60000004EfFOAU",
"expressionSetLabel": "productQualification_usageType_3",
"sectionType": "ProductQualificationProcedure",

453
Salesforce Pricing Response Bodies

"sequence": 3,
"subSectionType": "Section2",
"usageType": "ProductQualification"
},
{
"expressionSetApiName": "rating_usageType_2",
"expressionSetDefinitionId": "9QAZ60000004EfHOAU",
"expressionSetLabel": "rating_usageType_2",
"sectionType": "RatingProcedure",
"sequence": 2,
"subSectionType": "Section3",
"usageType": "DefaultRating"
}
]

Property Name Type Description Filter Group and Available Version


Version
expression String API name of the expression set. Small, 62.0 62.0
SetApiName

expressionSet String ID of the expression set definition. Small, 62.0 62.0


DefinitionId

expression String Label of the expression set. Small, 62.0 62.0


SetLabel

readContext String Mapping that’s used to read data from the Small, 62.0 62.0
Mapping mapped object and populate the context
definition.

saveContext String Mapping that’s used to save data from the Small, 62.0 62.0
Mapping context definition and populate the mapped
object.

sectionType String Name of the evaluated section. Valid values Small, 62.0 62.0
are:
• PricingProcedure
• ProductDiscoveryProcedure
• ProductQualificationProcedure
• PricingDiscoveryProcedure
• DiscountSpreadServiceProcedure
• RatingProcedure
• Custom
• RatingDiscoveryProcedure

sequence Integer Sequence that’s followed for the processing Small, 62.0 62.0
of the procedures.

subSection String Name of the evaluated subsection. Small, 62.0 62.0


Type

454
Salesforce Pricing Response Bodies

Property Name Type Description Filter Group and Available Version


Version
usageType String Usage type of the procedure. Small, 62.0 62.0

Procedure Plan Evaluation


Output representation of the evaluation details of a procedure plan definition.
JSON example

"procedurePlanEvaluations":[
{
"errorMessage":"",
"id":"a01DU000000BylcYAC",
"isSuccess":true,
"primaryObject":"SignallingCustomEvaluation__c",
"result":{
"contextDefinition":"11ODU00000008Sw2AI",
"procedurePlanSections":[]
}
}
]

Property Name Type Description Filter Group and Available Version


Version
errorMessage String Message indicating the error details, if any. Small, 62.0 62.0

id String ID of the object used for evaluation. Small, 62.0 62.0

isSuccess Boolean Indicates whether the API request is Small, 62.0 62.0
successful (true) or not (false).

primaryObject String Name of the object used for evaluation. Small, 62.0 62.0

result Procedure Plan Results from the procedure plan evaluation. Small, 62.0 62.0
Evaluation Result[]

Procedure Plan Evaluation Response


Output representation of the evaluation details of a procedure plan definition.
JSON example
{
"isSuccess":true,
"procedurePlanEvaluations":[
{
"errorMessage":"",
"id":"a01DU000000BylcYAC",
"isSuccess":true,
"primaryObject":"SignallingCustomEvaluation__c",

455
Salesforce Pricing Salesforce Pricing Standard Invocable Actions

"result":{
"contextDefinition":"11ODU00000008Sw2AI",
"procedurePlanSections":[]
}
}
]
}

Property Name Type Description Filter Group and Available Version


Version
errorMessage String Message indicating the error details, if any. Small, 62.0 62.0

isSuccess Boolean Indicates whether the API request is Small, 62.0 62.0
successful (true) or not (false).

procedure String Name of the procedure plan definition. Small, 62.0 62.0
PlanDefinition
Name

procedurePlan Procedure Plan Evaluation details of the procedure plan. Small, 62.0 62.0
Evaluations Evaluation[]

Procedure Plan Evaluation Result


Output representation of the evaluation result of a procedure plan definition.
JSON example
"result":{
"contextDefinition":"11ODU00000008Sw2AI",
"procedurePlanSections":[]
}

Property Name Type Description Filter Group and Available Version


Version
context String Context definition that’s associated with the Small, 62.0 62.0
Definition procedure plan evaluation.

procedure Procedure Plan Results from the procedure plan evaluation. Small, 62.0 62.0
PlanSections Section Evaluation
Runtime[]

Salesforce Pricing Standard Invocable Actions


Learn more about the standard invocable actions available with Salesforce Pricing.

Run Salesforce Headless Pricing Action


Invoke the Pricing Connect API by providing the pricing data and details of a context, pricing procedure, and price waterfall.

456
Salesforce Pricing Run Salesforce Headless Pricing Action

Run Salesforce Pricing Action


Invoke the Pricing Connect API by providing the context, pricing procedure, and price waterfall details.

SEE ALSO:
Actions Developer Guide: Overview
REST API Developer Guide: Invocable Actions Standard

Run Salesforce Headless Pricing Action


Invoke the Pricing Connect API by providing the pricing data and details of a context, pricing procedure, and price waterfall.
This action is available in API version 60.0 and later.

Special Access Rules


The Run Salesforce Headless Pricing action is available in Enterprise, Unlimited, and Developer Editions where Salesforce Pricing is
enabled.

Supported REST HTTP Methods


URI
/services/data/v63.0/actions/standard/runSalesforceHeadlessPricing
Formats
JSON, XML
HTTP Methods
POST
Authentication
Authorization: Bearer token

Inputs
Input Details
contextDefinitionId Type
string
Description
Required.
ID of the context definition record that’s used to build the pricing data.

contextMappingId Type
string
Description
Required.

457
Salesforce Pricing Run Salesforce Headless Pricing Action

Input Details
ID of the context-mapping record that identifies which Salesforce object and mappings to use
to build the pricing data.

discoveryProcedure Type
string
Description
Name of the discovery procedure that’s used to execute the discovery process.

displayContext Type
boolean
Description
Indicates whether to display the context structure for pricing (true) or not (false).

effectiveDate Type
string
Description
Date when the pricing rules, as specified in the pricing procedure, are applied.
The effectiveDate parameter determines which pricing procedure to execute when
multiple active versions of pricing procedures are available with different date ranges.

isHighVolumeLineItems Type
boolean
Description
Indicates whether the pricing API returns pricing details for more than 100 line items (true) or
not (false).

isSkipWaterfall Type
boolean
Description
Indicates whether to generate the price waterfall data (true) or not (false).

persistContext Type
boolean
Description
Indicates whether to store the context (true) or not (false).

pricingData Type
string
Description
Required.

458
Salesforce Pricing Run Salesforce Headless Pricing Action

Input Details
JSON data that’s used to build the pricing data. The JSON must be escaped.

pricingProcedureId Type
string
Description
Required.
ID of the expression set definition record that’s used to execute the pricing process.

skipDiscovery Type
boolean
Description
Indicates whether to skip executing the discovery procedure (true) or not (false).

taggedData Type
boolean
Description
Indicates whether the associated context node contains a key (true) or not (false).

useSessionScopedContext Type
boolean
Description
Indicates whether to store the context in a session (true) or a request (false).

Outputs
Output Details
contextDetails Type
string
Description
Context structure for pricing that’s generated when the displayContext parameter is set
to true.

executionId Type
string
Description
ID of the executed pricing data.

pricingProcessErrors Type
string

459
Salesforce Pricing Run Salesforce Headless Pricing Action

Output Details

Description
Errors that are generated due to context tags in a pricing process.

pricingProcessStatus Type
string
Description
Status of the pricing process, which is executed as an API call.

pricingResult Type
string
Description
Outcome of the executed pricing process that’s based on the output tags defined in the associated
context definition.

Example
POST
This sample request is for the Run Salesforce Headless Pricing action.
{
"inputs": [
{
"contextMappingId": "11jSB000002Bn13YAC",
"contextDefinitionId": "11OSB0000000WSv2AM",
"pricingProcedureId": "9QLSB0000001lT74AI",
"discoveryProcedure": "ES1",
"displayContext": false,
"effectiveDate": "2023-11-16T12:20:00.000Z",
"isHighVolumeLineItems": true,
"skipDiscovery": true,
"taggedData": false,
"pricingData":
"{\"SalesTransaction\":{\"businessObjectType\":\"SalesTransaction\",\"Pricebook\":\"01sDE0000000LoeYAE\",\"CurrencyIsoCode\":\"USD\",\"SalesTransactionItem\":[{\"businessObjectType\":\"SalesTransactionItem\",\"Product\":\"01tDE000000FU99YAG\",\"ProductSellingModel\":\"0jPDE000000042K2AQ\",\"Quantity\":5,\"StartDate\":\"2023-11-16T12:20:00.000Z\",\"SalesTransactionItemSource\":\"LINE_ITEM1\"}]}}",

"isSkipWaterfall": false,
"persistContext": true,
"useSessionScopedContext": false
}
]
}

This sample response is for the Run Salesforce Headless Pricing action.
{
"actionName": "runSalesforceHeadlessPricing",
"errors": null,
"isSuccess": true,
"outputValues": {

460
Salesforce Pricing Run Salesforce Headless Pricing Action

"contextDetails": {
"SalesTransaction": [
{
"PriceBooks": "01sxx0000005q3VAAQ",
"Subtotal": 587.2095,
"PriceAdjustmentSchedule": "84Xxx0000004CMxEAM",
"EffectiveDate": "2024-02-12T00:00:00.000Z",
"SalesTransactionItem": [
{
"LineItemQuantity": 5,
"ProductSellingModel": "0jPxx000000009hEAA",
"DerivedPricingAttribute": false,
"Product": "01txx0000006iLwAAI",
"LineItem": "LineItem1",
"NetUnitPrice": 117.4419,
"SalesTrxnAdjustmentGroup": [
{
"AdjustmentType": "Percentage",
"AdjustmentValue": 10
}
]
}
]
}
]
},
"executionId": "1708488641379821",
"pricingProcessStatus": "Completed",
"pricingResult": {
"StartDate": [
{
"value": 1700137200000,
"dataPath": [
"CTX_ece1667e-7a09-40ab-9718-23bdc179a0a5",
"CTX_d3b9ffd5-2be7-4366-92d8-c2bcf03b69ed"
],
"errors": [],
"isSuccess": true
}
],
"NetUnitPrice": [
{
"value": 115,
"dataPath": [
"CTX_ece1667e-7a09-40ab-9718-23bdc179a0a5",
"CTX_d3b9ffd5-2be7-4366-92d8-c2bcf03b69ed"
],
"errors": [],
"isSuccess": true
}
],
"ProductSellingModel": [
{
"value": "0jPDE000000042K2AQ",

461
Salesforce Pricing Run Salesforce Headless Pricing Action

"dataPath": [
"CTX_ece1667e-7a09-40ab-9718-23bdc179a0a5",
"CTX_d3b9ffd5-2be7-4366-92d8-c2bcf03b69ed"
],
"errors": [],
"isSuccess": true
}
],
"Pricebook": [
{
"value": "01sDE0000000LoeYAE",
"dataPath": [
"CTX_ece1667e-7a09-40ab-9718-23bdc179a0a5"
],
"errors": [],
"isSuccess": true
}
],
"NetTotalPrice": [
{
"value": 1150,
"dataPath": [
"CTX_ece1667e-7a09-40ab-9718-23bdc179a0a5",
"CTX_d3b9ffd5-2be7-4366-92d8-c2bcf03b69ed"
],
"errors": [],
"isSuccess": true
}
],
"Subtotal": [
{
"value": 1150,
"dataPath": [
"CTX_ece1667e-7a09-40ab-9718-23bdc179a0a5"
],
"errors": [],
"isSuccess": true
}
],
"Quantity": [
{
"value": 10,
"dataPath": [
"CTX_ece1667e-7a09-40ab-9718-23bdc179a0a5",
"CTX_d3b9ffd5-2be7-4366-92d8-c2bcf03b69ed"
],
"errors": [],
"isSuccess": true
}
],
"Product": [
{
"value": "01tDE000000FU99YAG",
"dataPath": [

462
Salesforce Pricing Run Salesforce Pricing Action

"CTX_ece1667e-7a09-40ab-9718-23bdc179a0a5",
"CTX_d3b9ffd5-2be7-4366-92d8-c2bcf03b69ed"
],
"errors": [],
"isSuccess": true
}
],
"CurrencyIsoCode": [
{
"value": "USD",
"dataPath": [
"CTX_ece1667e-7a09-40ab-9718-23bdc179a0a5"
],
"errors": [],
"isSuccess": true
}
]
}
},
"version": 1
}

SEE ALSO:
Salesforce Help: Invoke Salesforce Headless Pricing in a Flow

Run Salesforce Pricing Action


Invoke the Pricing Connect API by providing the context, pricing procedure, and price waterfall details.
This action is available in API version 60.0 and later. You can use this action with Flows only. To use this action with an API tool such as
Postman, see Run Salesforce Headless Pricing Action.

Special Access Rules


The Run Salesforce Pricing action is available in Developer, Enterprise, and Unlimited Editions where Salesforce Pricing is enabled.

Supported REST HTTP Methods


URI
/services/data/v63.0/actions/standard/runSalesforcePricing
Formats
JSON, XML
HTTP Methods
POST
Authentication
Authorization: Bearer token

463
Salesforce Pricing Run Salesforce Pricing Action

Inputs
Input Details
contextInstanceId Type
string
Description
Required.
ID of the context data that’s used to build the pricing procedure. Get the context instance ID by
invoking the Context Service API. See Context Service (POST).

discoveryProcedure Type
string
Description
Name of the discovery procedure that’s used to execute the discovery process of the pricing
data.

effectiveDate Type
string
Description
Date when the pricing rules, as specified in the pricing procedure, are applied.
The effectiveDate parameter determines which pricing procedure to execute when
multiple active versions of pricing procedures are available with different date ranges.

isDeveloperName Type
boolean
Description
Indicates whether the input value in a procedure must use the API name of the pricing (true)
or the field name (false).

isSkipWaterfall Type
boolean
Description
Indicates whether the price waterfall data must be generated (true) or not (false).

pricingProcedureName Type
string
Description
Required.
Name of the pricing procedure record that’s used to execute the pricing process.

464
Salesforce Pricing Run Salesforce Pricing Action

Input Details
skipDiscovery Type
boolean
Description
Indicates whether to skip executing the discovery procedure (true) or not (false).

Outputs
Output Details
executionId Type
string
Description
ID of the executed pricing data.

Example
POST
This sample request is for the Run Salesforce Pricing action.
{
"inputs": [
{
"contextInstanceId": "32f2c894-ba5e-41c0-91e4-2ab5826f579b",
"pricingProcedureName": "PricingAction",
"isSkipWaterfall": false,
"skipDiscovery": false,
"isDeveloperName": true,
"effectiveDate": "2023-11-16T12:20:00.000Z",
"discoveryProcedure": "ES1"
}
]
}

This sample response is for the Run Salesforce Pricing action.


{
"actionName": "runSalesforcePricing",
"errors": null,
"isSuccess": true,
"outputValues": {
"executionId": "2QTurzG2NRQ5bgrjvvqyh"
},

465
Salesforce Pricing Salesforce Pricing Metadata API Types

"version": 1
}

SEE ALSO:
Salesforce Help: Invoke Salesforce Pricing in a Flow

Salesforce Pricing Metadata API Types


Metadata API enables you to access some types and feature settings that you can customize in the user interface.

Flow for Salesforce Pricing


Represents the metadata associated with a flow. With Flow, you can create an application that navigates users through a series of
screens to query and update records in the database. You can also execute logic and provide branching capability based on user
input to build dynamic applications.
IndustriesPricingSettings
Represents the settings for Salesforce Pricing.
PricingActionParameters
Represents the pricing action that's associated with a context definition and pricing procedure.
PricingRecipe
Represents the data models or sets of objects of a particular cloud that the pricing data store consumes during design time and run
time.

SEE ALSO:
Metadata API Developer Guide: Understanding Metadata API

Flow for Salesforce Pricing


Represents the metadata associated with a flow. With Flow, you can create an application that navigates users through a series of screens
to query and update records in the database. You can also execute logic and provide branching capability based on user input to build
dynamic applications.

FlowActionCall
Salesforce Pricing exposes additional actionType values for the FlowActionCall Metadata type.

Field Name Field Type Description


actionType InvocableActionType Required.
(enumeration of
type string) The action type. Additional valid values only for Salesforce Pricing include:
• runSalesforcePricing—Invoke the Pricing Connect API
by providing the context, pricing procedure, and price waterfall
details.

466
Salesforce Pricing IndustriesPricingSettings

Field Name Field Type Description


• runSalesforceHeadlessPricing—Invoke the Pricing
Connect API by providing the pricing data and details of a context,
pricing procedure, and price waterfall.

IndustriesPricingSettings
Represents the settings for Salesforce Pricing.

Parent Type and Manifest Access


This type extends the Metadata metadata type and inherits its fullName field.
In the package manifest, all the settings metadata types for the org are accessed using the “Settings” name. See Settings for more details.

File Suffix and Directory Location


IndustriesPricingSettings values are stored in the IndustriesPricing.settings file in the settings folder.
The .settings files are different from other named components, because there’s only one settings file for each settings component.

Version
IndustriesPricingSettings components are available in API version 60.0 and later.

Special Access Rules


This metadata type is available with Salesforce Pricing.

Fields
Field Name Description
enableHighAvailability Field Type
boolean
Description
Reserved for internal use.

enableLowestPriceCompliance Field Type


boolean
Description
Indicates whether to provide end buyer visibility on lowest price for 30 days (true)
or not (false). The default value is false. Available in API version 62.0 and later.

enablePricingWaterfall Field Type


boolean

467
Salesforce Pricing IndustriesPricingSettings

Field Name Description

Description
Indicates whether to enable Price Waterfall (true) or not (false). The default value
is false. Price Waterfall provides insights that include price breakups and reasons
for every step of the pricing process.

enablePricingWaterfallPersistence Field Type


boolean
Description
Indicates whether to enable Price Waterfall Persistence (true) or not (false). The
default value is false. Price Waterfall Persistence stores the process logs that provide
insights into the internal pricing processes.

enableSalesforcePricing Field Type


boolean
Description
Indicates whether to enable Salesforce Pricing (true) or not (false). The default
value is false.

Declarative Metadata Sample Definition


This example shows a sample IndustriesPricingSettings component.
<IndustriesPricingSettings xmlns="http://soap.sforce.com/2006/04/metadata">
<enableHighAvailability>true</enableHighAvailability>
<enableLowestPriceCompliance>true</enableLowestPriceCompliance>
<enablePricingWaterfall>true</enablePricingWaterfall>
<enablePricingWaterfallPersistence>true</enablePricingWaterfallPersistence>
<enableSalesforcePricing>true</enableSalesforcePricing>
</IndustriesPricingSettings>

This example shows a sample package.xml that references the previous definition.
<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<types>
<members>IndustriesPricing</members>
<name>Settings</name>
</types>
<version>63.0</version>
</Package>

Wildcard Support in the Manifest File


The wildcard character * (asterisk) in the package.xml manifest file doesn’t apply to metadata types for feature settings. The wildcard
applies only when retrieving all settings, not for an individual setting. For details, see Settings. For information about using the manifest
file, see Deploying and Retrieving Metadata with the Zip File.

468
Salesforce Pricing PricingActionParameters

PricingActionParameters
Represents the pricing action that's associated with a context definition and pricing procedure.

Important: Where possible, we changed noninclusive terms to align with our company value of Equality. We maintained certain
terms to avoid any effect on customer implementations.

Parent Type
This type extends the Metadata metadata type and inherits its fullName field.

File Suffix and Directory Location


PricingActionParameters components have the suffix .pricingActionParameters and are stored in the
pricingActionParameters folder.

Version
PricingActionParameters components are available in API version 60.0 and later.

Special Access Rules


This metadata type is available with Salesforce Pricing.

Fields
Field Name Description
contextDefinition Field Type
string
Description
Required.
Context definition record that's associated with the pricing action.

contextMapping Field Type


string
Description
Required.
Context mapping record that's associated with the pricing action.

developerName Field Type


string
Description
Required.
Unique name of the pricing action parameter record.

469
Salesforce Pricing PricingActionParameters

Field Name Description


The name must begin with a letter and use only alphanumeric characters and
underscores. The name must not include spaces, end with an underscore, or have two
consecutive underscores.

effectiveFrom Field Type


dateTime
Description
Required.
Date and time from when the pricing action becomes effective.

effectiveTo Field Type


dateTime
Description
Date and time till when the pricing action is in effect.

masterLabel Field Type


string
Description
Required.
Master label of the pricing action parameter.

objectName Field Type


string
Description
Name of the object that's associated with the pricing action. Valid values are:
• Case
• Contract
• Opportunity
• Order
• Quote
• SalesAgreement
• WorkOrder

pricingProcedure Field Type


string
Description
Pricing procedure record that's associated with this pricing action.

470
Salesforce Pricing PricingRecipe

Declarative Metadata Sample Definition


The following is an example of a PricingActionParameters component.
<PricingActionParameters xmlns="http://soap.sforce.com/2006/04/metadata">
<developerName>CMEDefaultActionParameters</developerName>
<objectName>ORDER</objectName>
<pricingProcedure>PP</pricingProcedure>
<effectiveFrom>2024-04-08T07:32:00.000Z</effectiveFrom>
<effectiveTo>2024-04-11T07:32:00.000Z</effectiveTo>
<contextDefinition>SalesTransactionContext__stdctx</contextDefinition>
<contextMapping>SalesAgreementEntitiesMapping</contextMapping>
<masterLabel>PAP_test</masterLabel>
</PricingActionParameters>

The following is an example package.xml that references the previous definition.


<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<types>
<members>*</members>
<name>PricingActionParameters</name>
</types>
<version>63.0</version>
</Package>

Wildcard Support in the Manifest File


This metadata type supports the wildcard character * (asterisk) in the package.xml manifest file. For information about using the
manifest file, see Deploying and Retrieving Metadata with the Zip File.

PricingRecipe
Represents the data models or sets of objects of a particular cloud that the pricing data store consumes during design time and run
time.

Parent Type
This type extends the Metadata metadata type and inherits its fullName field.

File Suffix and Directory Location


PricingRecipe components have the suffix .pricingRecipe and are stored in the pricingRecipe folder.

Version
PricingRecipe components are available in API version 60.0 and later.

Special Access Rules


This metadata type is available with Salesforce Pricing.

471
Salesforce Pricing PricingRecipe

Fields
Field Name Description
defaultPricingProcedure Field Type
ExpressionSetDefinition
Description
Expression set definition that's associated with this pricing recipe setting.

defaultPricingProcedureDeveloperName Field Type


string
Description
For internal use only.

defaultPricingProcedureId Field Type


string
Description
ID of the pricing procedure of the pricing recipe.

developerName Field Type


string
Description
Required.
API name of the pricing recipe.

isActive Field Type


boolean
Description
Indicates whether the pricing recipe is active (true) or not (false).
The default value is false

isInternal Field Type


boolean
Description
Indicates whether the price recipe record is created internally by the Salesforce platform
(true) or not (false).
The default value is false

masterLabel Field Type


string
Description
Required.
Name for pricing recipe that's defined when the pricing recipe is created.

472
Salesforce Pricing PricingRecipe

Field Name Description


pricingRecipeTableMapping Field Type
PricingRecipeTableMapping[]
Description
Mapping of the pricing components of a lookup table with the chosen pricing recipe.

PricingRecipeTableMapping
Represents the mapping of the lookup table with the chosen pricing recipe.

Field Name Description


isInternal Field Type
boolean
Description
Indicates whether the price recipe field mapping record is created internally by the
Salesforce platform (true) or not (false).
The default value is false.

lookupTable Field Type


DecisionTable
DecisionMatrixDefinition
Description
Lookup table that's associated with either a decision matrix or decision table.

lookupTableDeveloperName Field Type


string
Description
For internal use only.

pricingComponentType Field Type


string
Description
Pricing component field data that the decision table is built on.
Valid values are:
• AttributeDiscount
• BundleDiscount
• DerivedPricing
• ListPrice
• PriceAdjustmentMatrix
• PromotionsDiscount

473
Salesforce Pricing PricingRecipe

Field Name Description


• VolumeDiscount
• VolumeTierDiscount
• DiscountDistributionService. This value is available in API version
60.0 and later.
• MinimumPrice. Available in API version 62.0 and later.

pricingProcedureOutputMapList Field Type


PricingProcedureOutputMap[]
Description
List of the mappings of the outputs of the pricing procedures to the associated lookup
tables. Available in API version 60.0 and later.

pricingRecipe Field Type


string
Description
Required.
Pricing data store that's associated with this pricing recipe field mapping.

PricingProcedureOutputMap
Represents the mapping of the outputs of the pricing procedures to the associated lookup tables. Each record specifies the output
mapping of the associated lookup table based on the pricing component type specified in the PricingRecipeTableMapping object.

Field Name Description


fieldName Field Type
string
Description
For internal use only.

isPricingRecipeActive Field Type


boolean
Description
Indicates whether the associated pricing recipe is active (true) or not (false).
The default value is false.

outputFieldName Field Type


string
Description
Field name that contains the output type that's generated from the pricing element.

474
Salesforce Pricing PricingRecipe

Field Name Description


outputFieldNameString Field Type
string
Description
Derived field that references a specific column in a decision table or decision matrix.

outputType Field Type


string
Description
Output type that's generated from a pricing element.
Valid values are:
• AdjustmentType
• AdjustmentValue
• CustomOutput
• HashOutput
• UnitPrice

Declarative Metadata Sample Definition


The following is an example of a PricingRecipe component.
<PricingRecipe xmlns="http://soap.sforce.com/2006/04/metadata">
<defaultPricingProcedureId> </defaultPricingProcedureId>
<developerName>CMEDefaultRecipe</developerName>
<isActive>false</isActive>
<isInternal>false</isInternal>
<masterLabel>CMEDefaultRecipe</masterLabel>
<pricingRecipeTableMapping>
<isInternal>false</isInternal>

<lookupTableDeveloperName>Bundle_Based_Adjustment_Decision_Table</lookupTableDeveloperName>

<pricingComponentType>CUSTOMDISCOUNT</pricingComponentType>
<fileBasedDecisionTableName>Bundle Based Adjustment
Entries</fileBasedDecisionTableName>
<pricingProcedureOutputMapList>
<fieldName>AdjustmentValue</fieldName>
<isPricingRecipeActive>false</isPricingRecipeActive>
<outputFieldName>0lPxx000000000f</outputFieldName>
<outputFieldNameString>false</outputFieldNameString>
<outputType>AdjustmentValue</outputType>
</pricingProcedureOutputMapList>
<pricingProcedureOutputMapList>
<fieldName>AdjustmentType</fieldName>
<isPricingRecipeActive>false</isPricingRecipeActive>
<outputFieldName>0lPxx000000000m</outputFieldName>
<outputFieldNameString>false</outputFieldNameString>

475
Salesforce Pricing Salesforce Pricing Tooling API Objects

<outputType>AdjustmentType</outputType>
</pricingProcedureOutputMapList>
<pricingRecipe>CMEDefaultRecipe</pricingRecipe>
</pricingRecipeTableMapping>
</PricingRecipe>

The following is an example package.xml that references the previous definition.


<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<types>
<members>*</members>
<name>PricingRecipe</name>
</types>
<version>63.0</version>
</Package>

Wildcard Support in the Manifest File


This metadata type supports the wildcard character * (asterisk) in the package.xml manifest file. For information about using the
manifest file, see Deploying and Retrieving Metadata with the Zip File.

Salesforce Pricing Tooling API Objects


Tooling API exposes metadata used in developer tooling that you can access through REST or SOAP. Tooling API’s SOQL capabilities for
many metadata types allow you to retrieve smaller pieces of metadata.

PricingActionParameters
Represents a pricing action associated to a context definition and a pricing procedure. This object is available in API version 60.0 and
later.
PricingProcedureOutputMap
Represents the mapping of the outputs of the pricing procedures to the associated lookup tables. Each record specifies the output
mapping of the associated lookup table based on the pricing component type specified in the Pricing Recipe Table Mapping object.
This object is available in API version 60.0 and later.
PricingRecipe
Represents one out of various data models or sets of entities of a particular cloud that'll be consumed by the pricing data store during
design and run time. This object is available in API version 60.0 and later.
PricingRecipeTableMapping
Represents the mapping of pricing components of a lookup table with the chosen pricing recipe. This object is available in API
version 60.0 and later.
ProcedureOutputResolution
Represents the pricing resolution for an pricing element determined using strategy name and formula. This object is available in API
version 63.0 and later.
ProcedurePlanCriterion
Represents a criterion within a procedure plan option record. This object is available in API version 62.0 and later.

476
Salesforce Pricing PricingActionParameters

ProcedurePlanDefinition
Represents the setup of a unified procedure from a list of multiple procedures that can be sequenced in any order based on business
needs. Each procedure plan definition contains sections and subsections where procedures can be configured by using a lookup
table or rule-based criteria. This object is available in API version 62.0 and later.
ProcedurePlanDefinitionVersion
Represents the versions for a procedure plan definition. Multiple versions under a procedure plan definition must be active at a time,
which can be resolved at run time using the rank field. This object is available in API version 62.0 and later.
ProcedurePlanOption
Represents the selection criteria of how a procedure can be configured for a selected procedure plan section record. This object is
available in API version 62.0 and later.
ProcedurePlanSection
Represents various procedure setup sections for a procedure plan definition. Each section enables the setup of a procedure of a type
that can be further determined by using a rule-based criteria or it can be set based on a selected lookup table. This object is available
in API version 62.0 and later.
ProcedurePlanVariable
Represents the setup for any adhoc user-defined variable that can be linked to a procedure plan definition record. This object is
available in API version 62.0 and later.

SEE ALSO:
Tooling API Developer Guide: Introducing Tooling API

PricingActionParameters
Represents a pricing action associated to a context definition and a pricing procedure. This object is available in API version 60.0 and
later.

Supported Calls
create(), delete(), describeSObjects(), query(), retrieve(), update(), upsert()

Fields
Field Details
ContextDefinition Type
string
Properties
Create, Filter, Group, Sort, Update
Description
The context definition record associated with the pricing action.

ContextMapping Type
string

477
Salesforce Pricing PricingActionParameters

Field Details

Properties
Create, Filter, Group, Sort, Update
Description
The context mapping record that's associated with the pricing action.

DeveloperName Type
string
Properties
Create, Filter, Group, Sort, Update
Description
The unique name of the pricing action parameter record.
This name must begin with a letter and use only alphanumeric characters and underscores.
It can't include spaces, end with an underscore, or have two consecutive underscores.

EffectiveFrom Type
dateTime
Properties
Create, Filter, Sort, Update
Description
The date and time when the pricing action comes into effect.

EffectiveTo Type
dateTime
Properties
Create, Filter, Nillable, Sort, Update
Description
The date and time till when the pricing action is in effect.

Language Type
picklist
Properties
Create, Defaulted on create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
The language of the pricing action parameter.
Possible values are:
• da—Danish
• de—German
• en_US—English
• es—Spanish
• es_MX—Spanish (Mexico)

478
Salesforce Pricing PricingActionParameters

Field Details
• fi—Finnish
• fr—French
• it—Italian
• ja—Japanese
• ko—Korean
• nl_NL—Dutch
• no—Norwegian
• pt_BR—Portuguese (Brazil)
• ru—Russian
• sv—Swedish
• th—Thai
• zh_CN—Chinese (Simplified)
• zh_TW—Chinese (Traditional)

MasterLabel Type
string
Properties
Create, Filter, Group, Sort, Update
Description
The master label of the pricing action parameter.

NamespacePrefix Type
string
Properties
Filter, Group, Nillable, Sort
Description
The namespace prefix that is associated with this object. Each Developer Edition org that
creates a managed package has a unique namespace prefix. Limit: 15 characters. You can
refer to a component in a managed package by using
the namespacePrefix__componentName notation.
The namespace prefix can have one of the following values.
• In Developer Edition organizations, the namespace prefix is set to the namespace prefix
of the organization for all objects that support it. There’s an exception if an object is in
an installed managed package. In that case, the object has the namespace prefix of the
installed managed package. This field’s value is the namespace prefix of the Developer
Edition organization of the package developer.
• In organizations that are Developer Edition organizations, NamespacePrefix is only set
for objects that are part of an installed managed package. There’s no namespace prefix
for all other objects.

479
Salesforce Pricing PricingProcedureOutputMap

Field Details
ObjectName Type
picklist
Properties
Create, Filter, Group, Restricted picklist, Sort, Update
Description
Specifies the object associated to the pricing action.
Possible values are:
• Case
• Contract
• Opportunity
• Order
• Quote
• SalesAgreement
• WorkOrder

PricingProcedure Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The pricing procedure record associated with this pricing action.

PricingProcedureOutputMap
Represents the mapping of the outputs of the pricing procedures to the associated lookup tables. Each record specifies the output
mapping of the associated lookup table based on the pricing component type specified in the Pricing Recipe Table Mapping object.
This object is available in API version 60.0 and later.

Supported Calls
create(), delete(), describeSObjects(), query(), retrieve(), update(), upsert()

Fields
Field Details
IsPricingRecipeActive Type
boolean
Properties
Defaulted on create, Filter, Group, Sort

480
Salesforce Pricing PricingProcedureOutputMap

Field Details

Description
Indicates if the pricing recipe is active (true) or not (false).
The default value is false.

LookupField Type
reference
Properties
Filter, Group, Nillable, Sort
Description
Definition of the fields that are used for this lookup.

OutputFieldNameId Type
reference
Properties
Create, Filter, Group, Sort, Update
Description
The field name containing the output type generated from the pricing element.
This field is a polymorphic relationship field.
Relationship Name
OutputFieldName
Relationship Type
Lookup
Refers To
CalculationMatrixColumn, DecisionTableParameter

OutputFieldNameString Type
string
Properties
Filter, Group, Nillable, Sort
Description
This is a derived field that references a specific column in a decision table or decision matrix.

OutputType Type
picklist
Properties
Create, Filter, Group, Restricted picklist, Sort, Update
Description
The output type generated from a pricing element.
Possible values are:
• AdjustmentType—Adjustment Type

481
Salesforce Pricing PricingProcedureOutputMap

Field Details
• AdjustmentValue—Adjustment Value
• CustomOutput—Custom Output
• HashOutput—Hash Output
• UnitPrice—Unit Price

PricingComponentType Type
picklist
Properties
Filter, Group, Nillable, Restricted picklist, Sort
Description
The pricing component field data on which the decision table is built.
Possible values are:
• AttributeDiscount—Attribute Based Discount
• BundleDiscount—Bundle Based Discount
• DerivedPricing
• DiscountDistributionService—Discount Distribution Service
• ListPrice—List Price
• PriceAdjustmentMatrix
• PromotionsDiscount
• VolumeDiscount—Volume Based Discount
• VolumeTierDiscount—Tier Discount

PricingRecipeTableMappingId Type
reference
Properties
Create, Filter, Group, Sort, Update
Description
The mapping of pricing components of a lookup table with the chosen pricing recipe.
This field is a relationship field.
Relationship Name
PricingRecipeTableMapping
Relationship Type
Lookup
Refers To
PricingRecipeTableMapping

482
Salesforce Pricing PricingRecipe

PricingRecipe
Represents one out of various data models or sets of entities of a particular cloud that'll be consumed by the pricing data store during
design and run time. This object is available in API version 60.0 and later.

Supported Calls
create(), delete(), describeSObjects(), query(), retrieve(), update(), upsert()

Special Access Rules

Fields
Field Details
DefaultPricingProcedureId Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The expression set definition or Salesforce flow definition associated with this pricing recipe
settings.
This field is a relationship field.
Relationship Name
DefaultPricingProcedure
Relationship Type
Lookup
Refers To
ExpressionSetDefinition

DeveloperName Type
string
Properties
Create, Filter, Group, Sort, Update
Description
The developer name of the pricing recipe.

IsActive Type
boolean
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
Indicates whether the pricing recipe is active (true) or not (false).

483
Salesforce Pricing PricingRecipe

Field Details
The default value is false.

IsInternal Type
boolean
Properties
Defaulted on create, Filter, Group, Sort
Description
Indicates if the price recipe record is created internally by the Salesforce platform (true) or
not (false).
The default value is false.

Language Type
picklist
Properties
Create, Defaulted on create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
The languages in which pricing recipe is supported.
Possible values are:
• da—Danish
• de—German
• en_US—English
• es—Spanish
• es_MX—Spanish (Mexico)
• fi—Finnish
• fr—French
• it—Italian
• ja—Japanese
• ko—Korean
• nl_NL—Dutch
• no—Norwegian
• pt_BR—Portuguese (Brazil)
• ru—Russian
• sv—Swedish
• th—Thai
• zh_CN—Chinese (Simplified)
• zh_TW—Chinese (Traditional)

MasterLabel Type
string

484
Salesforce Pricing PricingRecipeTableMapping

Field Details

Properties
Create, Filter, Group, Sort, Update
Description
A user-friendly name for pricing recipe, which is defined when the pricing recipe is created.

NamespacePrefix Type
string
Properties
Filter, Group, Nillable, Sort
Description
The namespace prefix that is associated with this object. Each Developer Edition org that
creates a managed package has a unique namespace prefix. Limit: 15 characters. You can
refer to a component in a managed package by using
the namespacePrefix__componentName notation.
The namespace prefix can have one of the following values.
• In Developer Edition organizations, the namespace prefix is set to the namespace prefix
of the organization for all objects that support it. There’s an exception if an object is in
an installed managed package. In that case, the object has the namespace prefix of the
installed managed package. This field’s value is the namespace prefix of the Developer
Edition organization of the package developer.
• In organizations that are Developer Edition organizations, NamespacePrefix is only set
for objects that are part of an installed managed package. There’s no namespace prefix
for all other objects.

PricingRecipeTableMapping
Represents the mapping of pricing components of a lookup table with the chosen pricing recipe. This object is available in API version
60.0 and later.

Supported Calls
create(), delete(), describeSObjects(), query(), retrieve(), update(), upsert()

Fields
Field Details
FileBasedDecisionTableName Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update

485
Salesforce Pricing PricingRecipeTableMapping

Field Details

Description
Name of the file-based decision table.

IsInternal Type
boolean
Properties
Defaulted on create, Filter, Group, Sort
Description
Indicates if the price recipe field mapping record is created internally by the Salesforce
platform (true) or not (false).
The default value is false.

LookupTableId Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The lookup table associated with the mapped fields.
This field is a polymorphic relationship field.
Relationship Name
LookupTable
Relationship Type
Lookup
Refers To
DecisionMatrixDefinition, DecisionTable

PricingComponentType Type
Pricing Element Type enumerated list
Properties
Create, Filter, Group, Restricted picklist, Sort, Update
Description
The pricing component field data on which the decision table is built.
Possible values are:
• AttributeDiscount—Attribute Based Discount
• BundleDiscount—Bundle Based Discount
• DerivedPricing
• ListPrice—List Price
• PriceAdjustmentMatrix
• PromotionsDiscount
• VolumeDiscount—Volume Based Discount

486
Salesforce Pricing ProcedureOutputResolution

Field Details
• VolumeTierDiscount—Tier Discount
• DiscountDistributionService. This value is available in API version 60.0 and
later.
• MinimumPrice. This value is available in API version 62.0 and later.

PricingRecipeId Type
reference
Properties
Create, Filter, Group, Sort
Description
The pricing data store associated with this pricing recipe field mappings.
This field is a relationship field.
Relationship Name
PricingRecipe
Relationship Type
Lookup
Refers To
PricingRecipe

ProcedureOutputResolution
Represents the pricing resolution for an pricing element determined using strategy name and formula. This object is available in API
version 63.0 and later.

Supported Calls
create(), delete(), describeSObjects(), query(), retrieve(), update(), upsert()

Fields
Field Details
DeveloperName Type
string
Properties
Create, Filter, Group, Sort, Update
Description
The name of the procedure output resolution.

Formula Type
string

487
Salesforce Pricing ProcedureOutputResolution

Field Details

Properties
Create, Filter, Group, Sort, Update
Description
The formula function used to determine the minimum or maximum price of a product. The
supported operations are MIN and MAX.

IsActive Type
boolean
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
Indicates whether the procedure output resolution is active (true) or not (false). Only active
procedure output resolutions can be applied to a procedure.
The default value is false.

IsInternal Type
boolean
Properties
Create, Defaulted on create, Filter, Group, Sort
Description
Indicates if the procedure output resolution record is created internally by the Salesforce
platform (true) or not (false).
The default value is false.

Language Type
picklist
Properties
Create, Defaulted on create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
The languages in which pricing recipe is supported.
Possible values are:
• da—Danish
• de—German
• en_US—English
• es—Spanish
• es_MX—Spanish (Mexico)
• fi—Finnish
• fr—French
• it—Italian
• ja—Japanese

488
Salesforce Pricing ProcedureOutputResolution

Field Details
• ko—Korean
• nl_NL—Dutch
• no—Norwegian
• pt_BR—Portuguese (Brazil)
• ru—Russian
• sv—Swedish
• th—Thai
• zh_CN—Chinese (Simplified)
• zh_TW—Chinese (Traditional)

MasterLabel Type
string
Properties
Create, Filter, Group, Sort, Update
Description
A user-friendly name for procedure output resolution, which is defined when the procedure
output resolution record is created.

NamespacePrefix Type
string
Properties
Filter, Group, Nillable, Sort
Description
The namespace prefix that is associated with this object. Each Developer Edition org that
creates a managed package has a unique namespace prefix. Limit: 15 characters. You can
refer to a component in a managed package by using
the namespacePrefix__componentName notation.
The namespace prefix can have one of the following values.
• In Developer Edition organizations, the namespace prefix is set to the namespace prefix
of the organization for all objects that support it. There’s an exception if an object is in
an installed managed package. In that case, the object has the namespace prefix of the
installed managed package. This field’s value is the namespace prefix of the Developer
Edition organization of the package developer.
• In organizations that are Developer Edition organizations, NamespacePrefix is only set
for objects that are part of an installed managed package. There’s no namespace prefix
for all other objects.

PricingElement Type
picklist
Properties
Create, Filter, Group, Restricted picklist, Sort, Update

489
Salesforce Pricing ProcedurePlanCriterion

Field Details

Description
Specifies the pricing element on which the procedure output resolution is defined.
Possible values are:
• ListPrice—List Price
• MinimumPrice—Price Tracking

ProcedurePlanCriterion
Represents a criterion within a procedure plan option record. This object is available in API version 62.0 and later.

Important: Where possible, we changed noninclusive terms to align with our company value of Equality. We maintained certain
terms to avoid any effect on customer implementations.

Supported SOAP API Calls


create(), delete(), describeSObjects(), query(), retrieve(), update(), upsert()

Supported REST API Methods


DELETE, GET, HEAD, PATCH, POST, Query

Fields
Field Details
ActualValue Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The user-defined value that’s compared to the value of the sObject field value.

DataType Type
picklist
Properties
Create, Filter, Group, Restricted picklist, Sort, Update
Description
The data type of the field from the selected object.

FieldPath Type
string

490
Salesforce Pricing ProcedurePlanCriterion

Field Details

Properties
Create, Filter, Group, Sort, Update
Description
The path of the field used in a procedure in relation to the object that the field belongs to.

ObjectField Type
string
Properties
Create, Filter, Group, Sort, Update
Description
The Salesforce object field value used to resolve the procedure plan option.

Operator Type
picklist
Properties
Create, Filter, Group, Restricted picklist, Sort, Update
Description
The operator used by the procedure plan criterion.
Valid values are:
• Equals
• GreaterThan
• GreaterThanOrEquals
• In
• IsNotNull
• IsNull
• LessThan
• LessThanOrEquals
• NotEquals
• NotIn

ProcedurePlanOptionId Type
reference
Properties
Create, Filter, Group, Sort
Description
The procedure plan option associated with the procedure plan criterion record.
This field is a relationship field.
Relationship Name
ProcedurePlanOption

491
Salesforce Pricing ProcedurePlanDefinition

Field Details

Relationship Type
Master-detail
Refers To
ProcedurePlanOption (the master object)

Sequence Type
int
Properties
Create, Filter, Group, Sort
Description
The sequence in which the conditions defined in the procedure plan criteria are processed.

ProcedurePlanDefinition
Represents the setup of a unified procedure from a list of multiple procedures that can be sequenced in any order based on business
needs. Each procedure plan definition contains sections and subsections where procedures can be configured by using a lookup table
or rule-based criteria. This object is available in API version 62.0 and later.

Important: Where possible, we changed noninclusive terms to align with our company value of Equality. We maintained certain
terms to avoid any effect on customer implementations.

Supported SOAP API Calls


create(), delete(), describeSObjects(), query(), retrieve(), update(), upsert()

Supported REST API Methods


DELETE, GET, HEAD, PATCH, POST, Query

Fields
Field Details
Description Type
textarea
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The description of the procedure plan definition.

DeveloperName Type
string

492
Salesforce Pricing ProcedurePlanDefinition

Field Details

Properties
Create, Filter, Group, Sort, Update
Description
The unique name of the procedure plan definition record.
This name must begin with a letter and use only alphanumeric characters and underscores.
It can't include spaces, end with an underscore, or have two consecutive underscores.

Language Type
picklist
Properties
Create, Defaulted on create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
The language of the procedure plan definition.
Valid values are:
• da—Danish
• de—German
• en_US—English
• es—Spanish
• es_MX—Spanish (Mexico)
• fi—Finnish
• fr—French
• it—Italian
• ja—Japanese
• ko—Korean
• nl_NL—Dutch
• no—Norwegian
• pt_BR—Portuguese (Brazil)
• ru—Russian
• sv—Swedish
• th—Thai
• zh_CN—Chinese (Simplified)
• zh_TW—Chinese (Traditional)

MasterLabel Type
string
Properties
Create, Filter, Group, Sort, Update
Description
The master label of the procedure plan definition.

493
Salesforce Pricing ProcedurePlanDefinition

Field Details
NamespacePrefix Type
string
Properties
Filter, Group, Nillable, Sort
Description
The namespace prefix that is associated with this object. Each Developer Edition org that
creates a managed package has a unique namespace prefix. Limit: 15 characters. You can
refer to a component in a managed package by using
the namespacePrefix__componentName notation.
The namespace prefix can have one of the following values.
• In Developer Edition organizations, the namespace prefix is set to the namespace prefix
of the organization for all objects that support it. There’s an exception if an object is in
an installed managed package. In that case, the object has the namespace prefix of the
installed managed package. This field’s value is the namespace prefix of the Developer
Edition organization of the package developer.
• In organizations that are Developer Edition organizations, NamespacePrefix is only set
for objects that are part of an installed managed package. There’s no namespace prefix
for all other objects.

PrimaryObject Type
string
Properties
Create, Filter, Group, idLookup, Nillable, Sort
Description
The object associated to the procedure plan definition. The fields in the object are used as
variables in the procedure plan criterion.

ProcessType Type
picklist
Properties
Create, Defaulted on create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
Identify the business processes that need a procedure plan for each SObject and definition.
Possible values are:
• Default
• ProductDiscovery—Product Discovery
The default value is Default.

494
Salesforce Pricing ProcedurePlanDefinitionVersion

ProcedurePlanDefinitionVersion
Represents the versions for a procedure plan definition. Multiple versions under a procedure plan definition must be active at a time,
which can be resolved at run time using the rank field. This object is available in API version 62.0 and later.

Important: Where possible, we changed noninclusive terms to align with our company value of Equality. We maintained certain
terms to avoid any effect on customer implementations.

Supported SOAP API Calls


create(), delete(), describeSObjects(), query(), retrieve(), update(), upsert()

Supported REST API Methods


DELETE, GET, HEAD, PATCH, POST, Query

Fields
Field Details
ContextDefinition Type
picklist
Properties
Create, Filter, Group, Restricted picklist, Sort, Update
Description
The context definition associated with the procedure plan definition record.
Valid values are:
• 11ODU00000007Zx2AI
• 11ODU000000084F2AQ
• CollectionPlanEvent__stdctx
• CommerceCartContextDefinition__stdctx
• SalesTransactionContext__stdctx
• TestContextService__stdctx
• TestDynamicAttribute__stdctx
• TestExtendedDefinition__stdctx

DefaultReadContextMapping Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The default read context mapping used to read from the mapped object and populate the
context definition.

495
Salesforce Pricing ProcedurePlanDefinitionVersion

Field Details
DefaultSaveContextMapping Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The save context mapping used to save from the context definition and populate the mapped
object.

DeveloperName Type
string
Properties
Create, Filter, Group, Sort, Update
Description
The unique name of the procedure plan definition version record.
This name must begin with a letter and use only alphanumeric characters and underscores.
It can't include spaces, end with an underscore, or have two consecutive underscores.

EffectiveFrom Type
dateTime
Properties
Create, Filter, Sort, Update
Description
The date and time when the procedure plan definition comes into effect.

EffectiveTo Type
dateTime
Properties
Create, Filter, Nillable, Sort, Update
Description
The date and time when the procedure plan definition is no longer in effect.

InheritedFrom Type
string
Properties
Create, Filter, Group, idLookup, Nillable, Sort
Description
The template from which this procedure plan definition is created.

IsActive Type
boolean

496
Salesforce Pricing ProcedurePlanOption

Field Details

Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
Indicates if this procedure plan definition version is active (true) or not (false).
The default value is false.

ProcedurePlanDefinitionId Type
reference
Properties
Create, Filter, Group, Sort
Description
The procedure plan definition associated with this procedure plan definition version record.
This field is a relationship field.
Relationship Name
ProcedurePlanDefinition
Relationship Type
Master-detail
Refers To
ProcedurePlanDefinition (the master object)

Rank Type
int
Properties
Create, Filter, Group, Sort, Update
Description
The current rank of the procedure plan definition version that’s used to determine which
procedure plan definition version is executed .

ProcedurePlanOption
Represents the selection criteria of how a procedure can be configured for a selected procedure plan section record. This object is
available in API version 62.0 and later.

Important: Where possible, we changed noninclusive terms to align with our company value of Equality. We maintained certain
terms to avoid any effect on customer implementations.

Supported SOAP API Calls


create(), delete(), describeSObjects(), query(), retrieve(), update(), upsert()

497
Salesforce Pricing ProcedurePlanOption

Supported REST API Methods


DELETE, GET, HEAD, PATCH, POST, Query

Fields
Field Details
CriteriaLogic Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The computation logic for the various conditions applied to an option.

CtxDefinitionOutputFieldId Type
reference
Properties
Filter, Group, Nillable, Sort
Description
The context definition field that’s associated with the decision table.
This field is a relationship field.
Relationship Name
CtxDefinitionOutputField
Refers To
DecisionTableParameter

CtxMappingOutputFieldId Type
reference
Properties
Filter, Group, Nillable, Sort
Description
The context mapping field that’s associated with the decision table.
This field is a relationship field.
Relationship Name
CtxMappingOutputField
Refers To
DecisionTableParameter

DecisionTableId Type
reference
Properties
Filter, Group, Nillable, Sort

498
Salesforce Pricing ProcedurePlanOption

Field Details

Description
The decision table associated with the pricing procedure.
This field is a relationship field.
Relationship Name
DecisionTable
Refers To
DecisionTable

ExpressionSetApiName Type
string
Properties
Filter, Group, Nillable, Sort
Description
The API name of the expression set.

ExpressionSetDefinitionId Type
reference
Properties
Create, Filter, Group, Sort, Update
Description
The expression set definition associated with the procedure plan option record.
This field is a relationship field.
Relationship Name
ExpressionSetDefinition
Refers To
ExpressionSetDefinition

ExpressionSetLabel Type
string
Properties
Filter, Group, Nillable, Sort
Description
The label of the expression set definition.

ExpressionSetOutputFieldId Type
reference
Properties
Filter, Group, Nillable, Sort
Description
The expression set output field that’s associated with the decision table.
This field is a relationship field.

499
Salesforce Pricing ProcedurePlanOption

Field Details

Relationship Name
ExpressionSetOutputField
Refers To
DecisionTableParameter

PrimaryObject Type
string
Properties
Filter, Group, Nillable, Sort
Description
The procedure plan definition associated with the procedure plan option record.

Priority Type
int
Properties
Create, Filter, Group, Sort
Description
The order in which the options are executed.

ProcedurePlanSectionId Type
reference
Properties
Create, Filter, Group, Sort
Description
The procedure plan section associated with the procedure plan option record.
This field is a relationship field.
Relationship Name
ProcedurePlanSection
Relationship Type
Master-detail
Refers To
ProcedurePlanSection (the master object)

ReadContextMapping Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The read context mapping used to read from the mapped object and populate the context
definition.

500
Salesforce Pricing ProcedurePlanSection

Field Details
SaveContextMapping Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The save context mapping used to save from the context definition and populate the mapped
object.

ProcedurePlanSection
Represents various procedure setup sections for a procedure plan definition. Each section enables the setup of a procedure of a type
that can be further determined by using a rule-based criteria or it can be set based on a selected lookup table. This object is available in
API version 62.0 and later.

Important: Where possible, we changed noninclusive terms to align with our company value of Equality. We maintained certain
terms to avoid any effect on customer implementations.

Supported SOAP API Calls


create(), delete(), describeSObjects(), query(), retrieve(), update(), upsert()

Supported REST API Methods


DELETE, GET, HEAD, PATCH, POST, Query

Fields
Field Details
Description Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The description of the procedure plan section.

IsInherited Type
boolean
Properties
Create, Defaulted on create, Filter, Group, Sort
Description
Indicates if the section is inherited from a template (true) ot not (false).

501
Salesforce Pricing ProcedurePlanSection

Field Details
The default value is false.

ProcedurePlanVersionId Type
reference
Properties
Create, Filter, Group, Sort
Description
The procedure plan version associated with this procedure plan section record.
This field is a relationship field.
Relationship Name
ProcedurePlanVersion
Relationship Type
Master-detail
Refers To
ProcedurePlanDefinitionVersion (the master object)

ResolutionType Type
picklist
Properties
Create, Filter, Group, Restricted picklist, Sort, Update
Description
The type of resolution used to filter the procedure.
Valid values are:
• Default
• RuleBased

SectionType Type
picklist
Properties
Create, Filter, Group, Restricted picklist, Sort
Description
The type of procedure section.
Valid values are:
• Custom
• PricingDiscoveryProcedure
• PricingProcedure
• ProductDiscoveryProcedure

Sequence Type
int

502
Salesforce Pricing ProcedurePlanVariable

Field Details

Properties
Create, Filter, Group, Sort, Update
Description
The sequence in which the procedures are processed.

SubSectionType Type
string
Properties
Create, Filter, Group, Sort
Description
The procedure subsection added to the procedure plan definition.

ProcedurePlanVariable
Represents the setup for any adhoc user-defined variable that can be linked to a procedure plan definition record. This object is available
in API version 62.0 and later.

Important: Where possible, we changed noninclusive terms to align with our company value of Equality. We maintained certain
terms to avoid any effect on customer implementations.

Supported SOAP API Calls


create(), delete(), describeSObjects(), query(), retrieve(), update(), upsert()

Supported REST API Methods


DELETE, GET, HEAD, PATCH, POST, Query

Fields
Field Details
DataType Type
picklist
Properties
Create, Filter, Group, Restricted picklist, Sort, Update
Description
The data type of the input procedure plan variable.

DefaultValue Type
string

503
Salesforce Pricing ProcedurePlanVariable

Field Details

Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The default value for the user-defined procedure plan variable.

DeveloperName Type
string
Properties
Create, Filter, Group, Sort, Update
Description
The unique name of the procedure plan variable record.
This name must begin with a letter and use only alphanumeric characters and underscores.
It can't include spaces, end with an underscore, or have two consecutive underscores.

Label Type
string
Properties
Create, Filter, Group, Sort, Update
Description
The label of the procedure plan variable.

ProcedurePlanVersionId Type
reference
Properties
Create, Filter, Group, Sort
Description
The procedure plan version associated with the procedure plan variable record.
This field is a relationship field.
Relationship Name
ProcedurePlanVersion
Relationship Type
Master-detail
Refers To
ProcedurePlanDefinitionVersion (the master object)

504
CHAPTER 4 Rate Management
In this chapter ... Quote and price products based on predefined rates for future use
EDITIONS
of the product or service.
• Rate Management
Available in: Lightning
Standard Objects
SEE ALSO: Experience
• Rate Management
Metadata API Types Salesforce Help: Rate Management Permission Set Licenses Available in: Enterprise,
• Rate Management Unlimited, and Developer
Business APIs Editions of Revenue Cloud
where Rate Management is
• Rate Management
enabled
Standard Invocable
Actions

505
Rate Management Rate Management Standard Objects

Rate Management Standard Objects


The Rate Management data model provides objects and fields to manage rates and discounts for a product's resource consumption.

PriceBookRateCard
Represents a junction between price book and rate card objects. This object is available in API version 62.0 and later.
RateAdjustmentByAttribute
Represents the adjustments that determine the rate of a resource based on its rate-impacting attributes. These attributes are linked
to the usage product record. Rates are then influenced by conditions specified in the Attribute Based Adjustment Condition object.
Finally, the charge rate is determined by using the Attribute Based Adjustment Rule object. This object is available in API version
62.0 and later.
RateAdjustmentByTier
Represents the adjustments for the rate of a resource that’s determined based on the specified tiers. This object stores information
about the type of adjustment used, the value of the adjustment type, and any applicable boundaries. This object is available in API
version 62.0 and later.
RateCard
Represents the rules used to rate the consumption of a group of resources within a product. Usage of a resource is billed at a specified
rate if the user consumes more than their allowance for a time period. This object is available in API version 62.0 and later.
RateCardEntry
Represents a rule that determines the charge rate for using a product's resource. Each entry is linked to one rate card exclusively,
and its activation or deactivation can be controlled by assigning effective dates. This object is available in API version 62.0 and later.
RatingFrequencyPolicy
Represents the policy that defines the frequency at which rating is triggered for the ratable summary records. This object is available
in API version 62.0 and later.
RatingRequest
Represents the common run-time parameters, such as context definition and rating procedure for a set of records in the rateable
summary table. This object is available in API version 62.0 and later.
RatingRequestBatchJob
Represents a junction between the rating request and batch job objects. This object is available in API version 62.0 and later.

SEE ALSO:
Object Reference for the Salesforce Platform: Overview of Salesforce Objects and Fields
SOAP API Developer Guide: Introduction to SOAP API

PriceBookRateCard
Represents a junction between price book and rate card objects. This object is available in API version 62.0 and later.

Important: Where possible, we changed noninclusive terms to align with our company value of Equality. We maintained certain
terms to avoid any effect on customer implementations.

506
Rate Management PriceBookRateCard

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), search(), undelete(), update(), upsert()

Fields
Field Details
LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
Timestamp for when the current user last referred to this record.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
Timestamp for when the current user last viewed a record related to this record.

Name Type
string
Properties
Autonumber, Defaulted on create, Filter, idLookup, Sort
Description
Auto-generated identifier for the price book rate card record.

PriceBookId Type
reference
Properties
Create, Filter, Group, Sort
Description
Price book ID that's associated with the rate cards IDs. For Quote, Order, and Contracts, the
price book IDs identify the associated rate cards.
This field is a relationship field.
Relationship Name
PriceBook
Relationship Type
Master-detail
Refers To
Pricebook2 (the master object)

507
Rate Management RateAdjustmentByAttribute

Field Details
RateCardId Type
reference
Properties
Create, Filter, Group, Sort
Description
Rate card ID that's associated with the price book.
This field is a relationship field.
Relationship Name
RateCard
Relationship Type
Master-detail
Refers To
RateCard (the detail object)

RateCardType Type
picklist
Properties
Filter, Group, Restricted picklist, Sort
Description
Type of rate card associated with the price book.
Valid values are:
• Attribute
• Base
• Tier

Associated Objects
This object has these associated objects. If the API version isn’t specified, they’re available in the same API versions as this object. Otherwise,
they’re available in the specified API version and later.
PriceBookRateCardFeed
Feed tracking is available for the object.
PriceBookRateCardHistory
History is available for tracked fields of the object.

RateAdjustmentByAttribute
Represents the adjustments that determine the rate of a resource based on its rate-impacting attributes. These attributes are linked to
the usage product record. Rates are then influenced by conditions specified in the Attribute Based Adjustment Condition object. Finally,
the charge rate is determined by using the Attribute Based Adjustment Rule object. This object is available in API version 62.0 and later.

508
Rate Management RateAdjustmentByAttribute

Important: Where possible, we changed noninclusive terms to align with our company value of Equality. We maintained certain
terms to avoid any effect on customer implementations.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), search(), undelete(), update(), upsert()

Fields
Field Details
AdjustmentType Type
picklist
Properties
Create, Filter, Group, Restricted picklist, Sort, Update
Description
Type of rate adjustment.
Valid values are:
• Amount
• Override
• Percentage

AdjustmentValue Type
double
Properties
Create, Filter, Sort, Update
Description
Value of the rate adjustment based on the selected adjustment type.

AttributeBasedAdjRuleId Type
reference
Properties
Create, Filter, Group, Sort, Update
Description
ID of the attribute based adjustment rule associated with this rate adjustment by attribute
record.
This field is a relationship field.
Relationship Name
AttributeBasedAdjRule
Refers To
AttributeBasedAdjRule

509
Rate Management RateAdjustmentByAttribute

Field Details
EffectiveFrom Type
dateTime
Properties
Filter, Sort
Description
Date and time when the associated rate card entry comes into effect.

EffectiveTo Type
dateTime
Properties
Filter, Nillable, Sort
Description
Date and time until when the associated rate card entry remains effective.

LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
Timestamp for when the current user last referred to this record.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
Timestamp for when the current user last viewed a record related to this record.

Name Type
string
Properties
Autonumber, Defaulted on create, Filter, idLookup, Sort
Description
Auto-generated identifier for the rate adjustment by attribute record.

ProductId Type
reference
Properties
Filter, Group, Nillable, Sort
Description
ID of the product whose resource is being used as the associated rate card entry.

510
Rate Management RateAdjustmentByAttribute

Field Details
This field is a relationship field.
Relationship Name
Product
Refers To
Product2

ProductSellingModelId Type
reference
Properties
Filter, Group, Nillable, Sort
Description
ID of the product selling model for the associated rate card entry.
This field is a relationship field.
Relationship Name
ProductSellingModel
Refers To
ProductSellingModel

RateCardEntryId Type
reference
Properties
Create, Filter, Group, Sort
Description
ID of the rate card entry associated with this rate adjustment by attribute record.
This field is a relationship field.
Relationship Name
RateCardEntry
Relationship Type
Master-detail
Refers To
RateCardEntry (the master object)

RateCardEntryStatus Type
picklist
Properties
Defaulted on create, Filter, Group, Nillable, Restricted picklist, Sort
Description
Status of the rate card entry associated with this rate adjustment by attribute.
Valid values are:
• Active

511
Rate Management RateAdjustmentByAttribute

Field Details
• Draft
• Inactive
The default value is Draft. Available in API version 63.0 and later.

RateCardId Type
reference
Properties
Filter, Group, Sort
Description
ID of the rate card of the associated rate card entry.
This field is a relationship field.
Relationship Name
RateCard
Refers To
RateCard

RateUnitOfMeasureId Type
reference
Properties
Filter, Group, Sort
Description
ID of the standard unit of measure record of the associated rate card entry.
This field is a relationship field.
Relationship Name
RateUnitOfMeasure
Refers To
UnitOfMeasure

RateUnitOfMeasureName Type
string
Properties
Filter, Group, Sort
Description
Name of the standard unit of measure record of the associated rate card entry.

UsageResourceId Type
reference
Properties
Filter, Group, Sort
Description
ID of the resource selected for the associated rate card entry.

512
Rate Management RateAdjustmentByTier

Field Details
This field is a relationship field.
Relationship Name
UsageResource
Refers To
UsageResource

Associated Objects
This object has these associated objects. If the API version isn’t specified, they’re available in the same API versions as this object. Otherwise,
they’re available in the specified API version and later.
RateAdjustmentByAttributeFeed
Feed tracking is available for the object.
RateAdjustmentByAttributeHistory
History is available for tracked fields of the object.

RateAdjustmentByTier
Represents the adjustments for the rate of a resource that’s determined based on the specified tiers. This object stores information about
the type of adjustment used, the value of the adjustment type, and any applicable boundaries. This object is available in API version 62.0
and later.

Important: Where possible, we changed noninclusive terms to align with our company value of Equality. We maintained certain
terms to avoid any effect on customer implementations.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), search(), undelete(), update(), upsert()

Fields
Field Details
AdjustmentType Type
picklist
Properties
Create, Filter, Group, Restricted picklist, Sort, Update
Description
Type of rate adjustment.
Valid values are:
• Amount
• Override

513
Rate Management RateAdjustmentByTier

Field Details
• Percentage

AdjustmentValue Type
double
Properties
Create, Filter, Sort, Update
Description
Value of the rate adjustment based on the selected adjustment type.

EffectiveFrom Type
dateTime
Properties
Filter, Sort
Description
Date and time when the associated rate card entry comes into effect.

EffectiveTo Type
dateTime
Properties
Filter, Nillable, Sort
Description
Date and time until when the associated rate card entry remains effective.

LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
Timestamp for when the current user last referred to this record.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
Timestamp for when the current user last viewed a record related to this record.

LowerBound Type
double
Properties
Create, Filter, Sort, Update

514
Rate Management RateAdjustmentByTier

Field Details

Description
Minimum quantity of the rate adjustment value that can be applied to the record. This value
must be a positive integer and must be less than the upper bound of the tier.

Name Type
string
Properties
Autonumber, Defaulted on create, Filter, idLookup, Sort
Description
Auto-generated identifier for the rate adjustment by tier record.

ProductId Type
reference
Properties
Filter, Group, Nillable, Sort
Description
ID of the product whose resource is being used as the associated rate card entry.
This field is a relationship field.
Relationship Name
Product
Refers To
Product2

ProductSellingModelId Type
reference
Properties
Filter, Group, Nillable, Sort
Description
ID of the product selling model for the associated rate card entry record.
This field is a relationship field.
Relationship Name
ProductSellingModel
Refers To
ProductSellingModel

RateCardEntryId Type
reference
Properties
Create, Filter, Group, Sort
Description
ID of the rate card entry associated with this rate adjustment by tier record.

515
Rate Management RateAdjustmentByTier

Field Details
This field is a relationship field.
Relationship Name
RateCardEntry
Relationship Type
Master-detail
Refers To
RateCardEntry (the master object)

RateCardEntryStatus Type
picklist
Properties
Defaulted on create, Filter, Group, Nillable, Restricted picklist, Sort
Description
Status of the rate card entry associated with this rate adjustment by tier.
Valid values are:
• Active
• Draft
• Inactive
The default value is Draft. Available in API version 63.0 and later.

RateCardId Type
reference
Properties
Filter, Group, Sort
Description
ID of the rate card of the associated rate card entry.
This field is a relationship field.
Relationship Name
RateCard
Refers To
RateCard

RateUnitOfMeasureId Type
reference
Properties
Filter, Group, Sort
Description
ID of the standard unit of measure record of the associated rate card entry.
This field is a relationship field.

516
Rate Management RateAdjustmentByTier

Field Details

Relationship Name
RateUnitOfMeasure
Refers To
UnitOfMeasure

RateUnitOfMeasureName Type
string
Properties
Filter, Group, Sort
Description
Name of the standard unit of measure record of the associated rate card entry.

UpperBound Type
double
Properties
Create, Filter, Nillable, Sort, Update
Description
Maximum quantity of the rate adjustment value that can be applied to the record. This value
must be a positive double and must be greater than the lower bound of the tier.

UsageResourceId Type
reference
Properties
Filter, Group, Sort
Description
ID of the resource selected for the associated rate card entry.
This field is a relationship field.
Relationship Name
UsageResource
Refers To
UsageResource

Associated Objects
This object has these associated objects. If the API version isn’t specified, they’re available in the same API versions as this object. Otherwise,
they’re available in the specified API version and later.
RateAdjustmentByTierFeed
Feed tracking is available for the object.
RateAdjustmentByTierHistory
History is available for tracked fields of the object.

517
Rate Management RateCard

RateCard
Represents the rules used to rate the consumption of a group of resources within a product. Usage of a resource is billed at a specified
rate if the user consumes more than their allowance for a time period. This object is available in API version 62.0 and later.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), search(), undelete(), update(), upsert()

Fields
Field Details
Description Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
Description about the rate card.

EffectiveFrom Type
dateTime
Properties
Create, Filter, Sort, Update
Description
Date and time when the rate card becomes effective.

EffectiveTo Type
dateTime
Properties
Create, Filter, Nillable, Sort, Update
Description
Date and time until when the rate card remains effective.

LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
Timestamp for when the current user last referred to this record.

LastViewedDate Type
dateTime

518
Rate Management RateCard

Field Details

Properties
Filter, Nillable, Sort
Description
Timestamp for when the current user last viewed a record related to this record.

Name Type
string
Properties
Create, Filter, Group, idLookup, Sort, Update
Description
Name of the rate card.

OwnerId Type
reference
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
ID of the user who created the record.
This field is a polymorphic relationship field.
Relationship Name
Owner
Refers To
Group, User

Type Type
picklist
Properties
Create, Filter, Group, Restricted picklist, Sort, Update
Description
Type of rate card.
Valid values are:
• Attribute
• Base
• Tier

Associated Objects
This object has these associated objects. If the API version isn’t specified, they’re available in the same API versions as this object. Otherwise,
they’re available in the specified API version and later.

519
Rate Management RateCardEntry

RateCardFeed
Feed tracking is available for the object.
RateCardHistory
History is available for tracked fields of the object.
RateCardShare
Sharing is available for the object.

RateCardEntry
Represents a rule that determines the charge rate for using a product's resource. Each entry is linked to one rate card exclusively, and its
activation or deactivation can be controlled by assigning effective dates. This object is available in API version 62.0 and later.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), search(), undelete(), update(), upsert()

Fields
Field Details
DefaultUnitOfMeasureClassId Type
reference
Properties
Filter, Group, Nillable, Sort
Description
ID of the default unit of measure classification record associated with this rate card entry.
This field is a relationship field.
Relationship Name
DefaultUnitOfMeasureClass
Refers To
UnitOfMeasureClass

DefaultUnitOfMeasureId Type
reference
Properties
Filter, Group, Nillable, Sort
Description
ID of the default unit of measure record associated with this rate card entry.
This field is a relationship field.
Relationship Name
DefaultUnitOfMeasure

520
Rate Management RateCardEntry

Field Details

Refers To
UnitOfMeasure

EffectiveFrom Type
dateTime
Properties
Create, Filter, Sort, Update
Description
Date and time when the rate card entry comes into effect.

EffectiveTo Type
dateTime
Properties
Create, Filter, Nillable, Sort, Update
Description
Date and time until when the rate card entry remains effective.

LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
Timestamp for when the current user last referred to this record.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
Timestamp for when the current user last viewed a record related to this record.

Name Type
string
Properties
Autonumber, Defaulted on create, Filter, idLookup, Sort
Description
Auto-generated identifier for the rate card entry record.

ProductId Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update

521
Rate Management RateCardEntry

Field Details

Description
ID of the product whose resource is being used as a rate card entry.
This field is a relationship field.
Relationship Name
Product
Refers To
Product2

ProductSellingModelId Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
ID of the product selling model associated with this rate card entry.
This field is a relationship field.
Relationship Name
ProductSellingModel
Refers To
ProductSellingModel

Rate Type
double
Properties
Create, Filter, Nillable, Sort, Update
Description
Value of the rate card entry.

RateCardId Type
reference
Properties
Create, Filter, Group, Sort
Description
ID of the rate card associated with this rate card entry.
This field is a relationship field.
Relationship Name
RateCard
Relationship Type
Master-detail
Refers To
RateCard (the master object)

522
Rate Management RateCardEntry

Field Details
RateCardType Type
picklist
Properties
Filter, Group, Nillable, Restricted picklist, Sort
Description
Type of rate card associated with this rate card entry.
Valid values are:
• Attribute
• Base
• Tier
Available in API version 63.0 and later.

RateNegotiation Type
picklist
Properties
Create, Defaulted on create, Filter, Group, Restricted picklist, Sort, Update
Description
Type of rate negotiation applicable to the rate card entry.
Valid values are:
• Negotiable
• NonNegotiable
The default value is Negotiable. Available in API version 63.0 and later.

RateUnitOfMeasureClassId Type
reference
Properties
Filter, Group, Sort
Description
ID of the unit of measure classification record associated with this rate card entry.
This field is a relationship field.
Relationship Name
RateUnitOfMeasureClass
Refers To
UnitOfMeasureClass

RateUnitOfMeasureId Type
reference
Properties
Create, Filter, Group, Sort, Update

523
Rate Management RateCardEntry

Field Details

Description
ID of the standard unit of measure record associated with this rate card entry.
This field is a relationship field.
Relationship Name
RateUnitOfMeasure
Refers To
UnitOfMeasure

RateUnitOfMeasureName Type
string
Properties
Filter, Group, Sort
Description
Name of the standard unit of measure record of the associated rate card entry.

Status Type
picklist
Properties
Create, Defaulted on create, Filter, Group, Restricted picklist, Sort, Update
Description
Status of the rate card entry.
• Active
• Draft
• Inactive
The default value is Draft. Available in API version 63.0 and later.

UsageProductId Type
reference
Properties
Filter, Group, Nillable, Sort
Description
ID of the product associated with the resource for which the rate is specified.
This field is a relationship field.
Relationship Name
UsageProduct
Refers To
Product2

UsageResourceId Type
reference

524
Rate Management RatingFrequencyPolicy

Field Details

Properties
Create, Filter, Group, Sort, Update
Description
ID of the resource associated with this rate card entry.
This field is a relationship field.
Relationship Name
UsageResource
Refers To
UsageResource

Associated Objects
This object has these associated objects. If the API version isn’t specified, they’re available in the same API versions as this object. Otherwise,
they’re available in the specified API version and later.
RateCardEntryFeed
Feed tracking is available for the object.
RateCardEntryHistory
History is available for tracked fields of the object.

RatingFrequencyPolicy
Represents the policy that defines the frequency at which rating is triggered for the ratable summary records. This object is available in
API version 62.0 and later.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), search(), undelete(), update(), upsert()

Fields
Field Details
LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
Timestamp for when the current user last referred to this record.

LastViewedDate Type
dateTime

525
Rate Management RatingFrequencyPolicy

Field Details

Properties
Filter, Nillable, Sort
Description
Timestamp for when the current user last viewed a record related to this record.

Name Type
string
Properties
Autonumber, Defaulted on create, Filter, idLookup, Sort
Description
Auto-generated identifier for the rating frequency policy record.

OwnerId Type
reference
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
ID of the user who created the record.
This field is a polymorphic relationship field.
Relationship Name
Owner
Refers To
Group, User

ProductId Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
ID of the product for which the rating policy is defined.
This field is a relationship field.
Relationship Name
Product
Refers To
Product2

RatingDelayDuration Type
int
Properties
Create, Filter, Group, Nillable, Sort, Update

526
Rate Management RatingRequest

Field Details

Description
Duration of delay—in hours—post the billing period after which the rating is to be triggered.

RatingPeriod Type
picklist
Properties
Create, Filter, Group, Restricted picklist, Sort, Update
Description
Period for which the usage of a product and usage resource combination are to be rated.
Valid values are:
• Daily
• Monthly

UsageResourceId Type
reference
Properties
Create, Filter, Group, Sort, Update
Description
ID of the usage resource for which the rating policy is defined.
This field is a relationship field.
Relationship Name
UsageResource
Refers To
UsageResource

Associated Objects
This object has these associated objects. If the API version isn’t specified, they’re available in the same API versions as this object. Otherwise,
they’re available in the specified API version and later.
RatingFrequencyPolicyFeed
Feed tracking is available for the object.
RatingFrequencyPolicyHistory
History is available for tracked fields of the object.
RatingFrequencyPolicyShare
Sharing is available for the object.

RatingRequest
Represents the common run-time parameters, such as context definition and rating procedure for a set of records in the rateable summary
table. This object is available in API version 62.0 and later.

527
Rate Management RatingRequest

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), search(), undelete(), update(), upsert()

Fields
Field Details
ContextDefinition Type
string
Properties
Create, Filter, Group, Sort, Update
Description
Context definition that's used for context instance creation, which encapsulates all aggregated
records that are stamped for the rating request.

ContextMapping Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
Context mapping that's used for context instance creation, which encapsulates all aggregated
records that are stamped for the rating request. If no ID is provided, default context mapping
is used.

LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
Timestamp for when the current user last referred to this record.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
Timestamp for when the current user last viewed a record related to this record.

Name Type
string
Properties
Autonumber, Defaulted on create, Filter, idLookup, Sort

528
Rate Management RatingRequest

Field Details

Description
Auto-generated identifier for the rating request record.

OwnerId Type
reference
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
ID of the user who created the record.
This field is a polymorphic relationship field.
Relationship Name
Owner
Refers To
Group, User

RatingProcedureName Type
string
Properties
Create, Filter, Group, Sort, Update
Description
Procedure name that's used to rate the aggregated records that are stamped for rating
request.

Status Type
picklist
Properties
Create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
Status of the rating request.
Valid values are:
• Failed
• Pending
• RatingComplete
• RatingInProgress
• ReadyForRating

Associated Objects
This object has these associated objects. If the API version isn’t specified, they’re available in the same API versions as this object. Otherwise,
they’re available in the specified API version and later.

529
Rate Management RatingRequestBatchJob

RatingRequestFeed
Feed tracking is available for the object.
RatingRequestHistory
History is available for tracked fields of the object.
RatingRequestShare
Sharing is available for the object.

RatingRequestBatchJob
Represents a junction between the rating request and batch job objects. This object is available in API version 62.0 and later.

Important: Where possible, we changed noninclusive terms to align with our company value of Equality. We maintained certain
terms to avoid any effect on customer implementations.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), search(), undelete(), update(), upsert()

Fields
Field Details
BatchJobId Type
reference
Properties
Create, Filter, Group, Sort, Update
Description
ID of the batch job that triggered the rating request on the aggregated records.
This field is a relationship field.
Relationship Name
BatchJob
Refers To
BatchJob

ErrorCode Type
picklist
Properties
Create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
Error code that defines the batch job failure.
Valid values are:
• BadRequest
• InternalError

530
Rate Management RatingRequestBatchJob

Field Details
ErrorMessage Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
Error message that describes the cause of the batch job failure.

LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
Timestamp for when the current user last referred to this record.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
Timestamp for when the current user last viewed a record related to this record.

Name Type
string
Properties
Autonumber, Defaulted on create, Filter, idLookup, Sort
Description
Name of the rating request batch job record.

RatingRequestId Type
reference
Properties
Create, Filter, Group, Sort
Description
ID of the rating request record associated with the batch job.
This field is a relationship field.
Relationship Name
RatingRequest
Relationship Type
Master-detail
Refers To
RatingRequest (the master object)

531
Rate Management Rate Management Metadata API Types

Associated Objects
This object has these associated objects. If the API version isn’t specified, they’re available in the same API versions as this object. Otherwise,
they’re available in the specified API version and later.
RatingRequestBatchJobFeed
Feed tracking is available for the object.
RatingRequestBatchJobHistory
History is available for tracked fields of the object.

Rate Management Metadata API Types


Metadata API enables you to access some types and feature settings that you can customize in the user interface.

IndustriesRatingSettings
Represents the settings for Rate Management.
Flow for Rate Management
Represents the metadata associated with a flow. With Flow, you can create an application that takes users through a series of pages
to query and update the records in the database. You can also run logic and provide branching capability based on user input to
build dynamic applications.

IndustriesRatingSettings
Represents the settings for Rate Management.

Parent Type and Manifest Access


This type extends the Metadata metadata type and inherits its fullName field.
In the package manifest, all the settings metadata types for the org are accessed using the “Settings” name. See Settings for more details.

File Suffix and Directory Location


The IndustriesRatingSettings values are stored in the IndustriesRating.settings file in the settings folder.
The .settings files are different from other named components, because there’s only one settings file for each settings component.

Version
IndustriesRatingSettings components are available in API version 62.0 and later.

Special Access Rules


This metadata type is available with Rate Management.

532
Rate Management IndustriesRatingSettings

Fields
Field Name Description
enableRating Field Type
boolean
Description
Indicates whether to enable Rate Management (true) or not (false). The default
value is false.

enableRatingWaterfall Field Type


boolean
Description
Indicates whether to enable Rating Waterfall (true) or not (false). The default
value is false. Rating Waterfall provides insights into the rating data, which you can
synchronize with your rating lookup tables.

enableRatingWaterfallPersistence Field Type


boolean
Description
Indicates whether to enable Rating Waterfall Persistence (true) or not (false). The
default value is false. Rating Waterfall Persistence stores rating data, which you can
use to enhance the internal processes and increase efficiency.

Declarative Metadata Sample Definition


The following is an example of an IndustriesRatingSettings component.
<IndustriesRatingSettings xmlns="http://soap.sforce.com/2006/04/metadata">
<enableRating>true</enableRating>
<enableRatingWaterfall>true</enableRatingWaterfall>
<enableRatingWaterfallPersistence>true</enableRatingWaterfallPersistence>
</IndustriesRatingSettings>

The following is an example package.xml that references the previous definition.


<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<types>
<members>IndustriesRating</members>
<name>Settings</name>
</types>
<version>63.0</version>
</Package>

533
Rate Management Flow for Rate Management

Wildcard Support in the Manifest File


The wildcard character * (asterisk) in the package.xml manifest file doesn’t apply to metadata types for feature settings. The wildcard
applies only when retrieving all settings, not for an individual setting. For details, see Settings. For information about using the manifest
file, see Deploying and Retrieving Metadata with the Zip File.

Flow for Rate Management


Represents the metadata associated with a flow. With Flow, you can create an application that takes users through a series of pages to
query and update the records in the database. You can also run logic and provide branching capability based on user input to build
dynamic applications.

FlowActionCall
Rate Management exposes additional actionType values for the FlowActionCall metadata type.

Field Name Field Type Description


actionType InvocableActionType Required.
(enumeration of
type string) The action type. Additional valid values for Rate Management include:
• invokeRatingService—Invoke the rating service to rate the
usage records.

Rate Management Business APIs


Use the Rate Management Business APIs to get rate plan and persisted rating waterfall details.

Resources
Learn more about the available Rate Management API resources.
Response Bodies
Learn more about the available response bodies of Rate Management APIs.

SEE ALSO:
Connect REST API Developer Guide: Introduction

Resources
Learn more about the available Rate Management API resources.

Rate Plan (GET)


Get a rate plan for a specified set of context input. Use this API to retrieve rate cards, rate card entries, and related adjustments based
on the filter criteria for the context input.

534
Rate Management Resources

Rating Waterfall (GET)


Get the persisted rating waterfall that stores the process logs. Rating waterfall provides insights into the internal rating process.

Rate Plan (GET)


Get a rate plan for a specified set of context input. Use this API to retrieve rate cards, rate card entries, and related adjustments based on
the filter criteria for the context input.
Keep these considerations in mind when you use this API.
• This API request supports one pricebook and one sellable product.
• The ID of the product is required to invoke this API.
• Invoke this API even if a hydrated context is available to fetch the rate card, rate card entry, and adjustment details.
Special Access Rules
The org must have the Rate Management: Run Time User permission set to use this API. Additionally, the org must also have a default
usage rating procedure defined in the Revenue Settings from Setup.
Resource
/connect/core-rating/rate-plan

Resource example

https://yourInstance.salesforce.com/services/data/v63.0/connect/core-rating/rate-plan
?contextId=858a3ad3e5a0e5c319652a6ab92f6fdb2b4fa8be72b390506d014596c6da62c9&procedure
ApiName=SampleProcedure

Available version
62.0
HTTP methods
GET
Request parameters for GET

Parameter Type Description Required or Available


Name Optional Version
contextId String ID of the context to specify as an input to Required 62.0
the procedure.

procedure String API name of the procedure to be executed. Required 62.0


ApiName

Response body for GET


Rate Plan Response

Rating Waterfall (GET)


Get the persisted rating waterfall that stores the process logs. Rating waterfall provides insights into the internal rating process.
Resource

/connect/core-pricing/waterfall/lineItemId/executionId

535
Rate Management Response Bodies

Resource example

https://yourInstance.salesforce.com/services/data/v63.0/connect/core-pricing/waterfall/Gold/2yHdNNEFOZr9jAe4gHS7?tagsToFilter=UnitPrice&usageType=Rating

Available version
62.0
HTTP methods
GET
Query parameters

Name Type Description Required or Available


Optional Version
tagsToFilter String Comma-separated tags to filter. Optional 62.0

usageType String Usage type of the waterfall log record. Optional 62.0
Valid values are:
• Rating
• Pricing—Specifies that the record
type is Pricing. If this value is
specified, the API creates a log of
pricing waterfall. See Pricing Waterfall.
The default value is Pricing.

Response body for GET


Line Item Waterfall Response

Response Bodies
Learn more about the available response bodies of Rate Management APIs.

Adjustment Details
Output representation of a rate adjustment request.
Line Item Waterfall Response
Output representation of the line item waterfall response.
Rate Plan Response
Output representation of the details of a rate plan.
Rating Error Response
Output representation of the error details related to the API request.
Rating Waterfall Response
Output representation of a rating waterfall request.

536
Rate Management Response Bodies

Adjustment Details
Output representation of a rate adjustment request.
JSON example

"pricingElement": {
"adjustments": [{
"adjustmentType": null,
"adjustmentValue": null
}],
"name": "List Price",
"elementType": "ListPrice"
}

Property Name Type Description Filter Group and Available Version


Version
adjustments Map<String, Details of the rate element. Small, 60.0 60.0
Object>[]

description String Description of the rate element. Small, 60.0 60.0

elementType String Type of the rate element. Small, 60.0 60.0

name String Name of the rate element. Small, 60.0 60.0

Line Item Waterfall Response


Output representation of the line item waterfall response.
JSON example
{
"currencyCode": "USD",
"error": null,
"executionEndTimestamp": "2023-07-31T20:11:29.625Z",
"executionId": "gdLVwn2x1uats2xWMAjV",
"executionStartTimestamp": null,
"lineItemId": "item1",
"success": true,
"usageType":"Rating",
"output": {
"quantity": "10",
"netUnitPrice": "10",
"subtotal": "100"
},
"waterfall": []
}

537
Rate Management Response Bodies

Property Name Type Description Filter Group and Available Version


Version
context String Context definition version ID of the rating Small, 62.0 62.0
Definition procedure.
VersionId

context String Context mapping ID of the record. Small, 62.0 62.0


MappingId

currencyCode String Currency code. For example, USD or INR. Small, 62.0 62.0

error Rating Error Details of any errors. Small, 62.0 62.0


Response

executionEnd String End timestamp of procedure execution. Small, 62.0 62.0


Timestamp

executionId String Execution ID of a particular execution of a Small, 62.0 62.0


rating procedure.

execution String Start timestamp of procedure execution. Small, 62.0 62.0


Start
Timestamp

lineItemId String Line item ID for which the price is being Small, 62.0 62.0
calculated.

output Map<String, Output of the rating procedure. Small, 62.0 62.0


Object>

success Boolean Indicates whether the API request is Small, 62.0 62.0
successful (true) or not (false).

usageType String Usage type of the waterfall log record. Small, 62.0 62.0

waterfall Rating Waterfall Details of the rating waterfall. Small, 62.0 62.0
Response[]

Rate Plan Response


Output representation of the details of a rate plan.
JSON example
{
"success": true,
"executionId" : "a521d592-71c3-4db3-8048-r64504df1605",
"error": {}
}

538
Rate Management Response Bodies

Property Name Type Description Filter Group and Available Version


Version
error Rating Error Error response for the API request, if any. Small, 62.0 62.0
Response[]

executionId String ID of the procedure execution record. Small, 62.0 62.0

success Boolean Indicates whether the request is successful Small, 62.0 62.0
(true) or not (false)

Rating Error Response


Output representation of the error details related to the API request.

Property Name Type Description Filter Group and Available Version


Version
errorCode String Code indicating the type of error. Small, 62.0 62.0

message String Message stating the reason for error, if any. Small, 62.0 62.0

Rating Waterfall Response


Output representation of a rating waterfall request.
JSON example

{
"inputParameters": {
"productId": "01txx0000006i2SAAQ",
"pricebookId": "01sxx0000005ptpAAA",
"pricingModelType": "OneTime"
},
"fieldToTagNameMapping": {
"Product2Id": "ItemProduct",
"Subtotal": "Subtotal",
"Pricebook2Id": "Pricebook",
"Quantity": "ItemQuantity",
"LineItemId": "SalesTransactionSource",
"ListPrice": "ItemListPrice"
},
"sequence": 0,
"outputParameters": {
"listPrice": "10"
},
"pricingElement": {
"adjustments": [
{
"adjustmentType": null,
"adjustmentValue": null
}

539
Rate Management Rate Management Standard Invocable Actions

],
"name": "List Price"
}
}

Property Name Type Description Filter Group and Available Version


Version
fieldTo Map<String, String> Mappings of field to tag names. Small, 62.0 62.0
TagName
Mapping

input Map<String, Parameters of rating element input. Small, 62.0 62.0


Parameters Object>

output Map<String, Parameters of rating element output. Small, 62.0 62.0


Parameters Object>

pricing Adjustment Details Details of the rate adjustment of a rating Small, 62.0 62.0
Element element.

sequence Integer Sequence of rating element execution. Small, 62.0 62.0

Rate Management Standard Invocable Actions


Learn more about the standard invocable actions available with Rate Management.

Invoke Rating Service Action


Invoke the rating service to rate the usage records.

SEE ALSO:
Actions Developer Guide: Overview
REST API Developer Guide: Invocable Actions Standard
Metadata API Developer Guide: Understanding Metadata API

Invoke Rating Service Action


Invoke the rating service to rate the usage records.
The Invoke Rating Service action acts as a connector between batch management and the rating service. This action is available in API
version 62.0 and later.

Special Access Rules


The Invoke Rating Service action is available in Enterprise, Unlimited, and Developer Editions where Rate Management is enabled.

540
Rate Management Invoke Rating Service Action

Supported REST HTTP Methods


URI
/services/data/v63.0/actions/standard/invokeRatingService
Formats
JSON, XML
HTTP Methods
POST
Authentication
Authorization: Bearer token

Inputs
Input Details
attributeRateCardID Type
string
Description
ID of the rate card that’s used to define adjustments based on the attributes that impact the rate.

baseRateCardID Type
string
Description
ID of the rate card that includes the base rate for the resource to be rated, based on its
consumption.

contextDefinitionId Type
string
Description
Required.
ID of the context definition that’s used to create the context instance.

contextMappingID Type
string
Description
ID of the context mapping that maps a standard object, context definition object, or any other
input data source to the node that’s defined in the context definition.

isSkipWaterfall Type
boolean
Description
Indicates whether to skip the generation of price waterfall data (true) or not (false).

541
Rate Management Invoke Rating Service Action

Input Details
procedureName Type
string
Description
Name of the rating procedure that’s used to calculate the rates.

recordID Type
reference
Description
Required.
ID of the usage ratable summary record to be rated.

tierRateCardID Type
string
Description
ID of the rate card that’s used to define adjustments for different tiers of a resource.

Outputs
None

Example
POST
This example shows a sample request for the Invoke Rating Service action.
{
"inputs": [
{
"recordIDs": "56jSB000002Bn12CXC",
"contextMappingId": "11jSB000002Bn13YAC",
"contextDefinitionId": "11OSB0000000WSv2AM",
"procedureName": "Invoke Rate",
"isSkipWaterfall": false,
"baseRateCardID": "11jSB000002Bn13YAC",
"tierRateCardID": "fgjjSB0sdf987dsf",
"attributeRateCardID": "asdfgh563034lk"
}
]
}

This example shows a sample response for the Invoke Rating Service action.
[
{
"actionName": "invokeRatingService",
"errors": null,

542
Rate Management Invoke Rating Service Action

"isSuccess": true,
"outputValues": {}
}
]

543
CHAPTER 5 Usage Management
In this chapter ... Provide transparent, accurate, and efficient management of usage
EDITIONS
data and estimated usage amount to enhance revenue
• Usage Management management capabilities. Available in: Lightning
Standard Objects
Experience
• Usage Management
Standard Invocable Available in: Enterprise,
Actions Unlimited, and Developer
• Usage Management Editions
Business APIs
• Usage Management
Metadata API Types

544
Usage Management Usage Management Standard Objects

Usage Management Standard Objects


The Usage Management data model provides objects and fields to set up and manage consumption of usage-based products.

ProductUsageGrant
Represents the details of a grant associated with a resource, product, or service, such as the purchased quantity, renewal and rollover
policy, and validity of the grant. This object is available in API version 62.0 and later.
TransactionJournal
Represents consumption details of a usage resource that are recorded for creating usage summaries. This object is available for usage
management in API version 63.0 and later.
TransactionUsageEntitlement
Represents the details of each usage entitlement that's granted with the purchased sellable product, such as quantity and date when
the entitlements were granted. This object is available in API version 63.0 and later.
UnitOfMeasure
Defines the units and systems of units used to account for quantities of a usage resource. This object is available for usage management
in API version 62.0 and later.
UnitOfMeasureClass
Represents a standard unit of measure dimension. This object is available in API version 63.0 and later.
UsageBillingPeriodItem
Represents the calculated overages for the usage entitlement and the amount that's charged for these overages. This object is
available in API version 63.0 and later.
UsageEntitlementAccount
Represents the entitlement account details related to the asset that holds the wallet with the granted units. This object is available
in API version 63.0 and later.
UsageEntitlementBucket
Represents a usage entitlement that's granted with the sellable product. This object is available in API version 63.0 and later.
UsageEntitlementEntry
Represents the usage entitlement details, such as the usage consumption, rollovers, and details of expired units for each tenure. This
object is available in API version 63.0 and later.
UsageGrantRenewalPolicy
Represents a policy about the rollover of a usage grant. This object is available in API version 62.0 and later.
UsageGrantRolloverPolicy
Represents a policy about the rollover of a usage grant.This object is available in API version 62.0 and later.
UsagePrdGrantBindingPolicy
Represents the association of a usage resource's grants with a sellable product. This object is available in API version 63.0 and later.
UsageRatableSummary
Represents the aggregation of the usage summaries that are used to calculate the rate at which the overages are charged. This
object is available in API version 63.0 and later.
UsageResource
Represents an entitlement granted to a user or party by a provider, such as data storage, computing power, bandwidth, or any other
product or service. Additionally, this object is used to represent resources consumed over time. This object is available in API version
62.0 and later.

545
Usage Management ProductUsageGrant

UsageResourceBillingPolicy
Represents information about how the usage is accumulated before rating a usage resource.This object is available in API version
62.0 and later.
UsageSummary
Represents the aggregation of the entries in the transaction journal for a usage entitlement for a specified period. This object is
available in API version 63.0 and later.

SEE ALSO:
Object Reference for the Salesforce Platform: Overview of Salesforce Objects and Fields
SOAP API Developer Guide: Introduction to SOAP API

ProductUsageGrant
Represents the details of a grant associated with a resource, product, or service, such as the purchased quantity, renewal and rollover
policy, and validity of the grant. This object is available in API version 62.0 and later.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), search(), undelete(), update(), upsert()

Special Access Rules


To create, update, and delete product usage grant records, you must have the Usage Management Design Time permission set license.

Fields
Field Details
DrawdownOrder Type
picklist
Properties
Create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
The order that's used to debit entitlement consumption from the usage entitlement bucket.
Valid values are:
• ExpiringFirst
• GrantedFirst
• GrantedLast

EffectiveEndDate Type
dateTime
Properties
Create, Filter, Nillable, Sort, Update

546
Usage Management ProductUsageGrant

Field Details

Description
The date and time until when the grant remains effective.

EffectiveStartDate Type
dateTime
Properties
Create, Filter, Sort, Update
Description
The date and time when the grant becomes effective.

Label Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The identifying label for the product usage grant.

LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The date when this record was last referenced.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The timestamp for when the current user last viewed a record related to this record.

OverageChargeable Type
picklist
Properties
Create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
Specifies whether to charge for overages.
Valid values are:
• No
• Yes

547
Usage Management ProductUsageGrant

Field Details
OwnerId Type
reference
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
The ID of the owner of the product usage grant.
This field is a polymorphic relationship field.
Relationship Name
Owner
Refers To
Group, User

ProductOfferId Type
reference
Properties
Create, Filter, Group, Sort, Update
Description
The sellable product that grants the usage resource.
This field is a relationship field.
Relationship Name
ProductOffer
Refers To
Product2

ProductUsageGrantNum Type
string
Properties
Autonumber, Defaulted on create, Filter, idLookup, Sort
Description
The number of each resource grant map that starts with one and is consecutive.

Quantity Type
double
Properties
Create, Filter, Nillable, Sort, Update
Description
The quantity of the granted resource.

RenewalPolicyId Type
reference

548
Usage Management ProductUsageGrant

Field Details

Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The grant renewal policy associated with the product usage grant.
This field is a relationship field.
Relationship Name
RenewalPolicy
Refers To
UsageGrantRenewalPolicy

RolloverPolicyId Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The grant rollover policy associated with the product usage grant.
This field is a relationship field.
Relationship Name
RolloverPolicy
Refers To
UsageGrantRolloverPolicy

Status Type
picklist
Properties
Create, Filter, Group, Restricted picklist, Sort, Update
Description
The status of the product usage grant.
Valid values are:
• Active
• Draft
• Inactive

UnitOfMeasureClassId Type
reference
Properties
Create, Filter, Group, Sort, Update
Description
The unit of measure class associated with the product usage grant.
This field is a relationship field.

549
Usage Management ProductUsageGrant

Field Details

Relationship Name
UnitOfMeasureClass
Refers To
UnitOfMeasureClass

UnitOfMeasureId Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The unit for measure associated with the product usage grant. This value when specified,
overrides the default unit of measure defined in the associated unit of measure class.
This field is a relationship field.
Relationship Name
UnitOfMeasure
Refers To
UnitOfMeasure

UsageDefinitionProductId Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The sellable product associated with the usage resource that's used to retrieve tax policy,
calculate rating during overages, and other invoicing actions.
This field is a relationship field.
Relationship Name
UsageDefinitionProduct
Refers To
Product2

UsageResourceId Type
reference
Properties
Create, Filter, Group, Sort, Update
Description
The usage resource associated with the product usage grant.
This field is a relationship field.
Relationship Name
UsageResource

550
Usage Management TransactionJournal

Field Details

Refers To
UsageResource

ValidityPeriodTerm Type
int
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The period until when the resource grant is valid.

ValidityPeriodUnit Type
picklist
Properties
Create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
The length of a validity period for the resource grant, when used with the
ValidityPeriodTerm field.
Valid values are:
• Month
• None
• Year

Associated Objects
This object has these associated objects. If the API version isn’t specified, they’re available in the same API versions as this object. Otherwise,
they’re available in the specified API version and later.
ProductUsageGrantHistory
History is available for tracked fields of the object.
ProductUsageGrantOwnerSharingRule
Sharing rules are available for the object.
ProductUsageGrantShare
Sharing is available for the object.

TransactionJournal
Represents consumption details of a usage resource that are recorded for creating usage summaries. This object is available for usage
management in API version 63.0 and later.

551
Usage Management TransactionJournal

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), undelete(), update(), upsert()

Fields
Field Details
AccountId Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The account associated with the transaction.
This field is a relationship field.
Relationship Name
Account
Refers To
Account

ActivityDate Type
dateTime
Properties
Create, Filter, Sort, Update
Description
The date of the transaction.

LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The date when this record was last referenced.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The timestamp for when the current user last viewed a record related to this record.

Name Type
string

552
Usage Management TransactionJournal

Field Details

Properties
Autonumber, Defaulted on create, Filter, idLookup, Sort
Description
The autogenerated number of the transaction journal.

ReferenceRecordId Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The record of an asset that's associated with this transaction.
This field is a polymorphic relationship field.
Relationship Name
ReferenceRecord
Refers To
Asset

Status Type
picklist
Properties
Create, Defaulted on create, Filter, Group, Restricted picklist, Sort, Update
Description
The status of the transaction.
Valid values are:
• Approved
• Cancelled
• Error
• Pending
• Processed
• ProcessingError
• Rejected
• SystemApproved
• SystemRejected
The default value is Pending.

UniqueIdentifier Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update

553
Usage Management TransactionUsageEntitlement

Field Details

Description
An autogenerated identifier for the transaction journal when the usage type is Usage
Management.

UsageResourceId Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The usage resource that's associated with the transaction journal.
This field is a relationship field.
Relationship Name
UsageResource
Refers To
UsageResource

UsageType Type
picklist
Properties
Create, Filter, Group, Nillable, Restricted picklist, Sort
Description
The type of usage.
Valid value is:
• UsageManagement

Associated Objects
This object has these associated objects. If the API version isn’t specified, they’re available in the same API versions as this object. Otherwise,
they’re available in the specified API version and later.
TransactionJournalChangeEvent
Change events are available for the object.

TransactionUsageEntitlement
Represents the details of each usage entitlement that's granted with the purchased sellable product, such as quantity and date when
the entitlements were granted. This object is available in API version 63.0 and later.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), search(), undelete(), update(), upsert()

554
Usage Management TransactionUsageEntitlement

Special Access Rules


To create, update, and delete transaction usage entitlement records, you must have the Usage Management Run Time permission set
license.

Fields
Field Details
AccountId Type
reference
Properties
Create, Filter, Group, Sort, Update
Description
The account that's associated with the usage entitlement.
This field is a relationship field.
Relationship Name
Account
Refers To
Account

ActionType Type
picklist
Properties
Create, Filter, Group, Restricted picklist, Sort, Update
Description
The type of action that resulted in the transaction usage entitlement.
Valid values are:
• Amend
• Cancellation
• New
• Ramp
• Renewal

AssetId Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The asset associated with the sellable product.
This field is a relationship field.
Relationship Name
Asset

555
Usage Management TransactionUsageEntitlement

Field Details

Refers To
Asset

ChargeForOverage Type
picklist
Properties
Create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
The action to be taken when the entitlements are used beyond their grant values.
Valid values are:
• No—Don't charge for over consumption
• Yes—Charge for over consumption

DrawdownOrder Type
picklist
Properties
Create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
The order that's used to debit entitlement consumption from the usage entitlement bucket.
Valid values are:
• ExpiringFirst
• GrantedFirst
• GrantedLast

EffectiveEndDateTime Type
dateTime
Properties
Create, Filter, Nillable, Sort, Update
Description
The date and time when the active transaction usage entitlement ends.

EffectiveStartDateTime Type
dateTime
Properties
Create, Filter, Sort, Update
Description
The date and time when the transaction usage entitlement becomes active.

EntitlementUomClassId Type
reference

556
Usage Management TransactionUsageEntitlement

Field Details

Properties
Filter, Group, Nillable, Sort
Description
The unit of measure class for the usage entitlement.
This field is a relationship field.
Relationship Name
EntitlementUomClass
Refers To
UnitOfMeasureClass

EntitlementUomId Type
reference
Properties
Create, Filter, Group, Sort, Update
Description
The unit of measure to calculate the usage entitlement.
This field is a relationship field.
Relationship Name
EntitlementUom
Refers To
UnitOfMeasure

ExternalGrantBindingTarget Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The custom target associated with the entitlements that are granted with the sellable product.

ExternalOrderItem Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The custom or external order item that's associated with the entitlement.

GrantBindingTargetId Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update

557
Usage Management TransactionUsageEntitlement

Field Details

Description
The target associated with the entitlements that are granted with the sellable product.
This field is a relationship field.
Relationship Name
GrantBindingTarget
Refers To
Asset

LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The date when this record was last referenced.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The timestamp for when the current user last viewed a record related to this record.

Name Type
string
Properties
Autonumber, Defaulted on create, Filter, idLookup, Sort
Description
Autogenerated identifier for the transaction usage entitlement record.

NetQuantity Type
double
Properties
Create, Filter, Sort, Update
Description
The total quantity that combines the amended quantity with the initial transaction quantity
in the order item.

OrderItemId Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update

558
Usage Management TransactionUsageEntitlement

Field Details

Description
The order item that's associated with the entitlement.
This field is a polymorphic relationship field.
Relationship Name
OrderItem
Refers To
OrderItem, WorkOrderLineItem

OwnerId Type
reference
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
The ID of the owner of the transaction usage entitlement.
This field is a polymorphic relationship field.
Relationship Name
Owner
Refers To
Group, User

PricebookEntryId Type
reference
Properties
Create, Filter, Group, Sort, Update
Description
The price book entry that's associated with the sellable product.
This field is a relationship field.
Relationship Name
PricebookEntry
Refers To
PricebookEntry

ProductId Type
reference
Properties
Filter, Group, Nillable, Sort
Description
The sellable product for which the entitlement is granted.
This field is a relationship field.

559
Usage Management TransactionUsageEntitlement

Field Details

Relationship Name
Product
Refers To
Product2

EntitlementQuantity Type
double
Properties
Create, Filter, Sort, Update
Description
The entitlement quantity for the usage resource.

TransactionQuantity Type
double
Properties
Create, Filter, Sort, Update
Description
The transaction quantity in the order for the usage entitlement.

UsageAggregationPolicyId Type
reference
Properties
Filter, Group, Nillable, Sort
Description
The usage aggregation policy for this entitlement.
This field is a relationship field.
Relationship Name
UsageAggregationPolicy
Refers To
UsageResourceBillingPolicy

UsageGrantRefreshPolicyId Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The usage grant refresh policy that's associated with the transaction usage entitlement.
This field is a relationship field.
Relationship Name
UsageGrantRefreshPolicy

560
Usage Management TransactionUsageEntitlement

Field Details

Refers To
UsageGrantRenewalPolicy

UsageGrantRolloverPolicyId Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The usage grant rollover policy that's associated with the transaction usage entitlement.
This field is a relationship field.
Relationship Name
UsageGrantRolloverPolicy
Refers To
UsageGrantRolloverPolicy

UsageResourceId Type
reference
Properties
Create, Filter, Group, Sort, Update
Description
The usage resource record that's associated with the transaction usage entitlement.
This field is a relationship field.
Relationship Name
UsageResource
Refers To
UsageResource

ValidityPeriodTerm Type
int
Properties
Create, Filter, Group, Sort, Update
Description
The duration for which the usage resource grant is valid, when used with the validity period
units.

ValidityPeriodUnit Type
picklist
Properties
Create, Filter, Group, Restricted picklist, Sort, Update

561
Usage Management UnitOfMeasure

Field Details

Description
The length of a validity period for the usage resource grant, when used with the validity
period term.
Valid values are:
• Month
• None
• Year

Associated Objects
This object has these associated objects. If the API version isn’t specified, they’re available in the same API versions as this object. Otherwise,
they’re available in the specified API version and later.
TransactionUsageEntitlementHistory
History is available for tracked fields of the object.
TransactionUsageEntitlementOwnerSharingRule
Sharing rules are available for the object.
TransactionUsageEntitlementShare
Sharing is available for the object.

UnitOfMeasure
Defines the units and systems of units used to account for quantities of a usage resource. This object is available for usage management
in API version 62.0 and later.
Examples of units of measure include Liter (for volume), Kilogram (for weight), and single units (such as Can, sachet, and packet).

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), search(), undelete(), update(), upsert()

Fields
Field Details
ConversionFactor Type
double
Properties
Create, Filter, Nillable, Sort, Update
Description
The factor or rate that's used to convert this unit of measurement to the base unit.

562
Usage Management UnitOfMeasure

Field Details
LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The date when this record was last referenced.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The timestamp for when the current user last viewed a record related to this record.

Name Type
string
Properties
Create, Filter, Group, idLookup, Sort, Update
Description
Autogenerated identifier for the unit of measure record.

OwnerId Type
reference
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
The ID of the owner of the unit of measure record.
This field is a polymorphic relationship field.
Relationship Name
Owner
Refers To
Group, User

Sequence Type
int
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The sequence number assigned to the unit of measure.

563
Usage Management UnitOfMeasure

Field Details
Status Type
picklist
Properties
Create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
The status of the unit of measure.
Valid values are:
• Active
• Draft
• Inactive

Type Type
picklist
Properties
Create, Filter, Group, Sort, Update
Description
The type of the unit of measure. For example, weight, distance, period.

UnitCode Type
string
Properties
Create, Filter, Group, Sort, Update
Description
The code for the unit of measure.

UnitOfMeasureClassId Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The unit of measure class associated with the unit of measure.
This field is a relationship field.
Relationship Name
UnitOfMeasureClass
Refers To
UnitOfMeasureClass

564
Usage Management UnitOfMeasureClass

Associated Objects
This object has these associated objects. If the API version isn’t specified, they’re available in the same API versions as this object. Otherwise,
they’re available in the specified API version and later.
UnitOfMeasureChangeEvent
Change events are available for the object.
UnitOfMeasureShare
Sharing is available for the object.

UnitOfMeasureClass
Represents a standard unit of measure dimension. This object is available in API version 63.0 and later.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), search(), undelete(), update(), upsert()

Fields
Field Details
BaseUnitOfMeasureId Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The base unit of measure that's used to calculate and display quantities.
This field is a relationship field.
Relationship Name
BaseUnitOfMeasure
Refers To
UnitOfMeasure

Code Type
string
Properties
Create, Filter, Group, Sort, Update
Description
The unique user-defined string for the unit of measure class.

DefaultUnitOfMeasureId Type
reference

565
Usage Management UnitOfMeasureClass

Field Details

Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The default unit of measure that's used to calculate and display quantities. This measure can
be different from the base unit of measure and overridden by individual resources.
This field is a relationship field.
Relationship Name
DefaultUnitOfMeasure
Refers To
UnitOfMeasure

Description Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The description of the unit of measure class.

LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The date when this record was last referenced.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The timestamp for when the current user last viewed a record related to this record.

Name Type
string
Properties
Create, Filter, Group, idLookup, Sort, Update
Description
Autogenerated identifier for the unit of measure class record.

Status Type
picklist

566
Usage Management UsageBillingPeriodItem

Field Details

Properties
Create, Filter, Group, Restricted picklist, Sort, Update
Description
The status of the unit of measure class.
Valid values are:
• Active
• Draft
• Inactive

Associated Objects
This object has these associated objects. If the API version isn’t specified, they’re available in the same API versions as this object. Otherwise,
they’re available in the specified API version and later.
UnitOfMeasureClassHistory
History is available for tracked fields of the object.

UsageBillingPeriodItem
Represents the calculated overages for the usage entitlement and the amount that's charged for these overages. This object is available
in API version 63.0 and later.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), search(), undelete(), update(), upsert()

Special Access Rules


To create, update, and delete transaction usage entitlement records, you must have the Usage Management Run Time permission set
license.

Fields
Field Details
AccountId Type
reference
Properties
Create, Filter, Group, Sort, Update
Description
The account that's associated with the billing period item.
This field is a relationship field.

567
Usage Management UsageBillingPeriodItem

Field Details

Relationship Name
Account
Refers To
Account

AssetId Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The asset that's associated with the usage billing period item.
This field is a relationship field.
Relationship Name
Asset
Refers To
Asset

EndDateTime Type
dateTime
Properties
Create, Filter, Sort, Update
Description
The end date and time of the billing period.

ErrorCode Type
picklist
Properties
Create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
The error code when the billing request fails.
Valid value is:
• INTERNAL_ERROR

ErrorDescription Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The error description that corresponds to the error code.

568
Usage Management UsageBillingPeriodItem

Field Details
ExternalGrantBindingTarget Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The custom record that's associated with the entitlements that are granted with the sellable
product.

GrantBindingTargetId Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The record that's associated with the usage entitlement account.
This field is a relationship field.
Relationship Name
GrantBindingTarget
Refers To
Asset

LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The date when this record was last referenced.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The timestamp for when the current user last viewed a record related to this record.

OverageAmount Type
currency
Properties
Create, Filter, Sort, Update
Description
The amount calculated for the overage.

569
Usage Management UsageBillingPeriodItem

Field Details
OverageAmountDerived Type
double
Properties
Filter, Nillable, Sort
Description
The numeric value specified in the OverageAmount field to process Data processing
Engine (DPE) jobs.
This field is a calculated field.

OverageQuantity Type
double
Properties
Create, Filter, Sort, Update
Description
The quantity of the usage entitlement that was overused for the specified billing period.

OwnerId Type
reference
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
The ID of the owner of the usage billing period item.
This field is a polymorphic relationship field.
Relationship Name
Owner
Refers To
Group, User

StartDateTime Type
dateTime
Properties
Create, Filter, Sort, Update
Description
The start date and time of the billing period.

Status Type
picklist
Properties
Create, Filter, Group, Restricted picklist, Sort, Update
Description
The status of the usage billing period item.

570
Usage Management UsageBillingPeriodItem

Field Details
Valid values are:
• Invoiced
• InvoicingFailed
• LiableSummaryComplete
• New
• ReadyForInvoicing

TotalUsedQuantity Type
double
Properties
Create, Filter, Sort, Update
Description
The total quantity of usage entitlement that was used for the billing period. This includes
granted and overused entitlements.

UoMId Type
reference
Properties
Create, Filter, Group, Sort, Update
Description
The unit of measure for the overage quantity of usage entitlement.
This field is a relationship field.
Relationship Name
UoM
Refers To
UnitOfMeasure

UsageBillingPeriodItemNum Type
string
Properties
Autonumber, Defaulted on create, Filter, idLookup, Sort
Description
Autogenerated identifier for the usage billing period item record.

UsageEntitlementAccountId Type
reference
Properties
Filter, Group, Nillable, Sort
Description
The usage entitlement account associated with the source usage entitlement bucket.
This field is a relationship field.

571
Usage Management UsageBillingPeriodItem

Field Details

Relationship Name
UsageEntitlementAccount
Refers To
UsageEntitlementAccount

UsageEntitlementBucketId Type
reference
Properties
Create, Filter, Group, Sort, Update
Description
The usage entitlement bucket that's associated with the billing period item.
This field is a relationship field.
Relationship Name
UsageEntitlementBucket
Refers To
UsageEntitlementBucket

UsageResourceId Type
reference
Properties
Filter, Group, Nillable, Sort
Description
The usage resource associated with the usage entitlement bucket.
This field is a relationship field.
Relationship Name
UsageResource
Refers To
UsageResource

Associated Objects
This object has these associated objects. If the API version isn’t specified, they’re available in the same API versions as this object. Otherwise,
they’re available in the specified API version and later.
UsageBillingPeriodItemFeed
Feed tracking is available for the object.
UsageBillingPeriodItemHistory
History is available for tracked fields of the object.
UsageBillingPeriodItemShare
Sharing is available for the object.

572
Usage Management UsageEntitlementAccount

UsageEntitlementAccount
Represents the entitlement account details related to the asset that holds the wallet with the granted units. This object is available in
API version 63.0 and later.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), search(), undelete(), update(), upsert()

Fields
Field Details
AccountId Type
reference
Properties
Create, Filter, Group, Sort, Update
Description
The account that's associated with the usage entitlement.
This field is a relationship field.
Relationship Name
Account
Refers To
Account

BillDayOfMonth Type
int
Properties
Create, Filter, Group, Sort, Update
Description
The day of the month that the bill is generated on and that ends the billing period.

BillingPeriodEndDateTime Type
dateTime
Properties
Create, Filter, Sort, Update
Description
The date and time when the billing period of the usage entitlements ends.

BillingPeriodStartDateTime Type
dateTime
Properties
Create, Filter, Sort, Update

573
Usage Management UsageEntitlementAccount

Field Details

Description
The date and time when the billing period of the usage entitlements starts.

BillingPeriodTerm Type
int
Properties
Create, Filter, Group, Sort, Update
Description
The frequency at which the bill is generated.

BillingPeriodUnit Type
picklist
Properties
Create, Filter, Group, Restricted picklist, Sort, Update
Description
The unit to measure the billing frequency.
Valid value is:
• MONTH

EffectiveEndDateTime Type
dateTime
Properties
Create, Filter, Nillable, Sort, Update
Description
The date and time when the usage entitlement account ends.

EffectiveStartDateTime Type
dateTime
Properties
Create, Filter, Sort, Update
Description
The date and time when the usage entitlement account starts.

ExternalGrantBindingTarget Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The custom target that's associated with the entitlements that are granted with the sellable
product.

574
Usage Management UsageEntitlementAccount

Field Details
GrantBindingTargetId Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The target that's associated with the usage entitlement account.
This field is a relationship field.
Relationship Name
GrantBindingTarget
Refers To
Asset

LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The date when this record was last referenced.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The timestamp for when the current user last viewed a record related to this record.

Name Type
string
Properties
Autonumber, Defaulted on create, Filter, idLookup, Sort
Description
Autogenerated identifier for the usage entitlement account record.

OwnerId Type
reference
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
The ID of the owner of the usage entitlement account.
This field is a polymorphic relationship field.

575
Usage Management UsageEntitlementAccount

Field Details

Relationship Name
Owner
Refers To
Group, User

PricebookEntryId Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The price book entry that's associated with the sellable product.
This field is a relationship field.
Relationship Name
PricebookEntry
Refers To
PricebookEntry

ProductId Type
reference
Properties
Filter, Group, Nillable, Sort
Description
The sellable product for which the entitlements are granted.
This field is a relationship field.
Relationship Name
Product
Refers To
Product2

Associated Objects
This object has these associated objects. If the API version isn’t specified, they’re available in the same API versions as this object. Otherwise,
they’re available in the specified API version and later.
UsageEntitlementAccountFeed
Feed tracking is available for the object.
UsageEntitlementAccountHistory
History is available for tracked fields of the object.
UsageEntitlementAccountShare
Sharing is available for the object.

576
Usage Management UsageEntitlementBucket

UsageEntitlementBucket
Represents a usage entitlement that's granted with the sellable product. This object is available in API version 63.0 and later.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), search(), undelete(), update(), upsert()

Fields
Field Details
BucketBalance Type
double
Properties
Create, Filter, Sort, Update
Description
The balance of the usage entitlement bucket after each transaction.

BucketBalanceUomId Type
reference
Properties
Create, Filter, Group, Sort, Update
Description
The unit that's used to measure the usage entitlement bucket balance.
This field is a relationship field.
Relationship Name
BucketBalanceUom
Refers To
UnitOfMeasure

CompletedRollovers Type
int
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The number of rollovers that were completed for the entitlements.

ConsumedEntitlement Type
double
Properties
Create, Filter, Nillable, Sort, Update

577
Usage Management UsageEntitlementBucket

Field Details

Description
The entitlements that have been consumed from this bucket.

EffectiveEndDateTime Type
dateTime
Properties
Create, Filter, Nillable, Sort, Update
Description
The date and time when the usage entitlement bucket period ends.

EffectiveStartDateTime Type
dateTime
Properties
Create, Filter, Sort, Update
Description
The date and time when the usage entitlement bucket becomes effective.

LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The date when this record was last referenced.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The timestamp for when the current user last viewed a record related to this record.

Name Type
string
Properties
Autonumber, Defaulted on create, Filter, idLookup, Sort
Description
Autogenerated identifier for the usage entitlement bucket record.

OwnerId Type
reference
Properties
Create, Defaulted on create, Filter, Group, Sort, Update

578
Usage Management UsageEntitlementBucket

Field Details

Description
The ID of the owner of the usage entitlement bucket.
This field is a polymorphic relationship field.
Relationship Name
Owner
Refers To
Group, User

ParentId Type
reference
Properties
Create, Filter, Group, Sort, Update
Description
The parent record that's associated with the usage entitlement bucket.
This field is a polymorphic relationship field.
Relationship Name
Parent
Refers To
UsageEntitlementAccount, UsageEntitlementBucket

TotalAsOfBalance Type
double
Properties
Filter, Nillable, Sort
Description
The balance of the entitlements granted with the usage resource for a Usage entitlement
account.

TotalConsumedEntitlement Type
double
Properties
Filter, Nillable, Sort
Description
The entitlements that have been consumed from this bucket.

TransactionUsageEntitlementId Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The transaction usage entitlement associated with this usage entitlement bucket.

579
Usage Management UsageEntitlementEntry

Field Details
This field is a relationship field.
Relationship Name
TransactionUsageEntitlement
Refers To
TransactionUsageEntitlement

UsageResourceId Type
reference
Properties
Create, Filter, Group, Sort, Update
Description
The usage resource that's associated with the usage entitlement bucket.
This field is a relationship field.
Relationship Name
UsageResource
Refers To
UsageResource

Associated Objects
This object has these associated objects. If the API version isn’t specified, they’re available in the same API versions as this object. Otherwise,
they’re available in the specified API version and later.
UsageEntitlementBucketFeed
Feed tracking is available for the object.
UsageEntitlementBucketHistory
History is available for tracked fields of the object.
UsageEntitlementBucketShare
Sharing is available for the object.

UsageEntitlementEntry
Represents the usage entitlement details, such as the usage consumption, rollovers, and details of expired units for each tenure. This
object is available in API version 63.0 and later.

Important: Where possible, we changed noninclusive terms to align with our company value of Equality. We maintained certain
terms to avoid any effect on customer implementations.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), search(), undelete(), update(), upsert()

580
Usage Management UsageEntitlementEntry

Fields
Field Details
ClosingBalance Type
double
Properties
Create, Filter, Sort, Update
Description
The quantity of the entitlement after adjusting the transaction quantity for the current
entitlement validity period.

EffectiveEndDateTime Type
dateTime
Properties
Create, Filter, Nillable, Sort, Update
Description
The date and time when the usage entitlement entry ends.

EffectiveStartDateTime Type
dateTime
Properties
Create, Filter, Sort, Update
Description
The date and time when the usage entitlement entry starts.

EntitlementBucketId Type
reference
Properties
Create, Filter, Group, Sort
Description
The usage entitlement bucket that's associated with the entitlement entry.
This field is a relationship field.
Relationship Name
EntitlementBucket
Relationship Type
Master-detail
Refers To
UsageEntitlementBucket (the master object)

LastReferencedDate Type
dateTime

581
Usage Management UsageEntitlementEntry

Field Details

Properties
Filter, Nillable, Sort
Description
The date when this record was last referenced.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The timestamp for when the current user last viewed a record related to this record.

Name Type
string
Properties
Autonumber, Defaulted on create, Filter, idLookup, Sort
Description
Autogenerated identifier for the usage entitlement entry record.

OpeningBalance Type
double
Properties
Create, Filter, Sort, Update
Description
The starting quantity of the entitlement for the current entitlement validity period.

ParentEntitlementBucketId Type
reference
Properties
Filter, Group, Nillable, Sort
Description
The parent usage entitlement bucket record that's associated with the entitlement entry.
This field is a relationship field.
Relationship Name
ParentEntitlementBucket
Refers To
UsageEntitlementBucket

TransactionDate Type
dateTime

582
Usage Management UsageEntitlementEntry

Field Details

Properties
Create, Filter, Sort, Update
Description
The date when the transaction usage entitlement entry was updated.

TransactionQuantity Type
double
Properties
Create, Filter, Sort, Update
Description
The quantity of the entitlement used during the current entitlement validity period.

TransactionReason Type
picklist
Properties
Create, Filter, Group, Restricted picklist, Sort, Update
Description
The reason for the usage entitlement entry.
Valid values are:
• Amend
• Cancel
• Consumption
• Original
• Refresh
• Renew
• Rollover

TransactionType Type
picklist
Properties
Create, Filter, Group, Restricted picklist, Sort, Update
Description
The type of transaction.
Valid values are:
• Credit
• Debit
• Expired

TransactionUsageEntitlementId Type
reference

583
Usage Management UsageEntitlementEntry

Field Details

Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The transaction usage entitlement that's associated with this usage entitlement entry.
This field is a relationship field.
Relationship Name
TransactionUsageEntitlement
Refers To
TransactionUsageEntitlement

TransactionalBucketId Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The usage entitlement bucket that's used to debit the consumption of entitlements.
This field is a relationship field.
Relationship Name
TransactionalBucket
Refers To
UsageEntitlementBucket

UomId Type
reference
Properties
Create, Filter, Group, Sort, Update
Description
The unit of measure that's associated with the usage entitlement.
This field is a relationship field.
Relationship Name
Uom
Refers To
UnitOfMeasure

Associated Objects
This object has these associated objects. If the API version isn’t specified, they’re available in the same API versions as this object. Otherwise,
they’re available in the specified API version and later.
UsageEntitlementEntryFeed
Feed tracking is available for the object.

584
Usage Management UsageGrantRenewalPolicy

UsageEntitlementEntryHistory
History is available for tracked fields of the object.
UsageEntitlementEntryOwnerSharingRule
Sharing rules are available for the object.
UsageEntitlementEntryShare
Sharing is available for the object.

UsageGrantRenewalPolicy
Represents a policy about the rollover of a usage grant. This object is available in API version 62.0 and later.
A usage grant renewal policy is used if you want to never renew a usage grant or renew on a specific frequency.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), search(), undelete(), update(), upsert()

Fields
Field Details
Code Type
string
Properties
Create, Filter, Group, idLookup, Sort, Update
Description
A unique user-defined string for the usage grant renewal policy.

IsRenewalAllowed Type
boolean
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
Indicates whether the policy renewal is allowed (true) or not (false). If true, then the
policy can be renewed.
The default value is false.

LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The date when this record was last referenced.

585
Usage Management UsageGrantRenewalPolicy

Field Details
LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The timestamp for when the current user last viewed a record related to this record.

Name Type
string
Properties
Create, Filter, Group, idLookup, Sort, Update
Description
The name of the renewal policy record.

RenewalFrequency Type
int
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The frequency of the policy renewals, when used with the RenewalFrequencyUnit
field.

RenewalFrequencyUnit Type
picklist
Properties
Create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
The renewal duration for a policy.
Valid values are:
• Month
• Quarter
• Year

Status Type
picklist
Properties
Create, Filter, Group, Restricted picklist, Sort, Update
Description
The status of the renewal policy.
Valid values are:
• Active

586
Usage Management UsageGrantRolloverPolicy

Field Details
• Draft
• Inactive

Associated Objects
This object has these associated objects. If the API version isn’t specified, they’re available in the same API versions as this object. Otherwise,
they’re available in the specified API version and later.
UsageGrantRenewalPolicyFeed
Feed tracking is available for the object.
UsageGrantRenewalPolicyHistory
History is available for tracked fields of the object.

UsageGrantRolloverPolicy
Represents a policy about the rollover of a usage grant.This object is available in API version 62.0 and later.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), search(), undelete(), update(), upsert()

Fields
Field Details
Code Type
string
Properties
Create, Filter, Group, idLookup, Sort, Update
Description
A unique user-defined string for the usage grant rollover policy.

IsRolloverAllowed Type
boolean
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
Indicates whether the policy allows the rollover of the usage grant.
The default value is false.

LastReferencedDate Type
dateTime

587
Usage Management UsageGrantRolloverPolicy

Field Details

Properties
Filter, Nillable, Sort
Description
The date when this record was last referenced.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The timestamp for when the current user last viewed a record related to this record.

MaximumRolloverCount Type
int
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The maximum number of times that the usage grant can roll over.

Name Type
string
Properties
Create, Filter, Group, idLookup, Sort, Update
Description
The name of the rollover policy record.

ShouldAllowRolloverExpiry Type
boolean
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
Indicates whether the rollover for the associated usage grant is allowed to expire.
The default value is false.

Status Type
picklist
Properties
Create, Filter, Group, Restricted picklist, Sort, Update
Description
Specifies the status of the rollover policy.
Possible values are:

588
Usage Management UsagePrdGrantBindingPolicy

Field Details
• Active
• Draft
• Inactive

Associated Objects
This object has these associated objects. If the API version isn’t specified, they’re available in the same API versions as this object. Otherwise,
they’re available in the specified API version and later.
UsageGrantRolloverPolicyFeed
Feed tracking is available for the object.
UsageGrantRolloverPolicyHistory
History is available for tracked fields of the object.

UsagePrdGrantBindingPolicy
Represents the association of a usage resource's grants with a sellable product. This object is available in API version 63.0 and later.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), search(), undelete(), update(), upsert()

Fields
Field Details
GrantBindingTargetType Type
picklist
Properties
Create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
The type of binding instance to which the grant is added.
Valid values are:
• Custom
• Product

GrantBindingType Type
picklist
Properties
Create, Filter, Group, Restricted picklist, Sort, Update

589
Usage Management UsagePrdGrantBindingPolicy

Field Details

Description
The type of binding that indicates where the grant is added.
Valid values are:
• Self
• Target

LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The date when this record was last referenced.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The timestamp for when the current user last viewed a record related to this record.

Name Type
string
Properties
Create, Filter, Group, idLookup, Sort, Update
Description
Autogenerated identifier for the usage product grant binding policy.

Product2Id Type
reference
Properties
Create, Filter, Group, Sort, Update
Description
The sellable product associated with the usage product grant binding policy.
This field is a relationship field.
Relationship Name
Product2
Refers To
Product2

590
Usage Management UsageRatableSummary

Associated Objects
This object has these associated objects. If the API version isn’t specified, they’re available in the same API versions as this object. Otherwise,
they’re available in the specified API version and later.
UsagePrdGrantBindingPolicyFeed
Feed tracking is available for the object.
UsagePrdGrantBindingPolicyHistory
History is available for tracked fields of the object.

UsageRatableSummary
Represents the aggregation of the usage summaries that are used to calculate the rate at which the overages are charged. This object
is available in API version 63.0 and later.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), undelete(), update(), upsert()

Fields
Field Details
AccountId Type
reference
Properties
Create, Filter, Group, Sort, Update
Description
The account that's associated with the ratable summary.
This field is a relationship field.
Relationship Name
Account
Refers To
Account

AssetId Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The asset that's associated with the ratable summary.
This field is a relationship field.
Relationship Name
Asset

591
Usage Management UsageRatableSummary

Field Details

Refers To
Asset

EndDateTime Type
dateTime
Properties
Create, Filter, Sort, Update
Description
The end date and time of the ratable period.

ErrorCode Type
picklist
Properties
Create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
The code that represents the error encountered when the ratable summary is rated.
Valid value is:
• INTERNAL_ERROR

ErrorDescription Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The error description that corresponds to the error code.

LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The date when this record was last referenced.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The timestamp for when the current user last viewed a record related to this record.

592
Usage Management UsageRatableSummary

Field Details
Name Type
string
Properties
Autonumber, Defaulted on create, Filter, idLookup, Sort
Description
Autogenerated identifier for the usage ratable summary record.

NetUnitRate Type
double
Properties
Create, Filter, Nillable, Sort, Update
Description
The rate that's used to calculate the amount for each unit of usage entitlement overage.

NetUnitRateUomId Type
reference
Properties
Create, Filter, Group, Sort, Update
Description
The unit of measure for the net unit rate applied to the overage.
This field is a relationship field.
Relationship Name
NetUnitRateUom
Refers To
UnitOfMeasure

OverageQuantity Type
double
Properties
Create, Filter, Sort, Update
Description
The quantity of the usage entitlements that were overused.

OverageQuantityUomId Type
reference
Properties
Create, Filter, Group, Sort, Update
Description
The unit of measure that's used for overage quantity.
This field is a relationship field.

593
Usage Management UsageRatableSummary

Field Details

Relationship Name
OverageQuantityUom
Refers To
UnitOfMeasure

OwnerId Type
reference
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
The ID of the owner of the usage ratable summary.
This field is a polymorphic relationship field.
Relationship Name
Owner
Refers To
Group, User

RatingDecisionDateTime Type
dateTime
Properties
Create, Filter, Sort, Update
Description
The date and time when the decision about rating consumption is done.

RatingExecutionIdentifier Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The ID of the rating service execution that's used to retrieve waterfall logs.

RatingRequestId Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The ID that invokes the rating service that's used to rate the usage ratable summary.
This field is a relationship field.
Relationship Name
RatingRequest

594
Usage Management UsageRatableSummary

Field Details

Refers To
RatingRequest

StartDateTime Type
dateTime
Properties
Create, Filter, Sort, Update
Description
The start date and time of the ratable period.

Status Type
picklist
Properties
Create, Filter, Group, Restricted picklist, Sort, Update
Description
The status of the ratable summary.
Valid values are:
• New
• RatingComplete
• RatingFailed
• SummaryCreated

TierQuantity Type
double
Properties
Create, Filter, Sort, Update
Description
The quantity that impacts the net unit rate of a usage entitlement.

TierQuantityUomId Type
reference
Properties
Create, Filter, Group, Sort, Update
Description
The unit of measure for the tier quantity.
This field is a relationship field.
Relationship Name
TierQuantityUom
Refers To
UnitOfMeasure

595
Usage Management UsageRatableSummary

Field Details
TotalAmount Type
double
Properties
Create, Filter, Nillable, Sort, Update
Description
The total amount after calculating the overage based on the net unit rate.

UsageEntitlementAccountId Type
reference
Properties
Filter, Group, Nillable, Sort
Description
The usage entitlement account that's associated with the source of the ratable summary.
This field is a relationship field.
Relationship Name
UsageEntitlementAccount
Refers To
UsageEntitlementAccount

UsageEntitlementBucketId Type
reference
Properties
Create, Filter, Group, Sort, Update
Description
The usage entitlement bucket that's associated with the source of the ratable summary.
This field is a relationship field.
Relationship Name
UsageEntitlementBucket
Refers To
UsageEntitlementBucket

UsageResourceId Type
reference
Properties
Filter, Group, Nillable, Sort
Description
The usage resource associated with the usage entitlement bucket.
This field is a relationship field.
Relationship Name
UsageResource

596
Usage Management UsageResource

Field Details

Refers To
UsageResource

Associated Objects
This object has these associated objects. If the API version isn’t specified, they’re available in the same API versions as this object. Otherwise,
they’re available in the specified API version and later.
UsageRatableSummaryHistory
History is available for tracked fields of the object.
UsageRatableSummaryOwnerSharingRule
Sharing rules are available for the object.
UsageRatableSummaryShare
Sharing is available for the object.

UsageResource
Represents an entitlement granted to a user or party by a provider, such as data storage, computing power, bandwidth, or any other
product or service. Additionally, this object is used to represent resources consumed over time. This object is available in API version
62.0 and later.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), search(), undelete(), update(), upsert()

Fields
Field Details
Category Type
picklist
Properties
Create, Filter, Group, Restricted picklist, Sort, Update
Description
The category of the usage resource that's used to organize and understand the product
grant maps.
Valid value is:
• Usage

Code Type
string

597
Usage Management UsageResource

Field Details

Properties
Create, Filter, Group, idLookup, Sort, Update
Description
The unique user-defined string for the usage resource.

DefaultUnitOfMeasureId Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The default unit of measure for the given resource. The default value can be overridden with
an alternate default unit of measure for a given resource.
This field is a relationship field.
Relationship Name
DefaultUnitOfMeasure
Refers To
UnitOfMeasure

Description Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The description of the usage resource.

LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The date when this record was last referenced.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The timestamp for when the current user last viewed a record related to this record.

Name Type
string

598
Usage Management UsageResource

Field Details

Properties
Create, Filter, Group, idLookup, Sort, Update
Description
The name of the usage resource record.

OwnerId Type
reference
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
The ID of the owner of the usage resource record.
This field is a polymorphic relationship field.
Relationship Name
Owner
Refers To
Group, User

Status Type
picklist
Properties
Create, Filter, Group, Restricted picklist, Sort, Update
Description
The status of the usage resource.
Valid values are:
• Active
• Draft
• Inactive

UnitOfMeasureClassId Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The unit of measure class that's used with the resource to define the units in which this
resource is measured.
This field is a relationship field.
Relationship Name
UnitOfMeasureClass
Refers To
UnitOfMeasureClass

599
Usage Management UsageResource

Field Details
UsageDefinitionProductId Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The product associated with the usage resource to retrieve tax policy, calculate rating during
overages, and other invoicing actions.
This field is a relationship field.
Relationship Name
UsageDefinitionProduct
Refers To
Product2

UsageResourceBillingPolicyId Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The usage resource billing policy that defines how the usage resource can be aggregated
before it's sent for rating.
This field is a relationship field.
Relationship Name
UsageResourceBillingPolicy
Refers To
UsageResourceBillingPolicy

Associated Objects
This object has these associated objects. If the API version isn’t specified, they’re available in the same API versions as this object. Otherwise,
they’re available in the specified API version and later.
UsageResourceFeed
Feed tracking is available for the object.
UsageResourceHistory
History is available for tracked fields of the object.
UsageResourceOwnerSharingRule
Sharing rules are available for the object.
UsageResourceShare
Sharing is available for the object.

600
Usage Management UsageResourceBillingPolicy

UsageResourceBillingPolicy
Represents information about how the usage is accumulated before rating a usage resource.This object is available in API version 62.0
and later.
A usage resource billing policy object is used to configure the properties of usage resources related to how aggregation is performed
on the usage records before rating. Usage resource billing policies are defined at the usage resource level and can be reused across
multiple usage resources.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), search(), undelete(), update(), upsert()

Fields
Field Details
Code Type
string
Properties
Create, Filter, Group, idLookup, Sort, Update
Description
A unique user-defined string for the usage resource billing policy.

LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The date when this record was last referenced.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The timestamp for when the current user last viewed a record related to this record.

Name Type
string
Properties
Create, Filter, Group, idLookup, Sort, Update
Description
The name of the usage resource billing policy record.

601
Usage Management UsageResourceBillingPolicy

Field Details
Status Type
picklist
Properties
Create, Filter, Group, Restricted picklist, Sort, Update
Description
The status of the policy.
Valid values are:
• Active
• Draft
• Inactive

UsageAccumulationMethod Type
picklist
Properties
Create, Filter, Group, Restricted picklist, Sort, Update
Description
The method used to accumulate the usage.
Valid values are:
• Peak
• Sum

UsageAccumulationPeriod Type
picklist
Properties
Create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
The duration for which the usage is accumulated.
Valid values are:
• Daily
• Monthly

Associated Objects
This object has these associated objects. If the API version isn’t specified, they’re available in the same API versions as this object. Otherwise,
they’re available in the specified API version and later.
UsageResourceBillingPolicyFeed
Feed tracking is available for the object.
UsageResourceBillingPolicyHistory
History is available for tracked fields of the object.

602
Usage Management UsageSummary

UsageSummary
Represents the aggregation of the entries in the transaction journal for a usage entitlement for a specified period. This object is available
in API version 63.0 and later.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), search(), undelete(), update(), upsert()

Fields
Field Details
AccountId Type
reference
Properties
Create, Filter, Group, Sort, Update
Description
The account that's associated with the sellable product that was purchased.
This field is a relationship field.
Relationship Name
Account
Refers To
Account

AssetId Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The asset that's associated with the entitlement that was summarized.
This field is a relationship field.
Relationship Name
Asset
Refers To
Asset

ConsumptionUnits Type
double
Properties
Create, Filter, Sort, Update
Description
The quantity that was used by the usage entitlement bucket.

603
Usage Management UsageSummary

Field Details
DebitedUnits Type
double
Properties
Create, Filter, Sort, Update
Description
The units that are debited from the associated usage entitlement bucket.

EndDateTime Type
dateTime
Properties
Create, Filter, Sort, Update
Description
The end date and time of the usage summary.

LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The date when this record was last referenced.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The timestamp for when the current user last viewed a record related to this record.

LiableSummaryId Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The usage billing period item that's associated with this usage summary.
This field is a relationship field.
Relationship Name
LiableSummary
Refers To
UsageBillingPeriodItem

604
Usage Management UsageSummary

Field Details
Name Type
string
Properties
Autonumber, Defaulted on create, Filter, idLookup, Sort
Description
Autogenerated identifier for the usage summary record.

OverageUnits Type
double
Properties
Create, Filter, Sort, Update
Description
The quantity that was overused by the usage entitlement bucket.

OwnerId Type
reference
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
The ID of the owner of the usage summary.
This field is a polymorphic relationship field.
Relationship Name
Owner
Refers To
Group, User

RatableSummaryId Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The ratable summary that's associated with this usage summary.
This field is a relationship field.
Relationship Name
RatableSummary
Refers To
UsageRatableSummary

StartDateTime Type
dateTime

605
Usage Management UsageSummary

Field Details

Properties
Create, Filter, Sort, Update
Description
The start date and time of the usage summary.

Status Type
picklist
Properties
Create, Filter, Group, Restricted picklist, Sort, Update
Description
The status of the usage summary.
Valid values are:
• DrawdownComplete
• LiableSummaryComplete
• New
• RatableSummaryComplete
• Rated
• UsageSummaryComplete
• UsageSummaryInProgress

UomId Type
reference
Properties
Create, Filter, Group, Sort, Update
Description
The unit of measure for the usage resource. This value overrides the default unit of measure
defined in the associated unit of measure class.
This field is a relationship field.
Relationship Name
Uom
Refers To
UnitOfMeasure

UsageEntitlementAccountId Type
reference
Properties
Filter, Group, Nillable, Sort
Description
The usage entitlement account that's associated with the usage summary.
This field is a relationship field.

606
Usage Management UsageSummary

Field Details

Relationship Name
UsageEntitlementAccount
Refers To
UsageEntitlementAccount

UsageEntitlementBucketId Type
reference
Properties
Create, Filter, Group, Sort, Update
Description
The usage entitlement bucket that's associated with the usage summary.
This field is a relationship field.
Relationship Name
UsageEntitlementBucket
Refers To
UsageEntitlementBucket

UsageResourceId Type
reference
Properties
Filter, Group, Nillable, Sort
Description
The usage resource that's associated with the source of the usage entitlement bucket.
This field is a relationship field.
Relationship Name
UsageResource
Refers To
UsageResource

Associated Objects
This object has these associated objects. If the API version isn’t specified, they’re available in the same API versions as this object. Otherwise,
they’re available in the specified API version and later.
UsageSummaryHistory
History is available for tracked fields of the object.
UsageSummaryOwnerSharingRule
Sharing rules are available for the object.
UsageSummaryShare
Sharing is available for the object.

607
Usage Management Usage Management Standard Invocable Actions

Usage Management Standard Invocable Actions


Learn more about the standard invocable actions available with Usage Management.

Invoke Summary Creation Action


Invoke the service that creates various summaries, such as usage, ratable, and liable summaries where the usage amount is zero.
The service also checks and updates the billing period of the usage entitlement account if the billing period is expired.
Process Consumption Overages Action
Process consumption overages for the usage summary records with SummaryComplete status. This action uses the entitlement
service to process the overages.
Refresh Usage Entitlement Bucket Action
Refresh entitlements by evaluating the usage entitlement bucket records and creating a new usage entitlement entry.

SEE ALSO:
Actions Developer Guide: Overview
REST API Developer Guide: Invocable Actions Standard
Salesforce Help: Usage Management

Invoke Summary Creation Action


Invoke the service that creates various summaries, such as usage, ratable, and liable summaries where the usage amount is zero. The
service also checks and updates the billing period of the usage entitlement account if the billing period is expired.
This action is available in API version 63.0 and later.

Special Access Rules


The Invoke Summary Creation action is available in Enterprise, Developer, and Unlimited Editions where Usage Management is enabled.
To use this action, you need the Usage Management Run Time User permission.

Supported REST HTTP Methods


URI
/services/data/v63.0/actions/standard/invokeSummaryCreationService
Formats
JSON, XML
HTTP Methods
POST
Authentication
Authorization: Bearer token

608
Usage Management Process Consumption Overages Action

Inputs
Input Details
usageEntitlementAccountId Type
string
Description
Required.
ID of the usage entitlement account record that’s used to create summaries.

Outputs
None.

Example
POST
This example shows a sample request for the Invoke Summary Creation action.
{
"inputs": [
{
"usageEntitlementAccountId": "3ttDU00000000iZYAQ"
}
]
}

This example shows a sample response for the Invoke Summary Creation action.
{
"actionName": "invokeSummaryCreationService",
"errors": null,
"isSuccess": true
}

SEE ALSO:
Salesforce Help: Permission Set Licenses, Personas, and User Permissions for Usage Management

Process Consumption Overages Action


Process consumption overages for the usage summary records with SummaryComplete status. This action uses the entitlement
service to process the overages.
This action is available in API version 63.0 and later.

609
Usage Management Process Consumption Overages Action

Special Access Rules


The Process Consumption Overages action is available in Enterprise, Developer, and Unlimited Editions where Usage Management is
enabled. To use this action, you need the Usage Management Run Time User permission.

Supported REST HTTP Methods


URI
/services/data/v63.0/actions/standard/processConsumptionOverages
Formats
JSON, XML
HTTP Methods
POST
Authentication
Authorization: Bearer token

Inputs
Input Details
usageRatableSummaryId Type
string
Description
Required.
ID of the usage ratable summary record that contains the consumption details, and is used to
calculate consumption overages and create usage entitlement entry records.

Outputs
None.

Example
POST
This example shows a sample request for the Process Consumption Overages action.
{
"inputs": [
{
"usageRatableSummaryId": "3ttDU00000000iZYAQ"
}
]
}

610
Usage Management Refresh Usage Entitlement Bucket Action

This example shows a sample response for the Process Consumption Overages action.
{
"actionName": "processConsumptionOverages",
"errors": null,
"isSuccess": true
}

SEE ALSO:
Salesforce Help: Permission Set Licenses, Personas, and User Permissions for Usage Management

Refresh Usage Entitlement Bucket Action


Refresh entitlements by evaluating the usage entitlement bucket records and creating a new usage entitlement entry.
This action is available in API version 63.0 and later.

Special Access Rules


The Refresh Usage Entitlement Bucket action is available in Enterprise, Developer, and Unlimited Editions where Usage Management is
enabled. To use this action, you need the Usage Management Run Time User permission.

Supported REST HTTP Methods


URI
/services/data/v63.0/actions/standard/refreshUsageEntitlementBucket
Formats
JSON, XML
HTTP Methods
POST
Authentication
Authorization: Bearer token

Inputs
Input Details
transactionUsageEntitlementId Type
string
Description
Required.
ID of the transaction usage entitlement record that's associated with the usage entitlement
buckets that you need to refresh.

611
Usage Management Usage Management Business APIs

Outputs
None.

Example
POST
This example shows a sample request for the Refresh Usage Entitlement Bucket action.
{
"inputs": [
{
"transactionUsageEntitlementId": "3ttDU00000000iZYAQ"
}
]
}

This example shows a sample response for the Refresh Usage Entitlement Bucket action.
{
"actionName": "refreshUsageEntitlementBucket",
"errors": null,
"isSuccess": true
}

SEE ALSO:
Salesforce Help: Permission Set Licenses, Personas, and User Permissions for Usage Management

Usage Management Business APIs


Use the Usage Management Business APIs to get details of a usage-based product that’s associated with an asset, an order item, or a
quote line item.
This table lists the available Usage Management resources.

Resource Description
/asset-management/assets/assetId/usage-details (GET) Get details of a usage-based
product associated with an
asset. This covers details of
grants, resources, and
configured rates for the product,
including negotiated rates in
case of a rate override.

/commerce/sales-orders/line-items/orderItemId/usage-details (GET) Get details of a usage-based


product associated with an
order item.

612
Usage Management Resources

Resource Description
/commerce/quotes/line-items/quoteLineItemId/usage-details (GET) Get details of a usage-based
product associated with a quote
line item.

Resources
Learn more about the available Usage Management API resources.
Response Bodies
Learn more about the available response bodies of Usage Management APIs.

SEE ALSO:
Connect REST API Developer Guide: Introduction

Resources
Learn more about the available Usage Management API resources.

Asset Usage Details (GET)


Get details of a usage-based product associated with an asset. This covers details of grants, resources, and configured rates for the
product, including negotiated rates in case of a rate override.
Order Item Usage Details (GET)
Get details of a usage-based product associated with an order item.
Quote Line Item Usage Details (GET)
Get details of a usage-based product associated with a quote line item.

Asset Usage Details (GET)


Get details of a usage-based product associated with an asset. This covers details of grants, resources, and configured rates for the
product, including negotiated rates in case of a rate override.
Here are the details of the information that this API returns:
• Grants and resources for the product, if rates aren’t configured.
• Grants, resources, and any configured rates for the product. The rates are returned by the Rate Plan (GET) API.
• Resources that include grants, if applicable, and any negotiated rates for the product in case of a rate override request.
Resource

/asset-management/assets/assetId/usage-details

Resource example

https://yourInstance.salesforce.com/services/data/v63.0/asset-management/assets/02iRM0000000tCdYAI/usage-details

Available version
63.0

613
Usage Management Resources

HTTP methods
GET
Path parameter for GET

Parameter Type Description Required or Available


Name Optional Version
assetId String ID of the asset. Required 63.0

Query parameters for GET

Parameter Type Description Required or Available


Name Optional Version
effectiveDate String Date that's used to search for the Optional 63.0
applicable rate card entries.

optionalFields String[] Custom fields that you can use to query Optional 63.0
these objects.
• AssetRateCardEntry
• AssetRateAdjustment

Response body for GET


Usage Details

Order Item Usage Details (GET)


Get details of a usage-based product associated with an order item.
Here are the details of the information that this API returns:
• Grants and resources for the product, if rates aren’t configured.
• Grants, resources, and any configured rates for the product. The rates are returned by the Rate Plan (GET) API.
• Resources that include grants, if applicable, and any negotiated rates for the product in case of a rate override request.
Resource

/commerce/sales-orders/line-items/orderItemId/usage-details

Resource example

https://yourInstance.salesforce.com/services/data/v63.0/commerce/sales-orders/line-items/802SG000003vZ15YAE/usage-details

https://yourInstance.salesforce.com/services/data
/v63.0/commerce/sales-orders/line-items/802SG000003vZ15YAE/usage-details?optionalFields=OrderItemRateCardEntry.MyCustomDate__c,OrderItemRateCardEntry.MyCustomNumber__c,OrderItemRateAdjustment.myCustomString__c

Available version
63.0
HTTP methods
GET

614
Usage Management Resources

Path parameter for GET

Parameter Type Description Required or Available


Name Optional Version
orderItemId String ID of the order item. Required 63.0

Query parameters for GET

Parameter Type Description Required or Available


Name Optional Version
effectiveDate String Date that's used to search for the Optional 63.0
applicable rate card entries.

optionalFields String[] Custom fields that you can use to query Optional 63.0
these objects.
• OrderItemRateCardEntry
• OrderItemRateAdjustment

Response body for GET


Usage Details

Quote Line Item Usage Details (GET)


Get details of a usage-based product associated with a quote line item.
Here are the details of the information that this API returns:
• Grants and resources for the product, if rates aren’t configured.
• Grants, resources, and any configured rates for the product. The rates are returned by the Rate Plan (GET) API.
• Resources that include grants, if applicable, and any negotiated rates for the product in case of a rate override request.
Resource

/commerce/quotes/line-items/quoteLineItemId/usage-details

Resource example

https://yourInstance.salesforce.com/services/data/v63.0/commerce/quotes/line-items/0QLXXXXXXXXXXXABC/usage-details

Available version
62.0
HTTP methods
GET

615
Usage Management Response Bodies

Request parameters for GET

Parameter Type Description Required or Available


Name Optional Version
effectiveDate String Date that's used to search for the Optional 62.0
applicable rate card entries.

optionalFields String[] Custom fields that you can use to query Optional 62.0
these objects.
• QuoteLineRateCardEntry
• QuoteLineRateAdjustment

Response body for GET


Usage Details

Response Bodies
Learn more about the available response bodies of Usage Management APIs.

Fields Response
Output representation of the details of the optional fields on the usage-based selling-related objects.
Rate Adjustments
Output representation of the details of a rate adjustment.
Rate Card Entry
Output representation of the details of a rate card entry.
Usage Details
Output representation of the usage details of a quote, an order, or an asset.
Usage Details Error Response
Output representation of the details of an error related to usage details.

Fields Response
Output representation of the details of the optional fields on the usage-based selling-related objects.
JSON Example
"fields": {
"MyCustomDate__c": {
"displayValue": "2024-09-24",
"value": "2024-09-24T17:46:30.662Z"
},
"MyCustomNumber__c": {
"displayValue": "20.0",
"value": 20
}
}

616
Usage Management Response Bodies

Property Name Type Description Filter Group and Available Version


Version
displayValue String Display value of a field. Big, 63.0 63.0

value Object Value of a field in its original data form. Big, 63.0 63.0

Rate Adjustments
Output representation of the details of a rate adjustment.
JSON Example
"rateAdjustments": [
{
"fields": {},
"lowerBound": 0.0,
"name": null,
"negotiatedRateAdjustmentId": null,
"rateAdjustmentId": "1ENxx0000004C9BGAU",
"rateAdjustmentType": "Percentage",
"rateAdjustmentValue": 10.0,
"tierUnitOfMeasure": "USD",
"upperBound": 50.0
}
]

If the negotiable property value that’s associated with a rate card entry is blank, then the data is derived from Product Catalog
Management. If it isn’t blank, then the data is derived from Rate Management.

Property Name Type Description Filter Group and Available Version


Version
fields Map<String, Fields List of optional fields and their values that Big, 63.0 63.0
Response> belong to the rate adjustment object.

lowerBound Double Minimum quantity for the adjustment to be Small, 63.0 63.0
applicable.

name String Name of the tier. Small, 63.0 63.0

negotiatedRate String ID of the negotiated rate adjustment. Small, 63.0 63.0


AdjustmentId

rateAdjustment String ID of the rate adjustment. Small, 63.0 63.0


Id

rateAdjustment String Type of the rate adjustment. Small, 63.0 63.0


Type

rateAdjustment Double Value of the rate adjustment. Small, 63.0 63.0


Value

tierUnitOf String Unit of measure representing the tier. Small, 63.0 63.0
Measure

617
Usage Management Response Bodies

Property Name Type Description Filter Group and Available Version


Version
upperBound Double Maximum quantity for the adjustment to Small, 63.0 63.0
be applicable.

Rate Card Entry


Output representation of the details of a rate card entry.
JSON Example
{
"records": [
{
"bindingInstanceTargetType": "Product",
"bindingInstanceType": "Target",
"chargeForOverages": "Yes",
"fields": {},
"name": "Paddle Board",
"negotiable": "Negotiable,Non-Negotiable",
"negotiatedRate": 20.0,
"negotiatedRateCardEntryId": "1ELxx0000004C9JGAU,1ELxx0000004C9KGAU",
"quantity": 15.0,
"rate": 5.0,
"rateAdjustments": [
{
"fields": {},
"lowerBound": 0.0,
"name": "Tier 1",
"negotiatedRateAdjustmentId": "1ENxx0000004C9BGAU",
"rateAdjustmentId": "1ENxx0000004C9BGAU",
"rateAdjustmentType": "Percentage",
"rateAdjustmentValue": 10.0,
"tierUnitOfMeasure": "USD",
"upperBound": 50.0
}
],
"rateCardEntryId": "1CJxx0000004C9IGAU,1CJxx0000004C9JGAU",
"unitOfMeasure": "USD"
}
]
}

If the negotiable property value is blank, then the data is derived from Product Catalog Management. If it isn’t blank, then the data
is derived from Rate Management.

Property Name Type Description Filter Group and Available Version


Version
binding String Type of the target object that's associated Big, 63.0 63.0
Instance with this transaction.
TargetType

618
Usage Management Response Bodies

Property Name Type Description Filter Group and Available Version


Version
bindingInstance String Type of the binding instance. Valid values Big, 63.0 63.0
Type are:
• Self
• Target

chargeFor String Specifies whether overage is permitted. Big, 63.0 63.0


Overages Valid values are:
• Yes
• No
• NA

fields Map<String, Fields List of optional fields and their values that's Big, 63.0 63.0
Response> associated with the rate card entry object.

name String Name of the resource. Big, 63.0 63.0

negotiable String Type of the base rate and the tier rate, if Big, 63.0 63.0
applicable. Valid values are:
• Negotiable
• Non-Negotiable

negotiated Double User-overridden overage rate. Big, 63.0 63.0


Rate

negotiated String ID of the negotiated rate card entry and the Big, 63.0 63.0
RateCard tier rate card entry, if applicable.
EntryId

quantity Double Amount granted for the resource. Big, 63.0 63.0

rate Double Base overage rate. Big, 63.0 63.0

rate Rate Adjustments[] List of tiers associated with the rate card Big, 63.0 63.0
Adjustments entry, if applicable.

rateCard String ID of the base rate card entry and the tier Big, 63.0 63.0
EntryId rate card entry, if applicable.

unitOfMeasure String Unit of measure of the grant. For example, Big, 63.0 63.0
Unit.

Usage Details
Output representation of the usage details of a quote, an order, or an asset.

619
Usage Management Response Bodies

JSON example
This sample response shows resources that include grants, if applicable, and resources without rates when you retrieve the usage
details of an order item.
{
"records": [
{
"bindingInstanceTargetType": null,
"bindingInstanceType": null,
"chargeForOverages": "Yes",
"fields": {},
"name": "API Calls",
"negotiable": ",",
"negotiatedRate": null,
"negotiatedRateCardEntryId": ",",
"quantity": 1000.0,
"rate": null,
"rateAdjustments": [],
"rateCardEntryId": ",",
"unitOfMeasure": null
}
]
}

This example shows a sample response without negotiated rates when you retrieve the usage details of an order item.
{
"records": [
{
"bindingInstanceTargetType": "Product",
"bindingInstanceType": "Target",
"chargeForOverages": "Yes",
"fields": {}
"name": "Paddle Board",
"negotiable": "Negotiable,Non-Negotiable",
"negotiatedRate": null,
"negotiatedRateCardEntryId": ",",
"quantity": 15.0,
"rate": 5.0,
"rateAdjustments": [
{
"fields": {},
"lowerBound": 0.0,
"name": null,
"negotiatedRateAdjustmentId": null,
"rateAdjustmentId": "1ENxx0000004C9BGAU",
"rateAdjustmentType": "Percentage",
"rateAdjustmentValue": 10.0,
"tierUnitOfMeasure": "USD",
"upperBound": 50.0
}
],
"rateCardEntryId": "1CJxx0000004C9IGAU,1CJxx0000004C9JGAU",
"unitOfMeasure": "USD"
}

620
Usage Management Response Bodies

]
}

This sample response shows negotiated rates when you retrieve the usage details of an order item. The negotiated rates are derived
from these objects for assets, order items, or quote line items.
• AssetRateCardEntry
• AssetRateAdjustment
• OrderItemRateCardEntry
• OrderItemRateAdjustment
• QuoteLineRateCardEntry
• QuoteLineRateAdjustment
{
"records": [
{
"bindingInstanceTargetType": "Product",
"bindingInstanceType": "Target",
"chargeForOverages": "Yes",
"fields": {},
"name": "Paddle Board",
"negotiable": "Negotiable,Non-Negotiable",
"negotiatedRate": 20.0,
"negotiatedRateCardEntryId": "1ELxx0000004C9JGAU,1ELxx0000004C9KGAU",
"quantity": 15.0,
"rate": 5.0,
"rateAdjustments": [
{
"fields": {},
"lowerBound": 0.0,
"name": "Tier 1",
"negotiatedRateAdjustmentId": "1ENxx0000004C9BGAU",
"rateAdjustmentId": "1ENxx0000004C9BGAU",
"rateAdjustmentType": "Percentage",
"rateAdjustmentValue": 10.0,
"tierUnitOfMeasure": "USD",
"upperBound": 50.0
}
],
"rateCardEntryId": "1CJxx0000004C9IGAU,1CJxx0000004C9JGAU",
"unitOfMeasure": "USD"
}
]
}

This sample response shows details of the custom fields when you retrieve the usage details of an order item.
{
"records": [
{
"fields": {
"MyCustomDate__c": {
"displayValue": "2024-09-24",
"value": "2024-09-24T17:46:30.662Z"

621
Usage Management Response Bodies

},
"MyCustomNumber__c": {
"displayValue": "20.0",
"value": 20
}
},
"bindingInstanceTargetType": "Product",
"bindingInstanceType": "Target",
"chargeForOverages": "Yes",
"name": "Massage Therapy",
"negotiable": "Negotiable,Non-Negotiable",
"negotiatedRate": 20.0,
"negotiatedRateCardEntryId": "1ELxx0000004C9JGAU,1ELxx0000004C9KGAU",
"quantity": 15.0,
"rate": 5.0,
"rateAdjustments": [
{
"fields": {
"MyCustomString__c": {
"displayValue": "My Custom String",
"value": "MyCustomString"
}
},
"lowerBound": 0.0,
"name": "Tier 1",
"negotiatedRateAdjustmentId": "1ENxx0000004C9BGAU",
"rateAdjustmentId": "1ENxx0000004C9BGAU",
"rateAdjustmentType": "Percentage",
"rateAdjustmentValue": 10.0,
"tierUnitOfMeasure": "USD",
"upperBound": 50.0
}
],
"rateCardEntryId": "1CJxx0000004C9IGAU,1CJxx0000004C9JGAU",
"unitOfMeasure": "USD"
}
]
}

Property Name Type Description Filter Group and Available Version


Version
errors Usage Detail Error List of errors. Small, 63.0 63.0
Response[]

records Rate Card Entry[] List of rate card entry records. Small, 63.0 63.0

Usage Details Error Response


Output representation of the details of an error related to usage details.

622
Usage Management Usage Management Metadata API Types

JSON Example
{
"errors": [
{
"referenceId": "MyOrderItem",
"errorCode": "INVALID_API_INPUT",
"message": "Something has failed"
}
]
}

Property Name Type Description Filter Group and Available Version


Version
errorCode String Code associated with the error. Small, 63.0 63.0

message String Message associated with the error. Small, 63.0 63.0

referenceId String Unique ID that’s associated with the specific Small, 63.0 63.0
error for tracking and reference purposes.

Usage Management Metadata API Types


Metadata API enables you to access some types and feature settings that you can customize in the user interface.

Flow for Usage Management


Represents the metadata associated with a flow. With Flow, you can create an application that navigates users through a series of
screens to query and update records in the database. You can also execute logic and provide branching capability based on user
input to build dynamic applications.

SEE ALSO:
Metadata API Developer Guide: Understanding Metadata API

Flow for Usage Management


Represents the metadata associated with a flow. With Flow, you can create an application that navigates users through a series of screens
to query and update records in the database. You can also execute logic and provide branching capability based on user input to build
dynamic applications.

FlowActionCall
Usage Management exposes additional actionType values for the FlowActionCall Metadata type.

623
Usage Management Flow for Usage Management

Field Name Field Type Description


actionType InvocableActionType Required.
(enumeration of
type string) The action type. Additional valid values only for Usage Management
include:
• invokeSummaryCreationService—Invoke the service
that creates various summaries, such as usage, ratable, and liable
summaries where the usage amount is zero. The service also checks
and updates the billing period of the usage entitlement account if
the billing period is expired.
• processConsumptionOverages—Process consumption
overages for the usage summary records with
SummaryComplete status. This action uses the entitlement
service to process the overages.
• refreshUsageEntitlementBucket—Refresh entitlements
by evaluating the usage entitlement bucket records and creating a
new usage entitlement entry.

624
CHAPTER 6 Product Configurator
In this chapter ... Customize the components and attributes of a product to align
EDITIONS
with specific business requirements.
• Product Configurator
Available in: Lightning
Standard Objects
Experience
• Product Configurator
Business APIs Available in: Enterprise,
Unlimited, and Developer
Editions of Revenue Cloud
where Product Configurator
is enabled

625
Product Configurator Product Configurator Standard Objects

Product Configurator Standard Objects


The Product Configurator data model provides objects and fields to manage the product configurator flow.

ExpressionSetConstraintObj
Represents the association between a Product object and the constraint model tags defined in a given constraint model. This object
is available in API version 63.0 and later.
Product Configuration Flow
Specifies the many-to-many relationship between Product Classification, Product, and Flow Definition objects. The flow definition
is used to configure standalone and bundled products of a specific product classification along with the product attributes, quantities,
and product selling models. This object is available in API version 60.0 and later.
Product Configuration Flow Assignment
A junction entity that represents the many-to-many relationship between Product Configuration Flow, Product, and Product
Classification. This object is available in API version 60.0 and later.
Product Configuration Rule
Represents the validation, inclusion, and exclusion rules for products in the context of the selling process. The selling process can
be quoting, configuration, or ordering. This object is available in API version 61.0 and later.

SEE ALSO:
Object Reference for the Salesforce Platform: Overview of Salesforce Objects and Fields
SOAP API Developer Guide: Introduction to SOAP API

ExpressionSetConstraintObj
Represents the association between a Product object and the constraint model tags defined in a given constraint model. This object is
available in API version 63.0 and later.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), undelete(), update(), upsert()

Special Access Rules


This object is available in orgs where Revenue Cloud is enabled.

Fields
Field Details
ConstraintModelTag Type
string
Properties
Create, Filter, Group, Sort, Update

626
Product Configurator ExpressionSetConstraintObj

Field Details

Description
The product tag that is defined in the constraint model, for example, Laptop.

ConstraintModelTagType Type
picklist
Properties
Create, Defaulted on create, Filter, Group, Restricted picklist, Sort, Update
Description
The type of the product tag that is defined in the constraint model.
Possible values are:
• Port
• Type
The default value is Type.

ExpressionSetId Type
reference
Properties
Create, Filter, Group, Sort, Update
Description
The expression set associated with the expression set constraint object.
This field is a relationship field.
Relationship Name
ExpressionSet
Refers To
ExpressionSet

LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The timestamp when the current user last accessed this record, a record related to this record,
or a list view.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The timestamp when the current user last viewed this record or list view. If this value is null,
the user accessed this record or list view (LastReferencedDate) but didn’t view it.

627
Product Configurator Product Configuration Flow

Field Details
Name Type
string
Properties
Autonumber, Defaulted on create, Filter, idLookup, Sort
Description
The name of the expression set constraint.

OwnerId Type
reference
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
For internal use only.
This field is a polymorphic relationship field.
Relationship Name
Owner
Refers To
Group, User

ReferenceObjectId Type
reference
Properties
Create, Filter, Group, Sort, Update
Description
The object associated with the expression set constraint object.
This field is a polymorphic relationship field.
Relationship Name
ReferenceObject
Refers To
Product2, ProductClassification, ProductRelatedComponent

Product Configuration Flow


Specifies the many-to-many relationship between Product Classification, Product, and Flow Definition objects. The flow definition is
used to configure standalone and bundled products of a specific product classification along with the product attributes, quantities,
and product selling models. This object is available in API version 60.0 and later.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), search(), undelete(), update(), upsert()

628
Product Configurator Product Configuration Flow Assignment

Fields
Field Details
FlowIdentifier Type
string
Properties
Create, Filter, Group, Sort, Update
Description
Stores the flow API name.

IsDefault Type
Boolean
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
Indicates the default configurator flow.
The default value is false.

Status Type
picklist
Properties
Create, Defaulted on create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
Indicates the status of the product configuration flow. Possible values include Draft, Active,
and Inactive
Possible values are:
• Active
• Draft
• Inactive
The default value is Draft.

Product Configuration Flow Assignment


A junction entity that represents the many-to-many relationship between Product Configuration Flow, Product, and Product Classification.
This object is available in API version 60.0 and later.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), undelete(), update(), upsert()

629
Product Configurator Product Configuration Flow Assignment

Fields
Field Details
ProductClassificationId Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The product classification associated with the Product Configuration Flow.
This field is a relationship field.
Relationship Name
ProductClassification
Relationship Type
Lookup
Refers To
ProductClassification

ProductConfigurationFlowId Type
reference
Properties
Create, Filter, Group, Sort
Description
The Product Configuration Flow associated with the Product Classification or Product.
This field is a relationship field.
Relationship Name
ProductConfigurationFlow
Relationship Type
Lookup
Refers To
ProductConfigurationFlow

ProductId Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The product associated with the Product Configuration Flow.
This field is a relationship field.
Relationship Name
Product

630
Product Configurator Product Configuration Rule

Field Details

Relationship Type
Lookup
Refers To
Product2

Product Configuration Rule


Represents the validation, inclusion, and exclusion rules for products in the context of the selling process. The selling process can be
quoting, configuration, or ordering. This object is available in API version 61.0 and later.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), search(), undelete(), update(), upsert()

Fields
Field Details
ApiName Type
string
Properties
Filter, Group, Nillable, Sort
Description

ConfigurationRuleDefinition Type
textarea
Properties
Create, Nillable, Update
Description
The configuration rule criteria and actions.

Description Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The description of the configuration rule.

EffectiveFromDate Type
dateTime

631
Product Configurator Product Configuration Rule

Field Details

Properties
Filter, Nillable, Sort
Description
The date and time from which the configuration rules comes into effect.

EffectiveToDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The date and time to which the configuration rules ceases to be in effect.

LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The date the configuration rule record was last referenced.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The date the configuration rule record was last viewed.

Name Type
string
Properties
Create, Filter, Group, idLookup, Sort, Update
Description
The name of the configuration rule.

OwnerId Type
reference
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
The ID of the configuraion rule owner.
This field is a polymorphic relationship field.

632
Product Configurator Product Configuration Rule

Field Details

Relationship Name
Owner
Relationship Type
Lookup
Refers To
Group, User

ProcessScope Type
picklist
Properties
Create, Defaulted on create, Filter, Group, Restricted picklist, Sort, Update
Description
The scope of the configuration rule.
Possible values are:
• Bundle
• Product
The default value is Product.

RuleSubType Type
picklist
Properties
Create, Defaulted on create, Filter, Group, Restricted picklist, Sort, Update
Description
The segregation of products into subsets such that the configuration rules only apply to the
products that fall under the ambit of the selected rule subtype.
Possible values are:
• BundleProduct—Bundle Product
• BundleProductClassification—Bundle Product Classification
• Product
• ProductClassification—Product Classification
The default value is Product.

RuleType Type
picklist
Properties
Create, Defaulted on create, Filter, Group, Restricted picklist, Sort, Update
Description
Indicates the industry vertical or the feature of the industry vertical that’s using the
configuration rule.
Possible values are:

633
Product Configurator Product Configurator Business APIs

Field Details
• Configurator
• Promotions
The default value is Configurator.

Sequence Type
int
Properties
Filter, Group, Nillable, Sort
Description
Indicates the order for executing the configuration rule. Rules with lower numbers run first
when multiple rules are triggered at once.

Status Type
picklist
Properties
Defaulted on create, Filter, Group, Nillable, Restricted picklist, Sort
Description
The lifecycle status of the configuration rule.
Possible values are:
• Active
• Draft
• Inactive
The default value is Draft.

Product Configurator Business APIs


Use the Product Configurator Business APIs to customize a product or a service according to your business-specific requirements.
Perform product configuration-related operations by using the Product Configurator Business APIs. Integrate these APIs with any front-end
application to access the configurator capabilities.
This table lists the available Product Configurator resources.

Resource Description
/connect/cpq/configurator/actions/configure (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,

634
Product Configurator Product Configurator Business APIs

Resource Description
get pricing details for the
configured bundle.

/connect/cpq/configurator/actions/load-instance (POST) Create a session for the product


configuration instance using the
transaction ID. Get the session
ID that includes the results of
actions, such as configuration
rules, qualification rules, and
pricing management.

/connect/cpq/configurator/actions/set-instance (POST) Set a product configuration


instance. This API is used in
scenarios where the
configuration instance is
available in a different database
than Salesforce and the product
catalog management data is in
Salesforce.

/connect/cpq/configurator/actions/get-instance (POST) Fetch the JSON representation


of a product configuration. Use
the response to display the
details of the product
configuration instance on the
Salesforce user interface, or save
the product configuration
instance to an external system.

/connect/cpq/configurator/actions/save-instance (POST) Save a configuration instance


after a successful product
configuration.

/connect/cpq/configurator/actions/set-product-quantity (POST) Set the quantity of a product


through the runtime system.

/connect/cpq/configurator/actions/add-nodes (POST) Add a node to the context


through the runtime system
without using the Salesforce
user interface.

/connect/cpq/configurator/actions/update-nodes (POST) Update nodes in a product


configuration.

/connect/cpq/configurator/actions/delete-nodes (POST) Delete nodes from a product


configuration.

Resources
Learn more about the available Product Configurator API resources.

635
Product Configurator Resources

Request Bodies
Learn more about the available Product Configurator API request bodies.
Response Bodies
Learn more about the available Product Configurator API response bodies.

SEE ALSO:
Salesforce Help: Product Configurator Permissions

Resources
Learn more about the available Product Configurator API resources.

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.
Saved Configuration (GET, POST)
Save and reuse a record's configurations, and get a list of the saved configurations for a record.
Saved Configuration (DELETE, PUT)
Update or delete a record's saved configuration by using the configuration ID.
Configuration Get Instance (POST)
Fetch the JSON representation of a product configuration. Use the response to display the details of the product configuration
instance on the Salesforce user interface, or save the product configuration instance to an external system.
Configuration Load Instance (POST)
Create a session for the product configuration instance using the transaction ID. Get the session ID that includes the results of actions,
such as configuration rules, qualification rules, and pricing management.
Configuration Save Instance (POST)
Save a configuration instance after a successful product configuration.
Configuration Set Instance (POST)
Set a product configuration instance. This API is used in scenarios where the configuration instance is available in a different database
than Salesforce and the product catalog management data is in Salesforce.
Configurator Add Nodes (POST)
Add a node to the context through the runtime system without using the Salesforce user interface.
Configurator Delete Nodes (POST)
Delete nodes from a product configuration.
Configurator Update Nodes (POST)
Update nodes in a product configuration.
Product Set Quantity (POST)
Set the quantity of a product through the runtime system.

636
Product Configurator Resources

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.
Resource
/connect/cpq/configurator/actions/configure

Resource example

https://yourInstance.salesforce.com/services/data/v63.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.
{
"transactionLineId": "0QLDE000000IBXw4AO",
"transactionId": "0Q0xx0000000001GAA",
"correlationId": "c95246d4-102c-4ecd-a263-f74ac525d1e5",
"configuratorOptions": {
"executePricing": true,
"returnProductCatalogData": true
},
"qualificationContext": {
"accountId": "001xx0000000001AAA",
"contactId": "003xx00000000D7AAI"
}
}

This example shows a sample to add, update, or delete a node in an existing context.
{
"transactionLineId": "0QLDE000000IBXw4AO",
"transactionId": "0Q0DE000000ISHJs81",
"correlationId": "c95246d4-102c-4ecd-a263-f74ac525d1e5",
"configuratorOptions": {
"executePricing": true,
"returnProductCatalogData": true,
"qualifyAllProductsInTransaction": true,
"validateProductCatalog": true,
"validateAmendRenewCancel": true,
"executeConfigurationRules": true,
"addDefaultConfiguration": true
},
"qualificationContext": {
"accountId": "001xx0000000001AAA",
"contactId": "003xx00000000D7AAI"
},
"transactionContextId": "008d27d7-e004-4906-a949-ee7d7c323c77",

637
Product Configurator Resources

"addedNodes": [
{
"path": ["0Q0DE000000ISHJs81", "sti2_id"],
"addedObject": {
"id": "ref_sti2_id",
"SalesTransactionSource": "sti2_id",
"PricebookEntry": "01uxx0000000001AAA",
"ProductSellingModel": "0jPxx0000000001AAA",
"businessObjectType": "QuoteLineItem",
"Quantity": 10,
"UnitPrice": 2.0,
"Product": "01txx0000000001AAA"
}
},
{
"path": ["0Q0DE000000ISHJs81", "0QLDE000000IBXw4AO","ref_stir1_id"],
"addedObject": {
"id": "ref_stir1_id",
"businessObjectType": "QuoteLineItemRelationship",
"MainItem": "0QLDE000000IBXw4AO",
"AssociatedItem": "ref_sti2_id",
"ProductRelatedComponent": "0dSxx0000000001AAA",
"ProductRelationshipType": "0yoxx0000000001AAA",
"AssociatedItemPricing": "IncludedInBundlePrice"

}
}
],
"updatedNodes": [
{
"path": ["0Q0DE000000ISHJs81", "0QLDE000000IBXw4AO"],
"updatedAttributes": {
"Quantity": 5
}
}
],
"deletedNodes": [
{
"path": ["0Q0DE000000ISHJs81", "0QLDE000000IBXw4AO"]
}
]
}

Properties

Name Type Description Required or Available


Optional Version
addedNodes Configurator List of added context nodes that’s passed Optional 60.0
Added Node to the product configurator.
Input[]

configurator Configurator Options to pass to the configurator. Optional 60.0


Options Options Input[]

638
Product Configurator Resources

Name Type Description Required or Available


Optional Version
correlation String ID that’s specified for traceability of logs. Optional 60.0
Id

deletedNodes Configurator List of deleted context nodes that’s Optional 60.0


Deleted Node passed to the product configurator.
Input[]

qualification User Context Details such as account ID, contact ID, Optional 60.0
Context Input[] and context ID that are used for
executing qualification rules.

transaction String ID of the transaction context. Optional 60.0


ContextId

transaction String ID of the sales transaction that’s being Required 60.0


Id configured such as a quote or an order.

transaction String ID of the top-level line item that’s being Optional 60.0
LineId configured.

updatedNodes Configurator List of updated context nodes that’s Optional 60.0


Updated Node passed to the product configurator.
Input[]

Response body for POST


Configuration Details

Saved Configuration (GET, POST)


Save and reuse a record's configurations, and get a list of the saved configurations for a record.
Resource
/connect/cpq/configurator/saved-configuration

Resource example

https://yourInstance.salesforce.com/services/data/v63.0/connect/cpq/configurator/saved-configuration

Available version
63.0
HTTP methods
GET, POST
Request parameters for GET

Parameter Type Description Required or Available


Name Optional Version
referenceRecordId String ID of the record whose saved Required 63.0
configurations must be retrieved.

639
Product Configurator Resources

Response body for GET


Configuration List
Request body for POST
JSON example
{
"data":
"
{
&
q
u
ot
;
L
e
g
al
E
n
t
i
ty
&
q
u
o
t;
:
n
u
l,
&
q
u
o
t;
P
r
o
d
uc
t
N
a
m
e&
q
u
o
t
;:
&
q
u
o
t;
M
o
n
i
to
r
&
q
u
ot
;
,
&
q
uo
t
;
b
u
si
n
e
sO
b
j
e
ct
T
yp
e
&
qu
o
t
;:
&
q
u
o
t;
Q
u
o
t
eL
i
n
e
I
te
m
&
q
u
ot
;
,
&
q
uo
t
;
P
r
od
u
c
t
&q
u
o
t
;
:&
q
u
o
t
;0
1
t
x0006
i
2
a
AA
&
q
u
ot
;
,
&
q
uo
t
;
I
t
em
I
s
P
r
im
a
r
y
S
eg
m
e
n
t
&q
uo
t
;
:f
a
ls
e
,
&q
u
o
t;
L
i
s
t
Pr
i
c
e
&
qu
o
t
;
:
14.
9,
&
q
u
o
t;
V
a
l
i
da
t
i
o
n
Re
s
u
l
t
&q
u
o
t
;
:n
u
l,
&
q
u
o
t;
S
t
a
r
tD
a
t
e
&
qu
o
t
;
:
nu
l,
&
q
u
o
t;
C
o
n
t
ra
c
t
V
o
lu
m
e
P
a
sI
d
&
q
u
ot
;
:
n
u
l,
&
q
u
ot
;
B
i
li
n
g
T
r
ea
t
m
e
n
t&
q
u
o
t
;:
n
u
l,
&
q
u
o
t;
P
e
r
i
od
B
o
u
n
da
r
y
S
t
ar
t
M
o
n
th
&
q
u
o
t;
:
n
u
l,
&
q
u
o
t;
S
a
l
e
sT
r
a
n
s
ac
t
i
on
S
o
u
r
ce
A
se
t
&
q
u
ot
;
:
n
u
l,
&
q
u
ot
;
i
d
&
qu
o
t
;
:
&q
u
o
t
;
0Q
L
x0004
C
9
V
G
AU
&
q
u
o
t;
,
&
q
u
ot
;
P
a
r
tn
e
r
D
i
sc
o
u
n
t
Pe
r
c
e
n
t&
q
u
o
t
;:
1
0
,
&
qu
o
t;
P
ri
c
e
Wa
t
er
F
a
l&
q
u
o
t
;:
n
u
l,
&
q
u
o
t;
B
i
li
n
g
F
r
eq
u
e
n
c
y&
q
uo
t
;
:
n
ul,
&
q
u
o
t;
P
r
o
d
uc
t
C
o
d
e&
q
u
o
t
;:
&
q
u
o
t;
M
O
01
&
q
u
o
t;
,
&
q
uo
t
;
D
e
ri
v
e
d
P
ri
c
i
n
g
Atr
i
b
u
t
e&
q
u
o
t
;:
f
a
l
s
e,
&
q
u
o
t;
T
a
x
T
re
a
t
m
en
t
&
q
u
ot
;
:
n
u
l,
&
q
u
ot
;
S
u
b
to
t
a
l
&
qu
o
t
;
:
17
3
9
.
8,
&
qu
o
t
;I
t
em
R
a
mp
I
d
e
n
ti
f
i
e
r
&q
u
o
t
;
:n
u
l,
&
q
u
o
t;
I
t
e
m
Se
g
m
e
n
tN
a
m
e
&q
u
o
t
;
:n
u
l,
&
q
u
o
t;
S
a
l
e
sT
r
a
n
s
ac
t
i
o
n
It
e
m
A
tr
i
b
u
t
e&
qu
o
t
;:
[
{&
q
u
ot
;
Atr
i
b
u
t
eK
e
y
&
q
uo
t
;
:
&
qu
o
t
;
0
tj
x00000
1
AA
&
q
u
o
t;
,
&
q
u
ot
;
A
tr
i
b
u
t
eV
a
l
u
e
&q
u
o
t
;
:&
q
u
o
t
;1
0
8
0
p
Built-in
D
i
s
pl
a
y&
q
uo
t
;
,&
q
uo
t
;P
a
r
en
t
Re
f
er
e
n
ce
&
qu
o
t;
:
&
qu
o
t;
0
QL
x0004
C
9V
G
A
U&
q
uo
t
;,
&
q
uo
t
;A
tr
i
bu
t
eP
i
cklis
t
Va
l
u
e&
q
uo
t
;:
&
q
uo
t
;0
v
6x00000
1
AA
&
qu
o
t;,&
q
u
ot
;
Is
P
r
ic
e
Im
p
ac
ti
n
g
&q
u
ot
;
:
fa
l
se,
&
q
uo
t
;b
u
s
in
e
sO
bj
e
c
tT
y
pe
&
qu
o
t
;:
&
qu
o
t;
Q
uo
t
e
Li
n
eI
t
em
A
tr
i
bu
t
e&
q
uo
t
;
,&
q
uo
t
;
Atr
i
bu
te
N
a
me
&
qu
o
t;
:
&
qu
o
t;
D
is
pla
y&q
u
ot
;
,
&q
u
ot
;
id
&
q
uo
t
;:
&
qu
o
t
;0
z
ux00000
F
AQ
&q
u
o
t;
,&
q
u
ot
;
Atr
i
but
e
D
ef
i
ni
t
io
n
C
od
e
&q
uo
t
;
:n
u
l,
&q
u
o
t;
S
ale
s
Tr
a
n
sa
c
ti
o
nI
t
e
mA
tr
P
ar
e
nt
&
q
uo
t
;:
&
qu
o
t
;0
Q
Lx0004
C
9V
G
AU
&
q
uo
t;
}
,{
&
q
uo
t
;A
tr
i
bu
te
K
e
y&
q
uo
t
;:
&
q
uo
t
;0
t
jx000009
AA
&
qu
o
t
;,
&
quot;A
tri
b
u
te
V
al
ue
&
q
uo
t
;:
&
q
uo
t
;2
4

I
n
c
h
&
q
u
o
t
;
,
&
q
u
o
t;
P
a
r
e
n
t
R
f
e
r
n
c&
q
u
o
t
;
:
&
q
u
o
t
;
0
Q
Lx
0
4
C
9
V
G
A
U
&q
u
o
t
;
,
&
q
u
o
t
;
A
ri
b
u
t
e
P
i
c
k
l
s
t
V
a
lu
e
&
q
o
t
;
:
&
q
u
o
t
;
0v
6
x
00
G
A
Q
&
q
u
o
t
;
,
&
q
uo
t
;
I
s
P
r
i
c
e
I
m
p
a
c
ti
n
g
&
q
u
o
t
;
:
f
a
l
s
e
,&
q
u
o
t
;
b
s
i
n
e
O
bj
e
c
t
T
y
p
e
&
q
u
o
t
;
:
&q
u
o
t
;
Q
e
L
i
n
I
te
m
A
r
i
b
u
t
e
&
q
o
t;
,
&
q
u
o
t
;
A
r
i
b
u
te
N
a
m
&
q
u
o
t
;
:
&
q
u
ot
;
D
i
s
p
l
a
y
_
S
i
z
e
&
qu
o
t
;
,
&
q
u
o
t
;
i
d
&
q
uo
t
;
:
&
q
u
o
t
;
0
z
u
x00
G
A
Q
&
q
u
o
t
;
,
&
q
uo
t
;
A
r
i
b
u
t
e
D
f
in
t
o
C
d
e
&
q
u
o
t
;:
n
u
l
,
&
q
u
o
t
;
S
a
l
es
T
r
a
n
c
t
i
o
n
I
e
mA
t
r
P
a
e
n
t
&
q
u
o
;:
&
q
u
o
t
;
0
Q
L
x
04
C
9
V
G
A
U
&
q
u
o
t
;
}]
,
&
q
u
o
t
;
P
r
i
c
e
b
ok
E
n
t
r
y
&
q
u
o
t
;
:
&
q
uo
t
;
0
1
u
x
0
8
yX
0
A
I
&
q
u
o
t
;
,
&
q
u
ot
;
D
i
s
c
o
u
n
t
A
m
o
u
n
t&
q
o
;
:
n
u
l
,
&
q
u
ot
;
P
r
i
c
n
g
T
e
r
m
C
o
un
t
&
q
o
;
:
0
,
&
q
u
o
t;
S
b
s
c
r
i
p
t
o
n
T
e
rm
U
n
i
t
&
q
u
o
;
:
n
u
l,
&
q
u
o
t
;
N
e
U
n
i
t
P
rc
e
&
q
u
o
t
;
:
1
4
.
9,
&
q
u
o
t
;
I
e
m
E
f
ct
i
v
e
G
r
a
n
t
D
e
&
q
uo
t
;
:
n
u
l
,
&
q
u
o
t
;
Pr
d
u
c
t
C
a
e
g
o
r
y
&
qu
o
t
;
:
n
u
l
,
&
q
u
o
t
;S
a
l
e
s
T
r
a
n
c
t
i
o
nA
c
t
i
o
n
&
q
u
t
;
:
n
u
l,
&
q
u
o
t
;
S
a
l
e
s
T
r
an
c
t
i
o
n
A
c
t
i
o
n
T
yp
e
&
q
u
o
t
;
:
n
u
l
,
&
qu
o
t
;
S
a
l
e
s
T
r
a
n
ct
i
o
n
I
e
m
G
r
o
u
p
&
qo
t
;
:
n
u
l
,
&
q
u
o
t
;
Pe
r
i
o
d
B
u
n
a
r
y
D&
q
u
o
t
;
:
n
u
l
,
&
q
u
ot
;
S
a
l
e
s
T
r
x
n
I
t
e
m
Ds
c
r
i
p
t
o
n
&
q
u
t
;:
n
u
l
,
&
q
u
o
t
;
L
i
n
eI
t
m
D
i
s
t
r
b
u
i
o
nT
y
p
e
&
q
u
o
t
;
:
n
u
l
,&
q
u
o
t
;
P
r
a
t
i
o
n
Pl
i
c
y
&
q
u
o
t
;
:
n
u
l,
&
q
u
o
t
;
C
n
r
a
c
t
Di
s
o
u
n
t
T
y
p
e
&
q
u
o
t;
:
n
u
l
,
&
q
u
o
t
;
T
r
an
s
c
t
i
o
n
T
y
p
e
&
q
u
ot
;
:
n
u
l
,
&
q
u
o
t
;
P
ar
e
n
t
R
f
e
r
n
c
&
q
uo
t
;
:
&
q
u
o
t
;
0
Q
x0
4
C
9
2
A
E
&
q
u
ot
;
,
&
q
u
o
t
;
D
i
s
c
o
u
nt
&
q
o
;
:
n
u
l
,
&
q
uo
t
;
P
r
i
c
n
g
T
e
r
m
U
ni
t
&
q
u
o
;
:
n
u
l
,
&
qu
o
t
;
P
r
d
u
c
t
S
e
l
in
g
M
o
d
e
l
&
q
u
o
t
;
:
&
qu
o
t
;
0
j
P
x
00
1
E
A
&
q
u
o
t
;
,
&
q
uo
t
;
P
r
i
c
n
g
S
o
u
r
c
e&
q
u
o
t
;
:
n
u
l
,
&
q
u
ot
;
S
c
k
K
e
p
i
n
g
Ut
&
q
u
o
;
:
n
u
l
,
&
qu
o
t
;
P
a
r
n
e
U
i
t
Pr
c
e
&
q
u
o
t
;
:
1
3
0
.
49
1
,
&
q
u
o
t
;
I
e
m
T
o
ta
l
A
d
j
u
s
t
m
e
n
A
o
un
t
&
q
o
;
:
0
,
&
q
u
o
t;
S
a
l
e
s
T
r
a
n
c
t
i
on
I
e
m
S
o
u
r
c
e
&
q
u
o
t;
:
&
q
u
o
t
;
0
Q
L
x
04
C
9
V
G
A
U
&
q
u
o
t
;,
&
q
u
o
t
;
C
n
r
a
c
t
Ar
i
b
u
t
e
P
a
s
I
d
&
q
uo
t
;
:
n
u
l
,
&
q
u
o
t
;
Sb
s
c
r
i
p
t
o
n
T
e
r
m
&q
u
o
t
;
:
n
u
l
,
&
q
u
o
t;
S
e
l
i
n
g
M
o
d
e
l
T
y
p&
q
u
o
t
;
:
&
q
u
o
t
;
O
ne
T
i
m
&
q
u
o
t
;
,
&
q
u
ot
;
E
n
d
Q
u
a
t
i
y
&
q
uo
t
;
:
1
2
,
&
q
u
o
t
;
N
eT
o
t
a
l
P
r
i
c
e
&
q
u
o
t
;:
1
7
3
9
.
8
,
&
q
u
o
t
;
Ta
l
L
i
n
e
A
m
o
u
n
t
&
qo
;
:
1
7
3
9
.
8
,
&
q
u
ot
;
I
e
m
S
g
e
n
t
T
y
pe
&
q
u
o
t
;
:
n
u
l
,
&
q
uo
t
;
P
r
d
u
c
t
B
a
s
e
d
On
&
q
u
o
t
;
:
&
q
u
o
t
;
1B
x
0
2
C
1
n
q
E
A
C&
u
o
t
;
,
&
q
u
o
t
;
D
e
lt
d
&
q
u
o
t
;
:
f
a
l
s
e,
&
q
u
o
t
;
B
i
l
n
g
R
ef
r
n
c
e
&
q
u
o
t
;
:
n
ul
,
&
q
u
o
t
;
A
r
e
P
a
ti
l
P
e
r
i
o
d
s
A
l
o
w
ed
&
q
u
o
t
;
:
f
a
l
s
e
,
&
qu
o
t
;
I
e
m
R
c
o
r
d
eP
i
c
e
&
q
u
o
t
;
:
n
u
l,
&
q
u
o
t
;
C
s
o
m
P
rd
u
c
t
N
a
m
e
&
q
u
o
t
;
:
nu
l
,
&
q
u
o
t
;
I
e
m
Sg
e
n
t
I
d
i
f
e
r
&q
u
o
t
;
:
n
u
l
,
&
q
u
o
t;
S
a
l
e
s
T
r
a
n
c
t
i
on
I
e
m
P
a
r
n
t
&
q
u
o;
:
&
q
u
o
t
;
0
Q
x
04
C
9
2
A
E
&
q
u
o
t
;,
&
q
u
o
t
;
Q
a
n
t
i
y
&q
u
o
t
;
:
1
2
,
&
q
u
o
t
;
Pe
r
i
o
d
B
u
n
a
r
y
&
q
uo
t
;
:
n
u
l
,
&
q
u
o
t
;
Cn
r
a
c
t
D
i
s
o
u
n
t
Va
l
u
e
&
q
o
t
;
:
n
u
l
,&
q
u
o
t
;
L
i
n
e
I
t
m
D
is
c
o
u
n
t
V
a
l
u
e
&
q
o
t;
:
n
u
l
,
&
q
u
o
t
;
C
nr
a
c
t
I
d
&
q
u
o
t
;
:
n
ul
,
&
q
u
o
t
;
E
n
d
D
a
t
e&
q
u
o
t
;
:
n
u
l
,
&
q
u
ot
;
I
e
m
G
r
o
u
p
S
m
ar
y
S
u
b
t
o
a
l
&
q
u
o
t
;:
n
u
l
,
&
q
u
o
t
;
I
s
C
on
t
r
a
c
e
d
&
q
u
o
t
;
:
fa
l
s
e
,
&
q
u
o
t
;
U
n
i
Pr
c
e
&
q
u
o
t
;
:
1
4
.
9,
&
q
u
o
t
;
S
a
r
t
Q
un
i
t
y
&
q
u
o
t
;
:
n
u
l,
&
q
u
o
t
;
C
n
r
a
c
t
Pi
e
&
q
u
o
t
;
:
n
u
l
,&
q
u
o
t
;
T
a
l
P
r
i
c
e&
q
u
o
t
;
:
1
7
3
9
.
8
,
&q
u
o
t
;
L
i
n
e
I
t
m
D
i
sc
o
u
n
t
T
y
p
e
&
q
u
o
t
;
:n
u
l
,
&
q
u
o
t
;
I
e
m
Pa
t
h
&
q
u
o
t
;
:
&
q
u
o
t
;0
1
x
0
6
i
2
a
A&
q
u
o
t
;
,
&
q
u
o
t
;
pr
d
u
c
t
K
e
y
&
q
u
o
t
;
:[
&
q
u
o
t
;
0
Q
L
x
04
C
9
V
G
A
U
&
q
u
o
t
;
]}
"
,

"description": "This configuration is saved for reuse.",


"name": "Favorite Configuration",
"referenceRecordId": "01txx0000006iCFAAY"
}

Properties

Name Type Description Required or Available


Optional Version
data String JSON object that contains the details of Optional 63.0
the sales transaction, formatted as a
string.

description String Description of the saved configuration. Optional 63.0

name String Name of the saved configuration. Optional 63.0

referenceRecord String ID of the record for which the Required 63.0


Id configuration must be saved.

Response body for POST


Configuration Record Save

SEE ALSO:
Salesforce Help: Considerations to Save and Reuse Configurations

Saved Configuration (DELETE, PUT)


Update or delete a record's saved configuration by using the configuration ID.
Resource

/connect/cpq/configurator/saved-configuration/id

The id parameter is the ID of the configuration that you want to update or delete.
Resource example

https://yourInstance.salesforce.com/services/data/v63.0/connect/cpq/configurator/saved-configuration/5KPxx0025063GSmSAX

640
Product Configurator Resources

Available version
63.0
HTTP methods
DELETE, PUT
Request body for PUT
JSON example
{
"data":
"
{
&
q
u
ot
;
L
e
g
al
E
n
t
i
ty
&
q
u
o
t;
:
n
u
l,
&
q
u
o
t;
P
r
o
d
uc
t
N
a
m
e&
q
u
o
t
;:
&
q
u
o
t;
M
o
n
i
to
r
&
q
u
ot
;
,
&
q
uo
t
;
b
u
si
n
e
sO
b
j
e
ct
T
yp
e
&
qu
o
t
;:
&
q
u
o
t;
Q
u
o
t
eL
i
n
e
I
te
m
&
q
u
ot
;
,
&
q
uo
t
;
P
r
od
u
c
t
&q
u
o
t
;
:&
q
u
o
t
;0
1
t
x0006
i
2
a
AA
&
q
u
ot
;
,
&
q
uo
t
;
I
t
em
I
s
P
r
im
a
r
y
S
eg
m
e
n
t
&q
uo
t
;
:f
a
ls
e
,
&q
u
o
t;
L
i
s
t
Pr
i
c
e
&
qu
o
t
;
:
14.
9,
&
q
u
o
t;
V
a
l
i
da
t
i
o
n
Re
s
u
l
t
&q
u
o
t
;
:n
u
l,
&
q
u
o
t;
S
t
a
r
tD
a
t
e
&
qu
o
t
;
:
nu
l,
&
q
u
o
t;
C
o
n
t
ra
c
t
V
o
lu
m
e
P
a
sI
d
&
q
u
ot
;
:
n
u
l,
&
q
u
ot
;
B
i
li
n
g
T
r
ea
t
m
e
n
t&
q
u
o
t
;:
n
u
l,
&
q
u
o
t;
P
e
r
i
od
B
o
u
n
da
r
y
S
t
ar
t
M
o
n
th
&
q
u
o
t;
:
n
u
l,
&
q
u
o
t;
S
a
l
e
sT
r
a
n
s
ac
t
i
on
S
o
u
r
ce
A
se
t
&
q
u
ot
;
:
n
u
l,
&
q
u
ot
;
i
d
&
qu
o
t
;
:
&q
u
o
t
;
0Q
L
x0004
C
9
V
G
AU
&
q
u
o
t;
,
&
q
u
ot
;
P
a
r
tn
e
r
D
i
sc
o
u
n
t
Pe
r
c
e
n
t&
q
u
o
t
;:
1
0
,
&
qu
o
t;
P
ri
c
e
Wa
t
er
F
a
l&
q
u
o
t
;:
n
u
l,
&
q
u
o
t;
B
i
li
n
g
F
r
eq
u
e
n
c
y&
q
uo
t
;
:
n
ul,
&
q
u
o
t;
P
r
o
d
uc
t
C
o
d
e&
q
u
o
t
;:
&
q
u
o
t;
M
O
01
&
q
u
o
t;
,
&
q
uo
t
;
D
e
ri
v
e
d
P
ri
c
i
n
g
Atr
i
b
u
t
e&
q
u
o
t
;:
f
a
l
s
e,
&
q
u
o
t;
T
a
x
T
re
a
t
m
en
t
&
q
u
ot
;
:
n
u
l,
&
q
u
ot
;
S
u
b
to
t
a
l
&
qu
o
t
;
:
17
3
9
.
8,
&
qu
o
t
;I
t
em
R
a
mp
I
d
e
n
ti
f
i
e
r
&q
u
o
t
;
:n
u
l,
&
q
u
o
t;
I
t
e
m
Se
g
m
e
n
tN
a
m
e
&q
u
o
t
;
:n
u
l,
&
q
u
o
t;
S
a
l
e
sT
r
a
n
s
ac
t
i
o
n
It
e
m
A
tr
i
b
u
t
e&
qu
o
t
;:
[
{&
q
u
ot
;
Atr
i
b
u
t
eK
e
y
&
q
uo
t
;
:
&
qu
o
t
;
0
tj
x00000
1
AA
&
q
u
o
t;
,
&
q
u
ot
;
A
tr
i
b
u
t
eV
a
l
u
e
&q
u
o
t
;
:&
q
u
o
t
;1
0
8
0
p
Built-in
D
i
s
pl
a
y&
q
uo
t
;
,&
q
uo
t
;P
a
r
en
t
Re
f
er
e
n
ce
&
qu
o
t;
:
&
qu
o
t;
0
QL
x0004
C
9V
G
A
U&
q
uo
t
;,
&
q
uo
t
;A
tr
i
bu
t
eP
i
cklis
t
Va
l
u
e&
q
uo
t
;:
&
q
uo
t
;0
v
6x00000
1
AA
&
qu
o
t;,&
q
u
ot
;
Is
P
r
ic
e
Im
p
ac
ti
n
g
&q
u
ot
;
:
fa
l
se,
&
q
uo
t
;b
u
s
in
e
sO
bj
e
c
tT
y
pe
&
qu
o
t
;:
&
qu
o
t;
Q
uo
t
e
Li
n
eI
t
em
A
tr
i
bu
t
e&
q
uo
t
;
,&
q
uo
t
;
Atr
i
bu
te
N
a
me
&
qu
o
t;
:
&
qu
o
t;
D
is
pla
y&q
u
ot
;
,
&q
u
ot
;
id
&
q
uo
t
;:
&
qu
o
t
;0
z
ux00000
F
AQ
&q
u
o
t;
,&
q
u
ot
;
Atr
i
but
e
D
ef
i
ni
t
io
n
C
od
e
&q
uo
t
;
:n
u
l,
&q
u
o
t;
S
ale
s
Tr
a
n
sa
c
ti
o
nI
t
e
mA
tr
P
ar
e
nt
&
q
uo
t
;:
&
qu
o
t
;0
Q
Lx0004
C
9V
G
AU
&
q
uo
t;
}
,{
&
q
uo
t
;A
tr
i
bu
te
K
e
y&
q
uo
t
;:
&
q
uo
t
;0
t
jx000009
AA
&
qu
o
t
;,
&
quot;A
tri
b
u
te
V
al
ue
&
q
uo
t
;:
&
q
uo
t
;2
4

I
n
c
h
&
q
u
o
t
;
,
&
q
u
o
t;
P
a
r
e
n
t
R
f
e
r
n
c&
q
u
o
t
;
:
&
q
u
o
t
;
0
Q
Lx
0
4
C
9
V
G
A
U
&q
u
o
t
;
,
&
q
u
o
t
;
A
ri
b
u
t
e
P
i
c
k
l
s
t
V
a
lu
e
&
q
o
t
;
:
&
q
u
o
t
;
0v
6
x
00
G
A
Q
&
q
u
o
t
;
,
&
q
uo
t
;
I
s
P
r
i
c
e
I
m
p
a
c
ti
n
g
&
q
u
o
t
;
:
f
a
l
s
e
,&
q
u
o
t
;
b
s
i
n
e
O
bj
e
c
t
T
y
p
e
&
q
u
o
t
;
:
&q
u
o
t
;
Q
e
L
i
n
I
te
m
A
r
i
b
u
t
e
&
q
o
t;
,
&
q
u
o
t
;
A
r
i
b
u
te
N
a
m
&
q
u
o
t
;
:
&
q
u
ot
;
D
i
s
p
l
a
y
_
S
i
z
e
&
qu
o
t
;
,
&
q
u
o
t
;
i
d
&
q
uo
t
;
:
&
q
u
o
t
;
0
z
u
x00
G
A
Q
&
q
u
o
t
;
,
&
q
uo
t
;
A
r
i
b
u
t
e
D
f
in
t
o
C
d
e
&
q
u
o
t
;:
n
u
l
,
&
q
u
o
t
;
S
a
l
es
T
r
a
n
c
t
i
o
n
I
e
mA
t
r
P
a
e
n
t
&
q
u
o
;:
&
q
u
o
t
;
0
Q
L
x
04
C
9
V
G
A
U
&
q
u
o
t
;
}]
,
&
q
u
o
t
;
P
r
i
c
e
b
ok
E
n
t
r
y
&
q
u
o
t
;
:
&
q
uo
t
;
0
1
u
x
0
8
yX
0
A
I
&
q
u
o
t
;
,
&
q
u
ot
;
D
i
s
c
o
u
n
t
A
m
o
u
n
t&
q
o
;
:
n
u
l
,
&
q
u
ot
;
P
r
i
c
n
g
T
e
r
m
C
o
un
t
&
q
o
;
:
0
,
&
q
u
o
t;
S
b
s
c
r
i
p
t
o
n
T
e
rm
U
n
i
t
&
q
u
o
;
:
n
u
l,
&
q
u
o
t
;
N
e
U
n
i
t
P
rc
e
&
q
u
o
t
;
:
1
4
.
9,
&
q
u
o
t
;
I
e
m
E
f
ct
i
v
e
G
r
a
n
t
D
e
&
q
uo
t
;
:
n
u
l
,
&
q
u
o
t
;
Pr
d
u
c
t
C
a
e
g
o
r
y
&
qu
o
t
;
:
n
u
l
,
&
q
u
o
t
;S
a
l
e
s
T
r
a
n
c
t
i
o
nA
c
t
i
o
n
&
q
u
t
;
:
n
u
l,
&
q
u
o
t
;
S
a
l
e
s
T
r
an
c
t
i
o
n
A
c
t
i
o
n
T
yp
e
&
q
u
o
t
;
:
n
u
l
,
&
qu
o
t
;
S
a
l
e
s
T
r
a
n
ct
i
o
n
I
e
m
G
r
o
u
p
&
qo
t
;
:
n
u
l
,
&
q
u
o
t
;
Pe
r
i
o
d
B
u
n
a
r
y
D&
q
u
o
t
;
:
n
u
l
,
&
q
u
ot
;
S
a
l
e
s
T
r
x
n
I
t
e
m
Ds
c
r
i
p
t
o
n
&
q
u
t
;:
n
u
l
,
&
q
u
o
t
;
L
i
n
eI
t
m
D
i
s
t
r
b
u
i
o
nT
y
p
e
&
q
u
o
t
;
:
n
u
l
,&
q
u
o
t
;
P
r
a
t
i
o
n
Pl
i
c
y
&
q
u
o
t
;
:
n
u
l,
&
q
u
o
t
;
C
n
r
a
c
t
Di
s
o
u
n
t
T
y
p
e
&
q
u
o
t;
:
n
u
l
,
&
q
u
o
t
;
T
r
an
s
c
t
i
o
n
T
y
p
e
&
q
u
ot
;
:
n
u
l
,
&
q
u
o
t
;
P
ar
e
n
t
R
f
e
r
n
c
&
q
uo
t
;
:
&
q
u
o
t
;
0
Q
x0
4
C
9
2
A
E
&
q
u
ot
;
,
&
q
u
o
t
;
D
i
s
c
o
u
nt
&
q
o
;
:
n
u
l
,
&
q
uo
t
;
P
r
i
c
n
g
T
e
r
m
U
ni
t
&
q
u
o
;
:
n
u
l
,
&
qu
o
t
;
P
r
d
u
c
t
S
e
l
in
g
M
o
d
e
l
&
q
u
o
t
;
:
&
qu
o
t
;
0
j
P
x
00
1
E
A
&
q
u
o
t
;
,
&
q
uo
t
;
P
r
i
c
n
g
S
o
u
r
c
e&
q
u
o
t
;
:
n
u
l
,
&
q
u
ot
;
S
c
k
K
e
p
i
n
g
Ut
&
q
u
o
;
:
n
u
l
,
&
qu
o
t
;
P
a
r
n
e
U
i
t
Pr
c
e
&
q
u
o
t
;
:
1
3
0
.
49
1
,
&
q
u
o
t
;
I
e
m
T
o
ta
l
A
d
j
u
s
t
m
e
n
A
o
un
t
&
q
o
;
:
0
,
&
q
u
o
t;
S
a
l
e
s
T
r
a
n
c
t
i
on
I
e
m
S
o
u
r
c
e
&
q
u
o
t;
:
&
q
u
o
t
;
0
Q
L
x
04
C
9
V
G
A
U
&
q
u
o
t
;,
&
q
u
o
t
;
C
n
r
a
c
t
Ar
i
b
u
t
e
P
a
s
I
d
&
q
uo
t
;
:
n
u
l
,
&
q
u
o
t
;
Sb
s
c
r
i
p
t
o
n
T
e
r
m
&q
u
o
t
;
:
n
u
l
,
&
q
u
o
t;
S
e
l
i
n
g
M
o
d
e
l
T
y
p&
q
u
o
t
;
:
&
q
u
o
t
;
O
ne
T
i
m
&
q
u
o
t
;
,
&
q
u
ot
;
E
n
d
Q
u
a
t
i
y
&
q
uo
t
;
:
1
2
,
&
q
u
o
t
;
N
eT
o
t
a
l
P
r
i
c
e
&
q
u
o
t
;:
1
7
3
9
.
8
,
&
q
u
o
t
;
Ta
l
L
i
n
e
A
m
o
u
n
t
&
qo
;
:
1
7
3
9
.
8
,
&
q
u
ot
;
I
e
m
S
g
e
n
t
T
y
pe
&
q
u
o
t
;
:
n
u
l
,
&
q
uo
t
;
P
r
d
u
c
t
B
a
s
e
d
On
&
q
u
o
t
;
:
&
q
u
o
t
;
1B
x
0
2
C
1
n
q
E
A
C&
u
o
t
;
,
&
q
u
o
t
;
D
e
lt
d
&
q
u
o
t
;
:
f
a
l
s
e,
&
q
u
o
t
;
B
i
l
n
g
R
ef
r
n
c
e
&
q
u
o
t
;
:
n
ul
,
&
q
u
o
t
;
A
r
e
P
a
ti
l
P
e
r
i
o
d
s
A
l
o
w
ed
&
q
u
o
t
;
:
f
a
l
s
e
,
&
qu
o
t
;
I
e
m
R
c
o
r
d
eP
i
c
e
&
q
u
o
t
;
:
n
u
l,
&
q
u
o
t
;
C
s
o
m
P
rd
u
c
t
N
a
m
e
&
q
u
o
t
;
:
nu
l
,
&
q
u
o
t
;
I
e
m
Sg
e
n
t
I
d
i
f
e
r
&q
u
o
t
;
:
n
u
l
,
&
q
u
o
t;
S
a
l
e
s
T
r
a
n
c
t
i
on
I
e
m
P
a
r
n
t
&
q
u
o;
:
&
q
u
o
t
;
0
Q
x
04
C
9
2
A
E
&
q
u
o
t
;,
&
q
u
o
t
;
Q
a
n
t
i
y
&q
u
o
t
;
:
1
2
,
&
q
u
o
t
;
Pe
r
i
o
d
B
u
n
a
r
y
&
q
uo
t
;
:
n
u
l
,
&
q
u
o
t
;
Cn
r
a
c
t
D
i
s
o
u
n
t
Va
l
u
e
&
q
o
t
;
:
n
u
l
,&
q
u
o
t
;
L
i
n
e
I
t
m
D
is
c
o
u
n
t
V
a
l
u
e
&
q
o
t;
:
n
u
l
,
&
q
u
o
t
;
C
nr
a
c
t
I
d
&
q
u
o
t
;
:
n
ul
,
&
q
u
o
t
;
E
n
d
D
a
t
e&
q
u
o
t
;
:
n
u
l
,
&
q
u
ot
;
I
e
m
G
r
o
u
p
S
m
ar
y
S
u
b
t
o
a
l
&
q
u
o
t
;:
n
u
l
,
&
q
u
o
t
;
I
s
C
on
t
r
a
c
e
d
&
q
u
o
t
;
:
fa
l
s
e
,
&
q
u
o
t
;
U
n
i
Pr
c
e
&
q
u
o
t
;
:
1
4
.
9,
&
q
u
o
t
;
S
a
r
t
Q
un
i
t
y
&
q
u
o
t
;
:
n
u
l,
&
q
u
o
t
;
C
n
r
a
c
t
Pi
e
&
q
u
o
t
;
:
n
u
l
,&
q
u
o
t
;
T
a
l
P
r
i
c
e&
q
u
o
t
;
:
1
7
3
9
.
8
,
&q
u
o
t
;
L
i
n
e
I
t
m
D
i
sc
o
u
n
t
T
y
p
e
&
q
u
o
t
;
:n
u
l
,
&
q
u
o
t
;
I
e
m
Pa
t
h
&
q
u
o
t
;
:
&
q
u
o
t
;0
1
x
0
6
i
2
a
A&
q
u
o
t
;
,
&
q
u
o
t
;
pr
d
u
c
t
K
e
y
&
q
u
o
t
;
:[
&
q
u
o
t
;
0
Q
L
x
04
C
9
V
G
A
U
&
q
u
o
t
;
]}
"
,

"description": "This configuration is updated.",


"name": "Updated Configuration"
}

Properties

Name Type Description Required or Available


Optional Version
data String JSON object that contains the details of Required 63.0
the sales transaction, formatted as a
string.

description String Description of the configuration. Required 63.0

name String Name of the configuration. Required 63.0

Response body for PUT


Configuration Update

SEE ALSO:
Salesforce Help: Considerations to Save and Reuse Configurations

Configuration Get Instance (POST)


Fetch the JSON representation of a product configuration. Use the response to display the details of the product configuration instance
on the Salesforce user interface, or save the product configuration instance to an external system.
Resource
/connect/cpq/configurator/actions/get-instance

Resource example

https://yourInstance.salesforce.com/services/data/v63.0/connect/cpq/configurator/actions/get-instance

641
Product Configurator Resources

Available version
60.0
HTTP methods
POST
Request body for POST
JSON example

{
"contextId": "008d27d7-e004-4906-a949-ee7d7c323c77"
}

Properties

Name Type Description Required or Available


Optional Version
contextId String Transaction context ID of the product Required 60.0
configuration instance that’s to be
fetched.

Response body for POST


Configuration Get Instance

Configuration Load Instance (POST)


Create a session for the product configuration instance using the transaction ID. Get the session ID that includes the results of actions,
such as configuration rules, qualification rules, and pricing management.
Resource
/connect/cpq/configurator/actions/load-instance

Resource example

https://yourInstance.salesforce.com/services/data/v63.0/connect/cpq/configurator/actions/load-instance

Available version
60.0
HTTP methods
POST
Request body for POST
JSON example

{
"configuratorOptions":
{
"addDefaultConfiguration": true,
"executeConfigurationRules": true,
"executePricing": true,

642
Product Configurator Resources

"qualifyAllProductsInTransaction": true,
"validateAmendRenewCancel": true,
"validateProductCatalog": true
},
"qualificationContext": {
"accountId": "001DU000001nHUGYA2"
},
"transactionId": "0Q0DU0000000XoN0AU"
}

Properties

Name Type Description Required or Available


Optional Version
configurator Configurator List of the configurator options to Optional 60.0
Options Options Input execute.

context String ID of the context mapping record. Optional 60.0


MappingId

qualification User Context Input Context details that are used for the Optional 60.0
Context qualification rules.

transaction String Transaction ID of the header entity that’s Required 60.0


Id used to create a session. For example, a
Quote or an Order.

Response body for POST


Configuration Load Instance

Configuration Save Instance (POST)


Save a configuration instance after a successful product configuration.
Use the Configuration Save Instance API to save the changes to the source after a successful configuration. For example, save changes
to the quote line item of a product, which is the source used to load the configuration.
Resource
/connect/cpq/configurator/actions/save-instance

Resource example

https://yourInstance.salesforce.com/services/data/v63.0/connect/cpq/configurator/actions/save-instance

Available version
60.0
HTTP methods
POST

643
Product Configurator Resources

Request body for POST


JSON example

{
"contextId": "008d27d7-e004-4906-a949-ee7d7c323c77"
}

Properties

Name Type Description Required or Available


Optional Version
contextId String Transaction context ID of the product Required 60.0
configuration instance that’s to be saved.

Response body for POST


Configuration Save Instance

Configuration Set Instance (POST)


Set a product configuration instance. This API is used in scenarios where the configuration instance is available in a different database
than Salesforce and the product catalog management data is in Salesforce.
Resource
/connect/cpq/configurator/actions/set-instance

Resource example

https://yourInstance.salesforce.com/services/data/v63.0/connect/cpq/configurator/actions/set-instance

Available version
60.0
HTTP methods
POST
Request body for POST
JSON example

{
"configuratorOptions":
{
"addDefaultConfiguration": true,
"executeConfigurationRules": true,
"executePricing": true,
"qualifyAllProductsInTransaction": true,
"validateAmendRenewCancel": true,
"validateProductCatalog": true
},
"qualificationContext": {
"accountId": "001DU000001nHUGYA2"

644
Product Configurator Resources

},
"transactionId": "0Q0DU0000000XoN0AU"
}

Properties

Name Type Description Required or Available


Optional Version
configurator Configurator List of the configurator options to Optional 60.0
Options Options Input execute.

context String ID of the context mapping record. Required 60.0


MappingId

qualification User Context Input Context details that are used for the Optional 60.0
Context qualification rules.

transaction String Transaction JSON payload representing Required 60.0


an object in an external system that’s
used to create a session.

Response body for POST


Configuration Set Instance

Configurator Add Nodes (POST)


Add a node to the context through the runtime system without using the Salesforce user interface.
Resource
/connect/cpq/configurator/actions/add-nodes

Resource example

https://yourInstance.salesforce.com/services/data/v63.0/connect/cpq/configurator/actions/add-nodes

Available version
60.0
HTTP methods
POST
Request body for POST
JSON example
{
"configuratorOptions": {
"executePricing": true,
"returnProductCatalogData": true,
"qualifyAllProductsInTransaction": true,
"validateProductCatalog": true,
"validateAmendRenewCancel": true,
"executeConfigurationRules": true,
"addDefaultConfiguration": true

645
Product Configurator Resources

},
"qualificationContext": {
"accountId": "001xx0000000001AAA",
"contactId": "003xx00000000D7AAI"
},
"contextId": "008d27d7-e004-4906-a949-ee7d7c323c77",
"addedNodes": [
{
"path": ["0Q0DE000000ISHJs81"],
"addedObject": {
"id": "ref_sti2_id",
"SalesTransactionSource": "sti2_id",
"PricebookEntry": "01uxx0000000001AAA",
"ProductSellingModel": "0jPxx0000000001AAA",
"businessObjectType": "QuoteLineItem",
"Quantity": 10,
"UnitPrice": 2.0,
"Product": "01txx0000000001AAA"
}
},
{
"path": ["0Q0DE000000ISHJs81", "0QLDE000000IBXw4AO"],
"addedObject": {
"id": "ref_stir1_id",
"businessObjectType": "QuoteLineItemRelationship",
"MainItem": "0QLDE000000IBXw4AO",
"AssociatedItem": "ref_sti2_id",
"ProductRelatedComponent": "0dSxx0000000001AAA",
"ProductRelationshipType": "0yoxx0000000001AAA",
"AssociatedItemPricing": "IncludedInBundlePrice"

}
}
]
}

Properties

Name Type Description Required or Available


Optional Version
addedNodes Configurator List of the nodes to be added. Required 60.0
Added Node
Input[]

configurator Configurator List of the configuration options to Optional 60.0


Options Options Input execute.

contextId String ID of the context object that’s being Required 60.0


considered.

qualification User Context Input Context details that are used for the Optional 60.0
Context qualification rules.

646
Product Configurator Resources

Response body for POST


Configurator Add Nodes

Configurator Delete Nodes (POST)


Delete nodes from a product configuration.
Resource
/connect/cpq/configurator/actions/delete-nodes

Resource example

https://yourInstance.salesforce.com/services/data/v63.0/connect/cpq/configurator/actions/delete-nodes

Available version
60.0
HTTP methods
POST
Request body for POST
JSON example
{
"configuratorOptions": {
"executePricing": true,
"returnProductCatalogData": true,
"qualifyAllProductsInTransaction": true,
"validateProductCatalog": true,
"validateAmendRenewCancel": true,
"executeConfigurationRules": true,
"addDefaultConfiguration": true
},
"qualificationContext": {
"accountId": "001xx0000000001AAA",
"contactId": "003xx00000000D7AAI"
},
"contextId": "008d27d7-e004-4906-a949-ee7d7c323c77",
"deletedNodes": [
{
"path": ["0Q0DE000000ISHJs81", "0QLDE000000IBXw4AO"]
}
]
}

Properties

Name Type Description Required or Available


Optional Version
configurator Configurator List of the configuration options to Optional 60.0
Options Options Input execute.

contextId String ID of the context object that’s being Required 60.0


considered.

647
Product Configurator Resources

Name Type Description Required or Available


Optional Version
deletedNodes Configurator List of the nodes to be deleted. Required 60.0
Deleted Node
Input[]

qualification User Context Input Context details that are used for the Optional 60.0
Context qualification rules.

Response body for POST


Configurator Delete Nodes

Configurator Update Nodes (POST)


Update nodes in a product configuration.
Resource
/connect/cpq/configurator/actions/update-nodes

Resource example

https://yourInstance.salesforce.com/services/data/v63.0/connect/cpq/configurator/actions/update-nodes

Available version
60.0
HTTP methods
POST
Request body for POST
JSON example
{
"configuratorOptions": {
"executePricing": true,
"returnProductCatalogData": true,
"qualifyAllProductsInTransaction": true,
"validateProductCatalog": true,
"validateAmendRenewCancel": true,
"executeConfigurationRules": true,
"addDefaultConfiguration": true
},
"qualificationContext": {
"accountId": "001xx0000000001AAA",
"contactId": "003xx00000000D7AAI"
},
"contextId": "008d27d7-e004-4906-a949-ee7d7c323c77",
"updatedNodes": [
{
"path": ["0Q0DE000000ISHJs81", "0QLDE000000IBXw4AO"],
"updatedAttributes": {
"Quantity": 5

648
Product Configurator Resources

}
}
]
}

Properties

Name Type Description Required or Available


Optional Version
configurator Configurator List of the configuration options to Optional 60.0
Options Options Input execute.

contextId String ID of the context object that’s being Required 60.0


considered.

qualification User Context Input Context details that are used for the Optional 60.0
Context qualification rules.

updatedNodes Configurator List of the nodes to be updated. Required 60.0


Updated Node
Input[]

Response body for POST


Configurator Update Nodes

Product Set Quantity (POST)


Set the quantity of a product through the runtime system.
Resource
/connect/cpq/configurator/actions/set-product-quantity

Resource example

https://yourInstance.salesforce.com/services/data/v63.0/connect/cpq/configurator/actions/set-product-quantity

Available version
60.0
HTTP methods
POST
Request body for POST
JSON example
{
"configuratorOptions": {
"executePricing": true,
"returnProductCatalogData": true,
"qualifyAllProductsInTransaction": true,
"validateProductCatalog": true,
"validateAmendRenewCancel": true,
"executeConfigurationRules": true,

649
Product Configurator Request Bodies

"addDefaultConfiguration": true
},
"qualificationContext": {
"accountId": "001xx0000000001AAA",
"contactId": "003xx00000000D7AAI"
},
"contextId": "008d27d7-e004-4906-a949-ee7d7c323c77",
"quantity": 20,
"transactionLinePath": "Quote.QuoteLineItem.Quantity"
}

Properties

Name Type Description Required or Available


Optional Version
configurator Configurator List of the configuration options to Optional 60.0
Options Options Input execute.

contextId String ID of the context object that’s being Required 60.0


considered.

qualification User Context Input Context details that are used for the Optional 60.0
Context qualification rules.

quantity Integer Value of the product quantity. Required 60.0

transaction String[] Path to the line item where the update Required 60.0
LinePath to the quantity is applied. For example,
Quote.QuoteLineItem.Quantity.

Response body for POST


Product Quantity Set Configurator

Request Bodies
Learn more about the available Product Configurator API request bodies.

Configuration Get Instance Input


Input representation of the request to get a product configuration instance.
Configuration Load Instance Input
Input representation of the request to load a product configuration instance.
Configuration Save Input
Input representation of the details to save a configuration.
Configuration Update Input
Input representation of the details to update a configuration.
Configuration Save Instance Input
Input representation of the request to save a product configuration instance.

650
Product Configurator Request Bodies

Configuration Set Instance Input


Input representation of the request to set a product configuration instance.
Configurator Add Nodes Input
Input representation of the request to add nodes within a root node.
Configurator Added Node Input
Input representation of the nodes to be added to a product configuration.
Configurator Delete Nodes Input
Input representation of the request to delete nodes from a product configuration.
Configurator Deleted Node Input
Input representation of the nodes to be deleted from a product configuration.
Configurator Input
Input representation of the request to modify the product configuration.
Configurator Options Input
Input representation of the request to get the product configuration options that’s passed to the configurator.
Configurator Update Nodes Input
Input representation of the request to update the nodes in a product configuration.
Configurator Updated Node Input
Input representation of the nodes to be updated in a product configuration.
Product Quantity Set Configurator Input
Input representation of the request to set the quantity of a product.
User Context Input
Input representation of the request to get the context details of a user, which are used for qualification rules.

Configuration Get Instance Input


Input representation of the request to get a product configuration instance.
JSON example

{
"contextId": "008d27d7-e004-4906-a949-ee7d7c323c77"
}

Properties

Name Type Description Required or Available


Optional Version
contextId String Transaction context ID of the product Required 60.0
configuration instance that’s to be fetched.

Configuration Load Instance Input


Input representation of the request to load a product configuration instance.

651
Product Configurator Request Bodies

JSON example

{
"configuratorOptions":
{
"addDefaultConfiguration": true,
"executeConfigurationRules": true,
"executePricing": true,
"qualifyAllProductsInTransaction": true,
"validateAmendRenewCancel": true,
"validateProductCatalog": true
},
"qualificationContext": {
"accountId": "001DU000001nHUGYA2"
},
"transactionId": "0Q0DU0000000XoN0AU"
}

Properties

Name Type Description Required or Available


Optional Version
configurator Configurator List of the configurator options to execute. Optional 60.0
Options Options Input

context String ID of the context mapping record. Optional 60.0


MappingId

qualification User Context Input Context details that are used for the Optional 60.0
Context qualification rules.

transactionId String Transaction ID of the header entity that’s Required 60.0


used to create a session. For example, a
Quote or an Order.

Configuration Save Input


Input representation of the details to save a configuration.
JSON example
{
"data":
"
{
&
q
u
ot
;
L
e
g
al
E
n
t
i
ty
&
q
u
o
t;
:
n
u
l,
&
q
u
ot
;
P
r
o
du
c
t
N
a
me
&
q
u
o
t;
:
&
q
u
ot
;
M
o
n
it
o
r
&
q
uo
t
;
,
&
qu
o
t
;
b
us
i
n
e
sO
b
j
e
ct
T
y
pe
&
qu
o
t
;:
&
q
u
o
t;
Q
u
o
t
eL
i
n
e
I
te
m
&
q
u
ot
;
,
&
q
uo
t
;
P
r
od
u
c
t
&q
u
o
t
;
:&
q
u
o
t
;0
1
t
x0006
i
2
a
AA
&
q
u
ot
;
,
&
q
uo
t
;
I
t
em
I
s
P
r
im
a
r
y
S
eg
m
e
n
t&
q
uo
t
;
:f
a
l
se
,
&q
u
o
t;
L
i
s
t
Pr
i
c
e
&
qu
o
t
;
:
14.
9,
&
q
u
o
t;
V
a
l
i
da
t
i
o
n
Re
s
u
l
t
&q
u
o
t
;
:n
u
l,
&
q
u
o
t;
S
t
a
r
tD
a
t
e
&
qu
o
t
;
:
nu
l,
&
q
u
o
t;
C
o
n
t
ra
c
t
V
o
lu
m
e
P
a
sI
d
&
q
u
ot
;
:
n
u
l,
&
q
u
ot
;
B
i
li
n
g
T
r
ea
t
m
e
n
t&
q
u
o
t
;:
n
u
l,
&
q
u
o
t;
P
e
r
i
od
B
o
u
n
da
r
y
S
ta
r
t
M
o
nt
h
&
q
u
ot
;
:
n
u
l,
&
q
u
ot
;
S
a
l
es
T
r
a
n
sa
c
t
i
on
S
o
u
r
ce
A
se
t
&
q
u
ot
;
:
n
u
l,
&
q
u
ot
;
i
d
&
qu
o
t
;
:
&q
u
o
t
;
0Q
L
x0004
C
9
V
GA
U
&
q
u
ot
;
,
&
q
uo
t
;
P
a
rt
n
e
r
D
is
c
o
u
nt
P
e
r
c
en
t
&
q
u
ot
;
:
1
0
,&
q
u
o
t;
P
r
ic
e
Wa
t
e
rF
a
l&
q
u
o
t
;:
n
u
l,
&
q
u
o
t;
B
i
li
n
g
F
r
eq
u
e
n
c
y&
q
uo
t
;
:
n
ul,
&
q
u
o
t;
P
r
o
d
uc
t
C
o
d
e&
q
u
o
t;
:
&
q
u
ot
;
M
O
01
&
q
u
o
t;
,
&
q
u
ot
;
D
e
r
iv
e
d
P
r
ic
i
n
g
A
tr
i
b
u
te
&
q
u
o
t;
:
f
a
l
se
,
&
q
u
ot
;
T
a
x
Tr
e
a
t
m
en
t
&
q
u
ot
;
:
n
u
l,
&
q
u
ot
;
S
u
b
to
t
a
l
&
qu
o
t
;
:
17
3
9
.
8,
&
q
uo
t
;I
t
e
mR
a
m
pI
d
e
n
t
if
i
e
r
&
qu
o
t
;
:
nu
l,
&
q
u
o
t;
I
t
e
mS
e
g
m
e
nt
N
a
m
e
&q
u
o
t
;
:n
u
l,
&
q
u
o
t;
S
a
l
e
sT
r
a
n
s
ac
t
i
o
nI
t
e
m
A
tr
i
b
u
te
&
q
uo
t
;
:[
{
&q
u
o
t;
A
tr
i
b
u
t
eK
e
y
&
q
uo
t
;
:
&
qu
o
t
;
0t
j
x00000
1AA
&
q
u
o
t;
,
&
q
u
ot
;
A
tr
i
b
u
t
eV
a
l
u
e
&q
u
o
t
;
:&
q
u
o
t
;1
0
8
0
p
Built-in
D
i
s
pl
a
y&
q
uo
t
;,
&
q
uo
t
;P
a
re
n
tR
e
f
er
e
nc
e
&q
u
o
t;
:
&q
u
ot
;
0Q
L
x0004
C
9V
G
AU
&
q
uo
t
;,
&
qu
o
t
;A
tr
i
bu
t
eP
i
cklis
t
Va
l
u
e&
q
uo
t
;:
&
qu
o
t
;0
v
6x00000
1
AA
&q
u
o
t ;
,&
q
u
ot
;
Is
P
ri
c
e
Im
p
ac
ti
n
g
&q
u
ot
;
:f
a
l
se,
&
q
uo
t
;b
u
si
n
e
sO
bj
e
ct
T
y
pe
&
qu
o
t;
:
&
qu
o
t;
Q
uo
t
eL
i
ne
I
t
em
A
tr
ib
u
te
&
q
uo
t
;,
&
qu
o
t
;A
tr
i
bu
te
N
am
e
&
qu
o
t;
:
&
qu
o
t;
D
is
play&
q
u
ot
;
,&
q
uo
t
;i
d
&
qu
o
t;
:
&q
u
ot
;
0
zu
x00000
F
AQ
&q
u
ot
;
,&
q
uo
t
;
Atr
i
but
e
De
f
in
i
t
io
n
Co
d
e&
q
uo
t
;
:n
u
l,
&q
u
o
t;
S
al
e
sT
r
a
ns
a
ct
i
on
I
t
em
A
tr
Pa
r
e
nt
&
qu
o
t;
:
&
qu
o
t;
0
QL
x0004
C
9V
G
AU
&
q
uot
;
}
,{
&
qu
o
t;
A
tr
ib
u
te
K
ey
&
qu
o
t
;:
&
qu
o
t;
0
tj
x00000
9
AA
&q
u
o
t;
,
&q
uot;Atri
b
ut
e
Va
l
ue
&
qu
o
t
;:
&
qu
o
t;
2
4

I
n
c
h
&
q
u
o
t
;
,
&
q
u
o
t;
P
a
r
e
n
t
R
f
e
r
n
c&
q
u
o
t
;
:
&
q
u
o
t
;
0
QL
x
0
4
C
9
V
G
A
U&
q
u
o
t
;
,
&
q
u
o
t
;
Ar
i
b
u
t
e
P
i
c
k
l
s
t
Va
l
u
e
&
q
o
t
;
:
&
q
u
o
t;
0
v
6
x
00
G
A
Q
&
q
u
o
t
;
,
&
q
uo
t
;
I
s
P
r
i
c
e
I
m
p
a
ct
i
n
g
&
q
u
o
t
;
:
f
a
l
s
e,
&
q
u
o
t
;
b
s
i
n
eO
b
j
e
c
t
T
y
p
e
&
q
u
o
t
;:
&
q
u
o
t
;
Q
e
L
i
nI
t
e
m
A
r
i
b
u
t
e
&
qo
t
;
,
&
q
u
o
t
;
A
r
ib
u
t
e
N
a
m
&
q
u
o
t
;
:
&q
u
o
t
;
D
i
s
p
l
a
y
_
S
iz
e
&
q
u
o
t
;
,
&
q
u
o
t
;
id
&
q
u
o
t
;
:
&
q
u
o
t
;
0z
u
x
00
G
A
Q
&
q
u
o
t
;
,
&
q
uo
t
;
A
r
i
b
u
t
e
D
fi
n
t
o
C
d
e
&
q
u
o
t;
:
n
u
l
,
&
q
u
o
t
;
S
al
e
s
T
r
a
n
c
t
i
o
n
Ie
m
A
t
r
P
a
e
n
t
&
q
uo
;
:
&
q
u
o
t
;
0
Q
L
x0
4
C
9
V
G
A
U
&
q
uo
t
;
}
]
,
&
q
u
o
t
;
P
r
i
ce
b
o
k
E
n
t
r
y
&
q
u
o
t;
:
&
q
u
o
t
;
0
1
u
x
08
y
X
0
A
I
&
q
u
o
t;
,
&
q
u
o
t
;
D
i
s
c
o
u
n
tA
m
o
u
n
t
&
q
o
;
:
n
ul
,
&
q
u
o
t
;
P
r
i
c
n
gT
e
r
m
C
o
u
n
t
&
q
o
;:
0
,
&
q
u
o
t
;
S
b
s
c
r
ip
t
o
n
T
e
r
m
U
n
i
t
&
qu
o
;
:
n
u
l
,
&
q
u
o
t
;N
e
U
n
i
t
P
r
c
e
&
q
uo
t
;
:
1
4
.
9
,
&
q
u
o
t;
I
e
m
E
f
c
t
i
v
e
Gr
a
n
t
D
e
&
q
u
o
t
;
:
nu
l
,
&
q
u
o
t
;
P
r
d
uc
t
C
a
e
g
o
r
y
&
q
u
o
t
;:
n
u
l
,
&
q
u
o
t
;
S
a
le
s
T
r
a
n
c
t
i
o
n
A
c
ti
o
n
&
q
u
t
;
:
n
u
l
,&
q
u
o
t
;
S
a
l
e
s
T
r
a
nc
t
i
o
n
A
c
t
i
o
n
T
y
pe
&
q
u
o
t
;
:
n
u
l
,
&
q
uo
t
;
S
a
l
e
s
T
r
a
n
ct
i
o
n
I
e
m
G
r
o
u
p
&
qo
t
;
:
n
u
l
,
&
q
u
o
t
;P
e
r
i
o
d
B
u
n
a
r
y
D&
q
u
o
t
;
:
n
u
l
,
&
qu
o
t
;
S
a
l
e
s
T
r
x
n
I
t
em
D
s
c
r
i
p
t
o
n
&
q
ut
;
:
n
u
l
,
&
q
u
o
t
;
Li
n
e
I
t
m
D
i
s
t
r
b
ui
o
n
T
y
p
e
&
q
u
o
t
;
:
nu
l
,
&
q
u
o
t
;
P
r
a
ti
o
n
P
l
i
c
y
&
q
u
o
t
;:
n
u
l
,
&
q
u
o
t
;
C
nr
a
c
t
D
i
s
o
u
n
t
T
y
pe
&
q
u
o
t
;
:
n
u
l
,
&
q
uo
t
;
T
r
a
n
s
c
t
i
o
n
Ty
p
e
&
q
u
o
t
;
:
n
u
l
,
&q
u
o
t
;
P
a
r
e
n
t
R
f
er
n
c
&
q
u
o
t
;
:
&
q
u
ot
;
0
Q
x
0
4
C9
2
A
E
&
q
u
o
t
;
,
&
q
u
ot
;
D
i
s
c
o
u
n
t
&
q
o;
:
n
u
l
,
&
q
u
o
t
;
P
r
ic
n
g
T
e
r
m
U
n
i
t
&
q
uo
;
:
n
u
l
,
&
q
u
o
t
;
Pr
d
u
c
t
S
e
l
i
n
g
M
od
e
l
&
q
u
o
t
;
:
&
q
u
o
t
;0
j
P
x
00
1
E
A
&
q
u
o
t
;
,
&
q
uo
t
;
P
r
i
c
n
g
S
o
u
r
ce
&
q
u
o
t
;
:
n
u
l
,
&
q
uo
t
;
S
c
k
K
e
p
i
n
gU
t
&
q
u
o
;
:
n
u
l
,&
q
u
o
t
;
P
a
r
n
e
Ui
t
P
r
c
e
&
q
u
o
t
;
:
1
30
.
4
9
1
,
&
q
u
o
t
;
I
em
T
o
t
a
l
A
d
j
u
s
t
m
e
nA
o
u
n
t
&
q
o
;
:
0
,&
q
u
o
t
;
S
a
l
e
s
T
r
a
nc
t
i
o
n
I
e
m
S
o
u
r
ce
&
q
u
o
t
;
:
&
q
u
o
t
;
0
QL
x
0
4
C
9
V
G
AU
&
q
u
o
t
;
,
&
q
u
o
t
;
Cn
r
a
c
t
A
r
i
b
u
t
eP
a
s
I
d
&
q
u
o
t
;
:
n
u
l,
&
q
u
o
t
;
S
b
s
c
r
i
pt
o
n
T
e
r
m
&
q
u
o
t
;
:
nu
l
,
&
q
u
o
t
;
S
e
l
in
g
M
o
d
e
l
T
y
p
&
q
u
o
t;
:
&
q
u
o
t
;
O
n
e
T
i
m&
q
u
o
t
;
,
&
q
u
o
t
;
E
n
dQ
u
a
t
i
y
&
q
u
o
t
;
:1
2
,
&
q
u
o
t
;
N
e
T
o
t
al
P
r
i
c
e
&
q
u
o
t
;
:
1
73
9
.
8
,
&
q
u
o
t
;
T
al
L
i
n
e
A
m
o
u
n
t
&
q
o;
:
1
7
3
9
.
8
,
&
q
u
o
t;
I
e
m
S
g
e
n
t
T
y
p
e&
q
u
o
t
;
:
n
u
l
,
&
q
uo
t
;
P
r
d
u
c
t
B
a
s
e
d
On
&
q
u
o
t
;
:
&
q
u
o
t
;
1B
x
0
2
C
1
n
q
E
AC
&
u
o
t
;
,
&
q
u
o
t
;
D
el
t
d
&
q
u
o
t
;
:
f
a
ls
e
,
&
q
u
o
t
;
B
i
l
n
gR
e
f
r
n
c
e
&
q
u
o
t
;:
n
u
l
,
&
q
u
o
t
;
A
r
e
Pa
t
i
l
P
e
r
i
o
d
s
A
lo
w
e
d
&
q
u
o
t
;
:
f
a
l
se
,
&
q
u
o
t
;
I
e
m
R
c
or
d
e
P
i
c
e
&
q
u
o
t
;:
n
u
l
,
&
q
u
o
t
;
C
so
m
P
r
d
u
c
t
N
a
m
e
&
qu
o
t
;
:
n
u
l
,
&
q
u
o
t
;I
e
m
S
g
e
n
t
I
di
f
e
r
&
q
u
o
t
;
:
n
u
l,
&
q
u
o
t
;
S
a
l
e
s
T
r
an
c
t
i
o
n
I
e
m
P
a
rn
t
&
q
u
o
;
:
&
q
u
o
t
;0
Q
x
0
4
C
9
2A
E
&
q
u
o
t
;
,
&
q
u
o
t
;Q
a
n
t
i
y
&
q
u
o
t
;
:
12
,
&
q
u
o
t
;
P
e
r
i
o
d
Bu
n
a
r
y
&
q
u
o
t
;
:
n
ul
,
&
q
u
o
t
;
C
n
r
a
ct
D
i
s
o
u
n
t
V
a
l
u
e
&q
o
t
;
:
n
u
l
,
&
q
u
o
t;
L
i
n
e
I
t
m
D
i
s
c
o
un
t
V
a
l
u
e
&
q
o
t
;
:
n
ul
,
&
q
u
o
t
;
C
n
r
ac
t
I
d
&
q
u
o
t
;
:
n
u
l
,&
q
u
o
t
;
E
n
d
D
a
t
e
&
qu
o
t
;
:
n
u
l
,
&
q
u
o
t
;I
e
m
G
r
o
u
p
S
m
a
ry
S
u
b
t
o
a
l
&
q
u
o
t
;
:n
u
l
,
&
q
u
o
t
;
I
s
C
on
t
r
a
c
e
d
&
q
u
o
t
;
:
fa
l
s
e
,
&
q
u
o
t
;
U
n
iP
r
c
e
&
q
u
o
t
;
:
1
4
.9
,
&
q
u
o
t
;
S
a
r
t
Qu
n
i
t
y
&
q
u
o
t
;
:
n
ul
,
&
q
u
o
t
;
C
n
r
ac
t
P
i
e
&
q
u
o
t
;
:
n
ul
,
&
q
u
o
t
;
T
a
l
Pr
i
c
e
&
q
u
o
t
;
:
1
7
3
9
.8
,
&
q
u
o
t
;
L
i
n
e
I
tm
D
i
s
c
o
u
n
t
T
y
p
e
&
qu
o
t
;
:
n
u
l
,
&
q
u
o
t
;I
e
m
P
a
t
h
&
q
u
o
t
;
:&
q
u
o
t
;
0
1
x
06
i
2
a
A
&
q
u
o
t
;
,&
q
u
o
t
;
p
r
d
u
c
t
K
e
y&
q
u
o
t
;
:
[
&
q
u
o
t
;
0Q
L
x
0
4
C
9
V
G
AU
&
q
u
o
t
;
]
}
"
,

"description": "This configuration is saved for reuse.",


"name": "Favorite Configuration",

652
Product Configurator Request Bodies

"referenceRecordId": "01txx0000006iCFAAY"
}

Properties

Name Type Description Required or Available


Optional Version
data String JSON object that contains the details of Optional 63.0
the sales transaction, formatted as a string.

description String Description of the saved configuration. Optional 63.0

name String Name of the saved configuration. Optional 63.0

referenceRecord String ID of the record for which the Required 63.0


Id configuration must be saved.

Configuration Update Input


Input representation of the details to update a configuration.
JSON example
{
"data":
"
{
&
q
u
ot
;
L
e
g
al
E
n
t
i
ty
&
q
u
o
t;
:
n
u
l,
&
q
u
ot
;
P
r
o
du
c
t
N
a
me
&
q
u
o
t;
:
&
q
u
ot
;
M
o
n
it
o
r
&
q
uo
t
;
,
&
qu
o
t
;
b
us
i
n
e
sO
b
j
e
ct
T
y
pe
&
qu
o
t
;:
&
q
u
o
t;
Q
u
o
t
eL
i
n
e
I
te
m
&
q
u
ot
;
,
&
q
uo
t
;
P
r
od
u
c
t
&q
u
o
t
;
:&
q
u
o
t
;0
1
t
x0006
i
2
a
AA
&
q
u
ot
;
,
&
q
uo
t
;
I
t
em
I
s
P
r
im
a
r
y
S
eg
m
e
n
t&
q
uo
t
;
:f
a
l
se
,
&q
u
o
t;
L
i
s
t
Pr
i
c
e
&
qu
o
t
;
:
14.
9,
&
q
u
o
t;
V
a
l
i
da
t
i
o
n
Re
s
u
l
t
&q
u
o
t
;
:n
u
l,
&
q
u
o
t;
S
t
a
r
tD
a
t
e
&
qu
o
t
;
:
nu
l,
&
q
u
o
t;
C
o
n
t
ra
c
t
V
o
lu
m
e
P
a
sI
d
&
q
u
ot
;
:
n
u
l,
&
q
u
ot
;
B
i
li
n
g
T
r
ea
t
m
e
n
t&
q
u
o
t
;:
n
u
l,
&
q
u
o
t;
P
e
r
i
od
B
o
u
n
da
r
y
S
ta
r
t
M
o
nt
h
&
q
u
ot
;
:
n
u
l,
&
q
u
ot
;
S
a
l
es
T
r
a
n
sa
c
t
i
on
S
o
u
r
ce
A
se
t
&
q
u
ot
;
:
n
u
l,
&
q
u
ot
;
i
d
&
qu
o
t
;
:
&q
u
o
t
;
0Q
L
x0004
C
9
V
GA
U
&
q
u
ot
;
,
&
q
uo
t
;
P
a
rt
n
e
r
D
is
c
o
u
nt
P
e
r
c
en
t
&
q
u
ot
;
:
1
0
,&
q
u
o
t;
P
r
ic
e
Wa
t
e
rF
a
l&
q
u
o
t
;:
n
u
l,
&
q
u
o
t;
B
i
li
n
g
F
r
eq
u
e
n
c
y&
q
uo
t
;
:
n
ul,
&
q
u
o
t;
P
r
o
d
uc
t
C
o
d
e&
q
u
o
t;
:
&
q
u
ot
;
M
O
01
&
q
u
o
t;
,
&
q
u
ot
;
D
e
r
iv
e
d
P
r
ic
i
n
g
A
tr
i
b
u
te
&
q
u
o
t;
:
f
a
l
se
,
&
q
u
ot
;
T
a
x
Tr
e
a
t
m
en
t
&
q
u
ot
;
:
n
u
l,
&
q
u
ot
;
S
u
b
to
t
a
l
&
qu
o
t
;
:
17
3
9
.
8,
&
q
uo
t
;I
t
e
mR
a
m
pI
d
e
n
t
if
i
e
r
&
qu
o
t
;
:
nu
l,
&
q
u
o
t;
I
t
e
mS
e
g
m
e
nt
N
a
m
e
&q
u
o
t
;
:n
u
l,
&
q
u
o
t;
S
a
l
e
sT
r
a
n
s
ac
t
i
o
nI
t
e
m
A
tr
i
b
u
te
&
q
uo
t
;
:[
{
&q
u
o
t;
A
tr
i
b
u
t
eK
e
y
&
q
uo
t
;
:
&
qu
o
t
;
0t
j
x00000
1AA
&
q
u
o
t;
,
&
q
u
ot
;
A
tr
i
b
u
t
eV
a
l
u
e
&q
u
o
t
;
:&
q
u
o
t
;1
0
8
0
p
Built-in
D
i
s
pl
a
y&
q
uo
t
;,
&
q
uo
t
;P
a
re
n
tR
e
f
er
e
nc
e
&q
u
o
t;
:
&q
u
ot
;
0Q
L
x0004
C
9V
G
AU
&
q
uo
t
;,
&
qu
o
t
;A
tr
i
bu
t
eP
i
cklis
t
Va
l
u
e&
q
uo
t
;:
&
qu
o
t
;0
v
6x00000
1
AA
&q
u
o
t ;
,&
q
u
ot
;
Is
P
ri
c
e
Im
p
ac
ti
n
g
&q
u
ot
;
:f
a
l
se,
&
q
uo
t
;b
u
si
n
e
sO
bj
e
ct
T
y
pe
&
qu
o
t;
:
&
qu
o
t;
Q
uo
t
eL
i
ne
I
t
em
A
tr
ib
u
te
&
q
uo
t
;,
&
qu
o
t
;A
tr
i
bu
te
N
am
e
&
qu
o
t;
:
&
qu
o
t;
D
is
play&
q
u
ot
;
,&
q
uo
t
;i
d
&
qu
o
t;
:
&q
u
ot
;
0
zu
x00000
F
AQ
&q
u
ot
;
,&
q
uo
t
;
Atr
i
but
e
De
f
in
i
t
io
n
Co
d
e&
q
uo
t
;
:n
u
l,
&q
u
o
t;
S
al
e
sT
r
a
ns
a
ct
i
on
I
t
em
A
tr
Pa
r
e
nt
&
qu
o
t;
:
&
qu
o
t;
0
QL
x0004
C
9V
G
AU
&
q
uot
;
}
,{
&
qu
o
t;
A
tr
ib
u
te
K
ey
&
qu
o
t
;:
&
qu
o
t;
0
tj
x00000
9
AA
&q
u
o
t;
,
&q
uot;Atri
b
ut
e
Va
l
ue
&
qu
o
t
;:
&
qu
o
t;
2
4

I
n
c
h
&
q
u
o
t
;
,
&
q
u
o
t;
P
a
r
e
n
t
R
f
e
r
n
c&
q
u
o
t
;
:
&
q
u
o
t
;
0
QL
x
0
4
C
9
V
G
A
U&
q
u
o
t
;
,
&
q
u
o
t
;
Ar
i
b
u
t
e
P
i
c
k
l
s
t
Va
l
u
e
&
q
o
t
;
:
&
q
u
o
t;
0
v
6
x
00
G
A
Q
&
q
u
o
t
;
,
&
q
uo
t
;
I
s
P
r
i
c
e
I
m
p
a
ct
i
n
g
&
q
u
o
t
;
:
f
a
l
s
e,
&
q
u
o
t
;
b
s
i
n
eO
b
j
e
c
t
T
y
p
e
&
q
u
o
t
;:
&
q
u
o
t
;
Q
e
L
i
nI
t
e
m
A
r
i
b
u
t
e
&
qo
t
;
,
&
q
u
o
t
;
A
r
ib
u
t
e
N
a
m
&
q
u
o
t
;
:
&q
u
o
t
;
D
i
s
p
l
a
y
_
S
iz
e
&
q
u
o
t
;
,
&
q
u
o
t
;
id
&
q
u
o
t
;
:
&
q
u
o
t
;
0z
u
x
00
G
A
Q
&
q
u
o
t
;
,
&
q
uo
t
;
A
r
i
b
u
t
e
D
fi
n
t
o
C
d
e
&
q
u
o
t;
:
n
u
l
,
&
q
u
o
t
;
S
al
e
s
T
r
a
n
c
t
i
o
n
Ie
m
A
t
r
P
a
e
n
t
&
q
uo
;
:
&
q
u
o
t
;
0
Q
L
x0
4
C
9
V
G
A
U
&
q
uo
t
;
}
]
,
&
q
u
o
t
;
P
r
i
ce
b
o
k
E
n
t
r
y
&
q
u
o
t;
:
&
q
u
o
t
;
0
1
u
x
08
y
X
0
A
I
&
q
u
o
t;
,
&
q
u
o
t
;
D
i
s
c
o
u
n
tA
m
o
u
n
t
&
q
o
;
:
n
ul
,
&
q
u
o
t
;
P
r
i
c
n
gT
e
r
m
C
o
u
n
t
&
q
o
;:
0
,
&
q
u
o
t
;
S
b
s
c
r
ip
t
o
n
T
e
r
m
U
n
i
t
&
qu
o
;
:
n
u
l
,
&
q
u
o
t
;N
e
U
n
i
t
P
r
c
e
&
q
uo
t
;
:
1
4
.
9
,
&
q
u
o
t;
I
e
m
E
f
c
t
i
v
e
Gr
a
n
t
D
e
&
q
u
o
t
;
:
nu
l
,
&
q
u
o
t
;
P
r
d
uc
t
C
a
e
g
o
r
y
&
q
u
o
t
;:
n
u
l
,
&
q
u
o
t
;
S
a
le
s
T
r
a
n
c
t
i
o
n
A
c
ti
o
n
&
q
u
t
;
:
n
u
l
,&
q
u
o
t
;
S
a
l
e
s
T
r
a
nc
t
i
o
n
A
c
t
i
o
n
T
y
pe
&
q
u
o
t
;
:
n
u
l
,
&
q
uo
t
;
S
a
l
e
s
T
r
a
n
ct
i
o
n
I
e
m
G
r
o
u
p
&
qo
t
;
:
n
u
l
,
&
q
u
o
t
;P
e
r
i
o
d
B
u
n
a
r
y
D&
q
u
o
t
;
:
n
u
l
,
&
qu
o
t
;
S
a
l
e
s
T
r
x
n
I
t
em
D
s
c
r
i
p
t
o
n
&
q
ut
;
:
n
u
l
,
&
q
u
o
t
;
Li
n
e
I
t
m
D
i
s
t
r
b
ui
o
n
T
y
p
e
&
q
u
o
t
;
:
nu
l
,
&
q
u
o
t
;
P
r
a
ti
o
n
P
l
i
c
y
&
q
u
o
t
;:
n
u
l
,
&
q
u
o
t
;
C
nr
a
c
t
D
i
s
o
u
n
t
T
y
pe
&
q
u
o
t
;
:
n
u
l
,
&
q
uo
t
;
T
r
a
n
s
c
t
i
o
n
Ty
p
e
&
q
u
o
t
;
:
n
u
l
,
&q
u
o
t
;
P
a
r
e
n
t
R
f
er
n
c
&
q
u
o
t
;
:
&
q
u
ot
;
0
Q
x
0
4
C9
2
A
E
&
q
u
o
t
;
,
&
q
u
ot
;
D
i
s
c
o
u
n
t
&
q
o;
:
n
u
l
,
&
q
u
o
t
;
P
r
ic
n
g
T
e
r
m
U
n
i
t
&
q
uo
;
:
n
u
l
,
&
q
u
o
t
;
Pr
d
u
c
t
S
e
l
i
n
g
M
od
e
l
&
q
u
o
t
;
:
&
q
u
o
t
;0
j
P
x
00
1
E
A
&
q
u
o
t
;
,
&
q
uo
t
;
P
r
i
c
n
g
S
o
u
r
ce
&
q
u
o
t
;
:
n
u
l
,
&
q
uo
t
;
S
c
k
K
e
p
i
n
gU
t
&
q
u
o
;
:
n
u
l
,&
q
u
o
t
;
P
a
r
n
e
Ui
t
P
r
c
e
&
q
u
o
t
;
:
1
30
.
4
9
1
,
&
q
u
o
t
;
I
em
T
o
t
a
l
A
d
j
u
s
t
m
e
nA
o
u
n
t
&
q
o
;
:
0
,&
q
u
o
t
;
S
a
l
e
s
T
r
a
nc
t
i
o
n
I
e
m
S
o
u
r
ce
&
q
u
o
t
;
:
&
q
u
o
t
;
0
QL
x
0
4
C
9
V
G
AU
&
q
u
o
t
;
,
&
q
u
o
t
;
Cn
r
a
c
t
A
r
i
b
u
t
eP
a
s
I
d
&
q
u
o
t
;
:
n
u
l,
&
q
u
o
t
;
S
b
s
c
r
i
pt
o
n
T
e
r
m
&
q
u
o
t
;
:
nu
l
,
&
q
u
o
t
;
S
e
l
in
g
M
o
d
e
l
T
y
p
&
q
u
o
t;
:
&
q
u
o
t
;
O
n
e
T
i
m&
q
u
o
t
;
,
&
q
u
o
t
;
E
n
dQ
u
a
t
i
y
&
q
u
o
t
;
:1
2
,
&
q
u
o
t
;
N
e
T
o
t
al
P
r
i
c
e
&
q
u
o
t
;
:
1
73
9
.
8
,
&
q
u
o
t
;
T
al
L
i
n
e
A
m
o
u
n
t
&
q
o;
:
1
7
3
9
.
8
,
&
q
u
o
t;
I
e
m
S
g
e
n
t
T
y
p
e&
q
u
o
t
;
:
n
u
l
,
&
q
uo
t
;
P
r
d
u
c
t
B
a
s
e
d
On
&
q
u
o
t
;
:
&
q
u
o
t
;
1B
x
0
2
C
1
n
q
E
AC
&
u
o
t
;
,
&
q
u
o
t
;
D
el
t
d
&
q
u
o
t
;
:
f
a
ls
e
,
&
q
u
o
t
;
B
i
l
n
gR
e
f
r
n
c
e
&
q
u
o
t
;:
n
u
l
,
&
q
u
o
t
;
A
r
e
Pa
t
i
l
P
e
r
i
o
d
s
A
lo
w
e
d
&
q
u
o
t
;
:
f
a
l
se
,
&
q
u
o
t
;
I
e
m
R
c
or
d
e
P
i
c
e
&
q
u
o
t
;:
n
u
l
,
&
q
u
o
t
;
C
so
m
P
r
d
u
c
t
N
a
m
e
&
qu
o
t
;
:
n
u
l
,
&
q
u
o
t
;I
e
m
S
g
e
n
t
I
di
f
e
r
&
q
u
o
t
;
:
n
u
l,
&
q
u
o
t
;
S
a
l
e
s
T
r
an
c
t
i
o
n
I
e
m
P
a
rn
t
&
q
u
o
;
:
&
q
u
o
t
;0
Q
x
0
4
C
9
2A
E
&
q
u
o
t
;
,
&
q
u
o
t
;Q
a
n
t
i
y
&
q
u
o
t
;
:
12
,
&
q
u
o
t
;
P
e
r
i
o
d
Bu
n
a
r
y
&
q
u
o
t
;
:
n
ul
,
&
q
u
o
t
;
C
n
r
a
ct
D
i
s
o
u
n
t
V
a
l
u
e
&q
o
t
;
:
n
u
l
,
&
q
u
o
t;
L
i
n
e
I
t
m
D
i
s
c
o
un
t
V
a
l
u
e
&
q
o
t
;
:
n
ul
,
&
q
u
o
t
;
C
n
r
ac
t
I
d
&
q
u
o
t
;
:
n
u
l
,&
q
u
o
t
;
E
n
d
D
a
t
e
&
qu
o
t
;
:
n
u
l
,
&
q
u
o
t
;I
e
m
G
r
o
u
p
S
m
a
ry
S
u
b
t
o
a
l
&
q
u
o
t
;
:n
u
l
,
&
q
u
o
t
;
I
s
C
on
t
r
a
c
e
d
&
q
u
o
t
;
:
fa
l
s
e
,
&
q
u
o
t
;
U
n
iP
r
c
e
&
q
u
o
t
;
:
1
4
.9
,
&
q
u
o
t
;
S
a
r
t
Qu
n
i
t
y
&
q
u
o
t
;
:
n
ul
,
&
q
u
o
t
;
C
n
r
ac
t
P
i
e
&
q
u
o
t
;
:
n
ul
,
&
q
u
o
t
;
T
a
l
Pr
i
c
e
&
q
u
o
t
;
:
1
7
3
9
.8
,
&
q
u
o
t
;
L
i
n
e
I
tm
D
i
s
c
o
u
n
t
T
y
p
e
&
qu
o
t
;
:
n
u
l
,
&
q
u
o
t
;I
e
m
P
a
t
h
&
q
u
o
t
;
:&
q
u
o
t
;
0
1
x
06
i
2
a
A
&
q
u
o
t
;
,&
q
u
o
t
;
p
r
d
u
c
t
K
e
y&
q
u
o
t
;
:
[
&
q
u
o
t
;
0Q
L
x
0
4
C
9
V
G
AU
&
q
u
o
t
;
]
}
"
,

"description": "This configuration is updated.",


"name": "Updated Configuration"
}

Properties

Name Type Description Required or Available


Optional Version
data String JSON object that contains the details of Required 63.0
the sales transaction, formatted as a string.

description String Description of the configuration. Required 63.0

name String Name of the configuration. Required 63.0

Configuration Save Instance Input


Input representation of the request to save a product configuration instance.

653
Product Configurator Request Bodies

JSON example

{
"contextId": "008d27d7-e004-4906-a949-ee7d7c323c77"
}

Properties

Name Type Description Required or Available


Optional Version
contextId String Transaction context ID of the product Required 60.0
configuration instance that’s to be saved.

Configuration Set Instance Input


Input representation of the request to set a product configuration instance.
JSON example

{
"configuratorOptions":
{
"addDefaultConfiguration": true,
"executeConfigurationRules": true,
"executePricing": true,
"qualifyAllProductsInTransaction": true,
"validateAmendRenewCancel": true,
"validateProductCatalog": true
},
"qualificationContext": {
"accountId": "001DU000001nHUGYA2"
},
"transactionId": "0Q0DU0000000XoN0AU"
}

Properties

Name Type Description Required or Available


Optional Version
configurator Configurator List of the configurator options to execute. Optional 60.0
Options Options Input

context String ID of the context mapping record. Required 60.0


MappingId

qualification User Context Input Context details that are used for the Optional 60.0
Context qualification rules.

654
Product Configurator Request Bodies

Name Type Description Required or Available


Optional Version
transaction String Transaction JSON payload representing an Required 60.0
object in an external system that’s used to
create a session.

Configurator Add Nodes Input


Input representation of the request to add nodes within a root node.
JSON example
{
"configuratorOptions": {
"executePricing": true,
"returnProductCatalogData": true,
"qualifyAllProductsInTransaction": true,
"validateProductCatalog": true,
"validateAmendRenewCancel": true,
"executeConfigurationRules": true,
"addDefaultConfiguration": true
},
"qualificationContext": {
"accountId": "001xx0000000001AAA",
"contactId": "003xx00000000D7AAI"
},
"contextId": "008d27d7-e004-4906-a949-ee7d7c323c77",
"addedNodes": [
{
"path": ["0Q0DE000000ISHJs81"],
"addedObject": {
"id": "ref_sti2_id",
"SalesTransactionSource": "sti2_id",
"PricebookEntry": "01uxx0000000001AAA",
"ProductSellingModel": "0jPxx0000000001AAA",
"businessObjectType": "QuoteLineItem",
"Quantity": 10,
"UnitPrice": 2.0,
"Product": "01txx0000000001AAA"
}
},
{
"path": ["0Q0DE000000ISHJs81", "0QLDE000000IBXw4AO"],
"addedObject": {
"id": "ref_stir1_id",
"businessObjectType": "QuoteLineItemRelationship",
"MainItem": "0QLDE000000IBXw4AO",
"AssociatedItem": "ref_sti2_id",
"ProductRelatedComponent": "0dSxx0000000001AAA",
"ProductRelationshipType": "0yoxx0000000001AAA",
"AssociatedItemPricing": "IncludedInBundlePrice"

655
Product Configurator Request Bodies

}
]
}

Properties

Name Type Description Required or Available


Optional Version
addedNodes Configurator Added List of the nodes to be added. Required 60.0
Node Input[]

configurator Configurator List of the configuration options to Optional 60.0


Options Options Input execute.

contextId String ID of the context object that’s being Required 60.0


considered.

qualification User Context Input Context details that are used for the Optional 60.0
Context qualification rules.

Configurator Added Node Input


Input representation of the nodes to be added to a product configuration.
JSON example

"addedNodes": [
{
"path": ["0Q0DE000000ISHJs81"],
"addedObject": {
"id": "ref_sti2_id",
"SalesTransactionItemSource": "sti2_id",
"PricebookEntry": "01uxx0000000001AAA",
"ProductSellingModel": "0jPxx0000000001AAA",
"businessObjectType": "QuoteLineItem",
"Quantity": 10,
"UnitPrice": 2.0,
"Product": "01txx0000000001AAA"
}
},
{
"path": ["0Q0DE000000ISHJs81", "0QLDE000000IBXw4AO"],
"addedObject": {
"id": "ref_stir1_id",
"businessObjectType": "QuoteLineItemRelationship",
"MainItem": "0QLDE000000IBXw4AO",
"AssociatedItem": "ref_sti2_id",
"ProductRelatedComponent": "0dSxx0000000001AAA",
"ProductRelationshipType": "0yoxx0000000001AAA",
"AssociatedItemPricing": "IncludedInBundlePrice"

656
Product Configurator Request Bodies

}
]

Properties

Name Type Description Required or Available


Optional Version
addedObject Map<String, Details of the object that’s being added. Required 60.0
Object> This property supports fields of objects
from the Sales Transaction context
definition, including custom objects and
fields in your extended context definition.

path String[] Path to the node that’s being added. The Required 60.0
path includes the unique ID of the context
node in the data structure. This ID must
match the ID of the sales transaction item
source such as a quote line or an order line
item.

Configurator Delete Nodes Input


Input representation of the request to delete nodes from a product configuration.
JSON example
{
"configuratorOptions": {
"executePricing": true,
"returnProductCatalogData": true,
"qualifyAllProductsInTransaction": true,
"validateProductCatalog": true,
"validateAmendRenewCancel": true,
"executeConfigurationRules": true,
"addDefaultConfiguration": true
},
"qualificationContext": {
"accountId": "001xx0000000001AAA",
"contactId": "003xx00000000D7AAI"
},
"contextId": "008d27d7-e004-4906-a949-ee7d7c323c77",
"deletedNodes": [
{
"path": ["0Q0DE000000ISHJs81", "0QLDE000000IBXw4AO"]
}
]
}

657
Product Configurator Request Bodies

Properties

Name Type Description Required or Available


Optional Version
configurator Configurator List of the configuration options to Optional 60.0
Options Options Input execute.

contextId String ID of the context object that’s being Required 60.0


considered.

deletedNodes Configurator List of the nodes to be deleted. Required 60.0


Deleted Node
Input[]

qualification User Context Input Context details that are used for the Optional 60.0
Context qualification rules.

Configurator Deleted Node Input


Input representation of the nodes to be deleted from a product configuration.
JSON example

"deletedNodes": [
{
"path": ["0Q0DE000000ISHJs81", "0QLDE000000IBXw4AO"]
}
]

Properties

Name Type Description Required or Available


Optional Version
path String[] Path to the node that’s being deleted. Required 60.0

Configurator Input
Input representation of the request to modify the product configuration.
JSON example
This example shows a sample to initiate a context based on a transaction ID.
{
"transactionLineId": "0QLDE000000IBXw4AO",
"transactionId": "0Q0xx0000000001GAA",
"correlationId": "c95246d4-102c-4ecd-a263-f74ac525d1e5",
"configuratorOptions": {
"executePricing": true,
"returnProductCatalogData": true
},

658
Product Configurator Request Bodies

"qualificationContext": {
"accountId": "001xx0000000001AAA",
"contactId": "003xx00000000D7AAI"
}
}

This example shows a sample to add, update, or delete a node in an existing context.
{
"transactionLineId": "0QLDE000000IBXw4AO",
"transactionId": "0Q0DE000000ISHJs81",
"correlationId": "c95246d4-102c-4ecd-a263-f74ac525d1e5",
"configuratorOptions": {
"executePricing": true,
"returnProductCatalogData": true,
"qualifyAllProductsInTransaction": true,
"validateProductCatalog": true,
"validateAmendRenewCancel": true,
"executeConfigurationRules": true,
"addDefaultConfiguration": true
},
"qualificationContext": {
"accountId": "001xx0000000001AAA",
"contactId": "003xx00000000D7AAI"
},
"transactionContextId": "008d27d7-e004-4906-a949-ee7d7c323c77",
"addedNodes": [
{
"path": ["0Q0DE000000ISHJs81", "sti2_id"],
"addedObject": {
"id": "ref_sti2_id",
"SalesTransactionSource": "sti2_id",
"PricebookEntry": "01uxx0000000001AAA",
"ProductSellingModel": "0jPxx0000000001AAA",
"businessObjectType": "QuoteLineItem",
"Quantity": 10,
"UnitPrice": 2.0,
"Product": "01txx0000000001AAA"
}
},
{
"path": ["0Q0DE000000ISHJs81", "0QLDE000000IBXw4AO","ref_stir1_id"],
"addedObject": {
"id": "ref_stir1_id",
"businessObjectType": "QuoteLineItemRelationship",
"MainItem": "0QLDE000000IBXw4AO",
"AssociatedItem": "ref_sti2_id",
"ProductRelatedComponent": "0dSxx0000000001AAA",
"ProductRelationshipType": "0yoxx0000000001AAA",
"AssociatedItemPricing": "IncludedInBundlePrice"

}
}
],
"updatedNodes": [

659
Product Configurator Request Bodies

{
"path": ["0Q0DE000000ISHJs81", "0QLDE000000IBXw4AO"],
"updatedAttributes": {
"Quantity": 5
}
}
],
"deletedNodes": [
{
"path": ["0Q0DE000000ISHJs81", "0QLDE000000IBXw4AO"]
}
]
}

Properties

Name Type Description Required or Available


Optional Version
addedNodes Configurator Added List of added context nodes that’s passed Optional 60.0
Node Input[] to the product configurator.

configurator Configurator Options to pass to the configurator. Optional 60.0


Options Options Input[]

correlationId String ID that’s specified for traceability of logs. Optional 60.0

deletedNodes Configurator List of deleted context nodes that’s passed Optional 60.0
Deleted Node to the product configurator.
Input[]

qualification User Context Input[] Details such as account ID, contact ID, and Optional 60.0
Context context ID that are used for executing
qualification rules.

transaction String ID of the transaction context. Optional 60.0


ContextId

transactionId String ID of the sales transaction that’s being Required 60.0


configured such as a quote or an order.

transaction String ID of the top-level line item that’s being Optional 60.0
LineId configured.

updatedNodes Configurator List of updated context nodes that’s passed Optional 60.0
Updated Node to the product configurator.
Input[]

SEE ALSO:
Salesforce Help: Context Service
Developer Documentation: Context Service

660
Product Configurator Request Bodies

Configurator Options Input


Input representation of the request to get the product configuration options that’s passed to the configurator.
JSON example

"configuratorOptions":
{
"addDefaultConfiguration": true,
"executeConfigurationRules": true,
"executePricing": true,
"qualifyAllProductsInTransaction": true,
"validateAmendRenewCancel": true,
"validateProductCatalog": true
}

Properties

Name Type Description Required or Available


Optional Version
addDefault Boolean Indicates whether to add the default Optional 60.0
Configuration configurations (true) or not (false).

execute Boolean Indicates whether to execute the Optional 60.0


Configuration configuration rules (true) or not
Rules (false).

execute Boolean Indicates whether to execute pricing Optional 60.0


Pricing (true) or not (false).

pricing String Name of the pricing procedure to use Optional 60.0


Procedure during the API calls to Salesforce Pricing
Management.

qualifyAll Boolean Indicates whether to run the qualification Optional 60.0


ProductsIn rules on all the products in the context
Transaction (true) or not (false).

returnProduct Boolean Indicates whether to return the product Optional 60.0


CatalogData catalog data (true) or not (false).
Exclude this property or specify the
property value as false if you’re using
the API without the Product Configurator
UI.

validateAmend Boolean Indicates whether to run the amend, Optional 60.0


RenewCancel renew, cancel-related validations (true)
or not (false).

validate Boolean Indicates whether to run the validations Optional 60.0


Product against the product catalog (true) or not
Catalog (false).

661
Product Configurator Request Bodies

Configurator Update Nodes Input


Input representation of the request to update the nodes in a product configuration.
JSON example
{
"configuratorOptions": {
"executePricing": true,
"returnProductCatalogData": true,
"qualifyAllProductsInTransaction": true,
"validateProductCatalog": true,
"validateAmendRenewCancel": true,
"executeConfigurationRules": true,
"addDefaultConfiguration": true
},
"qualificationContext": {
"accountId": "001xx0000000001AAA",
"contactId": "003xx00000000D7AAI"
},
"contextId": "008d27d7-e004-4906-a949-ee7d7c323c77",
"updatedNodes": [
{
"path": ["0Q0DE000000ISHJs81", "0QLDE000000IBXw4AO"],
"updatedAttributes": {
"Quantity": 5
}
}
]
}

Properties

Name Type Description Required or Available


Optional Version
configurator Configurator List of the configuration options to Optional 60.0
Options Options Input execute.

contextId String ID of the context object that’s being Required 60.0


considered.

qualification User Context Input Context details that are used for the Optional 60.0
Context qualification rules.

updatedNodes Configurator List of the nodes to be updated. Required 60.0


Updated Node
Input[]

Configurator Updated Node Input


Input representation of the nodes to be updated in a product configuration.

662
Product Configurator Request Bodies

JSON example

"updatedNodes": [
{
"path": ["0Q0DE000000ISHJs81", "0QLDE000000IBXw4AO"],
"updatedAttributes": {
"Quantity": 5
}
}
]

Properties

Name Type Description Required or Available


Optional Version
path String[] Path to the node that’s being updated. Required 60.0

updated Map<String, Details of the object that’s being updated. Required 60.0
Attributes Object> This property supports fields of objects
from the Sales Transaction context
definition, including custom objects and
fields in your extended context definition.

Product Quantity Set Configurator Input


Input representation of the request to set the quantity of a product.
JSON example
{
"configuratorOptions": {
"executePricing": true,
"returnProductCatalogData": true,
"qualifyAllProductsInTransaction": true,
"validateProductCatalog": true,
"validateAmendRenewCancel": true,
"executeConfigurationRules": true,
"addDefaultConfiguration": true
},
"qualificationContext": {
"accountId": "001xx0000000001AAA",
"contactId": "003xx00000000D7AAI"
},
"contextId": "008d27d7-e004-4906-a949-ee7d7c323c77",
"quantity": 20,
"transactionLinePath": "Quote.QuoteLineItem.Quantity"
}

663
Product Configurator Response Bodies

Properties

Name Type Description Required or Available


Optional Version
configurator Configurator List of the configuration options to Optional 60.0
Options Options Input execute.

contextId String ID of the context object that’s being Required 60.0


considered.

qualification User Context Input Context details that are used for the Optional 60.0
Context qualification rules.

quantity Integer Value of the product quantity. Required 60.0

transaction String[] Path to the line item where the update to Required 60.0
LinePath the quantity is applied. For example,
Quote.QuoteLineItem.Quantity.

User Context Input


Input representation of the request to get the context details of a user, which are used for qualification rules.
JSON example

"qualificationContext": {
"accountId": "001DU000001nHUGYA2",
"contactId": "003xx00000000D7AAI"
}

Properties

Name Type Description Required or Available


Optional Version
accountId String ID of the account in a user context. Optional 60.0

contactId String ID of the contact in a user context. Optional 60.0

contextId String ID of the context that represents the Optional 60.0


created session.

Response Bodies
Learn more about the available Product Configurator API response bodies.

Configuration Details
Output representation of the product configuration details.
Configuration Get Instance
Output representation of the request to retrieve the configuration instance.

664
Product Configurator Response Bodies

Configuration Load Instance


Output representation of the details of the context or session that are returned with a load configuration request.
Configuration Save Details
Output representation of the details of a saved configuration.
Configuration Record Save
Output representation of the details of a saved configuration.
Configuration List
Output representation of the details of the saved configuration.
Configuration Save Instance
Output representation of the response that’s returned with a save configuration request.
Configuration Set Instance
Output representation of the details of the context or session that are returned with a set configuration request.
Configurator Add Nodes
Output representation of the configuration request details to add nodes.
Configurator Additional Fields
Output representation of the additional fields of a product configuration.
Configurator Attribute
Output representation of the attribute in a product configuration.
Configurator Attribute Category
Output representation of the attribute category in a product configuration.
Configurator Attribute Picklist
Output representation of the attribute picklist in a product configuration.
Configurator Attribute Picklist Value
Output representation of the values of an attribute picklist in a product configuration.
Configurator Delete Nodes
Output representation of the details of the configuration request to delete nodes.
Configurator Message
Output representation of the messages of a product configurator.
Configurator Price
Output representation of the pricing details in a product configuration.
Configurator Pricing Model
Output representation of the details of a pricing model in a product configuration.
Configurator Product Catalog
Output representation of the product catalog.
Configurator Product Classification
Output representation of the product classification in a product configuration.
Configurator Product Component Group
Output representation of the product component group in a product classification.
Configurator Product Related Component
Output representation of the product related component in a product configuration.

665
Product Configurator Response Bodies

Configurator Product Selling Model


Output representation of the product selling model in a product configuration.
Configurator Product Selling Model Option
Output representation of the product selling model option in a product configuration.
Configurator Qualification Context
Output representation of the qualification context in a product configuration.
Configurator UI Treatment
Output representation of the details of the UI treatments of a product configurator. The details include the product configuration
rule actions to override the disable or hide behavior in the UI for product options, product attributes, and attribute picklist values.
Configurator Unit Of Measure
Output representation of the details of the unit of measure record.
Configurator Update Nodes
Output representation of the configuration request details to update nodes.
Configuration Update
Output representation of the details of the updated configuration.
Error Response
Output representation of the details of the error.
Product Quantity Set Configurator
Output representation of the request details to set product quantity.

Configuration Details
Output representation of the product configuration details.
JSON example
{
"catalogProducts": {
"additionalFields": [],
"attributeCategories": [
{
"attributes": [
{
"attributeCategoryId": "0v3xx0000000001AAA",
"attributeNameOverride": "Load Capacity",
"code": "CAP",
"dataType": "NUMBER",
"defaultValue": "1500",
"description": "Server racks are designed to support a specific load capacity,
commonly measured in kilograms (kg) or pounds (lbs). Typical load capacities range from
500 kg (1102 lbs) to 1500 kg (3307 lbs) depending on the model.",
"id": "0tjxx00000001DpAAI",
"isCloneable": false,
"isConfigurable": true,
"isHidden": false,
"isPriceImpacting": false,
"isReadOnly": false,
"isRequired": false,

666
Product Configurator Response Bodies

"label": "Load Capacity",


"name": "Load Capacity"
},
{
"attributeCategoryId": "0v3xx0000000001AAA",
"attributeNameOverride": "Expansion Slots",
"code": "SLOTCAP",
"dataType": "NUMBER",
"defaultValue": "12",
"id": "0tjxx00000001H3AAI",
"isCloneable": false,
"isConfigurable": true,
"isHidden": false,
"isPriceImpacting": false,
"isReadOnly": false,
"isRequired": true,
"label": "Expansion Slots",
"name": "Expansion Slots"
},
{
"attributeCategoryId": "0v3xx0000000001AAA",
"attributeNameOverride": "Memory",
"attributePicklist": {
"id": "0v5xx0000000001AAA",
"values": [
{
"code": "MEM",
"displayValue": "25",
"id": "0v6xx0000000001AAA",
"isBooleanValue": false,
"name": "25Mem",
"sequence": 0,
"textValue": "25"
},
{
"code": "50MEM",
"displayValue": "50",
"id": "0v6xx000000001eAAA",
"isBooleanValue": false,
"name": "50Mem",
"sequence": 1,
"textValue": "50"
},
{
"code": "100MEM",
"displayValue": "100",
"id": "0v6xx000000003FAAQ",
"isBooleanValue": false,
"name": "100Mem",
"sequence": 2,
"textValue": "100"
}
]
},

667
Product Configurator Response Bodies

"dataType": "MULTIPICKLIST",
"defaultValue": "25",
"id": "0tjxx00000001IfAAI",
"isCloneable": false,
"isConfigurable": true,
"isHidden": false,
"isPriceImpacting": false,
"isReadOnly": false,
"isRequired": true,
"label": "Memory",
"name": "Memory"
}
],
"code": "SPEC",
"name": "Server Rack Specifications"
}
],
"description": "Introducing the Cisco Server Rack, a sleek and robust solution
designed to streamline your data center infrastructure. With its scalable design and
advanced cable management features, it ensures optimal performance, efficiency, and easy
maintenance for your critical network equipment.",
"displayUrl":
"https://www.cisco.com/content/dam/en/us/products/servers-unified-computing/ucs-c240-m4-rack-server/product-large.jpg",

"id": "01txx0000006jkuAAA",
"isActive": true,
"isAssetizable": true,
"isConfigurable": true,
"isSoldOnlyWithOtherProds": false,
"name": "Cisco Server Rack NX44",
"nodeType": "bundleProduct",
"prices": [],
"productClassification": {
"id": "11Bxx000002CC02EAG"
},
"productCode": "RACK",
"productComponentGroups": [
{
"classifications": [],
"code": "SERVICE",
"components": [
{
"additionalFields": [],
"attributeCategories": [],
"description": "Introducing the Cisco Rack Server NX44 Service, a
comprehensive protection plan designed to safeguard your valuable data infrastructure.
With extended coverage and rapid response times, this warranty ensures peace of mind
and uninterrupted performance for your critical business operations.",
"id": "01txx0000006jmWAAQ",
"isActive": true,
"isAssetizable": true,
"isComponentRequired": false,
"isConfigurable": false,
"isDefaultComponent": false,

668
Product Configurator Response Bodies

"isQuantityEditable": false,
"isSoldOnlyWithOtherProds": false,
"name": "Cisco Rack Server Service - 1 Year",
"nodeType": "simpleProduct",
"prices": [],
"productClassification": {},
"productCode": "SERVICE",
"productComponentGroups": [],
"productRelatedComponent": {
"childProductId": "01txx0000006jmWAAQ",
"childSellingModelId": "0jPxx000000004rEAA",
"doesBundlePriceIncludeChild": true,
"id": "0dSxx000000001dEAA",
"isComponentRequired": false,
"isDefaultComponent": false,
"isQuantityEditable": false,
"parentProductId": "01txx0000006jkuAAA",
"parentSellingModelId": "0jPxx000000004rEAA",
"productComponentGroupId": "0y7xx000000001dAAA",
"productRelationshipTypeId": "0yoxx00000001IfAAI",
"quantity": 1,
"quantityScaleMethod": "Proportional"
},
"productSellingModelOptions": [
{
"id": "0iOxx000000009hEAA",
"productId": "01txx0000006jmWAAQ",
"productSellingModel": {
"id": "0jPxx000000004rEAA",
"name": "Termed Annually",
"pricingTerm": 1,
"pricingTermUnit": "Annual",
"sellingModelType": "TermDefined",
"status": "Active"
},
"productSellingModelId": "0jPxx000000004rEAA"
},
{
"id": "0iOxx00000000PpEAI",
"productId": "01txx0000006jmWAAQ",
"productSellingModel": {
"id": "0jPxx0000000085EAA",
"name": "Evergreen Annually",
"pricingTerm": 1,
"pricingTermUnit": "Annual",
"sellingModelType": "Evergreen",
"status": "Active"
},
"productSellingModelId": "0jPxx0000000085EAA"
}
]
}
],
"description": "The services available for the Cisco Server Rack NX44 product

669
Product Configurator Response Bodies

provide comprehensive coverage and support for optimal performance and reliability,
ensuring peace of mind for your data center infrastructure.",
"id": "0y7xx000000001dAAA",
"maxBundleComponents": 1,
"minBundleComponents": 0,
"name": "Services",
"parentProductId": "01txx0000006jkuAAA",
"sequence": 1
},
{
"classifications": [],
"code": "WARRANTY",
"components": [
{
"additionalFields": [],
"attributeCategories": [],
"description": "Introducing the Cisco Rack Server NX44 Warranty, a
comprehensive protection plan designed to safeguard your valuable data infrastructure.
With extended coverage and rapid response times, this warranty ensures peace of mind
and uninterrupted performance for your critical business operations.",
"id": "01txx0000006jjIAAQ",
"isActive": true,
"isAssetizable": true,
"isComponentRequired": false,
"isConfigurable": false,
"isDefaultComponent": true,
"isQuantityEditable": true,
"isSoldOnlyWithOtherProds": false,
"name": "Cisco Rack Server Warranty - 1 Year",
"nodeType": "simpleProduct",
"prices": [],
"productClassification": {},
"productCode": "WARRANTY",
"productComponentGroups": [],
"productRelatedComponent": {
"childProductId": "01txx0000006jjIAAQ",
"childSellingModelId": "0jPxx000000001dEAA",
"doesBundlePriceIncludeChild": false,
"id": "0dSxx0000000001EAA",
"isComponentRequired": false,
"isDefaultComponent": true,
"isQuantityEditable": true,
"maxQuantity": 1,
"parentProductId": "01txx0000006jkuAAA",
"parentSellingModelId": "0jPxx000000001dEAA",
"productComponentGroupId": "0y7xx0000000001AAA",
"productRelationshipTypeId": "0yoxx00000001IfAAI",
"quantity": 1,
"quantityScaleMethod": "Proportional",
"sequence": 0
},
"productSellingModelOptions": [
{
"id": "0iOxx000000001dEAA",

670
Product Configurator Response Bodies

"productId": "01txx0000006jjIAAQ",
"productSellingModel": {
"id": "0jPxx000000001dEAA",
"name": "One Time",
"sellingModelType": "OneTime",
"status": "Active"
},
"productSellingModelId": "0jPxx000000001dEAA"
},
{
"id": "0iOxx00000000HlEAI",
"productId": "01txx0000006jjIAAQ",
"productSellingModel": {
"id": "0jPxx000000003FEAQ",
"name": "Termed Monthly",
"pricingTerm": 1,
"pricingTermUnit": "Months",
"sellingModelType": "TermDefined",
"status": "Active"
},
"productSellingModelId": "0jPxx000000003FEAQ"
},
{
"id": "0iOxx00000000JNEAY",
"productId": "01txx0000006jjIAAQ",
"productSellingModel": {
"id": "0jPxx000000004rEAA",
"name": "Termed Annually",
"pricingTerm": 1,
"pricingTermUnit": "Annual",
"sellingModelType": "TermDefined",
"status": "Active"
},
"productSellingModelId": "0jPxx000000004rEAA"
},
{
"id": "0iOxx00000000KzEAI",
"productId": "01txx0000006jjIAAQ",
"productSellingModel": {
"id": "0jPxx0000000085EAA",
"name": "Evergreen Annually",
"pricingTerm": 1,
"pricingTermUnit": "Annual",
"sellingModelType": "Evergreen",
"status": "Active"
},
"productSellingModelId": "0jPxx0000000085EAA"
},
{
"id": "0iOxx00000000MbEAI",
"productId": "01txx0000006jjIAAQ",
"productSellingModel": {
"id": "0jPxx000000006TEAQ",
"name": "Evergreen Monthly",

671
Product Configurator Response Bodies

"pricingTerm": 1,
"pricingTermUnit": "Months",
"sellingModelType": "Evergreen",
"status": "Active"
},
"productSellingModelId": "0jPxx000000006TEAQ"
}
]
}
],
"description": "The warranties available for the Cisco Server Rack NX44 product
provide comprehensive coverage and support for optimal performance and reliability,
ensuring peace of mind for your data center infrastructure.",
"id": "0y7xx0000000001AAA",
"maxBundleComponents": 1,
"minBundleComponents": 0,
"name": "Warranties",
"parentProductId": "01txx0000006jkuAAA",
"sequence": 0
}
],
"productSellingModelOptions": [
{
"id": "0iOxx000000003FEAQ",
"productId": "01txx0000006jkuAAA",
"productSellingModel": {
"id": "0jPxx000000001dEAA",
"name": "One Time",
"sellingModelType": "OneTime",
"status": "Active"
},
"productSellingModelId": "0jPxx000000001dEAA"
},
{
"id": "0iOxx000000004rEAA",
"productId": "01txx0000006jkuAAA",
"productSellingModel": {
"id": "0jPxx000000003FEAQ",
"name": "Termed Monthly",
"pricingTerm": 1,
"pricingTermUnit": "Months",
"sellingModelType": "TermDefined",
"status": "Active"
},
"productSellingModelId": "0jPxx000000003FEAQ"
},
{
"id": "0iOxx000000006TEAQ",
"productId": "01txx0000006jkuAAA",
"productSellingModel": {
"id": "0jPxx000000004rEAA",
"name": "Termed Annually",
"pricingTerm": 1,
"pricingTermUnit": "Annual",

672
Product Configurator Response Bodies

"sellingModelType": "TermDefined",
"status": "Active"
},
"productSellingModelId": "0jPxx000000004rEAA"
}
],
"productType": "Bundle"
},
"uiTreatments": [
{
"details": {
"attributeId": "0tjxx0000000007AAA",
"prcId": "0dSxx0000000007EAA",
"stiId": "0QLxx0000004CU0GAM",
"attributePicklistValueId": "0v6xx0000000005AAA"
},
"uiTreatmentScope": "Bundle",
"uiTreatmentTarget": "Attribute_Picklist_Value",
"uiTreatmentType": "Hide"
},
{
"details": {
"stiId": "ref_f0f2da7b_c431_482d_bf4b_599052f3a2e1"
},
"uiTreatmentScope": "Product",
"uiTreatmentTarget": "Component",
"uiTreatmentType": "Disable"
}
],
"errors": [],
"success": true,
"transactionContext": {
"SalesTransaction": [
{
"Status": "Draft",
"Account": "001xx000003GeIxAAK",
"BillingCity": "San Francisco",
"Subtotal": 152500,
"LastPricedDate": "2023-08-22T05:55:39Z",
"businessObjectType": "Quote",
"TotalAmount": 152500,
"ShippingStreet": "415 Mission St",
"SalesTransactionItem": [
{
"ProrationPolicy": null,
"Discount": null,
"ProductSellingModel": "0jPxx000000001dEAA",
"Product": "01txx0000006jkuAAA",
"businessObjectType": "QuoteLineItem",
"BasisTransactionItem": null,
"PartnerUnitPrice": null,
"StartingUnitPriceSource": "System",
"ListPrice": 150000,
"ItemTotalAdjustmentAmount": 0,

673
Product Configurator Response Bodies

"SalesTransactionItemSource": "0QLxx0000004CQmGAM",
"SubscriptionTerm": null,
"StartDate": null,
"NetTotalPrice": 150000,
"TotalLineAmount": 150000,
"PeriodBoundaryStartMonth": null,
"ListPriceTotal": 150000,
"PartnerDiscountPercent": null,
"id": "0QLxx0000004CQmGAM",
"PriceWaterFall": {
"currencyCode": "USD",
"executionEndTimestamp": "2023-09-18T20:11:15.016Z",
"executionId": "ruepwmHn2ZFvnQo5bjot",
"executionStartTimestamp": "2023-09-18T20:11:14.906Z",
"lineItemId": "0QLxx0000004CQmGAM",
"output": {
"NetUnitPrice": 150000,
"Subtotal": 0
},
"success": true,
"waterfall": [
{
"fieldToTagNameMapping": {
"NetUnitPrice": "ItemUnitPrice",
"AdjustmentValue": "ItemAdjustmentValue",
"Subtotal": "ItemTotalAdjustmentAmount",
"Quantity": "ItemQuantity",
"LineItemId": "SalesTransactionItemSource",
"InputUnitPrice": "ItemUnitPrice"
},
"inputParameters": {
"Quantity": 1,
"LineItemId": "0QLxx0000004CQmGAM",
"InputUnitPrice": 150000,
"AdjustmentType": "Amount"
},
"outputParameters": {
"NetUnitPrice": 150000,
"Subtotal": 0
},
"pricingElement": {
"adjustments": [
{
"AdjustmentType": "Amount"
}
],
"elementType": "MANUALDISCOUNT",
"name": "ManualDiscount"
},
"sequence": 1
}
]
},
"BillingFrequency": null,

674
Product Configurator Response Bodies

"SalesTransactionItemParent": "0Q0xx0000004CAeCAM",
"StartingPriceTotal": 150000,
"Quantity": 1,
"PeriodBoundary": null,
"SalesTransactionItemAttribute": [
{
"AttributeKey": "0tjxx00000001H3AAI",
"AttributeValue": "30.0",
"AttributePicklistValue": null,
"IsPriceImpacting": true,
"businessObjectType": "QuoteLineItemAttribute",
"AttributeName": "Expansion Slots",
"AttributeDefinitionCode": "SLOTCAP",
"id": "0zuxx0000000001AAA",
"SalesTransactionItemAttrParent": "0QLxx0000004CQmGAM"
}
],
"EndDate": null,
"DiscountAmount": null,
"PricebookEntry": "01uxx0000009154AAA",
"PricingTermCount": 1,
"NetUnitPrice": 150000,
"UnitPrice": 150000,
"StartingUnitPrice": 150000,
"SalesTrxnItemRelationship": [
{
"ProductRelationshipType": "0yoxx00000001IfAAI",
"MainItemRole": "Bundle",
"AssociatedItem": "0QLxx0000004CQnGAM",
"ProductRelatedComponent": "0dSxx0000000001EAA",
"MainItem": "0QLxx0000004CQmGAM",
"AssociatedQuantScaleMethod": "Proportional",
"businessObjectType": "QuoteLineRelationship",
"AssociatedItemRole": "BundleComponent",
"SalesTrnItemRelationshipParent": "0Q0xx0000004CAeCAM",
"id": "0yQxx000000001dEAA",
"AssociatedItemPricing": "NotIncludedInBundlePrice"
}
],
"TotalPrice": 150000,
"PeriodBoundaryDay": null
},
{
"ProrationPolicy": null,
"Discount": null,
"ProductSellingModel": "0jPxx000000001dEAA",
"Product": "01txx0000006jjIAAQ",
"businessObjectType": "QuoteLineItem",
"BasisTransactionItem": null,
"PartnerUnitPrice": null,
"StartingUnitPriceSource": "System",
"ListPrice": 2000,
"ItemTotalAdjustmentAmount": 0,
"SalesTransactionItemSource": "0QLxx0000004CQnGAM",

675
Product Configurator Response Bodies

"SubscriptionTerm": null,
"StartDate": null,
"NetTotalPrice": 2000,
"TotalLineAmount": 2000,
"PeriodBoundaryStartMonth": null,
"ListPriceTotal": 2000,
"PartnerDiscountPercent": null,
"id": "0QLxx0000004CQnGAM",
"PriceWaterFall": {
"currencyCode": "USD",
"executionEndTimestamp": "023-09-18T20:11:15.016Z",
"executionId": "ruepwmHn2ZFvnQo5bjot",
"executionStartTimestamp": "2023-09-18T20:11:14.906Z",
"lineItemId": "0QLxx0000004CQnGAM",
"output": {
"NetUnitPrice": 2000,
"Subtotal": 0
},
"success": true,
"waterfall": [
{
"fieldToTagNameMapping": {
"NetUnitPrice": "ItemUnitPrice",
"AdjustmentValue": "ItemAdjustmentValue",
"Subtotal": "ItemTotalAdjustmentAmount",
"Quantity": "ItemQuantity",
"LineItemId": "SalesTransactionItemSource",
"InputUnitPrice": "ItemUnitPrice"
},
"inputParameters": {
"Quantity": 1,
"LineItemId": "0QLxx0000004CQnGAM",
"InputUnitPrice": 2000,
"AdjustmentType": "Amount"
},
"outputParameters": {
"NetUnitPrice": 2000,
"Subtotal": 0
},
"pricingElement": {
"adjustments": [
{}
],
"elementType": "MANUALDISCOUNT",
"name": "ManualDiscount"
},
"sequence": 1
}
]
},
"BillingFrequency": null,
"SalesTransactionItemParent": "0Q0xx0000004CAeCAM",
"StartingPriceTotal": 2000,
"Quantity": 1,

676
Product Configurator Response Bodies

"PeriodBoundary": null,
"EndDate": null,
"DiscountAmount": null,
"PricebookEntry": "01uxx000000913SAAQ",
"PricingTermCount": 1,
"NetUnitPrice": 2000,
"UnitPrice": 2000,
"StartingUnitPrice": 2000,
"TotalPrice": 2000,
"PeriodBoundaryDay": null
}
],
"BillingCountry": "US",
"BillingStreet": "415 Mission St",
"Pricebook": "01sxx0000005uDZAAY",
"ShippingPostalCode": "94105",
"SalesTransactionSource": "0Q0xx0000004CAeCAM",
"ShippingCountry": "US",
"ShippingCity": "San Francisco",
"ShippingState": "CA",
"BillingPostalCode": "94105",
"id": "0Q0xx0000004CAeCAM",
"BillToContact": null,
"Contract": null,
"BillingState": "CA"
}
]
},
"transactionContextId": "cda87acd-45ed-4913-903e-9dd33cec85a6",
"transactionContextMappingId": "11jxx0000004LwOAAU"
}

Property Name Type Description Filter Group and Available Version


Version
catalog Configurator Product Structure that contains the product catalog Small, 61.0 61.0
Products Catalog[] data.

errors ConnectApi.ErrorResponse List of errors that contains a message and Small, 60.0 60.0
an error code.

messages Map<String, Messages from the validation, Business Rules Small, 60.0 60.0
Configurator Engine (BRE), or Salesforce Pricing calls.
Message>>

success Boolean Indicates whether the request is successful Small, 60.0 60.0
(true) or not (false).

transaction Map<String, Serialized JSON representation of the Small, 60.0 60.0


Context Object> transaction context.

transaction String ID of the transaction context. Small, 60.0 60.0


ContextId

677
Product Configurator Response Bodies

Property Name Type Description Filter Group and Available Version


Version
transactionContext String ID of the context mapping. Small, 60.0 60.0
MappingId

transaction Map<String, Map of the product IDs to the qualification Small, 60.0 60.0
Qualification Configurator context.
Qualification
Context>

uiTreatments Configurator UI Details of the UI treatments that specify the Small, 62.0 62.0
Treatment[] product configuration rule actions to
override the disable or hide behavior in the
UI for product options, product attributes,
and attribute picklist values.

Configuration Get Instance


Output representation of the request to retrieve the configuration instance.

Property Name Type Description Filter Group and Available Version


Version
errors Error Response List of errors, which contains an error code Small, 60.0 60.0
and a message.

success Boolean Indicates whether the call was successful Small, 60.0 60.0
(true) not (false).

transaction Map<String, Transaction JSON payload representing an Small, 60.0 60.0


Object> object in an external system that’s used to
create a session.

Configuration Load Instance


Output representation of the details of the context or session that are returned with a load configuration request.
JSON Example
{
"configuratorMessages": {},
"configuratorUITreatments": [
{
"details": {
"attributeId": "0tjxx0000000007AAA",
"prcId": "0dSxx0000000007EAA",
"stiId": "0QLxx0000004CU0GAM",
"attributePicklistValueId": "0v6xx0000000005AAA"
},
"uiTreatmentScope": "Bundle",
"uiTreatmentTarget": "Attribute_Picklist_Value",

678
Product Configurator Response Bodies

"uiTreatmentType": "Hide"
},
{
"details": {
"stiId": "ref_f0f2da7b_c431_482d_bf4b_599052f3a2e1"
},
"uiTreatmentScope": "Product",
"uiTreatmentTarget": "Component",
"uiTreatmentType": "Disable"
}
],
"contextId": "831f07b01cf0cbd2d046adf5350420f85f0611b4b1e22e183921a063857a1377",
"errors": [],
"productQualifications": {
"01tDU000000EOTCYA4": {
"isQualified": true
}
},
"success": true
}

Property Name Type Description Filter Group and Available Version


Version
configurator Map<String, Map of the product IDs to the list of Small, 60.0 60.0
Messages <Configurator configurator messages. Configurator
Message>> messages are results from any validations,
Business Rules Engines (BRE) calls, or
Salesforce Pricing calls.

configurator Configurator UI Details of the UI treatments that specify the Small, 62.0 62.0
UITreatments Treatment[] product configuration rule actions to
override the disable or hide behavior in the
UI for product options, product attributes,
and attribute picklist values.

contextId String ID of the transaction context. Small, 60.0 60.0

errors Error Response List of errors, which contains an error code Small, 60.0 60.0
and a message.

product Map<String, Map of the product IDs to the execution Small, 60.0 60.0
Qualifications Configurator results from qualification rules.
Qualification
Context>

success Boolean Indicates whether the call was successful Small, 60.0 60.0
(true) not (false).

Configuration Save Details


Output representation of the details of a saved configuration.

679
Product Configurator Response Bodies

JSON example
{
"savedConfigurations": [
{
"data":
"
{
&
q
u
ot
;
L
e
g
al
E
n
t
i
ty
&
q
u
o
t;
:
n
u
l,
&
q
u
ot
;
P
r
o
du
c
t
N
a
me
&
q
u
o
t;
:
&
q
u
ot
;
M
o
n
it
o
r
&
q
uo
t
;
,
&
qu
o
t
;
b
us
i
n
e
sO
b
j
e
ct
T
y
pe
&
qu
o
t
;:
&
q
u
o
t;
Q
u
o
t
eL
i
n
e
I
te
m
&
q
u
ot
;
,
&
q
uo
t
;
P
r
od
u
c
t
&q
u
o
t
;
:&
q
u
o
t
;0
1
t
x0006
i
2
a
AA
&
q
u
ot
;
,
&
q
uo
t
;
I
t
em
I
s
P
r
im
a
r
y
S
eg
m
e
n
t&
q
uo
t
;
:f
a
l
se
,
&q
u
o
t;
L
i
s
t
Pr
i
c
e
&
qu
o
t
;
:
14.
9,
&
q
u
o
t;
V
a
l
i
da
t
i
o
n
Re
s
u
l
t
&q
u
o
t
;
:n
u
l,
&
q
u
o
t;
S
t
a
r
tD
a
t
e
&
qu
o
t
;
:
nu
l,
&
q
u
o
t;
C
o
n
t
ra
c
t
V
o
lu
m
e
P
a
sI
d
&
q
u
ot
;
:
n
u
l,
&
q
u
ot
;
B
i
li
n
g
T
r
ea
t
m
e
n
t&
q
u
o
t
;:
n
u
l,
&
q
u
o
t;
P
e
r
i
od
B
o
u
n
da
r
y
S
ta
r
t
M
o
nt
h
&
q
u
ot
;
:
n
u
l,
&
q
u
ot
;
S
a
l
es
T
r
a
n
sa
c
t
i
on
S
o
u
r
ce
A
se
t
&
q
u
ot
;
:
n
u
l,
&
q
u
ot
;
i
d
&
qu
o
t
;
:
&q
u
o
t
;
0Q
L
x0004
C
9
V
GA
U
&
q
u
ot
;
,
&
q
uo
t
;
P
a
rt
n
e
r
D
is
c
o
u
nt
P
e
r
c
en
t
&
q
u
ot
;
:
1
0
,&
q
u
o
t;
P
r
ic
e
Wa
t
e
rF
a
l&
q
u
o
t
;:
n
u
l,
&
q
u
o
t;
B
i
li
n
g
F
r
eq
u
e
n
c
y&
q
uo
t
;
:
n
ul,
&
q
u
o
t;
P
r
o
d
uc
t
C
o
d
e&
q
u
o
t;
:
&
q
u
ot
;
M
O
01
&
q
u
o
t;
,
&
q
u
ot
;
D
e
r
iv
e
d
P
r
ic
i
n
g
A
tr
i
b
u
te
&
q
u
o
t;
:
f
a
l
se
,
&
q
u
ot
;
T
a
x
Tr
e
a
t
m
en
t
&
q
u
ot
;
:
n
u
l,
&
q
u
ot
;
S
u
b
to
t
a
l
&
qu
o
t
;
:
17
3
9
.
8,
&
q
uo
t
;I
t
e
mR
a
m
pI
d
e
n
t
if
i
e
r
&
qu
o
t
;
:
nu
l,
&
q
u
o
t;
I
t
e
mS
e
g
m
e
nt
N
a
m
e
&q
u
o
t
;
:n
u
l,
&
q
u
o
t;
S
a
l
e
sT
r
a
n
s
ac
t
i
o
nI
t
e
m
A
tr
i
b
u
te
&
q
uo
t
;
:[
{
&q
u
o
t;
A
tr
i
b
u
t
eK
e
y
&
q
uo
t
;
:
&
qu
o
t
;
0t
j
x00000
1AA
&
q
u
o
t;
,
&
q
u
ot
;
A
tr
i
b
u
t
eV
a
l
u
e
&q
u
o
t
;
:&
q
u
o
t
;1
0
8
0
p
Built-in
D
i
s
pl
a
y&
q
uo
t
;,
&
q
uo
t
;P
a
re
n
tR
e
f
er
e
nc
e
&q
u
o
t;
:
&q
u
ot
;
0Q
L
x0004
C
9V
G
AU
&
q
uo
t
;,
&
qu
o
t
;A
tr
i
bu
t
eP
i
cklis
t
Va
l
u
e&
q
uo
t
;:
&
qu
o
t
;0
v
6x00000
1
AA
&q
u
o
t ;
,&
q
u
ot
;
Is
P
ri
c
e
Im
p
ac
ti
n
g
&q
u
ot
;
:f
a
l
se,
&
q
uo
t
;b
u
si
n
e
sO
bj
e
ct
T
y
pe
&
qu
o
t;
:
&
qu
o
t;
Q
uo
t
eL
i
ne
I
t
em
A
tr
ib
u
te
&
q
uo
t
;,
&
qu
o
t
;A
tr
i
bu
te
N
am
e
&
qu
o
t;
:
&
qu
o
t;
D
is
play&
q
u
ot
;
,&
q
uo
t
;i
d
&
qu
o
t;
:
&q
u
ot
;
0
zu
x00000
F
AQ
&q
u
ot
;
,&
q
uo
t
;
Atr
i
but
e
De
f
in
i
t
io
n
Co
d
e&
q
uo
t
;
:n
u
l,
&q
u
o
t;
S
al
e
sT
r
a
ns
a
ct
i
on
I
t
em
A
tr
Pa
r
e
nt
&
qu
o
t;
:
&
qu
o
t;
0
QL
x0004
C
9V
G
AU
&
q
uot
;
}
,{
&
qu
o
t;
A
tr
ib
u
te
K
ey
&
qu
o
t
;:
&
qu
o
t;
0
tj
x00000
9
AA
&q
u
o
t;
,
&q
uot;Atri
b
ut
e
Va
l
ue
&
qu
o
t
;:
&
qu
o
t;
2
4

I
n
c
h
&
q
u
o
t
;
,
&
q
u
o
t;
P
a
r
e
n
t
R
f
e
r
n
c&
q
u
o
t
;
:
&
q
u
o
t
;
0
QL
x
0
4
C
9
V
G
A
U&
q
u
o
t
;
,
&
q
u
o
t
;
Ar
i
b
u
t
e
P
i
c
k
l
s
t
Va
l
u
e
&
q
o
t
;
:
&
q
u
o
t;
0
v
6
x
00
G
A
Q
&
q
u
o
t
;
,
&
q
uo
t
;
I
s
P
r
i
c
e
I
m
p
a
ct
i
n
g
&
q
u
o
t
;
:
f
a
l
s
e,
&
q
u
o
t
;
b
s
i
n
eO
b
j
e
c
t
T
y
p
e
&
q
u
o
t
;:
&
q
u
o
t
;
Q
e
L
i
nI
t
e
m
A
r
i
b
u
t
e
&
qo
t
;
,
&
q
u
o
t
;
A
r
ib
u
t
e
N
a
m
&
q
u
o
t
;
:
&q
u
o
t
;
D
i
s
p
l
a
y
_
S
iz
e
&
q
u
o
t
;
,
&
q
u
o
t
;
id
&
q
u
o
t
;
:
&
q
u
o
t
;
0z
u
x
00
G
A
Q
&
q
u
o
t
;
,
&
q
uo
t
;
A
r
i
b
u
t
e
D
fi
n
t
o
C
d
e
&
q
u
o
t;
:
n
u
l
,
&
q
u
o
t
;
S
al
e
s
T
r
a
n
c
t
i
o
n
Ie
m
A
t
r
P
a
e
n
t
&
q
uo
;
:
&
q
u
o
t
;
0
Q
L
x0
4
C
9
V
G
A
U
&
q
uo
t
;
}
]
,
&
q
u
o
t
;
P
r
i
ce
b
o
k
E
n
t
r
y
&
q
u
o
t;
:
&
q
u
o
t
;
0
1
u
x
08
y
X
0
A
I
&
q
u
o
t;
,
&
q
u
o
t
;
D
i
s
c
o
u
n
tA
m
o
u
n
t
&
q
o
;
:
n
ul
,
&
q
u
o
t
;
P
r
i
c
n
gT
e
r
m
C
o
u
n
t
&
q
o
;:
0
,
&
q
u
o
t
;
S
b
s
c
r
ip
t
o
n
T
e
r
m
U
n
i
t
&
qu
o
;
:
n
u
l
,
&
q
u
o
t
;N
e
U
n
i
t
P
r
c
e
&
q
uo
t
;
:
1
4
.
9
,
&
q
u
o
t;
I
e
m
E
f
c
t
i
v
e
Gr
a
n
t
D
e
&
q
u
o
t
;
:
nu
l
,
&
q
u
o
t
;
P
r
d
uc
t
C
a
e
g
o
r
y
&
q
u
o
t
;:
n
u
l
,
&
q
u
o
t
;
S
a
le
s
T
r
a
n
c
t
i
o
n
A
c
ti
o
n
&
q
u
t
;
:
n
u
l
,&
q
u
o
t
;
S
a
l
e
s
T
r
a
nc
t
i
o
n
A
c
t
i
o
n
T
y
pe
&
q
u
o
t
;
:
n
u
l
,
&
q
uo
t
;
S
a
l
e
s
T
r
a
n
ct
i
o
n
I
e
m
G
r
o
u
p
&
qo
t
;
:
n
u
l
,
&
q
u
o
t
;P
e
r
i
o
d
B
u
n
a
r
y
D&
q
u
o
t
;
:
n
u
l
,
&
qu
o
t
;
S
a
l
e
s
T
r
x
n
I
t
em
D
s
c
r
i
p
t
o
n
&
q
ut
;
:
n
u
l
,
&
q
u
o
t
;
Li
n
e
I
t
m
D
i
s
t
r
b
ui
o
n
T
y
p
e
&
q
u
o
t
;
:
nu
l
,
&
q
u
o
t
;
P
r
a
ti
o
n
P
l
i
c
y
&
q
u
o
t
;:
n
u
l
,
&
q
u
o
t
;
C
nr
a
c
t
D
i
s
o
u
n
t
T
y
pe
&
q
u
o
t
;
:
n
u
l
,
&
q
uo
t
;
T
r
a
n
s
c
t
i
o
n
Ty
p
e
&
q
u
o
t
;
:
n
u
l
,
&q
u
o
t
;
P
a
r
e
n
t
R
f
er
n
c
&
q
u
o
t
;
:
&
q
u
ot
;
0
Q
x
0
4
C9
2
A
E
&
q
u
o
t
;
,
&
q
u
ot
;
D
i
s
c
o
u
n
t
&
q
o;
:
n
u
l
,
&
q
u
o
t
;
P
r
ic
n
g
T
e
r
m
U
n
i
t
&
q
uo
;
:
n
u
l
,
&
q
u
o
t
;
Pr
d
u
c
t
S
e
l
i
n
g
M
od
e
l
&
q
u
o
t
;
:
&
q
u
o
t
;0
j
P
x
00
1
E
A
&
q
u
o
t
;
,
&
q
uo
t
;
P
r
i
c
n
g
S
o
u
r
ce
&
q
u
o
t
;
:
n
u
l
,
&
q
uo
t
;
S
c
k
K
e
p
i
n
gU
t
&
q
u
o
;
:
n
u
l
,&
q
u
o
t
;
P
a
r
n
e
Ui
t
P
r
c
e
&
q
u
o
t
;
:
1
30
.
4
9
1
,
&
q
u
o
t
;
I
em
T
o
t
a
l
A
d
j
u
s
t
m
e
nA
o
u
n
t
&
q
o
;
:
0
,&
q
u
o
t
;
S
a
l
e
s
T
r
a
nc
t
i
o
n
I
e
m
S
o
u
r
ce
&
q
u
o
t
;
:
&
q
u
o
t
;
0
QL
x
0
4
C
9
V
G
AU
&
q
u
o
t
;
,
&
q
u
o
t
;
Cn
r
a
c
t
A
r
i
b
u
t
eP
a
s
I
d
&
q
u
o
t
;
:
n
u
l,
&
q
u
o
t
;
S
b
s
c
r
i
pt
o
n
T
e
r
m
&
q
u
o
t
;
:
nu
l
,
&
q
u
o
t
;
S
e
l
in
g
M
o
d
e
l
T
y
p
&
q
u
o
t;
:
&
q
u
o
t
;
O
n
e
T
i
m&
q
u
o
t
;
,
&
q
u
o
t
;
E
n
dQ
u
a
t
i
y
&
q
u
o
t
;
:1
2
,
&
q
u
o
t
;
N
e
T
o
t
al
P
r
i
c
e
&
q
u
o
t
;
:
1
73
9
.
8
,
&
q
u
o
t
;
T
al
L
i
n
e
A
m
o
u
n
t
&
q
o;
:
1
7
3
9
.
8
,
&
q
u
o
t;
I
e
m
S
g
e
n
t
T
y
p
e&
q
u
o
t
;
:
n
u
l
,
&
q
uo
t
;
P
r
d
u
c
t
B
a
s
e
d
On
&
q
u
o
t
;
:
&
q
u
o
t
;
1B
x
0
2
C
1
n
q
E
AC
&
u
o
t
;
,
&
q
u
o
t
;
D
el
t
d
&
q
u
o
t
;
:
f
a
ls
e
,
&
q
u
o
t
;
B
i
l
n
gR
e
f
r
n
c
e
&
q
u
o
t
;:
n
u
l
,
&
q
u
o
t
;
A
r
e
Pa
t
i
l
P
e
r
i
o
d
s
A
lo
w
e
d
&
q
u
o
t
;
:
f
a
l
se
,
&
q
u
o
t
;
I
e
m
R
c
or
d
e
P
i
c
e
&
q
u
o
t
;:
n
u
l
,
&
q
u
o
t
;
C
so
m
P
r
d
u
c
t
N
a
m
e
&
qu
o
t
;
:
n
u
l
,
&
q
u
o
t
;I
e
m
S
g
e
n
t
I
di
f
e
r
&
q
u
o
t
;
:
n
u
l,
&
q
u
o
t
;
S
a
l
e
s
T
r
an
c
t
i
o
n
I
e
m
P
a
rn
t
&
q
u
o
;
:
&
q
u
o
t
;0
Q
x
0
4
C
9
2A
E
&
q
u
o
t
;
,
&
q
u
o
t
;Q
a
n
t
i
y
&
q
u
o
t
;
:
12
,
&
q
u
o
t
;
P
e
r
i
o
d
Bu
n
a
r
y
&
q
u
o
t
;
:
n
ul
,
&
q
u
o
t
;
C
n
r
a
ct
D
i
s
o
u
n
t
V
a
l
u
e
&q
o
t
;
:
n
u
l
,
&
q
u
o
t;
L
i
n
e
I
t
m
D
i
s
c
o
un
t
V
a
l
u
e
&
q
o
t
;
:
n
ul
,
&
q
u
o
t
;
C
n
r
ac
t
I
d
&
q
u
o
t
;
:
n
u
l
,&
q
u
o
t
;
E
n
d
D
a
t
e
&
qu
o
t
;
:
n
u
l
,
&
q
u
o
t
;I
e
m
G
r
o
u
p
S
m
a
ry
S
u
b
t
o
a
l
&
q
u
o
t
;
:n
u
l
,
&
q
u
o
t
;
I
s
C
on
t
r
a
c
e
d
&
q
u
o
t
;
:
fa
l
s
e
,
&
q
u
o
t
;
U
n
iP
r
c
e
&
q
u
o
t
;
:
1
4
.9
,
&
q
u
o
t
;
S
a
r
t
Qu
n
i
t
y
&
q
u
o
t
;
:
n
ul
,
&
q
u
o
t
;
C
n
r
ac
t
P
i
e
&
q
u
o
t
;
:
n
ul
,
&
q
u
o
t
;
T
a
l
Pr
i
c
e
&
q
u
o
t
;
:
1
7
3
9
.8
,
&
q
u
o
t
;
L
i
n
e
I
tm
D
i
s
c
o
u
n
t
T
y
p
e
&
qu
o
t
;
:
n
u
l
,
&
q
u
o
t
;I
e
m
P
a
t
h
&
q
u
o
t
;
:&
q
u
o
t
;
0
1
x
06
i
2
a
A
&
q
u
o
t
;
,&
q
u
o
t
;
p
r
d
u
c
t
K
e
y&
q
u
o
t
;
:
[
&
q
u
o
t
;
0Q
L
x
0
4
C
9
V
G
AU
&
q
u
o
t
;
]
}
"
,

"description": "This configuration is for cline XYZ",


"id": "1Nyxx0000004CFUCA2",
"name": "Client XYZ Favorite",
"referenceRecordId": "01txx0000006iCFAAY"
},
{
"data":
"
{
&
q
u
ot
;
L
e
g
al
E
n
t
i
ty
&
q
u
o
t;
:
n
u
l,
&
q
u
ot
;
P
r
o
du
c
t
N
a
me
&
q
u
o
t;
:
&
q
u
ot
;
M
o
n
it
o
r
&
q
uo
t
;
,
&
qu
o
t
;
b
us
i
n
e
sO
b
j
e
ct
T
y
pe
&
qu
o
t
;:
&
q
u
o
t;
Q
u
o
t
eL
i
n
e
I
te
m
&
q
u
ot
;
,
&
q
uo
t
;
P
r
od
u
c
t
&q
u
o
t
;
:&
q
u
o
t
;0
1
t
x0006
i
2
a
AA
&
q
u
ot
;
,
&
q
uo
t
;
I
t
em
I
s
P
r
im
a
r
y
S
eg
m
e
n
t&
q
uo
t
;
:f
a
l
se
,
&q
u
o
t;
L
i
s
t
Pr
i
c
e
&
qu
o
t
;
:
14.
9,
&
q
u
o
t;
V
a
l
i
da
t
i
o
n
Re
s
u
l
t
&q
u
o
t
;
:n
u
l,
&
q
u
o
t;
S
t
a
r
tD
a
t
e
&
qu
o
t
;
:
nu
l,
&
q
u
o
t;
C
o
n
t
ra
c
t
V
o
lu
m
e
P
a
sI
d
&
q
u
ot
;
:
n
u
l,
&
q
u
ot
;
B
i
li
n
g
T
r
ea
t
m
e
n
t&
q
u
o
t
;:
n
u
l,
&
q
u
o
t;
P
e
r
i
od
B
o
u
n
da
r
y
S
ta
r
t
M
o
nt
h
&
q
u
ot
;
:
n
u
l,
&
q
u
ot
;
S
a
l
es
T
r
a
n
sa
c
t
i
on
S
o
u
r
ce
A
se
t
&
q
u
ot
;
:
n
u
l,
&
q
u
ot
;
i
d
&
qu
o
t
;
:
&q
u
o
t
;
0Q
L
x0004
C
9
V
GA
U
&
q
u
ot
;
,
&
q
uo
t
;
P
a
rt
n
e
r
D
is
c
o
u
nt
P
e
r
c
en
t
&
q
u
ot
;
:
1
0
,&
q
u
o
t;
P
r
ic
e
Wa
t
e
rF
a
l&
q
u
o
t
;:
n
u
l,
&
q
u
o
t;
B
i
li
n
g
F
r
eq
u
e
n
c
y&
q
uo
t
;
:
n
ul,
&
q
u
o
t;
P
r
o
d
uc
t
C
o
d
e&
q
u
o
t;
:
&
q
u
ot
;
M
O
01
&
q
u
o
t;
,
&
q
u
ot
;
D
e
r
iv
e
d
P
r
ic
i
n
g
A
tr
i
b
u
te
&
q
u
o
t;
:
f
a
l
se
,
&
q
u
ot
;
T
a
x
Tr
e
a
t
m
en
t
&
q
u
ot
;
:
n
u
l,
&
q
u
ot
;
S
u
b
to
t
a
l
&
qu
o
t
;
:
17
3
9
.
8,
&
q
uo
t
;I
t
e
mR
a
m
pI
d
e
n
t
if
i
e
r
&
qu
o
t
;
:
nu
l,
&
q
u
o
t;
I
t
e
mS
e
g
m
e
nt
N
a
m
e
&q
u
o
t
;
:n
u
l,
&
q
u
o
t;
S
a
l
e
sT
r
a
n
s
ac
t
i
o
nI
t
e
m
A
tr
i
b
u
te
&
q
uo
t
;
:[
{
&q
u
o
t;
A
tr
i
b
u
t
eK
e
y
&
q
uo
t
;
:
&
qu
o
t
;
0t
j
x00000
1AA
&
q
u
o
t;
,
&
q
u
ot
;
A
tr
i
b
u
t
eV
a
l
u
e
&q
u
o
t
;
:&
q
u
o
t
;1
0
8
0
p
Built-in
D
i
s
pl
a
y&
q
uo
t
;,
&
q
uo
t
;P
a
re
n
tR
e
f
er
e
nc
e
&q
u
o
t;
:
&q
u
ot
;
0Q
L
x0004
C
9V
G
AU
&
q
uo
t
;,
&
qu
o
t
;A
tr
i
bu
t
eP
i
cklis
t
Va
l
u
e&
q
uo
t
;:
&
qu
o
t
;0
v
6x00000
1
AA
&q
u
o
t ;
,&
q
u
ot
;
Is
P
ri
c
e
Im
p
ac
ti
n
g
&q
u
ot
;
:f
a
l
se,
&
q
uo
t
;b
u
si
n
e
sO
bj
e
ct
T
y
pe
&
qu
o
t;
:
&
qu
o
t;
Q
uo
t
eL
i
ne
I
t
em
A
tr
ib
u
te
&
q
uo
t
;,
&
qu
o
t
;A
tr
i
bu
te
N
am
e
&
qu
o
t;
:
&
qu
o
t;
D
is
play&
q
u
ot
;
,&
q
uo
t
;i
d
&
qu
o
t;
:
&q
u
ot
;
0
zu
x00000
F
AQ
&q
u
ot
;
,&
q
uo
t
;
Atr
i
but
e
De
f
in
i
t
io
n
Co
d
e&
q
uo
t
;
:n
u
l,
&q
u
o
t;
S
al
e
sT
r
a
ns
a
ct
i
on
I
t
em
A
tr
Pa
r
e
nt
&
qu
o
t;
:
&
qu
o
t;
0
QL
x0004
C
9V
G
AU
&
q
uot
;
}
,{
&
qu
o
t;
A
tr
ib
u
te
K
ey
&
qu
o
t
;:
&
qu
o
t;
0
tj
x00000
9
AA
&q
u
o
t;
,
&q
uot;Atri
b
ut
e
Va
l
ue
&
qu
o
t
;:
&
qu
o
t;
2
4

I
n
c
h
&
q
u
o
t
;
,
&
q
u
o
t;
P
a
r
e
n
t
R
f
e
r
n
c&
q
u
o
t
;
:
&
q
u
o
t
;
0
QL
x
0
4
C
9
V
G
A
U&
q
u
o
t
;
,
&
q
u
o
t
;
Ar
i
b
u
t
e
P
i
c
k
l
s
t
Va
l
u
e
&
q
o
t
;
:
&
q
u
o
t;
0
v
6
x
00
G
A
Q
&
q
u
o
t
;
,
&
q
uo
t
;
I
s
P
r
i
c
e
I
m
p
a
ct
i
n
g
&
q
u
o
t
;
:
f
a
l
s
e,
&
q
u
o
t
;
b
s
i
n
eO
b
j
e
c
t
T
y
p
e
&
q
u
o
t
;:
&
q
u
o
t
;
Q
e
L
i
nI
t
e
m
A
r
i
b
u
t
e
&
qo
t
;
,
&
q
u
o
t
;
A
r
ib
u
t
e
N
a
m
&
q
u
o
t
;
:
&q
u
o
t
;
D
i
s
p
l
a
y
_
S
iz
e
&
q
u
o
t
;
,
&
q
u
o
t
;
id
&
q
u
o
t
;
:
&
q
u
o
t
;
0z
u
x
00
G
A
Q
&
q
u
o
t
;
,
&
q
uo
t
;
A
r
i
b
u
t
e
D
fi
n
t
o
C
d
e
&
q
u
o
t;
:
n
u
l
,
&
q
u
o
t
;
S
al
e
s
T
r
a
n
c
t
i
o
n
Ie
m
A
t
r
P
a
e
n
t
&
q
uo
;
:
&
q
u
o
t
;
0
Q
L
x0
4
C
9
V
G
A
U
&
q
uo
t
;
}
]
,
&
q
u
o
t
;
P
r
i
ce
b
o
k
E
n
t
r
y
&
q
u
o
t;
:
&
q
u
o
t
;
0
1
u
x
08
y
X
0
A
I
&
q
u
o
t;
,
&
q
u
o
t
;
D
i
s
c
o
u
n
tA
m
o
u
n
t
&
q
o
;
:
n
ul
,
&
q
u
o
t
;
P
r
i
c
n
gT
e
r
m
C
o
u
n
t
&
q
o
;:
0
,
&
q
u
o
t
;
S
b
s
c
r
ip
t
o
n
T
e
r
m
U
n
i
t
&
qu
o
;
:
n
u
l
,
&
q
u
o
t
;N
e
U
n
i
t
P
r
c
e
&
q
uo
t
;
:
1
4
.
9
,
&
q
u
o
t;
I
e
m
E
f
c
t
i
v
e
Gr
a
n
t
D
e
&
q
u
o
t
;
:
nu
l
,
&
q
u
o
t
;
P
r
d
uc
t
C
a
e
g
o
r
y
&
q
u
o
t
;:
n
u
l
,
&
q
u
o
t
;
S
a
le
s
T
r
a
n
c
t
i
o
n
A
c
ti
o
n
&
q
u
t
;
:
n
u
l
,&
q
u
o
t
;
S
a
l
e
s
T
r
a
nc
t
i
o
n
A
c
t
i
o
n
T
y
pe
&
q
u
o
t
;
:
n
u
l
,
&
q
uo
t
;
S
a
l
e
s
T
r
a
n
ct
i
o
n
I
e
m
G
r
o
u
p
&
qo
t
;
:
n
u
l
,
&
q
u
o
t
;P
e
r
i
o
d
B
u
n
a
r
y
D&
q
u
o
t
;
:
n
u
l
,
&
qu
o
t
;
S
a
l
e
s
T
r
x
n
I
t
em
D
s
c
r
i
p
t
o
n
&
q
ut
;
:
n
u
l
,
&
q
u
o
t
;
Li
n
e
I
t
m
D
i
s
t
r
b
ui
o
n
T
y
p
e
&
q
u
o
t
;
:
nu
l
,
&
q
u
o
t
;
P
r
a
ti
o
n
P
l
i
c
y
&
q
u
o
t
;:
n
u
l
,
&
q
u
o
t
;
C
nr
a
c
t
D
i
s
o
u
n
t
T
y
pe
&
q
u
o
t
;
:
n
u
l
,
&
q
uo
t
;
T
r
a
n
s
c
t
i
o
n
Ty
p
e
&
q
u
o
t
;
:
n
u
l
,
&q
u
o
t
;
P
a
r
e
n
t
R
f
er
n
c
&
q
u
o
t
;
:
&
q
u
ot
;
0
Q
x
0
4
C9
2
A
E
&
q
u
o
t
;
,
&
q
u
ot
;
D
i
s
c
o
u
n
t
&
q
o;
:
n
u
l
,
&
q
u
o
t
;
P
r
ic
n
g
T
e
r
m
U
n
i
t
&
q
uo
;
:
n
u
l
,
&
q
u
o
t
;
Pr
d
u
c
t
S
e
l
i
n
g
M
od
e
l
&
q
u
o
t
;
:
&
q
u
o
t
;0
j
P
x
00
1
E
A
&
q
u
o
t
;
,
&
q
uo
t
;
P
r
i
c
n
g
S
o
u
r
ce
&
q
u
o
t
;
:
n
u
l
,
&
q
uo
t
;
S
c
k
K
e
p
i
n
gU
t
&
q
u
o
;
:
n
u
l
,&
q
u
o
t
;
P
a
r
n
e
Ui
t
P
r
c
e
&
q
u
o
t
;
:
1
30
.
4
9
1
,
&
q
u
o
t
;
I
em
T
o
t
a
l
A
d
j
u
s
t
m
e
nA
o
u
n
t
&
q
o
;
:
0
,&
q
u
o
t
;
S
a
l
e
s
T
r
a
nc
t
i
o
n
I
e
m
S
o
u
r
ce
&
q
u
o
t
;
:
&
q
u
o
t
;
0
QL
x
0
4
C
9
V
G
AU
&
q
u
o
t
;
,
&
q
u
o
t
;
Cn
r
a
c
t
A
r
i
b
u
t
eP
a
s
I
d
&
q
u
o
t
;
:
n
u
l,
&
q
u
o
t
;
S
b
s
c
r
i
pt
o
n
T
e
r
m
&
q
u
o
t
;
:
nu
l
,
&
q
u
o
t
;
S
e
l
in
g
M
o
d
e
l
T
y
p
&
q
u
o
t;
:
&
q
u
o
t
;
O
n
e
T
i
m&
q
u
o
t
;
,
&
q
u
o
t
;
E
n
dQ
u
a
t
i
y
&
q
u
o
t
;
:1
2
,
&
q
u
o
t
;
N
e
T
o
t
al
P
r
i
c
e
&
q
u
o
t
;
:
1
73
9
.
8
,
&
q
u
o
t
;
T
al
L
i
n
e
A
m
o
u
n
t
&
q
o;
:
1
7
3
9
.
8
,
&
q
u
o
t;
I
e
m
S
g
e
n
t
T
y
p
e&
q
u
o
t
;
:
n
u
l
,
&
q
uo
t
;
P
r
d
u
c
t
B
a
s
e
d
On
&
q
u
o
t
;
:
&
q
u
o
t
;
1B
x
0
2
C
1
n
q
E
AC
&
u
o
t
;
,
&
q
u
o
t
;
D
el
t
d
&
q
u
o
t
;
:
f
a
ls
e
,
&
q
u
o
t
;
B
i
l
n
gR
e
f
r
n
c
e
&
q
u
o
t
;:
n
u
l
,
&
q
u
o
t
;
A
r
e
Pa
t
i
l
P
e
r
i
o
d
s
A
lo
w
e
d
&
q
u
o
t
;
:
f
a
l
se
,
&
q
u
o
t
;
I
e
m
R
c
or
d
e
P
i
c
e
&
q
u
o
t
;:
n
u
l
,
&
q
u
o
t
;
C
so
m
P
r
d
u
c
t
N
a
m
e
&
qu
o
t
;
:
n
u
l
,
&
q
u
o
t
;I
e
m
S
g
e
n
t
I
di
f
e
r
&
q
u
o
t
;
:
n
u
l,
&
q
u
o
t
;
S
a
l
e
s
T
r
an
c
t
i
o
n
I
e
m
P
a
rn
t
&
q
u
o
;
:
&
q
u
o
t
;0
Q
x
0
4
C
9
2A
E
&
q
u
o
t
;
,
&
q
u
o
t
;Q
a
n
t
i
y
&
q
u
o
t
;
:
12
,
&
q
u
o
t
;
P
e
r
i
o
d
Bu
n
a
r
y
&
q
u
o
t
;
:
n
ul
,
&
q
u
o
t
;
C
n
r
a
ct
D
i
s
o
u
n
t
V
a
l
u
e
&q
o
t
;
:
n
u
l
,
&
q
u
o
t;
L
i
n
e
I
t
m
D
i
s
c
o
un
t
V
a
l
u
e
&
q
o
t
;
:
n
ul
,
&
q
u
o
t
;
C
n
r
ac
t
I
d
&
q
u
o
t
;
:
n
u
l
,&
q
u
o
t
;
E
n
d
D
a
t
e
&
qu
o
t
;
:
n
u
l
,
&
q
u
o
t
;I
e
m
G
r
o
u
p
S
m
a
ry
S
u
b
t
o
a
l
&
q
u
o
t
;
:n
u
l
,
&
q
u
o
t
;
I
s
C
on
t
r
a
c
e
d
&
q
u
o
t
;
:
fa
l
s
e
,
&
q
u
o
t
;
U
n
iP
r
c
e
&
q
u
o
t
;
:
1
4
.9
,
&
q
u
o
t
;
S
a
r
t
Qu
n
i
t
y
&
q
u
o
t
;
:
n
ul
,
&
q
u
o
t
;
C
n
r
ac
t
P
i
e
&
q
u
o
t
;
:
n
ul
,
&
q
u
o
t
;
T
a
l
Pr
i
c
e
&
q
u
o
t
;
:
1
7
3
9
.8
,
&
q
u
o
t
;
L
i
n
e
I
tm
D
i
s
c
o
u
n
t
T
y
p
e
&
qu
o
t
;
:
n
u
l
,
&
q
u
o
t
;I
e
m
P
a
t
h
&
q
u
o
t
;
:&
q
u
o
t
;
0
1
x
06
i
2
a
A
&
q
u
o
t
;
,&
q
u
o
t
;
p
r
d
u
c
t
K
e
y&
q
u
o
t
;
:
[
&
q
u
o
t
;
0Q
L
x
0
4
C
9
V
G
AU
&
q
u
o
t
;
]
}
"
,

"description": "This configuration is for cline XYZ",


"id": "1Nyxx0000004CH6CAM",
"name": "Client XYZ Favorite",
"referenceRecordId": "01txx0000006iCFAAY"
}
]
}

Property Name Type Description Filter Group and Available Version


Version
data String JSON object that contains the details of the Small, 63.0 63.0
sales transaction, formatted as a string.

description String Description of the saved configuration. Small, 63.0 63.0

id String ID of the saved configuration. Small, 63.0 63.0

name String Name of the saved configuration. Small, 63.0 63.0

referenceRecord String ID of the record that the saved configuration Small, 63.0 63.0
Id belongs to.

Configuration Record Save


Output representation of the details of a saved configuration.

680
Product Configurator Response Bodies

JSON example
This example shows a sample when the save operation is successful.
{
"errors": [],
"id": "1Nyxx0000004CNYCA2"
}

This example shows a sample when the save operation has errors.
{
"errors": [{
"code": "INTERNAL_SERVER_ERROR",
"message": "INVALID_REFERENCEOBJECTID"
}]
}

Property Name Type Description Filter Group and Available Version


Version
errors Error Response List of errors that contains a message and Small, 63.0 63.0
an error code.

id String ID of the configuration that's saved. Small, 63.0 63.0


This property isn't shown if the operation
has errors.

Configuration List
Output representation of the details of the saved configuration.
JSON example
{
"errors": [],
"savedConfigurations": [
{
"data":
"
{
&
q
u
ot
;
L
e
g
al
E
n
t
i
ty
&
q
u
o
t;
:
n
u
l,
&
q
u
ot
;
P
r
o
du
c
t
N
a
me
&
q
u
o
t;
:
&
q
u
ot
;
M
o
n
it
o
r
&
q
uo
t
;
,
&
qu
o
t
;
b
us
i
n
e
sO
b
j
e
ct
T
y
pe
&
qu
o
t
;:
&
q
u
o
t;
Q
u
o
t
eL
i
n
e
I
te
m
&
q
u
ot
;
,
&
q
uo
t
;
P
r
od
u
c
t
&q
u
o
t
;
:&
q
u
o
t
;0
1
t
x0006
i
2
a
AA
&
q
u
ot
;
,
&
q
uo
t
;
I
t
em
I
s
P
r
im
a
r
y
S
eg
m
e
n
t&
q
uo
t
;
:f
a
l
se
,
&q
u
o
t;
L
i
s
t
Pr
i
c
e
&
qu
o
t
;
:
14.
9,
&
q
u
o
t;
V
a
l
i
da
t
i
o
n
Re
s
u
l
t
&q
u
o
t
;
:n
u
l,
&
q
u
o
t;
S
t
a
r
tD
a
t
e
&
qu
o
t
;
:
nu
l,
&
q
u
o
t;
C
o
n
t
ra
c
t
V
o
lu
m
e
P
a
sI
d
&
q
u
ot
;
:
n
u
l,
&
q
u
ot
;
B
i
li
n
g
T
r
ea
t
m
e
n
t&
q
u
o
t
;:
n
u
l,
&
q
u
o
t;
P
e
r
i
od
B
o
u
n
da
r
y
S
ta
r
t
M
o
nt
h
&
q
u
ot
;
:
n
u
l,
&
q
u
ot
;
S
a
l
es
T
r
a
n
sa
c
t
i
on
S
o
u
r
ce
A
se
t
&
q
u
ot
;
:
n
u
l,
&
q
u
ot
;
i
d
&
qu
o
t
;
:
&q
u
o
t
;
0Q
L
x0004
C
9
V
GA
U
&
q
u
ot
;
,
&
q
uo
t
;
P
a
rt
n
e
r
D
is
c
o
u
nt
P
e
r
c
en
t
&
q
u
ot
;
:
1
0
,&
q
u
o
t;
P
r
ic
e
Wa
t
e
rF
a
l&
q
u
o
t
;:
n
u
l,
&
q
u
o
t;
B
i
li
n
g
F
r
eq
u
e
n
c
y&
q
uo
t
;
:
n
ul,
&
q
u
o
t;
P
r
o
d
uc
t
C
o
d
e&
q
u
o
t;
:
&
q
u
ot
;
M
O
01
&
q
u
o
t;
,
&
q
u
ot
;
D
e
r
iv
e
d
P
r
ic
i
n
g
A
tr
i
b
u
te
&
q
u
o
t;
:
f
a
l
se
,
&
q
u
ot
;
T
a
x
Tr
e
a
t
m
en
t
&
q
u
ot
;
:
n
u
l,
&
q
u
ot
;
S
u
b
to
t
a
l
&
qu
o
t
;
:
17
3
9
.
8,
&
q
uo
t
;I
t
e
mR
a
m
pI
d
e
n
t
if
i
e
r
&
qu
o
t
;
:
nu
l,
&
q
u
o
t;
I
t
e
mS
e
g
m
e
nt
N
a
m
e
&q
u
o
t
;
:n
u
l,
&
q
u
o
t;
S
a
l
e
sT
r
a
n
s
ac
t
i
o
nI
t
e
m
A
tr
i
b
u
te
&
q
uo
t
;
:[
{
&q
u
o
t;
A
tr
i
b
u
t
eK
e
y
&
q
uo
t
;
:
&
qu
o
t
;
0t
j
x00000
1AA
&
q
u
o
t;
,
&
q
u
ot
;
A
tr
i
b
u
t
eV
a
l
u
e
&q
u
o
t
;
:&
q
u
o
t
;1
0
8
0
p
Built-in
D
i
s
pl
a
y&
q
uo
t
;,
&
q
uo
t
;P
a
re
n
tR
e
f
er
e
nc
e
&q
u
o
t;
:
&q
u
ot
;
0Q
L
x0004
C
9V
G
AU
&
q
uo
t
;,
&
qu
o
t
;A
tr
i
bu
t
eP
i
cklis
t
Va
l
u
e&
q
uo
t
;:
&
qu
o
t
;0
v
6x00000
1
AA
&q
u
o
t ;
,&
q
u
ot
;
Is
P
ri
c
e
Im
p
ac
ti
n
g
&q
u
ot
;
:f
a
l
se,
&
q
uo
t
;b
u
si
n
e
sO
bj
e
ct
T
y
pe
&
qu
o
t;
:
&
qu
o
t;
Q
uo
t
eL
i
ne
I
t
em
A
tr
ib
u
te
&
q
uo
t
;,
&
qu
o
t
;A
tr
i
bu
te
N
am
e
&
qu
o
t;
:
&
qu
o
t;
D
is
play&
q
u
ot
;
,&
q
uo
t
;i
d
&
qu
o
t;
:
&q
u
ot
;
0
zu
x00000
F
AQ
&q
u
ot
;
,&
q
uo
t
;
Atr
i
but
e
De
f
in
i
t
io
n
Co
d
e&
q
uo
t
;
:n
u
l,
&q
u
o
t;
S
al
e
sT
r
a
ns
a
ct
i
on
I
t
em
A
tr
Pa
r
e
nt
&
qu
o
t;
:
&
qu
o
t;
0
QL
x0004
C
9V
G
AU
&
q
uot
;
}
,{
&
qu
o
t;
A
tr
ib
u
te
K
ey
&
qu
o
t
;:
&
qu
o
t;
0
tj
x00000
9
AA
&q
u
o
t;
,
&q
uot;Atri
b
ut
e
Va
l
ue
&
qu
o
t
;:
&
qu
o
t;
2
4

I
n
c
h
&
q
u
o
t
;
,
&
q
u
o
t;
P
a
r
e
n
t
R
f
e
r
n
c&
q
u
o
t
;
:
&
q
u
o
t
;
0
QL
x
0
4
C
9
V
G
A
U&
q
u
o
t
;
,
&
q
u
o
t
;
Ar
i
b
u
t
e
P
i
c
k
l
s
t
Va
l
u
e
&
q
o
t
;
:
&
q
u
o
t;
0
v
6
x
00
G
A
Q
&
q
u
o
t
;
,
&
q
uo
t
;
I
s
P
r
i
c
e
I
m
p
a
ct
i
n
g
&
q
u
o
t
;
:
f
a
l
s
e,
&
q
u
o
t
;
b
s
i
n
eO
b
j
e
c
t
T
y
p
e
&
q
u
o
t
;:
&
q
u
o
t
;
Q
e
L
i
nI
t
e
m
A
r
i
b
u
t
e
&
qo
t
;
,
&
q
u
o
t
;
A
r
ib
u
t
e
N
a
m
&
q
u
o
t
;
:
&q
u
o
t
;
D
i
s
p
l
a
y
_
S
iz
e
&
q
u
o
t
;
,
&
q
u
o
t
;
id
&
q
u
o
t
;
:
&
q
u
o
t
;
0z
u
x
00
G
A
Q
&
q
u
o
t
;
,
&
q
uo
t
;
A
r
i
b
u
t
e
D
fi
n
t
o
C
d
e
&
q
u
o
t;
:
n
u
l
,
&
q
u
o
t
;
S
al
e
s
T
r
a
n
c
t
i
o
n
Ie
m
A
t
r
P
a
e
n
t
&
q
uo
;
:
&
q
u
o
t
;
0
Q
L
x0
4
C
9
V
G
A
U
&
q
uo
t
;
}
]
,
&
q
u
o
t
;
P
r
i
ce
b
o
k
E
n
t
r
y
&
q
u
o
t;
:
&
q
u
o
t
;
0
1
u
x
08
y
X
0
A
I
&
q
u
o
t;
,
&
q
u
o
t
;
D
i
s
c
o
u
n
tA
m
o
u
n
t
&
q
o
;
:
n
ul
,
&
q
u
o
t
;
P
r
i
c
n
gT
e
r
m
C
o
u
n
t
&
q
o
;:
0
,
&
q
u
o
t
;
S
b
s
c
r
ip
t
o
n
T
e
r
m
U
n
i
t
&
qu
o
;
:
n
u
l
,
&
q
u
o
t
;N
e
U
n
i
t
P
r
c
e
&
q
uo
t
;
:
1
4
.
9
,
&
q
u
o
t;
I
e
m
E
f
c
t
i
v
e
Gr
a
n
t
D
e
&
q
u
o
t
;
:
nu
l
,
&
q
u
o
t
;
P
r
d
uc
t
C
a
e
g
o
r
y
&
q
u
o
t
;:
n
u
l
,
&
q
u
o
t
;
S
a
le
s
T
r
a
n
c
t
i
o
n
A
c
ti
o
n
&
q
u
t
;
:
n
u
l
,&
q
u
o
t
;
S
a
l
e
s
T
r
a
nc
t
i
o
n
A
c
t
i
o
n
T
y
pe
&
q
u
o
t
;
:
n
u
l
,
&
q
uo
t
;
S
a
l
e
s
T
r
a
n
ct
i
o
n
I
e
m
G
r
o
u
p
&
qo
t
;
:
n
u
l
,
&
q
u
o
t
;P
e
r
i
o
d
B
u
n
a
r
y
D&
q
u
o
t
;
:
n
u
l
,
&
qu
o
t
;
S
a
l
e
s
T
r
x
n
I
t
em
D
s
c
r
i
p
t
o
n
&
q
ut
;
:
n
u
l
,
&
q
u
o
t
;
Li
n
e
I
t
m
D
i
s
t
r
b
ui
o
n
T
y
p
e
&
q
u
o
t
;
:
nu
l
,
&
q
u
o
t
;
P
r
a
ti
o
n
P
l
i
c
y
&
q
u
o
t
;:
n
u
l
,
&
q
u
o
t
;
C
nr
a
c
t
D
i
s
o
u
n
t
T
y
pe
&
q
u
o
t
;
:
n
u
l
,
&
q
uo
t
;
T
r
a
n
s
c
t
i
o
n
Ty
p
e
&
q
u
o
t
;
:
n
u
l
,
&q
u
o
t
;
P
a
r
e
n
t
R
f
er
n
c
&
q
u
o
t
;
:
&
q
u
ot
;
0
Q
x
0
4
C9
2
A
E
&
q
u
o
t
;
,
&
q
u
ot
;
D
i
s
c
o
u
n
t
&
q
o;
:
n
u
l
,
&
q
u
o
t
;
P
r
ic
n
g
T
e
r
m
U
n
i
t
&
q
uo
;
:
n
u
l
,
&
q
u
o
t
;
Pr
d
u
c
t
S
e
l
i
n
g
M
od
e
l
&
q
u
o
t
;
:
&
q
u
o
t
;0
j
P
x
00
1
E
A
&
q
u
o
t
;
,
&
q
uo
t
;
P
r
i
c
n
g
S
o
u
r
ce
&
q
u
o
t
;
:
n
u
l
,
&
q
uo
t
;
S
c
k
K
e
p
i
n
gU
t
&
q
u
o
;
:
n
u
l
,&
q
u
o
t
;
P
a
r
n
e
Ui
t
P
r
c
e
&
q
u
o
t
;
:
1
30
.
4
9
1
,
&
q
u
o
t
;
I
em
T
o
t
a
l
A
d
j
u
s
t
m
e
nA
o
u
n
t
&
q
o
;
:
0
,&
q
u
o
t
;
S
a
l
e
s
T
r
a
nc
t
i
o
n
I
e
m
S
o
u
r
ce
&
q
u
o
t
;
:
&
q
u
o
t
;
0
QL
x
0
4
C
9
V
G
AU
&
q
u
o
t
;
,
&
q
u
o
t
;
Cn
r
a
c
t
A
r
i
b
u
t
eP
a
s
I
d
&
q
u
o
t
;
:
n
u
l,
&
q
u
o
t
;
S
b
s
c
r
i
pt
o
n
T
e
r
m
&
q
u
o
t
;
:
nu
l
,
&
q
u
o
t
;
S
e
l
in
g
M
o
d
e
l
T
y
p
&
q
u
o
t;
:
&
q
u
o
t
;
O
n
e
T
i
m&
q
u
o
t
;
,
&
q
u
o
t
;
E
n
dQ
u
a
t
i
y
&
q
u
o
t
;
:1
2
,
&
q
u
o
t
;
N
e
T
o
t
al
P
r
i
c
e
&
q
u
o
t
;
:
1
73
9
.
8
,
&
q
u
o
t
;
T
al
L
i
n
e
A
m
o
u
n
t
&
q
o;
:
1
7
3
9
.
8
,
&
q
u
o
t;
I
e
m
S
g
e
n
t
T
y
p
e&
q
u
o
t
;
:
n
u
l
,
&
q
uo
t
;
P
r
d
u
c
t
B
a
s
e
d
On
&
q
u
o
t
;
:
&
q
u
o
t
;
1B
x
0
2
C
1
n
q
E
AC
&
u
o
t
;
,
&
q
u
o
t
;
D
el
t
d
&
q
u
o
t
;
:
f
a
ls
e
,
&
q
u
o
t
;
B
i
l
n
gR
e
f
r
n
c
e
&
q
u
o
t
;:
n
u
l
,
&
q
u
o
t
;
A
r
e
Pa
t
i
l
P
e
r
i
o
d
s
A
lo
w
e
d
&
q
u
o
t
;
:
f
a
l
se
,
&
q
u
o
t
;
I
e
m
R
c
or
d
e
P
i
c
e
&
q
u
o
t
;:
n
u
l
,
&
q
u
o
t
;
C
so
m
P
r
d
u
c
t
N
a
m
e
&
qu
o
t
;
:
n
u
l
,
&
q
u
o
t
;I
e
m
S
g
e
n
t
I
di
f
e
r
&
q
u
o
t
;
:
n
u
l,
&
q
u
o
t
;
S
a
l
e
s
T
r
an
c
t
i
o
n
I
e
m
P
a
rn
t
&
q
u
o
;
:
&
q
u
o
t
;0
Q
x
0
4
C
9
2A
E
&
q
u
o
t
;
,
&
q
u
o
t
;Q
a
n
t
i
y
&
q
u
o
t
;
:
12
,
&
q
u
o
t
;
P
e
r
i
o
d
Bu
n
a
r
y
&
q
u
o
t
;
:
n
ul
,
&
q
u
o
t
;
C
n
r
a
ct
D
i
s
o
u
n
t
V
a
l
u
e
&q
o
t
;
:
n
u
l
,
&
q
u
o
t;
L
i
n
e
I
t
m
D
i
s
c
o
un
t
V
a
l
u
e
&
q
o
t
;
:
n
ul
,
&
q
u
o
t
;
C
n
r
ac
t
I
d
&
q
u
o
t
;
:
n
u
l
,&
q
u
o
t
;
E
n
d
D
a
t
e
&
qu
o
t
;
:
n
u
l
,
&
q
u
o
t
;I
e
m
G
r
o
u
p
S
m
a
ry
S
u
b
t
o
a
l
&
q
u
o
t
;
:n
u
l
,
&
q
u
o
t
;
I
s
C
on
t
r
a
c
e
d
&
q
u
o
t
;
:
fa
l
s
e
,
&
q
u
o
t
;
U
n
iP
r
c
e
&
q
u
o
t
;
:
1
4
.9
,
&
q
u
o
t
;
S
a
r
t
Qu
n
i
t
y
&
q
u
o
t
;
:
n
ul
,
&
q
u
o
t
;
C
n
r
ac
t
P
i
e
&
q
u
o
t
;
:
n
ul
,
&
q
u
o
t
;
T
a
l
Pr
i
c
e
&
q
u
o
t
;
:
1
7
3
9
.8
,
&
q
u
o
t
;
L
i
n
e
I
tm
D
i
s
c
o
u
n
t
T
y
p
e
&
qu
o
t
;
:
n
u
l
,
&
q
u
o
t
;I
e
m
P
a
t
h
&
q
u
o
t
;
:&
q
u
o
t
;
0
1
x
06
i
2
a
A
&
q
u
o
t
;
,&
q
u
o
t
;
p
r
d
u
c
t
K
e
y&
q
u
o
t
;
:
[
&
q
u
o
t
;
0Q
L
x
0
4
C
9
V
G
AU
&
q
u
o
t
;
]
}
"
,

"description": "This configuration is saved for reuse.",


"id": "1Nyxx0000004CFUCA2",
"name": "Favorite Configuration",
"referenceRecordId": "01txx0000006iCFAAY"
},
{
"data":
"
{
&
q
u
ot
;
L
e
g
al
E
n
t
i
ty
&
q
u
o
t;
:
n
u
l,
&
q
u
o
t;
P
r
o
d
uc
t
N
a
m
e&
q
u
o
t
;:
&
q
u
o
t;
M
o
n
i
to
r
&
q
u
ot
;
,
&
q
uo
t
;
b
u
si
n
e
sO
b
j
e
c
tT
y
p
e
&
qu
o
t
;
:
&q
u
o
t
;
Qu
o
t
e
L
in
e
I
t
e
m&
q
u
o
t
;,
&
q
u
o
t;
P
r
o
d
uc
t
&
q
u
ot
;
:
&
q
uo
t
;
0
1
tx0006
i
2
a
AA
&
q
u
o
t;
,
&
q
u
ot
;
I
t
e
mI
s
P
r
i
ma
r
y
S
e
gm
e
n
t
&
qu
o
t
;
:
fa
l
s
e
,
&q
u
o
t
;
Li
s
t
P
r
ic
e
&
q
u
ot
;
:
1
4.
9,
&
q
u
o
t;
V
a
l
i
da
t
i
o
n
Re
s
u
l
t
&q
u
o
t
;
:n
u
l,
&
q
u
o
t;
S
t
a
r
tD
a
t
e
&
qu
o
t
;
:
nu
l,
&
q
u
o
t;
C
o
n
t
ra
c
t
V
o
lu
m
e
P
a
sI
d
&
q
u
ot
;
:
n
u
l,
&
q
u
ot
;
B
i
li
n
g
T
r
ea
t
m
e
n
t&
q
u
o
t
;:
n
u
l,
&
q
u
o
t;
P
e
r
i
od
B
o
u
n
da
r
y
S
t
ar
t
M
o
n
th
&
q
u
o
t;
:
n
u
l,
&
q
u
o
t;
S
a
l
e
sT
r
a
n
s
ac
t
i
o
n
So
u
r
c
e
Ase
t
&
q
u
ot
;
:
n
u
l,
&
q
u
ot
;
i
d
&
qu
o
t
;
:
&q
u
o
t
;
0Q
L
x0004
C
9
V
G
AU
&
q
u
o
t;
,
&
q
u
ot
;
P
a
r
tn
e
r
D
i
sc
o
u
n
t
Pe
r
c
e
n
t&
q
u
o
t
;:
1
0
,
&
qu
o
t
;
P
ri
c
e
W
a
te
r
F
a
l&
q
u
o
t
;:
n
u
l,
&
q
u
o
t;
B
i
li
n
g
F
r
eq
u
e
n
c
y&
q
u
o
t
;:
n
u
l,
&
q
u
o
t;
P
r
o
d
uc
t
C
o
d
e&
q
u
o
t
;:
&
q
u
o
t;
M
O
01
&
q
u
o
t;
,
&
q
u
ot
;
D
e
r
iv
e
d
P
r
ic
i
n
g
A
tr
i
b
u
te
&
q
u
o
t;
:
f
a
l
se
,
&
q
u
ot
;
T
a
x
Tr
e
a
t
m
en
t
&
q
u
ot
;
:
n
u
l,
&
q
u
ot
;
S
u
b
to
t
a
l
&
qu
o
t
;
:
17
3
9
.
8,
&
q
u
o
t;
I
t
e
m
Ra
m
p
I
d
en
t
i
f
i
er
&
q
u
o
t;
:
n
u
l,
&
q
u
o
t;
I
t
e
m
Se
g
m
e
n
tN
a
m
e
&
qu
o
t
;
:
nu
l,
&
q
u
o
t;
S
a
l
e
sT
r
a
n
s
ac
t
i
o
n
It
e
m
A
tr
i
b
u
t
e&
q
u
o
t
;:
[
{
&
q
uo
t
;
A
tr
i
b
u
t
eK
e
y
&
q
uo
t
;
:
&
qu
o
t
;
0
tj
x00000
1
AA
&
q
u
o
t;
,
&
q
u
ot
;
A
tr
i
b
u
t
eV
a
l
u
e
&q
u
o
t
;
:&
q
u
o
t
;1
0
8
0
p
Built-in

681
Product Configurator Response Bodies

D
i
s
pl
a
y&
q
u
ot
;
,&
q
u
ot
;
Pa
r
e
nt
R
ef
e
r
en
c
e&
q
u
ot
;
:&
q
u
ot
;
0Q
L
x0004
C
9
VG
A
U&
q
u
ot
;
,&
q
u
ot
;
Atr
i
b
ut
e
Pi
c
k
li
s
tV
a
l
ue
&
qu
o
t
;:
&
qu
o
t
;0
v
6x00000
1
AA
&
qu
o
t
;,
&
qu
o
t
;I
s
Pr
i
c
eI
m
pa
c
t
in
g
&q
u
o
t;
:
fa
l
s
e,
&
qu
o
t
;b
u
si
n
e
sO
bj
e
c
tT
y
pe
&
q
uo
t
;:
&
q
uo
t
;Q
u
o
te
L
in
e
I
te
m
Atr
i
b
ut
e
&q
u
o
t;
,
&q
u
o
t;
A
tr
i
bu
t
e
Na
m
e&
q
u
ot
;
:&
q
u
ot
;
Di
s
p
la
y
&q
u
o
t;
,
&q
u
o
t;
i
d&
q
u
ot
;
:&
q
u
ot
;
0z
u
x00000
F
AQ
&
qu
o
t
;,
&
qu
o
t
;A
tr
i
b
ut
e
De
f
i
ni
t
io
n
C
od
e
&q
u
o
t;
:
nu
l,
&
q
uo
t
;S
a
l
es
T
ra
n
s
ac
t
io
n
I
te
m
Atr
P
a
re
n
t&
q
u
ot
;
:&
q
u
ot
;
0Q
L
x0004
C
9
VG
A
U&
q
u
ot
;
},
{
&
qu
o
t;
A
tr
i
bu
t
e
Ke
y
&q
u
o
t;
:
&q
u
o
t;
0
tj
x00000
9
AA
&
qu
o
t
;,
&
qu
o
t
;A
tr
i
b
ut
e
Va
l
u
e&
q
uo
t
;
:&
q
uo
t
;
24

I
n
c
h
&
q
u
o
t
;
,
&
q
u
o
t;
P
a
r
e
n
t
R
f
e
r
n
c&
q
u
o
t
;
:
&
q
u
o
t
;
0
QL
x
0
4
C
9
V
G
A
U&
q
u
o
t
;
,
&
q
u
o
t
;
Ar
i
b
u
t
e
P
i
c
k
l
s
t
Va
l
u
e
&
q
o
t
;
:
&
q
u
o
t;
0
v
6
x
00
G
A
Q
&
q
u
o
t
;
,
&
q
uo
t
;
I
s
P
r
i
c
e
I
m
p
a
ct
i
n
g
&
q
u
o
t
;
:
f
a
l
s
e,
&
q
u
o
t
;
b
s
i
n
eO
b
j
e
c
t
T
y
p
e
&
q
u
o
t
;:
&
q
u
o
t
;
Q
e
L
i
nI
t
e
m
A
r
i
b
u
t
e
&
qo
t
;
,
&
q
u
o
t
;
A
r
ib
u
t
e
N
a
m
&
q
u
o
t
;
:
&q
u
o
t
;
D
i
s
p
l
a
y
_
S
iz
e
&
q
u
o
t
;
,
&
q
u
o
t
;
id
&
q
u
o
t
;
:
&
q
u
o
t
;
0z
u
x
00
G
A
Q
&
q
u
o
t
;
,
&
q
uo
t
;
A
r
i
b
u
t
e
D
fi
n
t
o
C
d
e
&
q
u
o
t;
:
n
u
l
,
&
q
u
o
t
;
S
al
e
s
T
r
a
n
c
t
i
o
n
Ie
m
A
t
r
P
a
e
n
t
&
q
uo
;
:
&
q
u
o
t
;
0
Q
L
x0
4
C
9
V
G
A
U
&
q
uo
t
;
}
]
,
&
q
u
o
t
;
P
r
i
ce
b
o
k
E
n
t
r
y
&
q
u
o
t;
:
&
q
u
o
t
;
0
1
u
x
08
y
X
0
A
I
&
q
u
o
t;
,
&
q
u
o
t
;
D
i
s
c
o
u
n
tA
m
o
u
n
t
&
q
o
;
:
n
ul
,
&
q
u
o
t
;
P
r
i
c
n
gT
e
r
m
C
o
u
n
t
&
q
o
;:
0
,
&
q
u
o
t
;
S
b
s
c
r
ip
t
o
n
T
e
r
m
U
n
i
t
&
qu
o
;
:
n
u
l
,
&
q
u
o
t
;N
e
U
n
i
t
P
r
c
e
&
q
uo
t
;
:
1
4
.
9
,
&
q
u
o
t;
I
e
m
E
f
c
t
i
v
e
Gr
a
n
t
D
e
&
q
u
o
t
;
:
nu
l
,
&
q
u
o
t
;
P
r
d
uc
t
C
a
e
g
o
r
y
&
q
u
o
t
;:
n
u
l
,
&
q
u
o
t
;
S
a
le
s
T
r
a
n
c
t
i
o
n
A
c
ti
o
n
&
q
u
t
;
:
n
u
l
,&
q
u
o
t
;
S
a
l
e
s
T
r
a
nc
t
i
o
n
A
c
t
i
o
n
T
y
pe
&
q
u
o
t
;
:
n
u
l
,
&
q
uo
t
;
S
a
l
e
s
T
r
a
n
ct
i
o
n
I
e
m
G
r
o
u
p
&
qo
t
;
:
n
u
l
,
&
q
u
o
t
;P
e
r
i
o
d
B
u
n
a
r
y
D&
q
u
o
t
;
:
n
u
l
,
&
qu
o
t
;
S
a
l
e
s
T
r
x
n
I
t
em
D
s
c
r
i
p
t
o
n
&
q
ut
;
:
n
u
l
,
&
q
u
o
t
;
Li
n
e
I
t
m
D
i
s
t
r
b
ui
o
n
T
y
p
e
&
q
u
o
t
;
:
nu
l
,
&
q
u
o
t
;
P
r
a
ti
o
n
P
l
i
c
y
&
q
u
o
t
;:
n
u
l
,
&
q
u
o
t
;
C
nr
a
c
t
D
i
s
o
u
n
t
T
y
pe
&
q
u
o
t
;
:
n
u
l
,
&
q
uo
t
;
T
r
a
n
s
c
t
i
o
n
Ty
p
e
&
q
u
o
t
;
:
n
u
l
,
&q
u
o
t
;
P
a
r
e
n
t
R
f
er
n
c
&
q
u
o
t
;
:
&
q
u
ot
;
0
Q
x
0
4
C9
2
A
E
&
q
u
o
t
;
,
&
q
u
ot
;
D
i
s
c
o
u
n
t
&
q
o;
:
n
u
l
,
&
q
u
o
t
;
P
r
ic
n
g
T
e
r
m
U
n
i
t
&
q
uo
;
:
n
u
l
,
&
q
u
o
t
;
Pr
d
u
c
t
S
e
l
i
n
g
M
od
e
l
&
q
u
o
t
;
:
&
q
u
o
t
;0
j
P
x
00
1
E
A
&
q
u
o
t
;
,
&
q
uo
t
;
P
r
i
c
n
g
S
o
u
r
ce
&
q
u
o
t
;
:
n
u
l
,
&
q
uo
t
;
S
c
k
K
e
p
i
n
gU
t
&
q
u
o
;
:
n
u
l
,&
q
u
o
t
;
P
a
r
n
e
Ui
t
P
r
c
e
&
q
u
o
t
;
:
1
30
.
4
9
1
,
&
q
u
o
t
;
I
em
T
o
t
a
l
A
d
j
u
s
t
m
e
nA
o
u
n
t
&
q
o
;
:
0
,&
q
u
o
t
;
S
a
l
e
s
T
r
a
nc
t
i
o
n
I
e
m
S
o
u
r
ce
&
q
u
o
t
;
:
&
q
u
o
t
;
0
QL
x
0
4
C
9
V
G
AU
&
q
u
o
t
;
,
&
q
u
o
t
;
Cn
r
a
c
t
A
r
i
b
u
t
eP
a
s
I
d
&
q
u
o
t
;
:
n
u
l,
&
q
u
o
t
;
S
b
s
c
r
i
pt
o
n
T
e
r
m
&
q
u
o
t
;
:
nu
l
,
&
q
u
o
t
;
S
e
l
in
g
M
o
d
e
l
T
y
p
&
q
u
o
t;
:
&
q
u
o
t
;
O
n
e
T
i
m&
q
u
o
t
;
,
&
q
u
o
t
;
E
n
dQ
u
a
t
i
y
&
q
u
o
t
;
:1
2
,
&
q
u
o
t
;
N
e
T
o
t
al
P
r
i
c
e
&
q
u
o
t
;
:
1
73
9
.
8
,
&
q
u
o
t
;
T
al
L
i
n
e
A
m
o
u
n
t
&
q
o;
:
1
7
3
9
.
8
,
&
q
u
o
t;
I
e
m
S
g
e
n
t
T
y
p
e&
q
u
o
t
;
:
n
u
l
,
&
q
uo
t
;
P
r
d
u
c
t
B
a
s
e
d
On
&
q
u
o
t
;
:
&
q
u
o
t
;
1B
x
0
2
C
1
n
q
E
AC
&
u
o
t
;
,
&
q
u
o
t
;
D
el
t
d
&
q
u
o
t
;
:
f
a
ls
e
,
&
q
u
o
t
;
B
i
l
n
gR
e
f
r
n
c
e
&
q
u
o
t
;:
n
u
l
,
&
q
u
o
t
;
A
r
e
Pa
t
i
l
P
e
r
i
o
d
s
A
lo
w
e
d
&
q
u
o
t
;
:
f
a
l
se
,
&
q
u
o
t
;
I
e
m
R
c
or
d
e
P
i
c
e
&
q
u
o
t
;:
n
u
l
,
&
q
u
o
t
;
C
so
m
P
r
d
u
c
t
N
a
m
e
&
qu
o
t
;
:
n
u
l
,
&
q
u
o
t
;I
e
m
S
g
e
n
t
I
di
f
e
r
&
q
u
o
t
;
:
n
u
l,
&
q
u
o
t
;
S
a
l
e
s
T
r
an
c
t
i
o
n
I
e
m
P
a
rn
t
&
q
u
o
;
:
&
q
u
o
t
;0
Q
x
0
4
C
9
2A
E
&
q
u
o
t
;
,
&
q
u
o
t
;Q
a
n
t
i
y
&
q
u
o
t
;
:
12
,
&
q
u
o
t
;
P
e
r
i
o
d
Bu
n
a
r
y
&
q
u
o
t
;
:
n
ul
,
&
q
u
o
t
;
C
n
r
a
ct
D
i
s
o
u
n
t
V
a
l
u
e
&q
o
t
;
:
n
u
l
,
&
q
u
o
t;
L
i
n
e
I
t
m
D
i
s
c
o
un
t
V
a
l
u
e
&
q
o
t
;
:
n
ul
,
&
q
u
o
t
;
C
n
r
ac
t
I
d
&
q
u
o
t
;
:
n
u
l
,&
q
u
o
t
;
E
n
d
D
a
t
e
&
qu
o
t
;
:
n
u
l
,
&
q
u
o
t
;I
e
m
G
r
o
u
p
S
m
a
ry
S
u
b
t
o
a
l
&
q
u
o
t
;
:n
u
l
,
&
q
u
o
t
;
I
s
C
on
t
r
a
c
e
d
&
q
u
o
t
;
:
fa
l
s
e
,
&
q
u
o
t
;
U
n
iP
r
c
e
&
q
u
o
t
;
:
1
4
.9
,
&
q
u
o
t
;
S
a
r
t
Qu
n
i
t
y
&
q
u
o
t
;
:
n
ul
,
&
q
u
o
t
;
C
n
r
ac
t
P
i
e
&
q
u
o
t
;
:
n
ul
,
&
q
u
o
t
;
T
a
l
Pr
i
c
e
&
q
u
o
t
;
:
1
7
3
9
.8
,
&
q
u
o
t
;
L
i
n
e
I
tm
D
i
s
c
o
u
n
t
T
y
p
e
&
qu
o
t
;
:
n
u
l
,
&
q
u
o
t
;I
e
m
P
a
t
h
&
q
u
o
t
;
:&
q
u
o
t
;
0
1
x
06
i
2
a
A
&
q
u
o
t
;
,&
q
u
o
t
;
p
r
d
u
c
t
K
e
y&
q
u
o
t
;
:
[
&
q
u
o
t
;
0Q
L
x
0
4
C
9
V
G
AU
&
q
u
o
t
;
]
}
"
,

"description": "This configuration is saved for reuse.",


"id": "1Nyxx0000004CH6CAM",
"name": "Configuration 2",
"referenceRecordId": "01txx0000006iCFAAY"
}
],
"success": true
}

Property Name Type Description Filter Group and Available Version


Version
errors Error Response List of errors that contains a message and Small, 63.0 63.0
an error code.

saved Configuration Save Configuration details associated with the Small, 63.0 63.0
Configurations Details referenceRecordID request
parameter.

success Boolean Indicates whether the operation is Small, 63.0 63.0


successful (true) or not (false).

Configuration Save Instance


Output representation of the response that’s returned with a save configuration request.

Property Name Type Description Filter Group and Available Version


Version
errors Error Response List of errors, which contains an error code Small, 60.0 60.0
and a message.

success Boolean Indicates whether the call was successful Small, 60.0 60.0
(true) not (false).

Configuration Set Instance


Output representation of the details of the context or session that are returned with a set configuration request.
JSON Example
{
"configuratorMessages": {},
"configuratorUITreatments": [
{
"details": {
"attributeId": "0tjxx0000000007AAA",
"prcId": "0dSxx0000000007EAA",

682
Product Configurator Response Bodies

"stiId": "0QLxx0000004CU0GAM",
"attributePicklistValueId": "0v6xx0000000005AAA"
},
"uiTreatmentScope": "Bundle",
"uiTreatmentTarget": "Attribute_Picklist_Value",
"uiTreatmentType": "Hide"
},
{
"details": {
"stiId": "ref_f0f2da7b_c431_482d_bf4b_599052f3a2e1"
},
"uiTreatmentScope": "Product",
"uiTreatmentTarget": "Component",
"uiTreatmentType": "Disable"
}
],
"contextId": "831f07b01cf0cbd2d046adf5350420f85f0611b4b1e22e183921a063857a1377",
"errors": [],
"productQualifications": {
"01tDU000000EOTCYA4": {
"isQualified": true
}
},
"success": true
}

Property Name Type Description Filter Group and Available Version


Version
configurator Map<String, Map of the product IDs to the list of Small, 60.0 60.0
Messages <Configurator configurator messages. Configurator
Message>> messages are results from any validations,
Business Rules Engines (BRE) calls, or
Salesforce Pricing calls.

configurator Configurator UI Details of the UI treatments that specify the Small, 62.0 62.0
UITreatments Treatment[] product configuration rule actions to
override the disable or hide behavior in the
UI for product options, product attributes,
and attribute picklist values.

contextId String ID of the transaction context. Small, 60.0 60.0

errors Error Response List of errors, which contains an error code Small, 60.0 60.0
and a message.

product Map<String, Map of the product IDs to the execution Small, 60.0 60.0
Qualifications Configurator results from qualification rules.
Qualification
Context>

success Boolean Indicates whether the call was successful Small, 60.0 60.0
(true) not (false).

683
Product Configurator Response Bodies

Configurator Add Nodes


Output representation of the configuration request details to add nodes.
JSON Example
{
"configuratorMessages": {},
"configuratorUITreatments": [
{
"details": {
"attributeId": "0tjxx0000000007AAA",
"prcId": "0dSxx0000000007EAA",
"stiId": "0QLxx0000004CU0GAM",
"attributePicklistValueId": "0v6xx0000000005AAA"
},
"uiTreatmentScope": "Bundle",
"uiTreatmentTarget": "Attribute_Picklist_Value",
"uiTreatmentType": "Hide"
},
{
"details": {
"stiId": "ref_f0f2da7b_c431_482d_bf4b_599052f3a2e1"
},
"uiTreatmentScope": "Product",
"uiTreatmentTarget": "Component",
"uiTreatmentType": "Disable"
}
],
"errors": [],
"productQualifications": {
"01tDU000000EOTCYA4": {
"isQualified": true
}
},
"success": true
}

Property Name Type Description Filter Group and Available Version


Version
configurator Map<String, Map of the product IDs to the list of Small, 60.0 60.0
Messages Configurator configurator messages. Configurator
Message> messages are results from any validations,
Business Rules Engines (BRE) calls, or
Salesforce Pricing calls.

configurator Configurator UI Details of the UI treatments that specify the Small, 62.0 62.0
UITreatments Treatment[] product configuration rule actions to
override the disable or hide behavior in the
UI for product options, product attributes,
and attribute picklist values.

errors Error Response List of errors, which contains an error code Small, 60.0 60.0
and a message.

684
Product Configurator Response Bodies

Property Name Type Description Filter Group and Available Version


Version
product Map<String, Map of the product IDs to the qualification Small, 60.0 60.0
Qualifications Configurator rule execution results.
Qualification
Context>

success Boolean Indicates whether the call was successful Small, 60.0 60.0
(true) not (false).

Configurator Additional Fields


Output representation of the additional fields of a product configuration.

Property Name Type Description Filter Group and Available Version


Version
fieldApiName String API name of the field. Small, 60.0 60.0

fieldName String Name of the field. Small, 60.0 60.0

value String Value of the field. Small, 60.0 60.0

Configurator Attribute
Output representation of the attribute in a product configuration.
JSON example

"attributeCategories": [
{
"attributes": [
{
"attributeCategoryId": "0v3xx0000000001AAA",
"attributeNameOverride": "Load Capacity",
"code": "CAP",
"dataType": "NUMBER",
"defaultValue": "1500",
"description": "Server racks are designed to support a specific load capacity,
commonly measured in kilograms (kg) or pounds (lbs). Typical load capacities range from
500 kg (1102 lbs) to 1500 kg (3307 lbs) depending on the model.",
"id": "0tjxx00000001DpAAI",
"isCloneable": false,
"isConfigurable": true,
"isHidden": false,
"isPriceImpacting": false,
"isReadOnly": false,
"isRequired": false,
"label": "Load Capacity",
"name": "Load Capacity"
},

685
Product Configurator Response Bodies

{
"attributeCategoryId": "0v3xx0000000001AAA",
"attributeNameOverride": "Expansion Slots",
"code": "SLOTCAP",
"dataType": "NUMBER",
"defaultValue": "12",
"id": "0tjxx00000001H3AAI",
"isCloneable": false,
"isConfigurable": true,
"isHidden": false,
"isPriceImpacting": false,
"isReadOnly": false,
"isRequired": true,
"label": "Expansion Slots",
"name": "Expansion Slots"
},
{
"attributeCategoryId": "0v3xx0000000001AAA",
"attributeNameOverride": "Memory",
"attributePicklist": {
"id": "0v5xx0000000001AAA",
"values": [
{
"code": "MEM",
"displayValue": "25",
"id": "0v6xx0000000001AAA",
"isBooleanValue": false,
"name": "25Mem",
"sequence": 0,
"textValue": "25"
},
{
"code": "50MEM",
"displayValue": "50",
"id": "0v6xx000000001eAAA",
"isBooleanValue": false,
"name": "50Mem",
"sequence": 1,
"textValue": "50"
},
{
"code": "100MEM",
"displayValue": "100",
"id": "0v6xx000000003FAAQ",
"isBooleanValue": false,
"name": "100Mem",
"sequence": 2,
"textValue": "100"
}
]
},
"dataType": "MULTIPICKLIST",
"defaultValue": "25",
"id": "0tjxx00000001IfAAI",

686
Product Configurator Response Bodies

"isCloneable": false,
"isConfigurable": true,
"isHidden": false,
"isPriceImpacting": false,
"isReadOnly": false,
"isRequired": true,
"label": "Memory",
"name": "Memory"
}
],
"code": "SPEC",
"name": "Server Rack Specifications"
}
],
"description": "Introducing the Cisco Server Rack, a sleek and robust solution
designed to streamline your data center infrastructure. With its scalable design and
advanced cable management features, it ensures optimal performance, efficiency, and easy
maintenance for your critical network equipment.",
"displayUrl":
"https://www.cisco.com/content/dam/en/us/products/servers-unified-computing/ucs-c240-m4-rack-server/product-large.jpg",

"id": "01txx0000006jkuAAA",
"isActive": true,
"isAssetizable": true,
"isConfigurable": true,
"isSoldOnlyWithOtherProds": false,
"name": "Cisco Server Rack NX44",
"nodeType": "bundleProduct",
"prices": [],
"productClassification": {
"id": "11Bxx000002CC02EAG"
},
"productCode": "RACK",
"productComponentGroups": [
{
"classifications": [],
"code": "SERVICE",
"components": [
{
"additionalFields": [],
"attributeCategories": [],
"description": "Introducing the Cisco Rack Server NX44 Service, a
comprehensive protection plan designed to safeguard your valuable data infrastructure.
With extended coverage and rapid response times, this warranty ensures peace of mind
and uninterrupted performance for your critical business operations.",
"id": "01txx0000006jmWAAQ",
"isActive": true,
"isAssetizable": true,
"isComponentRequired": false,
"isConfigurable": false,
"isDefaultComponent": false,
"isQuantityEditable": false,
"isSoldOnlyWithOtherProds": false,
"name": "Cisco Rack Server Service - 1 Year",

687
Product Configurator Response Bodies

"nodeType": "simpleProduct",
"prices": [],
"productClassification": {},
"productCode": "SERVICE",
"productComponentGroups": [],
"productRelatedComponent": {
"childProductId": "01txx0000006jmWAAQ",
"childSellingModelId": "0jPxx000000004rEAA",
"doesBundlePriceIncludeChild": true,
"id": "0dSxx000000001dEAA",
"isComponentRequired": false,
"isDefaultComponent": false,
"isQuantityEditable": false,
"parentProductId": "01txx0000006jkuAAA",
"parentSellingModelId": "0jPxx000000004rEAA",
"productComponentGroupId": "0y7xx000000001dAAA",
"productRelationshipTypeId": "0yoxx00000001IfAAI",
"quantity": 1,
"quantityScaleMethod": "Proportional"
},
"productSellingModelOptions": [
{
"id": "0iOxx000000009hEAA",
"productId": "01txx0000006jmWAAQ",
"productSellingModel": {
"id": "0jPxx000000004rEAA",
"name": "Termed Annually",
"pricingTerm": 1,
"pricingTermUnit": "Annual",
"sellingModelType": "TermDefined",
"status": "Active"
},
"productSellingModelId": "0jPxx000000004rEAA"
},
{
"id": "0iOxx00000000PpEAI",
"productId": "01txx0000006jmWAAQ",
"productSellingModel": {
"id": "0jPxx0000000085EAA",
"name": "Evergreen Annually",
"pricingTerm": 1,
"pricingTermUnit": "Annual",
"sellingModelType": "Evergreen",
"status": "Active"
},
"productSellingModelId": "0jPxx0000000085EAA"
}
]
}
],
"description": "The services available for the Cisco Server Rack NX44 product
provide comprehensive coverage and support for optimal performance and reliability,
ensuring peace of mind for your data center infrastructure.",
"id": "0y7xx000000001dAAA",

688
Product Configurator Response Bodies

"maxBundleComponents": 1,
"minBundleComponents": 0,
"name": "Services",
"parentProductId": "01txx0000006jkuAAA",
"sequence": 1
},
{
"classifications": [],
"code": "WARRANTY",
"components": [
{
"additionalFields": [],
"attributeCategories": [],
"description": "Introducing the Cisco Rack Server NX44 Warranty, a
comprehensive protection plan designed to safeguard your valuable data infrastructure.
With extended coverage and rapid response times, this warranty ensures peace of mind
and uninterrupted performance for your critical business operations.",
"id": "01txx0000006jjIAAQ",
"isActive": true,
"isAssetizable": true,
"isComponentRequired": false,
"isConfigurable": false,
"isDefaultComponent": true,
"isQuantityEditable": true,
"isSoldOnlyWithOtherProds": false,
"name": "Cisco Rack Server Warranty - 1 Year",
"nodeType": "simpleProduct",
"prices": [],
"productClassification": {},
"productCode": "WARRANTY",
"productComponentGroups": [],
"productRelatedComponent": {
"childProductId": "01txx0000006jjIAAQ",
"childSellingModelId": "0jPxx000000001dEAA",
"doesBundlePriceIncludeChild": false,
"id": "0dSxx0000000001EAA",
"isComponentRequired": false,
"isDefaultComponent": true,
"isQuantityEditable": true,
"maxQuantity": 1,
"parentProductId": "01txx0000006jkuAAA",
"parentSellingModelId": "0jPxx000000001dEAA",
"productComponentGroupId": "0y7xx0000000001AAA",
"productRelationshipTypeId": "0yoxx00000001IfAAI",
"quantity": 1,
"quantityScaleMethod": "Proportional",
"sequence": 0
},
"productSellingModelOptions": [
{
"id": "0iOxx000000001dEAA",
"productId": "01txx0000006jjIAAQ",
"productSellingModel": {
"id": "0jPxx000000001dEAA",

689
Product Configurator Response Bodies

"name": "One Time",


"sellingModelType": "OneTime",
"status": "Active"
},
"productSellingModelId": "0jPxx000000001dEAA"
},
{
"id": "0iOxx00000000HlEAI",
"productId": "01txx0000006jjIAAQ",
"productSellingModel": {
"id": "0jPxx000000003FEAQ",
"name": "Termed Monthly",
"pricingTerm": 1,
"pricingTermUnit": "Months",
"sellingModelType": "TermDefined",
"status": "Active"
},
"productSellingModelId": "0jPxx000000003FEAQ"
},
{
"id": "0iOxx00000000JNEAY",
"productId": "01txx0000006jjIAAQ",
"productSellingModel": {
"id": "0jPxx000000004rEAA",
"name": "Termed Annually",
"pricingTerm": 1,
"pricingTermUnit": "Annual",
"sellingModelType": "TermDefined",
"status": "Active"
},
"productSellingModelId": "0jPxx000000004rEAA"
},
{
"id": "0iOxx00000000KzEAI",
"productId": "01txx0000006jjIAAQ",
"productSellingModel": {
"id": "0jPxx0000000085EAA",
"name": "Evergreen Annually",
"pricingTerm": 1,
"pricingTermUnit": "Annual",
"sellingModelType": "Evergreen",
"status": "Active"
},
"productSellingModelId": "0jPxx0000000085EAA"
},
{
"id": "0iOxx00000000MbEAI",
"productId": "01txx0000006jjIAAQ",
"productSellingModel": {
"id": "0jPxx000000006TEAQ",
"name": "Evergreen Monthly",
"pricingTerm": 1,
"pricingTermUnit": "Months",
"sellingModelType": "Evergreen",

690
Product Configurator Response Bodies

"status": "Active"
},
"productSellingModelId": "0jPxx000000006TEAQ"
}
]
}
],
"description": "The warranties available for the Cisco Server Rack NX44 product
provide comprehensive coverage and support for optimal performance and reliability,
ensuring peace of mind for your data center infrastructure.",
"id": "0y7xx0000000001AAA",
"maxBundleComponents": 1,
"minBundleComponents": 0,
"name": "Warranties",
"parentProductId": "01txx0000006jkuAAA",
"sequence": 0
}
],
"productSellingModelOptions": [
{
"id": "0iOxx000000003FEAQ",
"productId": "01txx0000006jkuAAA",
"productSellingModel": {
"id": "0jPxx000000001dEAA",
"name": "One Time",
"sellingModelType": "OneTime",
"status": "Active"
},
"productSellingModelId": "0jPxx000000001dEAA"
},
{
"id": "0iOxx000000004rEAA",
"productId": "01txx0000006jkuAAA",
"productSellingModel": {
"id": "0jPxx000000003FEAQ",
"name": "Termed Monthly",
"pricingTerm": 1,
"pricingTermUnit": "Months",
"sellingModelType": "TermDefined",
"status": "Active"
},
"productSellingModelId": "0jPxx000000003FEAQ"
},
{
"id": "0iOxx000000006TEAQ",
"productId": "01txx0000006jkuAAA",
"productSellingModel": {
"id": "0jPxx000000004rEAA",
"name": "Termed Annually",
"pricingTerm": 1,
"pricingTermUnit": "Annual",
"sellingModelType": "TermDefined",
"status": "Active"
},

691
Product Configurator Response Bodies

"productSellingModelId": "0jPxx000000004rEAA"
}
],
"productType": "Bundle"
},
"errors": [],
"success": true,
"transactionContext": {
"SalesTransaction": [
{
"Status": "Draft",
"Account": "001xx000003GeIxAAK",
"BillingCity": "San Francisco",
"Subtotal": 152500,
"LastPricedDate": "2023-08-22T05:55:39Z",
"businessObjectType": "Quote",
"TotalAmount": 152500,
"ShippingStreet": "415 Mission St",
"SalesTransactionItem": [
{
"ProrationPolicy": null,
"Discount": null,
"ProductSellingModel": "0jPxx000000001dEAA",
"Product": "01txx0000006jkuAAA",
"businessObjectType": "QuoteLineItem",
"BasisTransactionItem": null,
"PartnerUnitPrice": null,
"StartingUnitPriceSource": "System",
"ListPrice": 150000,
"ItemTotalAdjustmentAmount": 0,
"SalesTransactionItemSource": "0QLxx0000004CQmGAM",
"SubscriptionTerm": null,
"StartDate": null,
"NetTotalPrice": 150000,
"TotalLineAmount": 150000,
"PeriodBoundaryStartMonth": null,
"ListPriceTotal": 150000,
"PartnerDiscountPercent": null,
"id": "0QLxx0000004CQmGAM",
"PriceWaterFall": "{
"currencyCode":"USD",
"executionEndTimestamp":"2023-09-18T20:11:15.016Z",
"executionId":"ruepwmHn2ZFvnQo5bjot",
"executionStartTimestamp":"2023-09-18T20:11:14.906Z",
"lineItemId":"0QLxx0000004CQmGAM",
"output":{
"NetUnitPrice":150000.0,
"Subtotal":0.0
},
"success":true,
"waterfall":[
{
"fieldToTagNameMapping":{
"NetUnitPrice":"ItemUnitPrice",

692
Product Configurator Response Bodies

"AdjustmentValue":"ItemAdjustmentValue",
"Subtotal":"ItemTotalAdjustmentAmount",
"Quantity":"ItemQuantity",
"LineItemId":"SalesTransactionItemSource",
"InputUnitPrice":"ItemUnitPrice"
},
"inputParameters":{
"Quantity":1.0,
"LineItemId":"0QLxx0000004CQmGAM",
"InputUnitPrice":150000.0,
"AdjustmentType":"Amount"
},
"outputParameters":{
"NetUnitPrice":150000.0,
"Subtotal":0.0
},
"pricingElement":{
"adjustments":[
{
"AdjustmentType":"Amount"
}
],
"elementType":"MANUALDISCOUNT",
"name":"ManualDiscount"
},
"sequence":1
}
]
}",
"BillingFrequency": null,
"SalesTransactionItemParent": "0Q0xx0000004CAeCAM",
"StartingPriceTotal": 150000,
"Quantity": 1,
"PeriodBoundary": null,
"SalesTransactionItemAttribute": [
{
"AttributeKey": "0tjxx00000001H3AAI",
"AttributeValue": "30.0",
"AttributePicklistValue": null,
"IsPriceImpacting": true,
"businessObjectType": "QuoteLineItemAttribute",
"AttributeName": "Expansion Slots",
"AttributeDefinitionCode": "SLOTCAP",
"id": "0zuxx0000000001AAA",
"SalesTransactionItemAttrParent": "0QLxx0000004CQmGAM"
}
],
"EndDate": null,
"DiscountAmount": null,
"PricebookEntry": "01uxx0000009154AAA",
"PricingTermCount": 1,
"NetUnitPrice": 150000,
"UnitPrice": 150000,
"StartingUnitPrice": 150000,

693
Product Configurator Response Bodies

"SalesTrxnItemRelationship": [
{
"ProductRelationshipType": "0yoxx00000001IfAAI",
"MainItemRole": "Bundle",
"AssociatedItem": "0QLxx0000004CQnGAM",
"ProductRelatedComponent": "0dSxx0000000001EAA",
"MainItem": "0QLxx0000004CQmGAM",
"AssociatedQuantScaleMethod": "Proportional",
"businessObjectType": "QuoteLineRelationship",
"AssociatedItemRole": "BundleComponent",
"SalesTrnItemRelationshipParent": "0Q0xx0000004CAeCAM",
"id": "0yQxx000000001dEAA",
"AssociatedItemPricing": "NotIncludedInBundlePrice"
}
],
"TotalPrice": 150000,
"PeriodBoundaryDay": null
},
{
"ProrationPolicy": null,
"Discount": null,
"ProductSellingModel": "0jPxx000000001dEAA",
"Product": "01txx0000006jjIAAQ",
"businessObjectType": "QuoteLineItem",
"BasisTransactionItem": null,
"PartnerUnitPrice": null,
"StartingUnitPriceSource": "System",
"ListPrice": 2000,
"ItemTotalAdjustmentAmount": 0,
"SalesTransactionItemSource": "0QLxx0000004CQnGAM",
"SubscriptionTerm": null,
"StartDate": null,
"NetTotalPrice": 2000,
"TotalLineAmount": 2000,
"PeriodBoundaryStartMonth": null,
"ListPriceTotal": 2000,
"PartnerDiscountPercent": null,
"id": "0QLxx0000004CQnGAM",
"PriceWaterFall": "{
"currencyCode":"USD",
"executionEndTimestamp":"023-09-18T20:11:15.016Z",
"executionId":"ruepwmHn2ZFvnQo5bjot",
"executionStartTimestamp":"2023-09-18T20:11:14.906Z",
"lineItemId":"0QLxx0000004CQnGAM",
"output":{
"NetUnitPrice":2000.0,
"Subtotal":0.0
},
"success":true,
"waterfall":[
{
"fieldToTagNameMapping":{
"NetUnitPrice":"ItemUnitPrice",
"AdjustmentValue":"ItemAdjustmentValue",

694
Product Configurator Response Bodies

"Subtotal":"ItemTotalAdjustmentAmount",
"Quantity":"ItemQuantity",
"LineItemId":"SalesTransactionItemSource",
"InputUnitPrice":"ItemUnitPrice"
},
"inputParameters":{
"Quantity":1.0,
"LineItemId":"0QLxx0000004CQnGAM",
"InputUnitPrice":2000.0,
"AdjustmentType":"Amount"
},
"outputParameters":{
"NetUnitPrice":2000.0,
"Subtotal":0.0
},
"pricingElement":{
"adjustments":[
{}
],
"elementType":"MANUALDISCOUNT",
"name":"ManualDiscount"
},
"sequence":1
}
]
}",
"BillingFrequency": null,
"SalesTransactionItemParent": "0Q0xx0000004CAeCAM",
"StartingPriceTotal": 2000,
"Quantity": 1,
"PeriodBoundary": null,
"EndDate": null,
"DiscountAmount": null,
"PricebookEntry": "01uxx000000913SAAQ",
"PricingTermCount": 1,
"NetUnitPrice": 2000,
"UnitPrice": 2000,
"StartingUnitPrice": 2000,
"TotalPrice": 2000,
"PeriodBoundaryDay": null
}
],
"BillingCountry": "US",
"BillingStreet": "415 Mission St",
"Pricebook": "01sxx0000005uDZAAY",
"ShippingPostalCode": "94105",
"SalesTransactionSource": "0Q0xx0000004CAeCAM",
"ShippingCountry": "US",
"ShippingCity": "San Francisco",
"ShippingState": "CA",
"BillingPostalCode": "94105",
"id": "0Q0xx0000004CAeCAM",
"BillToContact": null,
"Contract": null,

695
Product Configurator Response Bodies

"BillingState": "CA"
}
]

Property Name Type Description Filter Group and Available Version


Version
attribute String ID of the attribute category. Small, 60.0 60.0
CategoryId

attribute String Name override value of the attribute. Small, 60.0 60.0
NameOverride

attribute Configurator Picklist values of the attribute. Small, 60.0 60.0


Picklist Attribute Picklist[]

code String Code of the attribute. Small, 60.0 60.0

dataType String Data type of the attribute. Small, 60.0 60.0

default String Default help text value of the attribute. Small, 60.0 60.0
HelpText

defaultValue String Default value of the attribute. Small, 60.0 60.0

description String Description of the attribute. Small, 60.0 60.0

displayType String Display type of the attribute. Small, 60.0 60.0

id String ID of the attribute. Small, 60.0 60.0

isCloneable Boolean Indicates if the attribute is cloneable (true) Small, 60.0 60.0
or not (false).

is Boolean Indicates if the attribute is configurable Small, 60.0 60.0


Configurable (true) or not (false).

isEncrypted Boolean Indicates if the attribute is encrypted Small, 60.0 60.0


(true) or not (false).

isHidden Boolean Indicates if the attribute is hidden (true) Small, 60.0 60.0
or not (false).

isPrice Boolean Indicates if this is a price impacting attribute Small, 60.0 60.0
Impacting (true) or not (false).

isReadOnly Boolean Indicates if the attribute is read-only (true) Small, 60.0 60.0
or not (false).

isRequired Boolean Indicates if the attribute is required (true) Small, 60.0 60.0
or not (false).

label String Label of the attribute. Small, 60.0 60.0

maximumValue String Maximum value for the product attribute. Small, 60.0 60.0

minimumValue String Minimum value for the product attribute. Small, 60.0 60.0

696
Product Configurator Response Bodies

Property Name Type Description Filter Group and Available Version


Version
name String Name of the attribute. Small, 60.0 60.0

sequence Integer Sequence values of the attribute. Small, 60.0 60.0

status String Status of the attribute. Small, 60.0 60.0

stepValue String Step value for the attribute. Small, 60.0 60.0

unitOfMeasure Configurator Unit Of Details about the unit of measure associated Small, 63.0 63.0
Measure[] with an attribute.

userValue String User value of the attribute. Small, 60.0 60.0

valueDecoder String Value decoder for the attribute. Small, 60.0 60.0

value String Value description of the attribute. Small, 60.0 60.0


Description

Configurator Attribute Category


Output representation of the attribute category in a product configuration.
JSON example

"attributeCategories": [
{
"attributes": [
{
"attributeCategoryId": "0v3xx0000000001AAA",
"attributeNameOverride": "Load Capacity",
"code": "CAP",
"dataType": "NUMBER",
"defaultValue": "1500",
"description": "Server racks are designed to support a specific load capacity,
commonly measured in kilograms (kg) or pounds (lbs). Typical load capacities range from
500 kg (1102 lbs) to 1500 kg (3307 lbs) depending on the model.",
"id": "0tjxx00000001DpAAI",
"isCloneable": false,
"isConfigurable": true,
"isHidden": false,
"isPriceImpacting": false,
"isReadOnly": false,
"isRequired": false,
"label": "Load Capacity",
"name": "Load Capacity"
},
{
"attributeCategoryId": "0v3xx0000000001AAA",
"attributeNameOverride": "Expansion Slots",
"code": "SLOTCAP",
"dataType": "NUMBER",

697
Product Configurator Response Bodies

"defaultValue": "12",
"id": "0tjxx00000001H3AAI",
"isCloneable": false,
"isConfigurable": true,
"isHidden": false,
"isPriceImpacting": false,
"isReadOnly": false,
"isRequired": true,
"label": "Expansion Slots",
"name": "Expansion Slots"
},
{
"attributeCategoryId": "0v3xx0000000001AAA",
"attributeNameOverride": "Memory",
"attributePicklist": {
"id": "0v5xx0000000001AAA",
"values": [
{
"code": "MEM",
"displayValue": "25",
"id": "0v6xx0000000001AAA",
"isBooleanValue": false,
"name": "25Mem",
"sequence": 0,
"textValue": "25"
},
{
"code": "50MEM",
"displayValue": "50",
"id": "0v6xx000000001eAAA",
"isBooleanValue": false,
"name": "50Mem",
"sequence": 1,
"textValue": "50"
},
{
"code": "100MEM",
"displayValue": "100",
"id": "0v6xx000000003FAAQ",
"isBooleanValue": false,
"name": "100Mem",
"sequence": 2,
"textValue": "100"
}
]
},
"dataType": "MULTIPICKLIST",
"defaultValue": "25",
"id": "0tjxx00000001IfAAI",
"isCloneable": false,
"isConfigurable": true,
"isHidden": false,
"isPriceImpacting": false,
"isReadOnly": false,

698
Product Configurator Response Bodies

"isRequired": true,
"label": "Memory",
"name": "Memory"
}
],
"code": "SPEC",
"name": "Server Rack Specifications"
}
],
"description": "Introducing the Cisco Server Rack, a sleek and robust solution
designed to streamline your data center infrastructure. With its scalable design and
advanced cable management features, it ensures optimal performance, efficiency, and easy
maintenance for your critical network equipment.",
"displayUrl":
"https://www.cisco.com/content/dam/en/us/products/servers-unified-computing/ucs-c240-m4-rack-server/product-large.jpg",

"id": "01txx0000006jkuAAA",
"isActive": true,
"isAssetizable": true,
"isConfigurable": true,
"isSoldOnlyWithOtherProds": false,
"name": "Cisco Server Rack NX44",
"nodeType": "bundleProduct",
"prices": [],
"productClassification": {
"id": "11Bxx000002CC02EAG"
},
"productCode": "RACK",
"productComponentGroups": [
{
"classifications": [],
"code": "SERVICE",
"components": [
{
"additionalFields": [],
"attributeCategories": [],
"description": "Introducing the Cisco Rack Server NX44 Service, a
comprehensive protection plan designed to safeguard your valuable data infrastructure.
With extended coverage and rapid response times, this warranty ensures peace of mind
and uninterrupted performance for your critical business operations.",
"id": "01txx0000006jmWAAQ",
"isActive": true,
"isAssetizable": true,
"isComponentRequired": false,
"isConfigurable": false,
"isDefaultComponent": false,
"isQuantityEditable": false,
"isSoldOnlyWithOtherProds": false,
"name": "Cisco Rack Server Service - 1 Year",
"nodeType": "simpleProduct",
"prices": [],
"productClassification": {},
"productCode": "SERVICE",
"productComponentGroups": [],

699
Product Configurator Response Bodies

"productRelatedComponent": {
"childProductId": "01txx0000006jmWAAQ",
"childSellingModelId": "0jPxx000000004rEAA",
"doesBundlePriceIncludeChild": true,
"id": "0dSxx000000001dEAA",
"isComponentRequired": false,
"isDefaultComponent": false,
"isQuantityEditable": false,
"parentProductId": "01txx0000006jkuAAA",
"parentSellingModelId": "0jPxx000000004rEAA",
"productComponentGroupId": "0y7xx000000001dAAA",
"productRelationshipTypeId": "0yoxx00000001IfAAI",
"quantity": 1,
"quantityScaleMethod": "Proportional"
},
"productSellingModelOptions": [
{
"id": "0iOxx000000009hEAA",
"productId": "01txx0000006jmWAAQ",
"productSellingModel": {
"id": "0jPxx000000004rEAA",
"name": "Termed Annually",
"pricingTerm": 1,
"pricingTermUnit": "Annual",
"sellingModelType": "TermDefined",
"status": "Active"
},
"productSellingModelId": "0jPxx000000004rEAA"
},
{
"id": "0iOxx00000000PpEAI",
"productId": "01txx0000006jmWAAQ",
"productSellingModel": {
"id": "0jPxx0000000085EAA",
"name": "Evergreen Annually",
"pricingTerm": 1,
"pricingTermUnit": "Annual",
"sellingModelType": "Evergreen",
"status": "Active"
},
"productSellingModelId": "0jPxx0000000085EAA"
}
]
}
],
"description": "The services available for the Cisco Server Rack NX44 product
provide comprehensive coverage and support for optimal performance and reliability,
ensuring peace of mind for your data center infrastructure.",
"id": "0y7xx000000001dAAA",
"maxBundleComponents": 1,
"minBundleComponents": 0,
"name": "Services",
"parentProductId": "01txx0000006jkuAAA",
"sequence": 1

700
Product Configurator Response Bodies

},
{
"classifications": [],
"code": "WARRANTY",
"components": [
{
"additionalFields": [],
"attributeCategories": [],
"description": "Introducing the Cisco Rack Server NX44 Warranty, a
comprehensive protection plan designed to safeguard your valuable data infrastructure.
With extended coverage and rapid response times, this warranty ensures peace of mind
and uninterrupted performance for your critical business operations.",
"id": "01txx0000006jjIAAQ",
"isActive": true,
"isAssetizable": true,
"isComponentRequired": false,
"isConfigurable": false,
"isDefaultComponent": true,
"isQuantityEditable": true,
"isSoldOnlyWithOtherProds": false,
"name": "Cisco Rack Server Warranty - 1 Year",
"nodeType": "simpleProduct",
"prices": [],
"productClassification": {},
"productCode": "WARRANTY",
"productComponentGroups": [],
"productRelatedComponent": {
"childProductId": "01txx0000006jjIAAQ",
"childSellingModelId": "0jPxx000000001dEAA",
"doesBundlePriceIncludeChild": false,
"id": "0dSxx0000000001EAA",
"isComponentRequired": false,
"isDefaultComponent": true,
"isQuantityEditable": true,
"maxQuantity": 1,
"parentProductId": "01txx0000006jkuAAA",
"parentSellingModelId": "0jPxx000000001dEAA",
"productComponentGroupId": "0y7xx0000000001AAA",
"productRelationshipTypeId": "0yoxx00000001IfAAI",
"quantity": 1,
"quantityScaleMethod": "Proportional",
"sequence": 0
},
"productSellingModelOptions": [
{
"id": "0iOxx000000001dEAA",
"productId": "01txx0000006jjIAAQ",
"productSellingModel": {
"id": "0jPxx000000001dEAA",
"name": "One Time",
"sellingModelType": "OneTime",
"status": "Active"
},
"productSellingModelId": "0jPxx000000001dEAA"

701
Product Configurator Response Bodies

},
{
"id": "0iOxx00000000HlEAI",
"productId": "01txx0000006jjIAAQ",
"productSellingModel": {
"id": "0jPxx000000003FEAQ",
"name": "Termed Monthly",
"pricingTerm": 1,
"pricingTermUnit": "Months",
"sellingModelType": "TermDefined",
"status": "Active"
},
"productSellingModelId": "0jPxx000000003FEAQ"
},
{
"id": "0iOxx00000000JNEAY",
"productId": "01txx0000006jjIAAQ",
"productSellingModel": {
"id": "0jPxx000000004rEAA",
"name": "Termed Annually",
"pricingTerm": 1,
"pricingTermUnit": "Annual",
"sellingModelType": "TermDefined",
"status": "Active"
},
"productSellingModelId": "0jPxx000000004rEAA"
},
{
"id": "0iOxx00000000KzEAI",
"productId": "01txx0000006jjIAAQ",
"productSellingModel": {
"id": "0jPxx0000000085EAA",
"name": "Evergreen Annually",
"pricingTerm": 1,
"pricingTermUnit": "Annual",
"sellingModelType": "Evergreen",
"status": "Active"
},
"productSellingModelId": "0jPxx0000000085EAA"
},
{
"id": "0iOxx00000000MbEAI",
"productId": "01txx0000006jjIAAQ",
"productSellingModel": {
"id": "0jPxx000000006TEAQ",
"name": "Evergreen Monthly",
"pricingTerm": 1,
"pricingTermUnit": "Months",
"sellingModelType": "Evergreen",
"status": "Active"
},
"productSellingModelId": "0jPxx000000006TEAQ"
}
]

702
Product Configurator Response Bodies

}
],
"description": "The warranties available for the Cisco Server Rack NX44 product
provide comprehensive coverage and support for optimal performance and reliability,
ensuring peace of mind for your data center infrastructure.",
"id": "0y7xx0000000001AAA",
"maxBundleComponents": 1,
"minBundleComponents": 0,
"name": "Warranties",
"parentProductId": "01txx0000006jkuAAA",
"sequence": 0
}
],
"productSellingModelOptions": [
{
"id": "0iOxx000000003FEAQ",
"productId": "01txx0000006jkuAAA",
"productSellingModel": {
"id": "0jPxx000000001dEAA",
"name": "One Time",
"sellingModelType": "OneTime",
"status": "Active"
},
"productSellingModelId": "0jPxx000000001dEAA"
},
{
"id": "0iOxx000000004rEAA",
"productId": "01txx0000006jkuAAA",
"productSellingModel": {
"id": "0jPxx000000003FEAQ",
"name": "Termed Monthly",
"pricingTerm": 1,
"pricingTermUnit": "Months",
"sellingModelType": "TermDefined",
"status": "Active"
},
"productSellingModelId": "0jPxx000000003FEAQ"
},
{
"id": "0iOxx000000006TEAQ",
"productId": "01txx0000006jkuAAA",
"productSellingModel": {
"id": "0jPxx000000004rEAA",
"name": "Termed Annually",
"pricingTerm": 1,
"pricingTermUnit": "Annual",
"sellingModelType": "TermDefined",
"status": "Active"
},
"productSellingModelId": "0jPxx000000004rEAA"
}
],
"productType": "Bundle"
},

703
Product Configurator Response Bodies

"errors": [],
"success": true,
"transactionContext": {
"SalesTransaction": [
{
"Status": "Draft",
"Account": "001xx000003GeIxAAK",
"BillingCity": "San Francisco",
"Subtotal": 152500,
"LastPricedDate": "2023-08-22T05:55:39Z",
"businessObjectType": "Quote",
"TotalAmount": 152500,
"ShippingStreet": "415 Mission St",
"SalesTransactionItem": [
{
"ProrationPolicy": null,
"Discount": null,
"ProductSellingModel": "0jPxx000000001dEAA",
"Product": "01txx0000006jkuAAA",
"businessObjectType": "QuoteLineItem",
"BasisTransactionItem": null,
"PartnerUnitPrice": null,
"StartingUnitPriceSource": "System",
"ListPrice": 150000,
"ItemTotalAdjustmentAmount": 0,
"SalesTransactionItemSource": "0QLxx0000004CQmGAM",
"SubscriptionTerm": null,
"StartDate": null,
"NetTotalPrice": 150000,
"TotalLineAmount": 150000,
"PeriodBoundaryStartMonth": null,
"ListPriceTotal": 150000,
"PartnerDiscountPercent": null,
"id": "0QLxx0000004CQmGAM",
"PriceWaterFall": "{
"currencyCode":"USD",
"executionEndTimestamp":"2023-09-18T20:11:15.016Z",
"executionId":"ruepwmHn2ZFvnQo5bjot",
"executionStartTimestamp":"2023-09-18T20:11:14.906Z",
"lineItemId":"0QLxx0000004CQmGAM",
"output":{
"NetUnitPrice":150000.0,
"Subtotal":0.0
},
"success":true,
"waterfall":[
{
"fieldToTagNameMapping":{
"NetUnitPrice":"ItemUnitPrice",
"AdjustmentValue":"ItemAdjustmentValue",
"Subtotal":"ItemTotalAdjustmentAmount",
"Quantity":"ItemQuantity",
"LineItemId":"SalesTransactionItemSource",
"InputUnitPrice":"ItemUnitPrice"

704
Product Configurator Response Bodies

},
"inputParameters":{
"Quantity":1.0,
"LineItemId":"0QLxx0000004CQmGAM",
"InputUnitPrice":150000.0,
"AdjustmentType":"Amount"
},
"outputParameters":{
"NetUnitPrice":150000.0,
"Subtotal":0.0
},
"pricingElement":{
"adjustments":[
{
"AdjustmentType":"Amount"
}
],
"elementType":"MANUALDISCOUNT",
"name":"ManualDiscount"
},
"sequence":1
}
]
}",
"BillingFrequency": null,
"SalesTransactionItemParent": "0Q0xx0000004CAeCAM",
"StartingPriceTotal": 150000,
"Quantity": 1,
"PeriodBoundary": null,
"SalesTransactionItemAttribute": [
{
"AttributeKey": "0tjxx00000001H3AAI",
"AttributeValue": "30.0",
"AttributePicklistValue": null,
"IsPriceImpacting": true,
"businessObjectType": "QuoteLineItemAttribute",
"AttributeName": "Expansion Slots",
"AttributeDefinitionCode": "SLOTCAP",
"id": "0zuxx0000000001AAA",
"SalesTransactionItemAttrParent": "0QLxx0000004CQmGAM"
}
],
"EndDate": null,
"DiscountAmount": null,
"PricebookEntry": "01uxx0000009154AAA",
"PricingTermCount": 1,
"NetUnitPrice": 150000,
"UnitPrice": 150000,
"StartingUnitPrice": 150000,
"SalesTrxnItemRelationship": [
{
"ProductRelationshipType": "0yoxx00000001IfAAI",
"MainItemRole": "Bundle",
"AssociatedItem": "0QLxx0000004CQnGAM",

705
Product Configurator Response Bodies

"ProductRelatedComponent": "0dSxx0000000001EAA",
"MainItem": "0QLxx0000004CQmGAM",
"AssociatedQuantScaleMethod": "Proportional",
"businessObjectType": "QuoteLineRelationship",
"AssociatedItemRole": "BundleComponent",
"SalesTrnItemRelationshipParent": "0Q0xx0000004CAeCAM",
"id": "0yQxx000000001dEAA",
"AssociatedItemPricing": "NotIncludedInBundlePrice"
}
],
"TotalPrice": 150000,
"PeriodBoundaryDay": null
},
{
"ProrationPolicy": null,
"Discount": null,
"ProductSellingModel": "0jPxx000000001dEAA",
"Product": "01txx0000006jjIAAQ",
"businessObjectType": "QuoteLineItem",
"BasisTransactionItem": null,
"PartnerUnitPrice": null,
"StartingUnitPriceSource": "System",
"ListPrice": 2000,
"ItemTotalAdjustmentAmount": 0,
"SalesTransactionItemSource": "0QLxx0000004CQnGAM",
"SubscriptionTerm": null,
"StartDate": null,
"NetTotalPrice": 2000,
"TotalLineAmount": 2000,
"PeriodBoundaryStartMonth": null,
"ListPriceTotal": 2000,
"PartnerDiscountPercent": null,
"id": "0QLxx0000004CQnGAM",
"PriceWaterFall": "{
"currencyCode":"USD",
"executionEndTimestamp":"023-09-18T20:11:15.016Z",
"executionId":"ruepwmHn2ZFvnQo5bjot",
"executionStartTimestamp":"2023-09-18T20:11:14.906Z",
"lineItemId":"0QLxx0000004CQnGAM",
"output":{
"NetUnitPrice":2000.0,
"Subtotal":0.0
},
"success":true,
"waterfall":[
{
"fieldToTagNameMapping":{
"NetUnitPrice":"ItemUnitPrice",
"AdjustmentValue":"ItemAdjustmentValue",
"Subtotal":"ItemTotalAdjustmentAmount",
"Quantity":"ItemQuantity",
"LineItemId":"SalesTransactionItemSource",
"InputUnitPrice":"ItemUnitPrice"
},

706
Product Configurator Response Bodies

"inputParameters":{
"Quantity":1.0,
"LineItemId":"0QLxx0000004CQnGAM",
"InputUnitPrice":2000.0,
"AdjustmentType":"Amount"
},
"outputParameters":{
"NetUnitPrice":2000.0,
"Subtotal":0.0
},
"pricingElement":{
"adjustments":[
{}
],
"elementType":"MANUALDISCOUNT",
"name":"ManualDiscount"
},
"sequence":1
}
]
}",
"BillingFrequency": null,
"SalesTransactionItemParent": "0Q0xx0000004CAeCAM",
"StartingPriceTotal": 2000,
"Quantity": 1,
"PeriodBoundary": null,
"EndDate": null,
"DiscountAmount": null,
"PricebookEntry": "01uxx000000913SAAQ",
"PricingTermCount": 1,
"NetUnitPrice": 2000,
"UnitPrice": 2000,
"StartingUnitPrice": 2000,
"TotalPrice": 2000,
"PeriodBoundaryDay": null
}
],
"BillingCountry": "US",
"BillingStreet": "415 Mission St",
"Pricebook": "01sxx0000005uDZAAY",
"ShippingPostalCode": "94105",
"SalesTransactionSource": "0Q0xx0000004CAeCAM",
"ShippingCountry": "US",
"ShippingCity": "San Francisco",
"ShippingState": "CA",
"BillingPostalCode": "94105",
"id": "0Q0xx0000004CAeCAM",
"BillToContact": null,
"Contract": null,
"BillingState": "CA"
}
]

707
Product Configurator Response Bodies

Property Name Type Description Filter Group and Available Version


Version
attributes Configurator Attributes of the attribute category. Small, 60.0 60.0
Attribute[]

code String Code of the attribute category. Small, 60.0 60.0

description String Description of the attribute category. Small, 60.0 60.0

id String ID of the attribute category. Small, 60.0 60.0

name String Name of the attribute category. Small, 60.0 60.0

status String Status of the attribute category. Small, 60.0 60.0

totalSize Integer Total size of the attribute category. Small, 60.0 60.0

usageType String Usage type of the attribute category. Small, 60.0 60.0

Configurator Attribute Picklist


Output representation of the attribute picklist in a product configuration.

Property Name Type Description Filter Group and Available Version


Version
description String Description of the attribute picklist. Small, 60.0 60.0

id String ID of the attribute picklist. Small, 60.0 60.0

name String Name of the attribute picklist. Small, 60.0 60.0

status String Status of the attribute picklist. Small, 60.0 60.0

values Configurator Values of the attribute picklist. Small, 60.0 60.0


Attribute Picklist
Value[]

Configurator Attribute Picklist Value


Output representation of the values of an attribute picklist in a product configuration.

Property Name Type Description Filter Group and Available Version


Version
code String Code of the attribute value. Small, 60.0 60.0

description String Description of the attribute value. Small, 60.0 60.0

displayValue String Display value of the attribute value. Small, 60.0 60.0

id String ID of the attribute value. Small, 60.0 60.0

708
Product Configurator Response Bodies

Property Name Type Description Filter Group and Available Version


Version
isBoolean Boolean Indicates if this attribute value is a boolean Small, 60.0 60.0
Value value (true) or not (false).

label String Label of the attribute value. Small, 60.0 60.0

name String Name of the attribute value. Small, 60.0 60.0

sequence Integer Sequence of the attribute value. Small, 60.0 60.0

status String Status of the attribute value. Small, 60.0 60.0

textValue String Text value of the attribute value. Small, 60.0 60.0

Configurator Delete Nodes


Output representation of the details of the configuration request to delete nodes.
JSON Example
{
"configuratorMessages": {},
"configuratorUITreatments": [
{
"details": {
"attributeId": "0tjxx0000000007AAA",
"prcId": "0dSxx0000000007EAA",
"stiId": "0QLxx0000004CU0GAM",
"attributePicklistValueId": "0v6xx0000000005AAA"
},
"uiTreatmentScope": "Bundle",
"uiTreatmentTarget": "Attribute_Picklist_Value",
"uiTreatmentType": "Hide"
},
{
"details": {
"stiId": "ref_f0f2da7b_c431_482d_bf4b_599052f3a2e1"
},
"uiTreatmentScope": "Product",
"uiTreatmentTarget": "Component",
"uiTreatmentType": "Disable"
}
],
"errors": [],
"productQualifications": {
"01tDU000000EOTCYA4": {
"isQualified": true
}
},
"success": true
}

709
Product Configurator Response Bodies

Property Name Type Description Filter Group and Available Version


Version
configurator Map<String, Map of the product IDs to the list of Small, 60.0 60.0
Messages Configurator configurator messages. Configurator
Message> messages are results from any validations,
Business Rules Engine (BRE) calls, or
Salesforce Pricing calls.

configurator Configurator UI Details of the UI treatments that specify the Small, 62.0 62.0
UITreatments Treatment[] product configuration rule actions to
override the disable or hide behavior in the
UI for product options, product attributes,
and attribute picklist values.

errors Error Response List of errors, which contains an error code Small, 60.0 60.0
and a message.

product Map<String, Map of the product IDs to the qualification Small, 60.0 60.0
Qualifications Configurator rule execution results.
Qualification
Context>

success Boolean Indicates whether the call was successful Small, 60.0 60.0
(true) not (false).

Configurator Message
Output representation of the messages of a product configurator.

Property Name Type Description Filter Group and Available Version


Version
category String Category or type of the error message. Valid Small, 60.0 60.0
values are:
• ArcResolutionService
• ArcValidationService
• BundleValidation
• ConfigurationRules
• Pricing

message String Message that contains the error details. Small, 60.0 60.0

messageType String Type of error message. Valid values are: Small, 60.0 60.0

• Error
• Info
• Warning

710
Product Configurator Response Bodies

Property Name Type Description Filter Group and Available Version


Version
primary String Primary record ID that contains the error. Small, 60.0 60.0
RecordId

related String Related record ID for the error, if any. Small, 60.0 60.0
RecordId

Configurator Price
Output representation of the pricing details in a product configuration.

Property Name Type Description Filter Group and Available Version


Version
currency String Currency ISO code of the price book entry. Small, 60.0 60.0
IsoCode

effectiveFrom String Date from when the price book entry is Small, 60.0 60.0
effective.

effectiveTo String Date until when the price book entry is Small, 60.0 60.0
effective.

isDefault Boolean Indicates if this price book entry is the Small, 60.0 60.0
default pricing model (true) or not
(false).

isDerived Boolean Small, 61.0 61.0

isSelected Boolean Indicates if this price book entry is selected Small, 60.0 60.0
(true) or not (false).

pricebook String ID of the price book entry. Small, 60.0 60.0


EntryId

pricebookId String Pricebook2 ID of the price book entry. Small, 60.0 60.0

pricingModel Configurator Pricing Pricing model details of the price book entry. Small, 60.0 60.0
Model[]

unitPrice Double Unit price of the price book entry. Small, 60.0 60.0

Configurator Pricing Model


Output representation of the details of a pricing model in a product configuration.

Property Name Type Description Filter Group and Available Version


Version
frequency String Frequency of the pricing model. Small, 60.0 60.0

711
Product Configurator Response Bodies

Property Name Type Description Filter Group and Available Version


Version
id String ID of the pricing model. Small, 60.0 60.0

name String Name of the pricing model. Small, 60.0 60.0

occurrence Integer Occurrence of the pricing model. Small, 60.0 60.0

pricing String Type of the pricing model. Small, 60.0 60.0


ModelType

unitOfMeasure String Unit of measure for the pricing model. Small, 60.0 60.0

Configurator Product Catalog


Output representation of the product catalog.
JSON example

"catalogProducts": {
"additionalFields": [],
"attributeCategories": [
{
"attributes": [
{
"attributeCategoryId": "0v3xx0000000001AAA",
"attributeNameOverride": "Load Capacity",
"code": "CAP",
"dataType": "NUMBER",
"defaultValue": "1500",
"description": "Server racks are designed to support a specific load capacity,
commonly measured in kilograms (kg) or pounds (lbs). Typical load capacities range from
500 kg (1102 lbs) to 1500 kg (3307 lbs) depending on the model.",
"id": "0tjxx00000001DpAAI",
"isCloneable": false,
"isConfigurable": true,
"isHidden": false,
"isPriceImpacting": false,
"isReadOnly": false,
"isRequired": false,
"label": "Load Capacity",
"name": "Load Capacity"
},
{
"attributeCategoryId": "0v3xx0000000001AAA",
"attributeNameOverride": "Expansion Slots",
"code": "SLOTCAP",
"dataType": "NUMBER",
"defaultValue": "12",
"id": "0tjxx00000001H3AAI",
"isCloneable": false,
"isConfigurable": true,
"isHidden": false,

712
Product Configurator Response Bodies

"isPriceImpacting": false,
"isReadOnly": false,
"isRequired": true,
"label": "Expansion Slots",
"name": "Expansion Slots"
},
{
"attributeCategoryId": "0v3xx0000000001AAA",
"attributeNameOverride": "Memory",
"attributePicklist": {
"id": "0v5xx0000000001AAA",
"values": [
{
"code": "MEM",
"displayValue": "25",
"id": "0v6xx0000000001AAA",
"isBooleanValue": false,
"name": "25Mem",
"sequence": 0,
"textValue": "25"
},
{
"code": "50MEM",
"displayValue": "50",
"id": "0v6xx000000001eAAA",
"isBooleanValue": false,
"name": "50Mem",
"sequence": 1,
"textValue": "50"
},
{
"code": "100MEM",
"displayValue": "100",
"id": "0v6xx000000003FAAQ",
"isBooleanValue": false,
"name": "100Mem",
"sequence": 2,
"textValue": "100"
}
]
},
"dataType": "MULTIPICKLIST",
"defaultValue": "25",
"id": "0tjxx00000001IfAAI",
"isCloneable": false,
"isConfigurable": true,
"isHidden": false,
"isPriceImpacting": false,
"isReadOnly": false,
"isRequired": true,
"label": "Memory",
"name": "Memory"
}
],

713
Product Configurator Response Bodies

"code": "SPEC",
"name": "Server Rack Specifications"
}
],
"description": "Introducing the Cisco Server Rack, a sleek and robust solution
designed to streamline your data center infrastructure. With its scalable design and
advanced cable management features, it ensures optimal performance, efficiency, and easy
maintenance for your critical network equipment.",
"displayUrl":
"https://www.cisco.com/content/dam/en/us/products/servers-unified-computing/ucs-c240-m4-rack-server/product-large.jpg",

"id": "01txx0000006jkuAAA",
"isActive": true,
"isAssetizable": true,
"isConfigurable": true,
"isSoldOnlyWithOtherProds": false,
"name": "Cisco Server Rack NX44",
"nodeType": "bundleProduct",
"prices": [],
"productClassification": {
"id": "11Bxx000002CC02EAG"
},
"productCode": "RACK",
"productComponentGroups": [
{
"classifications": [],
"code": "SERVICE",
"components": [
{
"additionalFields": [],
"attributeCategories": [],
"description": "Introducing the Cisco Rack Server NX44 Service, a
comprehensive protection plan designed to safeguard your valuable data infrastructure.
With extended coverage and rapid response times, this warranty ensures peace of mind
and uninterrupted performance for your critical business operations.",
"id": "01txx0000006jmWAAQ",
"isActive": true,
"isAssetizable": true,
"isComponentRequired": false,
"isConfigurable": false,
"isDefaultComponent": false,
"isQuantityEditable": false,
"isSoldOnlyWithOtherProds": false,
"name": "Cisco Rack Server Service - 1 Year",
"nodeType": "simpleProduct",
"prices": [],
"productClassification": {},
"productCode": "SERVICE",
"productComponentGroups": [],
"productRelatedComponent": {
"childProductId": "01txx0000006jmWAAQ",
"childSellingModelId": "0jPxx000000004rEAA",
"doesBundlePriceIncludeChild": true,
"id": "0dSxx000000001dEAA",

714
Product Configurator Response Bodies

"isComponentRequired": false,
"isDefaultComponent": false,
"isQuantityEditable": false,
"parentProductId": "01txx0000006jkuAAA",
"parentSellingModelId": "0jPxx000000004rEAA",
"productComponentGroupId": "0y7xx000000001dAAA",
"productRelationshipTypeId": "0yoxx00000001IfAAI",
"quantity": 1,
"quantityScaleMethod": "Proportional"
},
"productSellingModelOptions": [
{
"id": "0iOxx000000009hEAA",
"productId": "01txx0000006jmWAAQ",
"productSellingModel": {
"id": "0jPxx000000004rEAA",
"name": "Termed Annually",
"pricingTerm": 1,
"pricingTermUnit": "Annual",
"sellingModelType": "TermDefined",
"status": "Active"
},
"productSellingModelId": "0jPxx000000004rEAA"
},
{
"id": "0iOxx00000000PpEAI",
"productId": "01txx0000006jmWAAQ",
"productSellingModel": {
"id": "0jPxx0000000085EAA",
"name": "Evergreen Annually",
"pricingTerm": 1,
"pricingTermUnit": "Annual",
"sellingModelType": "Evergreen",
"status": "Active"
},
"productSellingModelId": "0jPxx0000000085EAA"
}
]
}
],
"description": "The services available for the Cisco Server Rack NX44 product
provide comprehensive coverage and support for optimal performance and reliability,
ensuring peace of mind for your data center infrastructure.",
"id": "0y7xx000000001dAAA",
"maxBundleComponents": 1,
"minBundleComponents": 0,
"name": "Services",
"parentProductId": "01txx0000006jkuAAA",
"sequence": 1
},
{
"classifications": [],
"code": "WARRANTY",
"components": [

715
Product Configurator Response Bodies

{
"additionalFields": [],
"attributeCategories": [],
"description": "Introducing the Cisco Rack Server NX44 Warranty, a
comprehensive protection plan designed to safeguard your valuable data infrastructure.
With extended coverage and rapid response times, this warranty ensures peace of mind
and uninterrupted performance for your critical business operations.",
"id": "01txx0000006jjIAAQ",
"isActive": true,
"isAssetizable": true,
"isComponentRequired": false,
"isConfigurable": false,
"isDefaultComponent": true,
"isQuantityEditable": true,
"isSoldOnlyWithOtherProds": false,
"name": "Cisco Rack Server Warranty - 1 Year",
"nodeType": "simpleProduct",
"prices": [],
"productClassification": {},
"productCode": "WARRANTY",
"productComponentGroups": [],
"productRelatedComponent": {
"childProductId": "01txx0000006jjIAAQ",
"childSellingModelId": "0jPxx000000001dEAA",
"doesBundlePriceIncludeChild": false,
"id": "0dSxx0000000001EAA",
"isComponentRequired": false,
"isDefaultComponent": true,
"isQuantityEditable": true,
"maxQuantity": 1,
"parentProductId": "01txx0000006jkuAAA",
"parentSellingModelId": "0jPxx000000001dEAA",
"productComponentGroupId": "0y7xx0000000001AAA",
"productRelationshipTypeId": "0yoxx00000001IfAAI",
"quantity": 1,
"quantityScaleMethod": "Proportional",
"sequence": 0
},
"productSellingModelOptions": [
{
"id": "0iOxx000000001dEAA",
"productId": "01txx0000006jjIAAQ",
"productSellingModel": {
"id": "0jPxx000000001dEAA",
"name": "One Time",
"sellingModelType": "OneTime",
"status": "Active"
},
"productSellingModelId": "0jPxx000000001dEAA"
},
{
"id": "0iOxx00000000HlEAI",
"productId": "01txx0000006jjIAAQ",
"productSellingModel": {

716
Product Configurator Response Bodies

"id": "0jPxx000000003FEAQ",
"name": "Termed Monthly",
"pricingTerm": 1,
"pricingTermUnit": "Months",
"sellingModelType": "TermDefined",
"status": "Active"
},
"productSellingModelId": "0jPxx000000003FEAQ"
},
{
"id": "0iOxx00000000JNEAY",
"productId": "01txx0000006jjIAAQ",
"productSellingModel": {
"id": "0jPxx000000004rEAA",
"name": "Termed Annually",
"pricingTerm": 1,
"pricingTermUnit": "Annual",
"sellingModelType": "TermDefined",
"status": "Active"
},
"productSellingModelId": "0jPxx000000004rEAA"
},
{
"id": "0iOxx00000000KzEAI",
"productId": "01txx0000006jjIAAQ",
"productSellingModel": {
"id": "0jPxx0000000085EAA",
"name": "Evergreen Annually",
"pricingTerm": 1,
"pricingTermUnit": "Annual",
"sellingModelType": "Evergreen",
"status": "Active"
},
"productSellingModelId": "0jPxx0000000085EAA"
},
{
"id": "0iOxx00000000MbEAI",
"productId": "01txx0000006jjIAAQ",
"productSellingModel": {
"id": "0jPxx000000006TEAQ",
"name": "Evergreen Monthly",
"pricingTerm": 1,
"pricingTermUnit": "Months",
"sellingModelType": "Evergreen",
"status": "Active"
},
"productSellingModelId": "0jPxx000000006TEAQ"
}
]
}
],
"description": "The warranties available for the Cisco Server Rack NX44 product
provide comprehensive coverage and support for optimal performance and reliability,
ensuring peace of mind for your data center infrastructure.",

717
Product Configurator Response Bodies

"id": "0y7xx0000000001AAA",
"maxBundleComponents": 1,
"minBundleComponents": 0,
"name": "Warranties",
"parentProductId": "01txx0000006jkuAAA",
"sequence": 0
}
],
"productSellingModelOptions": [
{
"id": "0iOxx000000003FEAQ",
"productId": "01txx0000006jkuAAA",
"productSellingModel": {
"id": "0jPxx000000001dEAA",
"name": "One Time",
"sellingModelType": "OneTime",
"status": "Active"
},
"productSellingModelId": "0jPxx000000001dEAA"
},
{
"id": "0iOxx000000004rEAA",
"productId": "01txx0000006jkuAAA",
"productSellingModel": {
"id": "0jPxx000000003FEAQ",
"name": "Termed Monthly",
"pricingTerm": 1,
"pricingTermUnit": "Months",
"sellingModelType": "TermDefined",
"status": "Active"
},
"productSellingModelId": "0jPxx000000003FEAQ"
},
{
"id": "0iOxx000000006TEAQ",
"productId": "01txx0000006jkuAAA",
"productSellingModel": {
"id": "0jPxx000000004rEAA",
"name": "Termed Annually",
"pricingTerm": 1,
"pricingTermUnit": "Annual",
"sellingModelType": "TermDefined",
"status": "Active"
},
"productSellingModelId": "0jPxx000000004rEAA"
}
],
"productType": "Bundle"
}

718
Product Configurator Response Bodies

Property Name Type Description Filter Group and Available Version


Version
additional Configurator Additional fields for this product. Small, 60.0 60.0
Fields Additional Fields[]

attribute Configurator List of attribute categories. The categories Small, 60.0 60.0
Categories Attribute Category[] that aren’t categorized are specified in the
uncategorized entry in this list.

availability String Availability date of this product. Small, 60.0 60.0


Date

description String Description of this product. Small, 60.0 60.0

discontinued String Date when this product is discontinued. Small, 60.0 60.0
Date

displayUrl String Display URL of this product. Small, 60.0 60.0

endOfLifeDate String End of life date for this product. Small, 60.0 60.0

id String ID of the product. Small, 60.0 60.0

isActive Boolean Indicates whether this product is active Small, 60.0 60.0
(true) or not (false).

isAssetizable Boolean Indicates whether this product is assetizable Small, 60.0 60.0
(true) or not (false).

isComponent Boolean Indicates whether the component is Small, 60.0 60.0


Required required (true) or not (false).

is Boolean Indicates whether the component is Small, 60.0 60.0


Configurable configurable (true) or not (false).

isDefault Boolean Indicates whether the component is a Small, 60.0 60.0


Component default component (true) or not (false).

isQuantity Boolean Indicates whether the quantity of the Small, 60.0 60.0
Editable component is editable ( true) or not
(false).

isSoldOnly Boolean Indicates whether this product is sold only Small, 60.0 60.0
WithOtherProds with other products (true) or not
(false).

name String Name of the product. Small, 60.0 60.0

nodeType String Node type of the product. Small, 60.0 60.0

prices Configurator Price[] List of prices from the product catalog. Small, 60.0 60.0

product Configurator Product Classification details of the product. Small, 60.0 60.0
Classification Classification[]

productCode String Code of the product. Small, 60.0 60.0

719
Product Configurator Response Bodies

Property Name Type Description Filter Group and Available Version


Version
product Configurator Product List of product component groups for this Small, 60.0 60.0
ComponentGroups Component Group[] product.

product Configurator Product Details of the product related component Small, 60.0 60.0
RelatedComponent Related of this product.
Component[]

productSelling Configurator Product List of product selling model options for this Small, 60.0 60.0
ModelOptions Selling Model product.
Option[]

productType String Type of product. Small, 60.0 60.0

qualification Configurator Details of the qualification context of the Small, 60.0 60.0
Context Qualification product.
Context[]

status String Status of the product. Small, 60.0 60.0

unitOfMeasure Configurator Unit Of Details about the unit of measure associated Small, 63.0 63.0
Measure[] with a product.

Configurator Product Classification


Output representation of the product classification in a product configuration.
JSON example

"productClassification": {
"id": "11Bxx000002CC02EAG"
}

Property Name Type Description Filter Group and Available Version


Version
id String ID of the product classification. Small, 60.0 60.0

Configurator Product Component Group


Output representation of the product component group in a product classification.
JSON example

"productComponentGroups": [
{
"classifications": [],
"code": "SERVICE",
"components": [
{

720
Product Configurator Response Bodies

"additionalFields": [],
"attributeCategories": [],
"description": "Introducing the Cisco Rack Server NX44 Service, a
comprehensive protection plan designed to safeguard your valuable data infrastructure.
With extended coverage and rapid response times, this warranty ensures peace of mind
and uninterrupted performance for your critical business operations.",
"id": "01txx0000006jmWAAQ",
"isActive": true,
"isAssetizable": true,
"isComponentRequired": false,
"isConfigurable": false,
"isDefaultComponent": false,
"isQuantityEditable": false,
"isSoldOnlyWithOtherProds": false,
"name": "Cisco Rack Server Service - 1 Year",
"nodeType": "simpleProduct",
"prices": [],
"productClassification": {},
"productCode": "SERVICE",
"productComponentGroups": [],
"productRelatedComponent": {
"childProductId": "01txx0000006jmWAAQ",
"childSellingModelId": "0jPxx000000004rEAA",
"doesBundlePriceIncludeChild": true,
"id": "0dSxx000000001dEAA",
"isComponentRequired": false,
"isDefaultComponent": false,
"isQuantityEditable": false,
"parentProductId": "01txx0000006jkuAAA",
"parentSellingModelId": "0jPxx000000004rEAA",
"productComponentGroupId": "0y7xx000000001dAAA",
"productRelationshipTypeId": "0yoxx00000001IfAAI",
"quantity": 1,
"quantityScaleMethod": "Proportional"
},
"productSellingModelOptions": [
{
"id": "0iOxx000000009hEAA",
"productId": "01txx0000006jmWAAQ",
"productSellingModel": {
"id": "0jPxx000000004rEAA",
"name": "Termed Annually",
"pricingTerm": 1,
"pricingTermUnit": "Annual",
"sellingModelType": "TermDefined",
"status": "Active"
},
"productSellingModelId": "0jPxx000000004rEAA"
},
{
"id": "0iOxx00000000PpEAI",
"productId": "01txx0000006jmWAAQ",
"productSellingModel": {
"id": "0jPxx0000000085EAA",

721
Product Configurator Response Bodies

"name": "Evergreen Annually",


"pricingTerm": 1,
"pricingTermUnit": "Annual",
"sellingModelType": "Evergreen",
"status": "Active"
},
"productSellingModelId": "0jPxx0000000085EAA"
}
]
}
],
"description": "The services available for the Cisco Server Rack NX44 product
provide comprehensive coverage and support for optimal performance and reliability,
ensuring peace of mind for your data center infrastructure.",
"id": "0y7xx000000001dAAA",
"maxBundleComponents": 1,
"minBundleComponents": 0,
"name": "Services",
"parentProductId": "01txx0000006jkuAAA",
"sequence": 1
},
{
"classifications": [],
"code": "WARRANTY",
"components": [
{
"additionalFields": [],
"attributeCategories": [],
"description": "Introducing the Cisco Rack Server NX44 Warranty, a
comprehensive protection plan designed to safeguard your valuable data infrastructure.
With extended coverage and rapid response times, this warranty ensures peace of mind
and uninterrupted performance for your critical business operations.",
"id": "01txx0000006jjIAAQ",
"isActive": true,
"isAssetizable": true,
"isComponentRequired": false,
"isConfigurable": false,
"isDefaultComponent": true,
"isQuantityEditable": true,
"isSoldOnlyWithOtherProds": false,
"name": "Cisco Rack Server Warranty - 1 Year",
"nodeType": "simpleProduct",
"prices": [],
"productClassification": {},
"productCode": "WARRANTY",
"productComponentGroups": [],
"productRelatedComponent": {
"childProductId": "01txx0000006jjIAAQ",
"childSellingModelId": "0jPxx000000001dEAA",
"doesBundlePriceIncludeChild": false,
"id": "0dSxx0000000001EAA",
"isComponentRequired": false,
"isDefaultComponent": true,
"isQuantityEditable": true,

722
Product Configurator Response Bodies

"maxQuantity": 1,
"parentProductId": "01txx0000006jkuAAA",
"parentSellingModelId": "0jPxx000000001dEAA",
"productComponentGroupId": "0y7xx0000000001AAA",
"productRelationshipTypeId": "0yoxx00000001IfAAI",
"quantity": 1,
"quantityScaleMethod": "Proportional",
"sequence": 0
},
"productSellingModelOptions": [
{
"id": "0iOxx000000001dEAA",
"productId": "01txx0000006jjIAAQ",
"productSellingModel": {
"id": "0jPxx000000001dEAA",
"name": "One Time",
"sellingModelType": "OneTime",
"status": "Active"
},
"productSellingModelId": "0jPxx000000001dEAA"
},
{
"id": "0iOxx00000000HlEAI",
"productId": "01txx0000006jjIAAQ",
"productSellingModel": {
"id": "0jPxx000000003FEAQ",
"name": "Termed Monthly",
"pricingTerm": 1,
"pricingTermUnit": "Months",
"sellingModelType": "TermDefined",
"status": "Active"
},
"productSellingModelId": "0jPxx000000003FEAQ"
},
{
"id": "0iOxx00000000JNEAY",
"productId": "01txx0000006jjIAAQ",
"productSellingModel": {
"id": "0jPxx000000004rEAA",
"name": "Termed Annually",
"pricingTerm": 1,
"pricingTermUnit": "Annual",
"sellingModelType": "TermDefined",
"status": "Active"
},
"productSellingModelId": "0jPxx000000004rEAA"
},
{
"id": "0iOxx00000000KzEAI",
"productId": "01txx0000006jjIAAQ",
"productSellingModel": {
"id": "0jPxx0000000085EAA",
"name": "Evergreen Annually",
"pricingTerm": 1,

723
Product Configurator Response Bodies

"pricingTermUnit": "Annual",
"sellingModelType": "Evergreen",
"status": "Active"
},
"productSellingModelId": "0jPxx0000000085EAA"
},
{
"id": "0iOxx00000000MbEAI",
"productId": "01txx0000006jjIAAQ",
"productSellingModel": {
"id": "0jPxx000000006TEAQ",
"name": "Evergreen Monthly",
"pricingTerm": 1,
"pricingTermUnit": "Months",
"sellingModelType": "Evergreen",
"status": "Active"
},
"productSellingModelId": "0jPxx000000006TEAQ"
}
]
}
],
"description": "The warranties available for the Cisco Server Rack NX44 product
provide comprehensive coverage and support for optimal performance and reliability,
ensuring peace of mind for your data center infrastructure.",
"id": "0y7xx0000000001AAA",
"maxBundleComponents": 1,
"minBundleComponents": 0,
"name": "Warranties",
"parentProductId": "01txx0000006jkuAAA",
"sequence": 0
}
]

Property Name Type Description Filter Group and Available Version


Version
classifications Configurator Product List of classifications for this product Small, 60.0 60.0
Classification[] component group.

code String Code of the product component group. Small, 60.0 60.0

components Configurator Product Components within the product Small, 60.0 60.0
Catalog[] component group.

description String Description of the product component Small, 60.0 60.0


group.

id String ID of the product component group. Small, 60.0 60.0

maxBundle Integer Maximum number of bundle components Small, 60.0 60.0


Components within the product component group.

minBundle Integer Minimum number of bundle components Small, 60.0 60.0


Components within the product component group.

724
Product Configurator Response Bodies

Property Name Type Description Filter Group and Available Version


Version
name String Name of the product component group. Small, 60.0 60.0

parent String Parent Product2 ID of the product Small, 60.0 60.0


ProductId component group.

sequence Integer Sequence of the product component group. Small, 60.0 60.0

Configurator Product Related Component


Output representation of the product related component in a product configuration.
JSON example

"productRelatedComponent": {
"childProductId": "01txx0000006jmWAAQ",
"childSellingModelId": "0jPxx000000004rEAA",
"doesBundlePriceIncludeChild": true,
"id": "0dSxx000000001dEAA",
"isComponentRequired": false,
"isDefaultComponent": false,
"isQuantityEditable": false,
"parentProductId": "01txx0000006jkuAAA",
"parentSellingModelId": "0jPxx000000004rEAA",
"productComponentGroupId": "0y7xx000000001dAAA",
"productRelationshipTypeId": "0yoxx00000001IfAAI",
"quantity": 1,
"quantityScaleMethod": "Proportional"
}

Property Name Type Description Filter Group and Available Version


Version
child String Child Product ID Small, 60.0 60.0
ProductId

childSelling String Child PSM Id Small, 60.0 60.0


ModelId

doesBundle Boolean Does the bundle price include child Small, 60.0 60.0
Price products
IncludeChild

id String ID of this Product Related Component Small, 60.0 60.0

isComponent Boolean Is Component Required Small, 60.0 60.0


Required

isDefault Boolean Is Default Component Small, 60.0 60.0


Component

725
Product Configurator Response Bodies

Property Name Type Description Filter Group and Available Version


Version
isQuantity Boolean Is Quantity Editable Small, 60.0 60.0
Editable

maxQuantity Double Max Quantity Small, 60.0 60.0

minQuantity Double Min Quantity Small, 60.0 60.0

parent String Parent Product ID Small, 60.0 60.0


ProductId

parentSelling String Parent PSM Id Small, 60.0 60.0


ModelId

product String Product Classification ID Small, 60.0 60.0


Classification
Id

product String Product Component Group ID Small, 60.0 60.0


Component
GroupId

product String PRT Id Small, 60.0 60.0


Relationship
TypeId

quantity Double Default Quantity Small, 60.0 60.0

quantityScale String Quantity Scale Method Small, 60.0 60.0


Method

sequence Integer Sequence Small, 60.0 60.0

Configurator Product Selling Model


Output representation of the product selling model in a product configuration.
JSON example

"productSellingModel": {
"id": "0jPxx0000000085EAA",
"name": "Evergreen Annually",
"pricingTerm": 1,
"pricingTermUnit": "Annual",
"sellingModelType": "Evergreen",
"status": "Active"
}

Property Name Type Description Filter Group and Available Version


Version
id String ID of the product selling model. Small, 60.0 60.0

726
Product Configurator Response Bodies

Property Name Type Description Filter Group and Available Version


Version
name String Name of the product selling model. Small, 60.0 60.0

pricingTerm Integer Pricing term of the product selling model. Small, 60.0 60.0

pricing String Pricing term unit of the product selling Small, 60.0 60.0
TermUnit model.

selling String Selling model type of the product selling Small, 60.0 60.0
ModelType model.

status String Status of the product selling model. Small, 60.0 60.0

Configurator Product Selling Model Option


Output representation of the product selling model option in a product configuration.
JSON example

"productSellingModelOptions": [
{
"id": "0iOxx000000009hEAA",
"productId": "01txx0000006jmWAAQ",
"productSellingModel": {
"id": "0jPxx000000004rEAA",
"name": "Termed Annually",
"pricingTerm": 1,
"pricingTermUnit": "Annual",
"sellingModelType": "TermDefined",
"status": "Active"
},
"productSellingModelId": "0jPxx000000004rEAA"
},
{
"id": "0iOxx00000000PpEAI",
"productId": "01txx0000006jmWAAQ",
"productSellingModel": {
"id": "0jPxx0000000085EAA",
"name": "Evergreen Annually",
"pricingTerm": 1,
"pricingTermUnit": "Annual",
"sellingModelType": "Evergreen",
"status": "Active"
},
"productSellingModelId": "0jPxx0000000085EAA"
}
]

727
Product Configurator Response Bodies

Property Name Type Description Filter Group and Available Version


Version
id String ID of the product selling model option. Small, 60.0 60.0

productId String ID of the product that’s associated with the Small, 60.0 60.0
product selling model option.

product Configurator Product Product selling model that’s associated with Small, 60.0 60.0
SellingModel Selling Model[] the product selling model option.

product String ID of the product selling model that’s Small, 60.0 60.0
Selling associated with the product selling model
ModelId option.

Configurator Qualification Context


Output representation of the qualification context in a product configuration.

Property Name Type Description Filter Group and Available Version


Version
isQualified Boolean Indicates whether the product is qualified Small, 60.0 60.0
(true) or not (false).

reason String Reason for the qualification of this product. Small, 60.0 60.0

Configurator UI Treatment
Output representation of the details of the UI treatments of a product configurator. The details include the product configuration rule
actions to override the disable or hide behavior in the UI for product options, product attributes, and attribute picklist values.
JSON Example
[
{
"details": {
"attributeId": "0tjxx0000000007AAA",
"prcId": "0dSxx0000000007EAA",
"stiId": "0QLxx0000004CU0GAM",
"attributePicklistValueId": "0v6xx0000000005AAA"
},
"uiTreatmentScope": "Bundle",
"uiTreatmentTarget": "Attribute_Picklist_Value",
"uiTreatmentType": "Hide"
},
{
"details": {
"stiId": "ref_f0f2da7b_c431_482d_bf4b_599052f3a2e1"
},
"uiTreatmentScope": "Product",
"uiTreatmentTarget": "Component",
"uiTreatmentType": "Disable"

728
Product Configurator Response Bodies

}
]

Property Name Type Description Filter Group and Available Version


Version
details Map<String, Key-value pair that specifies the items to Small, 62.0 62.0
Object> apply the rules on, which includes these
details.
• ID of the sales transaction item
• ID of the product-related component
• ID of the attribute
• ID of the attribute picklist value

uiTreatment String Type of the UI treatment to be performed. Small, 62.0 62.0


Scope Valid values are:
• Product—UI treatment is applicable
to a certain product only.
• Bundle—UI treatment is applicable
to the whole bundle.

uiTreatment String Target of the UI treatment. Valid values are: Small, 62.0 62.0
Target
• Component—Represents a product
option or bundle component.
• Quantity—Represents a quantity
field.
• Attribute—Represents a certain
attribute of the product.
• Attribute_Picklist_Value—Represents
one of the picklist values of a product
attribute.

uiTreatment String Type of UI treatment to be performed. Valid Small, 62.0 62.0


Type values are:
• Hide—Hide the associated target.
• Disable—Disable the associated
target.

Configurator Unit Of Measure


Output representation of the details of the unit of measure record.

729
Product Configurator Response Bodies

JSON Example
{
"unitOfMeasure": {
"id": "0hEXR00000000BJ2AY",
"name": "Litres",
"roundingMethod": "Down",
"scale": 2,
"unitCode": "Ltrs"
}
}

Property Name Type Description Filter Group and Available Version


Version
id String ID of the unit of measure record. Small, 63.0 63.0

name String Name of the unit of measure record. Small, 63.0 63.0

rounding String Rounding method associated with the unit Small, 63.0 63.0
Method of measure record.

scale Integer Scale associated with the unit of measure Small, 63.0 63.0
record.

unitCode String Unit code associated with the unit of Small, 63.0 63.0
measure record.

Configurator Update Nodes


Output representation of the configuration request details to update nodes.
JSON Example
{
"configuratorMessages": {},
"configuratorUITreatments": [
{
"details": {
"attributeId": "0tjxx0000000007AAA",
"prcId": "0dSxx0000000007EAA",
"stiId": "0QLxx0000004CU0GAM",
"attributePicklistValueId": "0v6xx0000000005AAA"
},
"uiTreatmentScope": "Bundle",
"uiTreatmentTarget": "Attribute_Picklist_Value",
"uiTreatmentType": "Hide"
},
{
"details": {
"stiId": "ref_f0f2da7b_c431_482d_bf4b_599052f3a2e1"
},
"uiTreatmentScope": "Product",
"uiTreatmentTarget": "Component",

730
Product Configurator Response Bodies

"uiTreatmentType": "Disable"
}
],
"errors": [],
"productQualifications": {
"01tDU000000EOTCYA4": {
"isQualified": true
}
},
"success": true
}

Property Name Type Description Filter Group and Available Version


Version
configurator Map<String, Map of the product IDs to the list of Small, 60.0 60.0
Messages Configurator configurator messages. Configurator
Message> messages are results from any validations,
Business Rules Engines (BRE) calls, or
Salesforce Pricing calls.

configurator Configurator UI Details of the UI treatments that specify the Small, 62.0 62.0
UITreatments Treatment[] product configuration rule actions to
override the disable or hide behavior in the
UI for product options, product attributes,
and attribute picklist values.

errors Error Response List of errors, which contains an error code Small, 60.0 60.0
and a message.

product Map<String, Map of the product IDs to the qualification Small, 60.0 60.0
Qualifications Configurator rule execution results.
Qualification
Context>

success Boolean Indicates whether the call was successful Small, 60.0 60.0
(true) not (false).

Configuration Update
Output representation of the details of the updated configuration.
JSON example
This example shows a sample when the update operation is successful.
{
"errors": [],
"success": true
}

This example shows a sample when the update operation has errors.
{
"errors": [

731
Product Configurator Response Bodies

{
"code": "INTERNAL_SERVER_ERROR",
"message": "INVALID_REFERENCEOBJECTID"
}
],
"success": false
}

Property Name Type Description Filter Group and Available Version


Version
errors Error Response List of errors that contains a message and Small, 63.0 63.0
an error code.

success Boolean Indicates whether the update operation is Small, 63.0 63.0
successful (true) or not (false)

Error Response
Output representation of the details of the error.
JSON example
{
"errors": [
{
"code": "BAD_REQUEST",
"message": "MISSING_REFERENCEOBJECTID"
}
]
}

Property Name Type Description Filter Group and Available Version


Version
code String Code of the error. Small, 63.0 63.0

message String Description of the error. Small, 63.0 63.0

Product Quantity Set Configurator


Output representation of the request details to set product quantity.
JSON Example
{
"configuratorMessages": {},
"configuratorUITreatments": [
{
"details": {
"attributeId": "0tjxx0000000007AAA",
"prcId": "0dSxx0000000007EAA",
"stiId": "0QLxx0000004CU0GAM",

732
Product Configurator Response Bodies

"attributePicklistValueId": "0v6xx0000000005AAA"
},
"uiTreatmentScope": "Bundle",
"uiTreatmentTarget": "Attribute_Picklist_Value",
"uiTreatmentType": "Hide"
},
{
"details": {
"stiId": "ref_f0f2da7b_c431_482d_bf4b_599052f3a2e1"
},
"uiTreatmentScope": "Product",
"uiTreatmentTarget": "Component",
"uiTreatmentType": "Disable"
}
],
"errors": [],
"productQualifications": {
"01tDU000000EOTCYA4": {
"isQualified": true
}
},
"success": true
}

Property Name Type Description Filter Group and Available Version


Version
configurator Map<String, Map of the product IDs to the list of Small, 60.0 60.0
Messages Configurator configurator messages. Configurator
Message> messages are results from any validations,
Business Rules Engines (BRE) calls, or
Salesforce Pricing calls.

configurator Configurator UI Details of the UI treatments that specify the Small, 62.0 62.0
UITreatments Treatment[] product configuration rule actions to
override the disable or hide behavior in the
UI for product options, product attributes,
and attribute picklist values.

errors Error Response List of errors, which contains an error code Small, 60.0 60.0
and a message.

product Map<String, Map of the product IDs to the qualification Small, 60.0 60.0
Qualifications Configurator rule execution results.
Qualification
Context>

success Boolean Indicates whether the call was successful Small, 60.0 60.0
(true) not (false).

733
CHAPTER 7 Transaction Management
In this chapter ... Automate and optimize the quote creation or order capture
EDITIONS
experience with the right products and right prices whether its an
• Quote and Order initial, amendment, or renewal sale. Available in: Lightning
Capture
Experience
• Asset Lifecycle
Available in: Enterprise,
Unlimited, and Developer
Editions of Revenue Cloud
where Transaction
Management is enabled

734
Transaction Management Quote and Order Capture

Quote and Order Capture


Configure, price, and sell products with Quote and Order Capture in Revenue Cloud. Quote and
EDITIONS
Order Capture supports subscription lifecycles and ensures end-to-end integrity of your quotes and
orders. Available in: Lightning
Experience
Quote and Order Capture Standard Objects
Available in: Enterprise,
The Quote and Order Capture data model provides objects and fields to manage transactions. Unlimited, and Developer
Quote and Order Capture Fields on Standard Objects Editions of Revenue Cloud
Quote and Order Capture adds standard and custom fields to some standard Salesforce objects. where Transaction
These fields are available only in orgs where Quote and Order Capture is enabled. Management is enabled

Quote and Order Capture Tooling API Objects


Tooling API exposes metadata used in developer tooling that you can access through REST or SOAP. Tooling API’s SOQL capabilities
for many metadata types allow you to retrieve smaller pieces of metadata.
Quote and Order Capture Platform Event
Use the QuoteSaveEvent event to notify subscribers after saving of a quote is processed.
Quote and Order Capture Business APIs
Use the Quote and Order Capture Business APIs to fetch instant pricing data on a quote or an order, to create a quote, or to create
an order.
Quote and Order Capture Apex Reference
Use built-in Apex classes and interfaces grouped by namespace.
Quote and Order Capture Standard Invocable Actions
Learn more about the standard invocable actions available with Quote and Order Capture.
Quote and Order Capture Metadata API Types
Metadata API enables you to access some types and feature settings that you can customize in the user interface.

SEE ALSO:
Salesforce Help: Permissions for Quote and Order Capture

Quote and Order Capture Standard Objects


The Quote and Order Capture data model provides objects and fields to manage transactions.

ApprovalSubmission
Represents the instance of an approval request that's submitted for a record of the related object. This object is available in API
version 62.0 and later.
ContractItemPrice
Represents an object that’s used to capture a price for a product on a contract. This object is available in API version 61.0 and later.
ContractItemPriceAdjTier
Represents the tiers of a price adjustment to a product on a contract. This object is available in API version 63.0 and later.

735
Transaction Management Quote and Order Capture Standard Objects

ContractItemPriceHistory
Represents the history of changes to the values in the fields of a ContractItemPrice object. This object is available in API version 61.0
and later.
OrderDeliveryMethod
Shows the customizations and options that a buyer selected for their delivery method. This object is available in API version 48.0
and later.
OrderItemAttribute
Represents a virtual object which is associated with the Attribute Value Store object. This object is available in API version 60.0 and
later.
OrderItemDetail
Represents information about the quantity and price details of an order product. This object is available in API version 60.0 and later.
OrderItemRateAdjustment
Represents the negotiated rate adjustment for an order product. This object is available in API version 62.0 and later.
OrderItemRateCardEntry
Represents the catalog and negotiated rates of a usage metric associated with an order item that's used to charge overage
consumption. This object is available in API version 62.0 and later.
SalesTransactionType
Represents the type of the sales transaction. This object is available in API version 61.0 and later.
QuoteAction
Indicates the type of sales transaction that’s being quoted; for example, a renewal sale. This object is available in API version 59.0
and later.
QuoteLineDetail
Represents information about the quantity and price detail of a quote line item. This object is available in API version 60.0 and later.
QuoteLineRateAdjustment
Represents the negotiated rate adjustment for a quote line item. This object is available in API version 62.0 and later.
QuoteLineRateCardEntry
Represents the catalog and negotiated rates of a usage resource associated with a quote line item that's used to charge overage
consumption. This object is available in API version 62.0 and later.

SEE ALSO:
Object Reference for the Salesforce Platform: Overview of Salesforce Objects and Fields
SOAP API Developer Guide: Introduction to SOAP API

ApprovalSubmission
Represents the instance of an approval request that's submitted for a record of the related object. This object is available in API version
62.0 and later.

Supported Calls
describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(), retrieve()

736
Transaction Management Quote and Order Capture Standard Objects

Special Access Rules


This object is available in Enterprise, Unlimited, and Developer Editions of Revenue Cloud.

Fields

Field Details
Comments Type
textarea
Properties
Nillable
Description
The comments about the request that's submitted for approval.

DoesSendApprovalEmail Type
boolean
Properties
Defaulted on create, Filter, Group, Sort
Description
Required. Indicates whether approval request emails are sent to approvers and delegates
(true) or not (false).
The default value is false.

FlowOrchestrationInstanceId Type
reference
Properties
Filter, Group, Nillable, Sort
Description
The ID of the flow orchestration instance record that's associated with the approval.
This field is a relationship field.
Relationship Name
FlowOrchestrationInstance
Refers To
FlowOrchestrationInstance

Name Type
string
Properties
Autonumber, Defaulted on create, Filter, idLookup, Sort
Description
The auto-generated name for the approval submission.

737
Transaction Management Quote and Order Capture Standard Objects

Field Details
OwnerId Type
reference
Properties
Filter, Group, Sort
Description
The ID of the user or the group that owns the approval submission record.
This field is a polymorphic relationship field.
Relationship Name
Owner
Refers To
Group, User

RelatedRecordId Type
reference
Properties
Filter, Group, Nillable, Sort
Description
Required. The ID of the related record that's submitted for approval.
This field is a polymorphic relationship field.
Relationship Name
RelatedRecord
Refers To
Account, AdAvailabilityViewConfig, Address, AnalyticsUserAttrFuncTkn, ApprovalSubmission,
ApprovalSubmissionDetail, ApprovalWorkItem, Asset, AssetAction, AssetActionSource,
AssetContractRelationship, AssetRateAdjustment, AssetRateCardEntry, AssetRelationship,
AssetStatePeriod, AssociatedLocation, AsyncOperationTracker, AttrPicklistExcludedValue,
AttributeAdjustmentCondition, AttributeBasedAdjRule, AttributeBasedAdjustment,
AttributeCategory, AttributeCategoryAttribute, AttributeDefinition, AttributePicklist,
AttributePicklistValue, AuthorizationForm, AuthorizationFormConsent,
AuthorizationFormDataUse, AuthorizationFormText, BatchJob, BatchJobPart,
BatchJobPartFailedRecord, BundleBasedAdjustment, BusinessBrand, Case, CaseComment,
ChannelProgram, ChannelProgramLevel, ChannelProgramMember, CollaborationGroup,
CommSubscription, CommSubscriptionChannelType, CommSubscriptionConsent,
CommSubscriptionTiming, Contact, ContactPointAddress, ContactPointConsent,
ContactPointEmail, ContactPointPhone, ContactPointTypeConsent, ContactRequest,
ContextDefinitionSync, Contract, ContractItemPrice, ContractItemPriceAdjTier, CostBook,
CostBookEntry, Customer, DTRecordsetReplica, DataUseLegalBasis, DataUsePurpose,
DecisionTblFileImportData, DelegatedAccount, DocGenerationQueryResult,
DocTemplateSectionCondition, DocumentEnvelope, DocumentGenerationProcess,
DocumentRecipient, DocumentTemplate, DocumentTemplateContentDoc,
DocumentTemplateSection, DocumentTemplateToken, DuplicateRecordItem,
DuplicateRecordSet, EmailMessage, EngagementChannelType, ExpressionSetConstraintObj,
ExternalEventMapping, FlowOrchestrationInstance, FulfillmentOrder,

738
Transaction Management Quote and Order Capture Standard Objects

Field Details
FulfillmentOrderItemAdjustment, FulfillmentOrderItemTax, FulfillmentOrderLineItem,
GeneratedDocument, GeneratedDocumentSection, Idea, Image, Individual,
IntegrationProviderDcsnRqmt, IntegrationProviderExecution, Lead, Location,
LocationTrustMeasure, ManagedContentVariant, ObjectStateDefinition, ObjectStateTransition,
ObjectStateValue, Obligation, Opportunity, OpportunityRelatedDeleteLog, Order, OrderAction,
OrderAdjustmentGroup, OrderDeliveryGroup, OrderDeliveryMethod, OrderItem,
OrderItemAdjustmentLineItem, OrderItemDetail, OrderItemRateAdjustment,
OrderItemRateCardEntry, OrderItemRecipient, OrderItemRelationship, OrderItemTaxLineItem,
OrgMetricScanResult, OrgMetricScanSummary, Organization, PartnerFundAllocation,
PartnerFundClaim, PartnerFundRequest, PartnerMarketingBudget, PartyConsent,
PriceBookEntryDerivedPrice, PriceBookRateCard, PricingAdjBatchJob, PricingAdjBatchJobLog,
PricingApiExecution, PricingProcessExecution, ProcessException, Product2,
ProductAttributeDefinition, ProductCatalog, ProductCategory, ProductCategoryDisqual,
ProductCategoryProduct, ProductCategoryQualification, ProductClassification,
ProductClassificationAttr, ProductComponentGroup, ProductComponentGrpOverride,
ProductConfigFlowAssignment, ProductConfigurationFlow, ProductConfigurationRule,
ProductDisqualification, ProductPriceHistoryLog, ProductPriceRange, ProductQualification,
ProductRampSegment, ProductRelComponentOverride, ProductUsageGrant, ProfileSkill,
ProfileSkillEndorsement, ProfileSkillUser, PromptAction, PromptError, QuickText,
QuickTextUsage, Quote, QuoteLineDetail, QuoteLineItem, QuoteLineItemRecipient,
QuoteLineRateAdjustment, QuoteLineRateCardEntry, RateAdjustmentByAttribute,
RateAdjustmentByTier, RateCard, RateCardEntry, RatingFrequencyPolicy, SalesTransactionType,
Seller, Shipment, ShipmentItem, Site, SocialPersona, SocialPost, Solution, StreamingChannel,
TableauHostMapping, Topic, UnitOfMeasure, UnitOfMeasureClass, UsageGrantRenewalPolicy,
UsageGrantRolloverPolicy, UsageResource, UsageResourceBillingPolicy, User,
UserEsignVendorIdentifier, UserLicense, UserLocalWebServerIdentity, UserProvisioningRequest,
WorkBadge, WorkBadgeDefinition, WorkOrder, WorkOrderLineItem, WorkThanks

RelatedRecordObjectName Type
string
Properties
Filter, Group, Nillable, Sort
Description
Required. The type of record that was submitted for approval.

Status Type
picklist
Properties
Filter, Group, Restricted picklist, Sort
Description
Required. The status of the approval.
Valid values are:
• Approved
• Canceled

739
Transaction Management Quote and Order Capture Standard Objects

Field Details
• Errored
• InProgress
• Recalled
• Rejected
• Suspended

SubmittedById Type
reference
Properties
Filter, Group, Nillable, Sort
Description
Required. The ID of the user who submitted the record for approval.
This field is a relationship field.
Relationship Name
SubmittedBy
Refers To
User

Associated Objects
This object has the following associated objects. If the API version isn’t specified, they’re available in the same API versions as this object.
Otherwise, they’re available in the specified API version and later.
ApprovalSubmissionOwnerSharingRule on page 1670
Sharing rules are available for the object.
ApprovalSubmissionShare on page 1672
Sharing is available for the object.

ContractItemPrice
Represents an object that’s used to capture a price for a product on a contract. This object is available in API version 61.0 and later.

Important: Where possible, we changed noninclusive terms to align with our company value of Equality. We maintained certain
terms to avoid any effect on customer implementations.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), undelete(), update(), upsert()

Special Access Rules


This object is available in Enterprise, Unlimited, and Developer Editions of Revenue Cloud.

740
Transaction Management Quote and Order Capture Standard Objects

Fields

Field Details
ContractId Type
reference
Properties
Create, Filter, Group, Sort
Description
ID of the contract.
This field is a relationship field.
Relationship Name
Contract
Relationship Type
Master-detail
Refers To
Contract (the master object)

DiscountType Type
picklist
Properties
Create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
Type of discount to apply, which is a percentage of the price or an amount.
Valid values are:
• AdjustmentAmount
• AdjustmentPercentage

DiscountValue Type
double
Properties
Create, Filter, Nillable, Sort, Update
Description
Value of the discount to apply based on the discount type.

EndDate Type
dateTime
Properties
Create, Filter, Nillable, Sort, Update
Description
End date and time of the relationship between the contract and contract item price.

741
Transaction Management Quote and Order Capture Standard Objects

Field Details
ItemId Type
reference
Properties
Create, Filter, Group, Sort, Update
Description
ID of the product or product category related to a price in a contract.
This field is a polymorphic relationship field.
Relationship Name
Item
Relationship Type
Lookup
Refers To
Product2, ProductCategory

LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
Timestamp when the current user last accessed this record, a record related to this record,
or a list view.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
Timestamp when the current user last viewed this record or list view. If this value is null, the
user accessed this record or list view (LastReferencedDate) but didn’t view it.

Name Type
string
Properties
Autonumber, Defaulted on create, Filter, idLookup, Sort
Description
Auto-generated number assigned to the contract item price. (Read Only)

Price Type
currency
Properties
Create, Filter, Nillable, Sort, Update

742
Transaction Management Quote and Order Capture Standard Objects

Field Details

Description
Unit price for the product sold as part of the contract.

ProductSellingModelId Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
Product selling model for the product associated with the price.
This field is a relationship field.
Relationship Name
ProductSellingModel
Relationship Type
Lookup
Refers To
ProductSellingModel

SellingModelType Type
picklist
Properties
Defaulted on create, Filter, Group, Nillable, Restricted picklist, Sort
Description
Selling mode type to specify whether the product is sold as a one-time sale, an evergreen
subscription, or a subscription with a defined term.
Valid values are:
• Evergreen
• OneTime
• TermDefined
This value is derived from the product selling model.

StartDate Type
dateTime
Properties
Create, Filter, Sort, Update
Description
Start date and time of the relationship between the contract and contract item price.

743
Transaction Management Quote and Order Capture Standard Objects

Associated Objects
This object has the following associated objects. If the API version isn’t specified, they’re available in the same API versions as this object.
Otherwise, they’re available in the specified API version and later.
ContractItemPriceHistory on page 746
History is available for tracked fields of the object.

ContractItemPriceAdjTier
Represents the tiers of a price adjustment to a product on a contract. This object is available in API version 63.0 and later.

Important: Where possible, we changed noninclusive terms to align with our company value of Equality. We maintained certain
terms to avoid any effect on customer implementations.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), undelete(), update(), upsert()

Special Access Rules


This object is available with Revenue Cloud.

Fields

Field Details
ContractItemPriceId Type
reference
Properties
Create, Filter, Group, Sort
Description
The contract item price ID associated with the contract item price adjustment tier.
This field is a relationship field.
Relationship Name
ContractItemPrice
Relationship Type
Master-detail
Refers To
ContractItemPrice (the master object)

LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort

744
Transaction Management Quote and Order Capture Standard Objects

Field Details

Description
The timestamp when the current user last accessed this record, a record related to this record,
or a list view.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
Timestamp when the current user last viewed this record or list view. If this value is null, the
user accessed this record or list view (LastReferencedDate) but didn’t view it.

LowerBound Type
double
Properties
Create, Filter, Sort, Update
Description
The minimum quantity for the adjustment to be applicable.

Name Type
string
Properties
Autonumber, Defaulted on create, Filter, idLookup, Sort
Description
The name of the record.

TierType Type
picklist
Properties
Create, Filter, Group, Restricted picklist, Sort, Update
Description
The type of adjustment tier.
Valid values are:
• AdjustmentAmount
• AdjustmentPercentage
• OverrideAmount

TierValue Type
double
Properties
Create, Filter, Sort, Update

745
Transaction Management Quote and Order Capture Standard Objects

Field Details

Description
The price adjustment value.

UpperBound Type
double
Properties
Create, Filter, Nillable, Sort, Update
Description
The maximum quantity for the adjustment to be applicable.

Associated Objects
This object has associated objects. If the API version isn’t specified, they’re available in the same API versions as this object. Otherwise,
they’re available in the specified API version and later.
ContractItemPriceAdjTierFeed
Feed tracking is available for the object.
ContractItemPriceAdjTierHistory
History is available for tracked fields of the object.

ContractItemPriceHistory
Represents the history of changes to the values in the fields of a ContractItemPrice object. This object is available in API version 61.0 and
later.

Supported Calls
describeSObjects(), getDeleted(), getUpdated(), query(), retrieve()

Special Access Rules


This object is available in Enterprise, Unlimited, and Developer Editions of Revenue Cloud.

Fields

Field Details
ContractItemPriceId Type
reference
Properties
Filter, Group, Sort
Description
ID of the ContractItemPrice record.
This field is a relationship field.

746
Transaction Management Quote and Order Capture Standard Objects

Field Details

Relationship Name
ContractItemPrice
Relationship Type
Lookup
Refers To
ContractItemPrice

DataType Type
picklist
Properties
Filter, Group, Nillable, Restricted picklist, Sort
Description
Data type of the field that was changed.
Valid values are:
• Address
• AnyType
• AutoNumber
• Base64
• BitVector
• Boolean
• Content
• Currency
• DataCategoryGroupReference
• DateOnly
• DateTime
• Division
• Double
• DynamicEnum
• Email
• EncryptedBase64
• EncryptedText
• EntityId
• EnumOrId
• ExternalId
• Fax
• File
• HtmlMultiLineText
• HtmlStringPlusClob
• InetAddress

747
Transaction Management Quote and Order Capture Standard Objects

Field Details
• Json
• Location
• MultiEnum
• MultiLineText
• Namespace
• Percent
• PersonName
• Phone
• Raw
• RecordType
• SfdcEncryptedText
• SimpleNamespace
• StringPlusClob
• Switchable_PersonName
• Text
• TimeOnly
• Url
• YearQuarter

Field Type
picklist
Properties
Filter, Group, Restricted picklist, Sort
Description
Name of the field that was changed.
Possible values are:
• Contract
• DiscountType
• DiscountValue
• EndDate
• Item
• Name
• Price
• ProductSellingModel
• StartDate
• created
• customPersonMerged
• feedEvent

748
Transaction Management Quote and Order Capture Standard Objects

Field Details
• individualMerged
• locked—Record locked.
• ownerAccepted—Owner (Accepted)
• ownerAssignment—Owner (Assignment)
• unlocked—Record unlocked.

NewValue Type
anyType
Properties
Nillable, Sort
Description
New value of the field that was changed.

OldValue Type
anyType
Properties
Nillable, Sort
Description
Latest value of the field before it was changed.

OrderDeliveryMethod
Shows the customizations and options that a buyer selected for their delivery method. This object is available in API version 48.0 and
later.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), search(), undelete(), update(), upsert()

Special Access Rules


To access Commerce Orders entities, your org must have a Salesforce Order Management license. Commerce Orders entities are available
only in Lightning Experience.

Fields

Field Details
Carrier Type
picklist
Properties
Create, Filter, Group, Nillable, Sort, Update

749
Transaction Management Quote and Order Capture Standard Objects

Field Details

Description
The carrier that the buyer chose for their delivery method. Developers must add values to
this field.

ClassOfService Type
picklist
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The carrier class of service that the buyer chose for their delivery method. Developers must
add values to this field.

Description Type
textarea
Properties
Create, Nillable, Update
Description
Description of the delivery method.

IsActive Type
boolean
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
Assign new delivery groups to active delivery methods.

LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The timestamp for when the current user last viewed a record related to this record.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The timestamp for when the current user last viewed this record. If this value is null, this
record might only have been referenced (LastReferencedDate) and not viewed.

750
Transaction Management Quote and Order Capture Standard Objects

Field Details
Name Type
string
Properties
Create, Filter, Group, idLookup, Sort, Update
Description
Required. Default name of this record.

OwnerId Type
reference
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
The user who owns an order delivery method record.

ProductId Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
Optional. This product represents a delivery charge order product for a delivery using this
delivery method. For example, you could create a product that represents an overnight
express charge and assign it to an overnight express delivery method.

ReferenceNumber Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
Reference number for an external delivery method.

ShippingCarrierMethod Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
Optional. A specific shipping service provided by a shipping carrier, such as Ground, 2Day,
and NextDay. Depends on the range of transit times available for each carrier.

Associated Objects
This object has the following associated objects. If the API version isn’t specified, they’re available in the same API versions as this object.
Otherwise, they’re available in the specified API version and later.

751
Transaction Management Quote and Order Capture Standard Objects

OrderDeliveryMethodChangeEvent (API version 62.0)


Change events are available for the object.

OrderItemAttribute
Represents a virtual object which is associated with the Attribute Value Store object. This object is available in API version 60.0 and later.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), query(), retrieve(), update(), upsert()

Special Access Rules


This object is available in Enterprise, Unlimited, and Developer Editions of Revenue Cloud.

Fields

Field Details
AttributeDefinitionId Type
reference
Properties
Create, Filter, Group, Sort, Update
Description
The ID of the attribute definition for this order item attribute.
This field is a relationship field.
Relationship Name
AttributeDefinition
Relationship Type
Lookup
Refers To
AttributeDefinition

AttributeName Type
string
Properties
Filter, Group, idLookup, Nillable, Sort
Description
The name given to order item attribute.

AttributePicklistValueId Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update

752
Transaction Management Quote and Order Capture Standard Objects

Field Details

Description
The ID of the attribute picklist value if the attribute is a picklist type.
This field is a relationship field.
Relationship Name
AttributePicklistValue
Relationship Type
Lookup
Refers To
AttributePicklistValue

AttributeValue Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
Stores the value of the order item attribute. For example 5-TB storage.

ExternalId Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
An auto-generated ID of the attribute record saved in an external system (for example an
HBase database).

OrderItemId Type
reference
Properties
Create, Filter, Group, Sort
Description
The parent order item associated with the order item attribute.
This field is a relationship field.
Relationship Name
OrderItem
Relationship Type
Lookup
Refers To
OrderItem

753
Transaction Management Quote and Order Capture Standard Objects

OrderItemDetail
Represents information about the quantity and price details of an order product. This object is available in API version 60.0 and later.

Supported Calls
describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(), retrieve()

Special Access Rules


This object is available in Enterprise, Unlimited, and Developer Editions of Revenue Cloud.

Fields

Field Details
BillingReference Type
string
Properties
Filter, Group, Nillable, Sort
Description
Reference to the original order item for which this amend or cancel record is created.

LineNumber Type
int
Properties
Filter, Group, Nillable, Sort
Description
The line number of the detail record.

Name Type
string
Properties
Autonumber, Defaulted on create, Filter, idLookup, Sort
Description
The name of the record.

NetUnitPrice Type
currency
Properties
Filter, Sort
Description
The unit price of the item that's calculated after applying any discounts and before tax
calculation.

754
Transaction Management Quote and Order Capture Standard Objects

Field Details
OrderItemId Type
reference
Properties
Filter, Group, Sort
Description
The ID of the related order item.
This field is a relationship field.
Relationship Name
OrderItem
Relationship Type
Lookup
Refers To
OrderItem

PriceWaterfallIdentifier Type
string
Properties
Filter, Group, Nillable, Sort
Description
The price waterfall identifier generated by Salesforce Pricing that's associated with the pricing
of the detail record.

Quantity Type
double
Properties
Filter, Sort
Description
The quantity specified for the item in the detail record.

ReferenceDate Type
date
Properties
Filter, Group, Nillable, Sort
Description
The reference date of the item. For example, the start date of the subscription that's associated
with the detail record.

ReferenceNumber Type
string
Properties
Filter, Group, Nillable, Sort

755
Transaction Management Quote and Order Capture Standard Objects

Field Details

Description
The reference number of the item. For example, the order number that's associated with the
detail record.

TotalLineAmount Type
currency
Properties
Filter, Sort
Description
The net total price of the order product, before price adjustments, inclusive of quantity and
subscription term.

TotalPrice Type
currency
Properties
Filter, Sort
Description
The total price of the item in the detail record that's calculated using the quantity, net unit
price, and after applying the pricing terms.

UnitPrice Type
currency
Properties
Filter, Sort
Description
The unit price of the item before any discounts or tax calculation.

OrderItemRateAdjustment
Represents the negotiated rate adjustment for an order product. This object is available in API version 62.0 and later.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), update(), upsert()

Special Access Rules


This object is available with Revenue Cloud.

756
Transaction Management Quote and Order Capture Standard Objects

Fields

Field Details
AdjustmentType Type
picklist
Properties
Create, Filter, Group, Restricted picklist, Sort, Update
Description
Specifies the type of rate adjustment.
Possible values are:
• Amount
• Override
• Percentage

AdjustmentValue Type
double
Properties
Create, Filter, Sort, Update
Description
The value of the adjustment.

LowerBound Type
double
Properties
Create, Filter, Sort, Update
Description
The minimum quantity for the adjustment to be applicable.

Name Type
string
Properties
Create, Filter, Group, idLookup, Sort, Update
Description
The name of the order item rate adjustment.

OrderItemRateCardEntryId Type
reference
Properties
Create, Filter, Group, Sort
Description
The parent order item rate card entry associated with the order item rate adjustment.
This field is a relationship field.

757
Transaction Management Quote and Order Capture Standard Objects

Field Details

Relationship Name
OrderItemRateCardEntry
Relationship Type
Master-detail
Refers To
OrderItemRateCardEntry (the master object)

UpperBound Type
double
Properties
Create, Filter, Nillable, Sort, Update
Description
The quantity below which the adjustment must be applicable. For example, if you want the
adjustment to be applicable when the quantity is 99 or less, set this value to 100.

OrderItemRateCardEntry
Represents the catalog and negotiated rates of a usage metric associated with an order item that's used to charge overage consumption.
This object is available in API version 62.0 and later.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), update(), upsert()

Special Access Rules


This object is available with Revenue Cloud.

Fields

Field Details
Name Type
string
Properties
Autonumber, Defaulted on create, Filter, idLookup, Sort
Description
An auto-generated number assigned to the order item rate card entry record.

NegotiatedRate Type
double

758
Transaction Management Quote and Order Capture Standard Objects

Field Details

Properties
Create, Filter, Nillable, Sort, Update
Description
The base negotiated rate used to charge overage consumption.

OrderItemId Type
reference
Properties
Create, Filter, Group, Sort
Description
The parent order item associated with the order item rate card entry.
This field is a relationship field.
Relationship Name
OrderItem
Relationship Type
Master-detail
Refers To
OrderItem (the master object)

RateCardEntryId Type
reference
Properties
Create, Filter, Group, Sort
Description
The rate card entry containing catalog rates that's associated with the order item rate card
entry.
This field is a relationship field.
Relationship Name
RateCardEntry
Refers To
RateCardEntry

RateCardId Type
reference
Properties
Filter, Group, Nillable, Sort
Description
The rate card associated with the order item rate card entry.
This field is a relationship field.
Relationship Name
RateCard

759
Transaction Management Quote and Order Capture Standard Objects

Field Details

Refers To
RateCard

RateUnitOfMeasureId Type
reference
Properties
Filter, Group, Nillable, Sort
Description
The standard unit of measure containing the unit for the negotiated rate that's associated
with the order item rate card entry.
This field is a relationship field.
Relationship Name
RateUnitOfMeasure
Refers To
UnitOfMeasure

UsageResourceId Type
reference
Properties
Filter, Group, Nillable, Sort
Description
The usage resource associated with the order item rate card entry.
This field is a relationship field.
Relationship Name
UsageResource
Refers To
UsageResource

SalesTransactionType
Represents the type of the sales transaction. This object is available in API version 61.0 and later.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), undelete(), update(), upsert()

Special Access Rules


This object is available in Enterprise, Unlimited, and Developer Editions of Revenue Cloud.

760
Transaction Management Quote and Order Capture Standard Objects

Fields

Field Details
LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The timestamp when the current user last accessed this record, a record related to this record,
or a list view.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The timestamp when the current user last viewed this record or list view. If this value is null,
the user might have only accessed this record or list view but not viewed it directly.

Name Type
string
Properties
Create, Filter, Group, idLookup, Sort, Update
Description
The name of the sales transaction type.

QuoteAction
Indicates the type of sales transaction that’s being quoted; for example, a renewal sale. This object is available in API version 59.0 and
later.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), undelete(), update(), upsert()

Special Access Rules


This object is available in orgs with Subscription Management or Revenue Cloud. It’s also available in Industries Automotive and Industries
Field Service.

761
Transaction Management Quote and Order Capture Standard Objects

Fields

Field Details
LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The timestamp when the current user last accessed this record indirectly, for example, through
a list view or related record.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The timestamp when the current user last viewed this record or list view. If this value is null,
the user accessed this record or list view indirectly, but didn’t view it.

Name Type
string
Properties
Autonumber, Defaulted on create, Filter, idLookup, Sort
Description
The name given to the quote action.

QuoteId Type
reference
Properties
Create, Filter, Group, Sort
Description
The quote related to this quote action.
This field is a relationship field.
Relationship Name
Quote
Relationship Type
Lookup
Refers To
Quote

SourceAssetId Type
reference

762
Transaction Management Quote and Order Capture Standard Objects

Field Details

Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The asset changed by this sales transaction. For example, if the quote action is a quantity
amendment, this field contains the ID of the asset that’s amended.
This field is a relationship field.
Relationship Name
SourceAsset
Relationship Type
Lookup
Refers To
Asset

Type Type
picklist
Properties
Create, Filter, Group, Restricted picklist, Sort
Description
The type of sales transaction that the related quote is for.
Valid values are:
• Add
• Amend
• Cancel
• No Change
• Renew

QuoteLineDetail
Represents information about the quantity and price detail of a quote line item. This object is available in API version 60.0 and later.

Supported Calls
describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(), retrieve()

Special Access Rules


This object is available in Enterprise, Unlimited, and Developer Editions of Revenue Cloud.

763
Transaction Management Quote and Order Capture Standard Objects

Fields

Field Details
BillingReference Type
string
Properties
Filter, Group, Nillable, Sort
Description
Reference to the original order item for which this amend or cancel record is created.

LineNumber Type
int
Properties
Filter, Group, Nillable, Sort
Description
The line number of the detail record.

Name Type
string
Properties
Autonumber, Defaulted on create, Filter, idLookup, Sort
Description
The name of the record.

NetUnitPrice Type
currency
Properties
Filter, Sort
Description
The unit price of the item that's calculated after applying any discounts and before tax
calculation.

PriceWaterfallIdentifier Type
string
Properties
Filter, Group, Nillable, Sort
Description
The price waterfall identifier generated by Salesforce Pricing that's associated with the pricing
of the detail record.

Quantity Type
double

764
Transaction Management Quote and Order Capture Standard Objects

Field Details

Properties
Filter, Sort
Description
The quantity specified for the item in the detail record.

QuoteLineItemId Type
reference
Properties
Filter, Group, Sort
Description
The ID of the related quote line.
This field is a relationship field.
Relationship Name
QuoteLineItem
Relationship Type
Lookup
Refers To
QuoteLineItem

ReferenceDate Type
date
Properties
Filter, Group, Nillable, Sort
Description
The reference date of the item. For example, the start date of the subscription that's associated
with the detail record.

ReferenceNumber Type
string
Properties
Filter, Group, Nillable, Sort
Description
The reference number of the item. For example, the order number that's associated with the
detail record.

TotalLineAmount Type
currency
Properties
Filter, Sort

765
Transaction Management Quote and Order Capture Standard Objects

Field Details

Description
The net total price of the order product, before price adjustments, inclusive of quantity and
the subscription term.

TotalPrice Type
currency
Properties
Filter, Sort
Description
The total price of the item in the detail record that's calculated using the quantity, net unit
price, and after applying the pricing terms.

UnitPrice Type
currency
Properties
Filter, Sort
Description
The unit price of the item before any discounts or tax calculation.

QuoteLineRateAdjustment
Represents the negotiated rate adjustment for a quote line item. This object is available in API version 62.0 and later.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), update(), upsert()

Special Access Rules


This object is available with Revenue Cloud.

Fields

Field Details
AdjustmentType Type
picklist
Properties
Create, Filter, Group, Restricted picklist, Sort, Update
Description
Specifies the type of rate adjustment.

766
Transaction Management Quote and Order Capture Standard Objects

Field Details
Possible values are:
• Amount
• Override
• Percentage

AdjustmentValue Type
double
Properties
Create, Filter, Sort, Update
Description
The value of the adjustment.

LowerBound Type
double
Properties
Create, Filter, Sort, Update
Description
The minimum quantity for the adjustment to be applicable.

Name Type
string
Properties
Create, Filter, Group, idLookup, Sort, Update
Description
The name of the quote line rate adjustment record.

QuoteLineRateCardEntryId Type
reference
Properties
Create, Filter, Group, Sort
Description
The parent quote line rate card entry associated with the quote line rate adjustment.
This field is a relationship field.
Relationship Name
QuoteLineRateCardEntry
Relationship Type
Master-detail
Refers To
QuoteLineRateCardEntry (the master object)

767
Transaction Management Quote and Order Capture Standard Objects

Field Details
UpperBound Type
double
Properties
Create, Filter, Nillable, Sort, Update
Description
The quantity below which the adjustment must be applicable. For example, if you want the
adjustment to be applicable when the quantity is 99 or less, set this value to 100.

QuoteLineRateCardEntry
Represents the catalog and negotiated rates of a usage resource associated with a quote line item that's used to charge overage
consumption. This object is available in API version 62.0 and later.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), update(), upsert()

Special Access Rules


This object is available with Revenue Cloud.

Fields

Field Details
Name Type
string
Properties
Autonumber, Defaulted on create, Filter, idLookup, Sort
Description
An auto-generated number assigned to the quote line rate card entry record.

NegotiatedRate Type
double
Properties
Create, Filter, Nillable, Sort, Update
Description
The base negotiated rate used to charge overage consumption.

QuoteLineItemId Type
reference

768
Transaction Management Quote and Order Capture Standard Objects

Field Details

Properties
Create, Filter, Group, Sort
Description
The parent quote line item associated with the quote line rate card entry.
This field is a relationship field.
Relationship Name
QuoteLineItem
Relationship Type
Master-detail
Refers To
QuoteLineItem (the master object)

RateCardEntryId Type
reference
Properties
Create, Filter, Group, Sort
Description
The rate card entry containing catalog rates that's associated with the quote line rate card
entry.
This field is a relationship field.
Relationship Name
RateCardEntry
Refers To
RateCardEntry

RateCardId Type
reference
Properties
Filter, Group, Nillable, Sort
Description
The rate card associated with the quote line rate card entry.
This field is a relationship field.
Relationship Name
RateCard
Refers To
RateCard

RateUnitOfMeasureId Type
reference
Properties
Filter, Group, Nillable, Sort

769
Transaction Management Quote and Order Capture Fields on Standard Objects

Field Details

Description
The standard unit of measure containing the unit for the negotiated rate that's associated
with the quote line rate card entry.
This field is a relationship field.
Relationship Name
RateUnitOfMeasure
Refers To
UnitOfMeasure

UsageResourceId Type
reference
Properties
Filter, Group, Nillable, Sort
Description
The usage resource associated with the quote line rate card entry.
This field is a relationship field.
Relationship Name
UsageResource
Refers To
UsageResource

Quote and Order Capture Fields on Standard Objects


Quote and Order Capture adds standard and custom fields to some standard Salesforce objects. These fields are available only in orgs
where Quote and Order Capture is enabled.

Quote and Order Capture Fields on Object State Definition


Standard and custom fields extend the standard Object State Definition object for use in Quote and Order Capture to represent the
object state model for a particular status field for an entity. This object is available in API version 60.0 and later.
Quote and Order Capture Fields on Object State Transition
Standard and custom fields extend the standard Object State Transition object for use in Quote and Order Capture to define the
valid transition between two statuses. This object is available in API version 60.0 and later.
Quote and Order Capture Fields on Object State Value
Standard and custom fields extend the standard Object State Transition object for use in Quote and Order Capture This object is
available in API version 60.0 and later.
Quote and Order Capture Fields on Order
Standard and custom fields extend the standard Order object for use in Quote and Order Capture.
Quote and Order Capture Fields on OrderItem
Standard and custom fields extend the standard Order Item object for use in Quote and Order Capture.

770
Transaction Management Quote and Order Capture Fields on Standard Objects

Quote and Order Capture Fields on Order Action


Standard and custom fields extend the standard Order Action object for use in Quote and Order Capture. This object is available in
API version 55.0 and later.
Quote and Order Capture fields on Order Item Relationship
Standard and custom fields extend the standard Order Item Relationship object for use in Quote and Order Capture. This object is
available in API version 58.0 and later.
Quote and Order Capture Fields on Quote
Standard and custom fields extend the standard Quote object for use in Quote and Order Capture to represent information about
quotes. This object is available in API version 60.0 and later.
Quote and Order Capture Fields on Quote Line Item
Standard and custom fields extend the standard Quote Line Item object for use in Quote and Order Capture to represent information
about line items in a quote. This object is available in API version 60.0 and later.
Quote and Order Capture Fields on Quote Document
Standard and custom fields extend the standard Quote Document object for use in Quote and Order Capture to represent information
about quote documents. This object is available in API version 61.0 and later.

Quote and Order Capture Fields on Object State Definition


Standard and custom fields extend the standard Object State Definition object for use in Quote and Order Capture to represent the
object state model for a particular status field for an entity. This object is available in API version 60.0 and later.

Fields

Field Details
AppUsageType Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
This field indicates under which AppUsageType the transition applies to. For example,
ObjectStateDefinition associated with “Revenue Lifecycle Management” AppUsageType will
apply to quotes, assets, or orders associated with “Revenue Lifecycle Management”.

Quote and Order Capture Fields on Object State Transition


Standard and custom fields extend the standard Object State Transition object for use in Quote and Order Capture to define the valid
transition between two statuses. This object is available in API version 60.0 and later.

771
Transaction Management Quote and Order Capture Fields on Standard Objects

Fields

Field Details
CustomPermissionId Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The ID of the associated custom permission.
This field is a relationship field.
Relationship Name
CustomPermission
Relationship Type
Lookup
Refers To
CustomPermission

Quote and Order Capture Fields on Object State Value


Standard and custom fields extend the standard Object State Transition object for use in Quote and Order Capture This object is available
in API version 60.0 and later.

Fields

Field Details
CustomPermissionId Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The ID of the associated custom permission.
This field is a relationship field.
Relationship Name
CustomPermission
Relationship Type
Lookup
Refers To
CustomPermission

772
Transaction Management Quote and Order Capture Fields on Standard Objects

Quote and Order Capture Fields on Order


Standard and custom fields extend the standard Order object for use in Quote and Order Capture.

Fields

Field Details
CalculationStatus Type
picklist
Properties
Filter, Group, Nillable, Restricted picklist, Sort
Description
The status of the price and tax calculations for the order.
Valid values are:
• CompletedWithPricing—Indicates that pricing is complete and tax will now be
calculated.
• CompletedWithTax—Indicates that pricing and tax calculation are complete.
• CompletedWithoutPricing—Indicates that pricing and tax calculation were
skipped. For a sales rep, this value appears as Unknown on the order page.
• ConfigurationFailed—Indicates that configuration failed. Available in API
version 62.0
• ConfigurationInProgress—Indicates that the configuration is in progress.
Available in API version 62.0
• OrderRequestFailed—Indicates that the requested order changes weren’t saved.
Available in API version 62.0
• OrderRequestPartiallySaved—Indicates that the requested order changes
were partially saved. Available in API version 62.0
• PriceCalculationFailed—Indicates that pricing failed.
• ReconciliationFailed—Indicates that the arrangement of order data failed.
Available in API version 62.0
• ReconciliationInProgress—Indicates that the arrangement of data is in
progress. For a sales rep, this value appears as Saving on the order page. Available in
API version 62.0
• SaveFailedOrIncomplete—Indicates that the recent changes to the order
weren’t saved. For a sales rep, this value appears as Some Records Weren’t
Saved on the order page.
• TaxCalculationFailed—Indicates that pricing is complete but tax calculation
failed.
• TaxCalculationWaiting—Indicates that pricing is complete and a request is
sent to the tax engine, but tax calculation isn’t complete.
This read-only field is available in API version 61.0 and later.

773
Transaction Management Quote and Order Capture Fields on Standard Objects

Field Details
DiscountPercent Type
percent
Properties
Filter, Nillable, Sort
Description
The percentage of discount applied to the order. Available in API version 60.0 and later.

FulfillmentPlanId Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The unique ID of the fulfillment plan associated with the order.
This field is a relationship field.
This field is available only in orgs where Dynamic Revenue Orchestrator is enabled. Available
in API version 60.0 and later.
Relationship Name
FulfillmentPlan
Relationship Type
Lookup
Refers To
FulfillmentPlan

LastPricedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The date when the order price was last calculated. Available in API version 60.0 and later.

OrchestrationSbmsStatus Type
picklist
Properties
Filter, Group, Nillable, Restricted picklist, Sort
Description
The status of order submission for orchestration.
This field is available only in orgs where Dynamic Revenue Orchestrator is enabled.
Valid values are:
• Completed
• Rejected

774
Transaction Management Quote and Order Capture Fields on Standard Objects

Field Details
• Submitted
This read-only field is available in API version 61.0 and later.

OriginalActionType Type
picklist
Properties
Filter, Group, Nillable, Restricted picklist, Sort
Description
For internal use only.
Available in API version 61.0 and later.

SalesTransactionTypeId Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The foreign key to the Sales Transaction Type object. Available in API version 61.0 and later.
This field is a relationship field.
Relationship Name
SalesTransactionType
Relationship Type
Lookup
Refers To
SalesTransactionType

TotalRoundedLineAmount Type
currency
Properties
Filter, Nillable, Sort
Description
The total amount of all line items in an order without pricing adjustments, such as discounts
or tax calculations. Available in API version 60.0 and later.

ValidationResult Type
picklist
Properties
Create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
Specifies whether the order was configured and priced.
Orders can be activated only after they’re configured and priced.
Valid value is:

775
Transaction Management Quote and Order Capture Fields on Standard Objects

Field Details
• TransactionIncomplete—Indicates that the order wasn’t configured and priced.
Available in API version 61.0 and later.

Quote and Order Capture Fields on OrderItem


Standard and custom fields extend the standard Order Item object for use in Quote and Order Capture.

Fields

Field Details
CustomProductName Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The custom name of a product that's used to override the product name. Available in API
version 61.0 and later.

Discount Type
percent
Properties
Create, Filter, Nillable, Sort, Update
Description
The manual discount percentage for the order item. Available in API version 60.0 and later.

DiscountAmount Type
currency
Properties
Create, Filter, Nillable, Sort, Update
Description
The manual discount amount for the order item. Available in API version 60.0 and later.

EffectiveGrantDate Type
date
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The date on which the resources associated with the order item are granted.

776
Transaction Management Quote and Order Capture Fields on Standard Objects

Field Details
EndQuantity Type
double
Properties
Filter, Nillable, Sort
Description
The revised quantity of the item after adjusting changes. The field is read-only. It’s calculated
by adding the Start Quantity and the Quantity fields. Available in API version 60.0 and later.

NetTotalPrice Type
currency
Properties
Create, Filter, Nillable, Sort, Update
Description
The total price after applying all price adjustments. Available in API version 60.0 and later.

OrderItemGroupId Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The order item group associated with the order item.
This field is a relationship field.
Relationship Name
OrderItemGroup
Refers To
OrderItemGroup

PartnerDiscountPercent Type
percent
Properties
Create, Filter, Nillable, Sort, Update
Description
The discount percentage given to the partner for the order item. Available in API version
60.0 and later.

PartnerUnitPrice Type
currency
Properties
Create, Filter, Nillable, Sort, Update

777
Transaction Management Quote and Order Capture Fields on Standard Objects

Field Details

Description
The unit price after applying the discount given to the partner for the order item. Available
in API version 60.0 and later.

PriceWaterfallIdentifier Type
string
Properties
Filter, Group, Nillable, Sort
Description
The price waterfall identifier generated by Salesforce Pricing that's associated with the pricing
of this order item record. Available in API version 60.0 and later.

StartQuantity Type
double
Properties
Create, Filter, Nillable, Sort, Update
Description
The quantity available on the order item start date. Available in API version 60.0 and later.

Status Type
picklist
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The status of the order item. Available in API version 60.0 and later.

SubscriptionTerm Type
int
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The number of terms in the subscription for the item.
The unit of the subscription term is stored in the PricingTermUnit field of this order item’s
related product selling model record (OrderItem.ProductSellingModel.PricingTermUnit).
Available in API version 61.0 and later.

ValidationResult Type
picklist
Properties
Create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
Specifies whether the order item was configured and priced.

778
Transaction Management Quote and Order Capture Fields on Standard Objects

Field Details
An order can be activated only after all its order items are configured and priced.
Valid value is:
• Warning—Indicates that the order item isn’t configured and priced.
Available in API version 60.0 and later.

Quote and Order Capture Fields on Order Action


Standard and custom fields extend the standard Order Action object for use in Quote and Order Capture. This object is available in API
version 55.0 and later.

Fields

Field Details
Type Type
picklist
Properties
Create, Filter, Group, Restricted picklist, Sort, Update
Description
The business action that created the order product.
Valid values are:
• Add
• Amend
• Cancel
• No Change—A child product was added to the bundle, but the top-level product in
the bundle was otherwise unchanged.
• Renew

Quote and Order Capture fields on Order Item Relationship


Standard and custom fields extend the standard Order Item Relationship object for use in Quote and Order Capture. This object is available
in API version 58.0 and later.

Fields

Field Details
ProductRelatedComponentId Type
reference

779
Transaction Management Quote and Order Capture Fields on Standard Objects

Field Details

Properties
Create, Filter, Group, Nillable, Sort
Description
The ID of the product that is included in a product bundle, a set, or a product and an add-on.
This field is a relationship field.
Relationship Name
ProductRelatedComponent
Relationship Type
Lookup
Refers To
ProductRelatedComponent

Quote and Order Capture Fields on Quote


Standard and custom fields extend the standard Quote object for use in Quote and Order Capture to represent information about quotes.
This object is available in API version 60.0 and later.

Fields

Field Details
LastPricedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The date when the quote is last priced.

PartnerAccountId Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
ID of the related partner account.
This field is a relationship field.
Relationship Name
PartnerAccount
Relationship Type
Lookup
Refers To
Account

780
Transaction Management Quote and Order Capture Fields on Standard Objects

Field Details
ValidationResult Type
picklist
Properties
Create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
Specifies whether the quote was configured and priced.
Quotes can be activated only after they’re configured and priced.
Valid values are:
• TransactionIncomplete—Specifies that the quote wasn’t configured and priced.
Available in API version 61.0 and later.

Quote and Order Capture Fields on Quote Line Item


Standard and custom fields extend the standard Quote Line Item object for use in Quote and Order Capture to represent information
about line items in a quote. This object is available in API version 60.0 and later.

Fields

Field Details
DiscountAmount Type
currency
Properties
Create, Filter, Nillable, Sort, Update
Description
Specifies the fixed amount discount to apply to the quote line item.

EffectiveGrantDate Type
date
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The date on which the resources associated with the quote line item are granted.

EndQuantity Type
double
Properties
Filter, Nillable, Sort
Description
The quantity available on the quote line item end date. The field is read-only. It is calculated
by adding the Start Quantity and the existing Quantity fields.

781
Transaction Management Quote and Order Capture Fields on Standard Objects

Field Details
PartnerDiscountPercent Type
percent
Properties
Create, Filter, Nillable, Sort, Update
Description
The discount percentage given to the partner for the quote line.

PartnerUnitPrice Type
currency
Properties
Create, Filter, Nillable, Sort, Update
Description
The unit price after discount given to the partner for the quote line.

PriceWaterfallIdentifier Type
string
Properties
Filter, Group, Nillable, Sort
Description
The price waterfall identifier generated by Salesforce Pricing that's associated with the pricing
of the detail record.

StartQuantity Type
double
Properties
Create, Filter, Nillable, Sort
Description
The quantity available on the quote line item start date.

TaxTreatmentId Type
reference
Properties
Filter, Group, Nillable, Sort
Description
The ID of the tax treatment associated with the quote line item.
This field is a relationship field.
Relationship Name
TaxTreatment
Relationship Type
Lookup

782
Transaction Management Quote and Order Capture Fields on Standard Objects

Field Details

Refers To
TaxTreatment

ValidationResult Type
picklist
Properties
Create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
Specifies whether the quote line item is configured and priced.
A quote can be activated only after all its quote line items are configured and priced.
Valid value is:
• Warning—Indicates that the quote line item isn’t configured and priced.
Available in API version 60.0 and later.

Quote and Order Capture Fields on Quote Document


Standard and custom fields extend the standard Quote Document object for use in Quote and Order Capture to represent information
about quote documents. This object is available in API version 61.0 and later.

Fields

Field Details
Document Template Type
String
Properties
Create, Filter, Group, Nillable, Sort
Description
The template ID used for generating the quote document.

Status Type
Picklist
Properties
Create, Defaulted on create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
The status of the quote document.
Possible values are:
• Completed
• Failed
• Generating

783
Transaction Management Quote and Order Capture Tooling API Objects

Field Details
• In Progress
• None
• Queued
The default value is None.

Quote and Order Capture Tooling API Objects


Tooling API exposes metadata used in developer tooling that you can access through REST or SOAP. Tooling API’s SOQL capabilities for
many metadata types allow you to retrieve smaller pieces of metadata.

TransactionProcessingType
Represents the settings to configure the processing constraints for a request.. This object is available in API version 63.0 and later.

TransactionProcessingType
Represents the settings to configure the processing constraints for a request.. This object is available in API version 63.0 and later.

Important: Where possible, we changed noninclusive terms to align with our company value of Equality. We maintained certain
terms to avoid any effect on customer implementations.

Supported SOAP API Calls


create(), describeSObjects(), query(), retrieve()

Supported REST API Methods


GET, HEAD, POST, Query

Fields

Field Details
Description Type
string
Properties
Create, Filter, Group, Nillable, Sort
Description
The description of the transaction processing configuration to help Salesforce admins with
configuration in their orgs.

DeveloperName Type
string

784
Transaction Management Quote and Order Capture Tooling API Objects

Field Details

Properties
Create, Filter, Group, Sort
Description
Required. The unique name of the object in the API. This name can contain only underscores
and alphanumeric characters, and must be unique in your org. It must begin with a letter,
not include spaces, not end with an underscore, and not contain two consecutive underscores.
In managed packages, this field prevents naming conflicts on package installations. With
this field, a developer can change the object’s name in a managed package and the changes
are reflected in a subscriber’s organization. Label is Record Type Name.

Language Type
picklist
Properties
Create, Defaulted on create, Filter, Group, Restricted picklist, Sort
Description
The language of the TransactionProcessingType object.
Possible values are:
• da—Danish
• de—German
• en_US—English
• es—Spanish
• es_MX—Spanish (Mexico)
• fi—Finnish
• fr—French
• it—Italian
• ja—Japanese
• ko—Korean
• nl_NL—Dutch
• no—Norwegian
• pt_BR—Portuguese (Brazil)
• ru—Russian
• sv—Swedish
• th—Thai
• zh_CN—Chinese (Simplified)
• zh_TW—Chinese (Traditional)

MasterLabel Type
string
Properties
Create, Filter, Group, Sort

785
Transaction Management Quote and Order Capture Platform Event

Field Details

Description
The label for the TransactionProcessingType object.

RuleEngine Type
picklist
Properties
Create, Filter, Group, Nillable, Restricted picklist, Sort
Description
The rule engine to be used for processing rules.
Valid values are:
• AdvancedConfigurator
• StandardConfigurator

SaveType Type
picklist
Properties
Create, Filter, Group, Restricted picklist, Sort
Description
Specifies how the transaction results are processed when saved for Salesforce administrators
to adjust the user experience as desired.
Valid value is:
• Standard

Quote and Order Capture Platform Event


Use the QuoteSaveEvent event to notify subscribers after saving of a quote is processed.
EDITIONS

PlaceOrderCompletedEvent Available in: Lightning


Notifies subscribers of an order being created or updated by invoking the Place Order API or Experience
the Place Sales Transaction API. This object is available in API version 63.0 and later. Available in all Salesforce
QuoteSaveEvent orgs where the admin
Notifies subscribers that the process started by the /actions/standard/quotesaveevent request settings for products related
is complete. If the process is successful, use this event to learn about the updated quote. If the to the use case are enabled.
request isn't successful, use this event to learn about the errors and how to fix them. This object The Salesforce org must
have a Revenue Cloud or
is available in API version 60.0 and later.
Subscription Management
license.
PlaceOrderCompletedEvent
Notifies subscribers of an order being created or updated by invoking the Place Order API or the Place Sales Transaction API. This object
is available in API version 63.0 and later.

786
Transaction Management Quote and Order Capture Platform Event

Supported Calls
describeSObjects()

Supported Subscribers

Subscriber Supported?
Apex Triggers

Flows

Processes

Pub/Sub API

Streaming API (CometD)

Subscription Channel
/event/PlaceOrderCompletedEvent

Event Delivery Allocation Enforced


Yes

Fields

Field Details
AppUsageTypes Type
string
Properties
Nillable
Description
Tag that represents the application that's using the order and determines how an order is
processed. For example, the AppUsageTypes field value for Revenue Cloud orders is
RevenueLifecycleManagement.

CorrelationIdentifier Type
string
Properties
Nillable
Description
Reserved for future use.

EventUuid Type
string

787
Transaction Management Quote and Order Capture Platform Event

Field Details

Properties
Nillable
Description
A universally unique identifier (UUID) that identifies a platform event message.

HasErrors Type
boolean
Properties
Defaulted on create
Description
Indicates whether errors occurred when creating or updating the order (true) or not
(false).
The default value is false.

OrderId Type
reference
Properties
Nillable
Description
ID of the order record.
This field is a relationship field.
Relationship Name
Order
Refers To
Order

ReplayId Type
string
Properties
Nillable
Description
Represents an ID value that is populated by the system and refers to the position of the event
in the event stream. Replay ID values aren’t guaranteed to be contiguous for consecutive
events. A subscriber can store a replay ID value and use it on resubscription to retrieve missed
events that are within the retention window.

RequestIdentifier Type
string
Properties
Nillable

788
Transaction Management Quote and Order Capture Platform Event

Field Details

Description
ID of the request that triggered the event.

QuoteSaveEvent
Notifies subscribers that the process started by the /actions/standard/quotesaveevent request is complete. If the process is successful,
use this event to learn about the updated quote. If the request isn't successful, use this event to learn about the errors and how to fix
them. This object is available in API version 60.0 and later.

Supported Calls
describeSObjects()

Supported Subscribers

Subscriber Supported?
Apex Triggers

Flows

Processes

Streaming API (CometD)

Streaming API Subscription Channel


/event/QuoteSaveEvent

Special Access Rules


This object is available in orgs with Subscription Management or Revenue Cloud.

Fields

Field Details
CorrelationIdentifier Type
string
Properties
Nillable
Description
Reserved for future use.

789
Transaction Management Quote and Order Capture Platform Event

Field Details
EventUuid Type
string
Properties
Nillable
Description
A universally unique identifier (UUID) that identifies a platform event message.

HasErrors Type
boolean
Properties
Defaulted on create
Description
The default value is false.
Possible values are:
• false
• true

QuoteId Type
reference
Properties
Nillable
Description
The ID of the quote associated with this event. This field is a relationship field.

ReplayId Type
string
Properties
Nillable
Description
Represents an ID value that is populated by the system and refers to the position of the event
in the event stream. Replay ID values aren’t guaranteed to be contiguous for consecutive
events. A subscriber can store a replay ID value and use it on resubscription to retrieve missed
events that are within the retention window.

RequestIdentifier Type
string
Properties
Nillable
Description
The unique ID returned in the /quotesaveevent response. Use this ID to identify the event
for the specific request.

790
Transaction Management Quote and Order Capture Business APIs

Quote and Order Capture Business APIs


Use the Quote and Order Capture Business APIs to fetch instant pricing data on a quote or an order, to create a quote, or to create an
order.
This table lists the available Quote and Order Capture resources.

Resource Description
/industries/cpq/quotes/actions/get-instant-price (POST) Fetch instant pricing data on
the quote or order line data grid
and associated summary
component. It offers capabilities
to either create a context or
update the existing one based
on the provided context ID.

/commerce/sales-orders/actions/place (POST) Place orders with integrated


pricing, configuration, and
validation, and manage them
throughout their entire lifecycle.
Additionally, update an order or
insert order items.

/commerce/quotes/actions/place (POST) Create a quote to discover and


price products and services.
Additionally, insert, update, or
delete a quote line item.

/connect/revenue-management/sales-transaction-contexts/resourceId/actions/ramp-deal-create Create a ramp deal for a


(POST) customer on a product. Sales
reps can use ramp deals to
provide yearly deals to a
customer, resulting in long-term
revenue and customer
relationship. A customer can
create, update, or view multiple
segments of periods for their
subscription term with different
attributes for each segment.

/connect/revenue-management/sales-transaction-contexts/resourceId/actions/ramp-deal-update Modify a ramp deal in scenarios


(POST) where a segment has updates
such as quantity, discount, or
date change.

/connect/revenue-management/sales-transaction-contexts/resourceId/actions/ramp-deal-view View a ramp deal related to a


(GET) quote line item or an order item.

/connect/revenue-management/sales-transaction-contexts/resourceId/actions/ramp-deal-delete Delete a ramp deal to convert a


(POST) ramped product to include a
single quote line item or order
item.

791
Transaction Management Quote and Order Capture Business APIs

Resource Description
/connect/rev/sales-transaction/actions/place (POST) Create a sales transaction, such
as an order or a quote, with
integrated pricing and
configuration. Additionally,
update an order or a quote, and
insert and delete order or quote
line items to calculate the
estimated tax.

Resources
Learn more about the available Quote and Order Capture resources.
Request Bodies
Learn more about the available API request bodies.
Response Bodies
Learn more about the available response bodies.

SEE ALSO:
Connect REST API Developer Guide: Introduction

Resources
Learn more about the available Quote and Order Capture resources.

Instant Pricing (POST)


Fetch instant pricing data on the quote or order line data grid and associated summary component. It offers capabilities to either
create a context or update the existing one based on the provided context ID.
Place Order (POST)
Place orders with integrated pricing, configuration, and validation, and manage them throughout their entire lifecycle. Additionally,
update an order or insert order items.
Place Quote (POST)
Create a quote to discover and price products and services. Additionally, insert, update, or delete a quote line item.
Place Sales Transaction (POST)
Create a sales transaction, such as an order or a quote, with integrated pricing and configuration. Additionally, update an order or a
quote, and insert and delete order or quote line items to calculate the estimated tax.
Create Ramp Deal (POST)
Create a ramp deal for a customer on a product. Sales reps can use ramp deals to provide yearly deals to a customer, resulting in
long-term revenue and customer relationship. A customer can create, update, or view multiple segments of periods for their
subscription term with different attributes for each segment.
Delete Ramp Deal (POST)
Delete a ramp deal to convert a ramped product to include a single quote line item or order item.

792
Transaction Management Quote and Order Capture Business APIs

Update Ramp Deal (POST)


Modify a ramp deal in scenarios where a segment has updates such as quantity, discount, or date change.
View Ramp Deal (GET)
View a ramp deal related to a quote line item or an order item.

Instant Pricing (POST)


Fetch instant pricing data on the quote or order line data grid and associated summary component. It offers capabilities to either create
a context or update the existing one based on the provided context ID.
You can also group quote line items or order items based on location, work types, or departments, if groups are enabled for your org.
Groups provide a visualization of the products to view large quotes.
Resource
/industries/cpq/quotes/actions/get-instant-price

Resource example

https://yourInstance.salesforce.com/services/data/v63.0/industries/cpq/quotes/actions/get-instant-price

Available version
60.0
Requires Chatter
No
HTTP methods
POST
Request body for POST
JSON example
{
"correlationId": "1234567",
"contextId": "",
"records": [
{
"referenceId": "refQuote",
"record": {
"attributes": {
"type": "Quote",
"method": "POST"
},
"Name": "Test Quote Proration Pricing",
"OpportunityId": "006xx000001a4ISAAY",
"Pricebook2Id": "01sxx0000005ptpAAA"
}
},
{
"referenceId": "refQuoteLine",
"record": {
"attributes": {
"type": "QuoteLineItem",
"method": "POST"
},

793
Transaction Management Quote and Order Capture Business APIs

"QuoteId": "refQuote",
"PricebookEntryId": "01uxx0000008zHmAAI",
"Product2Id": "01txx0000006jmWAAQ",
"Quantity": 2,
"UnitPrice": 25,
"StartDate": "2022-09-28",
"EndDate": "2028-09-27",
"PeriodBoundary": "ANNIVERSARY",
"BillingFrequency": "ANNUAL"
}
}
]
}

This example shows a sample request to specify grouping of lines based on criteria.
{
"contextId": "",
"correlationId": "",
"records": [
{
"referenceId": "0Q0xx0000004DOSCA2",
"record": {
"attributes": {
"type": "Quote",
"method": "PUT"
}
}
},
{
"referenceId": "0QLxx0000004F3gGAE",
"record": {
"attributes": {
"type": "QuoteLineItem",
"method": "PUT"
},
"Quantity": 5
}
}, {
"referenceId": "0QLxx0000004F3hGAE",
"record": {
"attributes": {
"type": "QuoteLineItem",
"method": "PUT"
},
"Quantity": 2
}
},
{
"referenceId": "GroupId1",
"record": {
"attributes": {
"type": "QuoteLineGroup",
"method": "POST",
"action": "GroupBy",

794
Transaction Management Quote and Order Capture Business APIs

"criteria": {
"Quantity": 5
}
},
"Name": "record"
}
}, {
"referenceId": "GroupId2",
"record": {
"attributes": {
"type": "QuoteLineGroup",
"method": "POST",
"action": "GroupBy",
"criteria": {
"Quantity": 2
}
},
"Name": "record1",
}
}
]
}

This example shows a sample request for the initial grouping of the quote with the quote lines assigned to the first group.
{
"contextId": "",
"correlationId": "",
"records": [
{
"referenceId": "0Q0xx0000004CAgCAM",
"record": {
"attributes": {
"type": "Quote",
"method": "PUT"
}
}
},
{
"referenceId": "GroupId1",
"record": {
"attributes": {
"type": "QuoteLineGroup",
"method": "POST",
"action": "GroupAll"
},
"Name": "sample"
}
}
]
}

795
Transaction Management Quote and Order Capture Business APIs

This example shows a sample request to ungroup a quote but retain the quote lines.
{
"contextId": "",
"correlationId": "",
"records": [
{
"referenceId": "0Q0xx0000004CAgCAM",
"record": {
"attributes": {
"type": "Quote",
"method": "PUT"
}
}
},
{
"referenceId": "0QLxx0000004CBYGA2",
"record": {
"attributes": {
"type": "QuoteLineItem",
"method": "PUT"
},
"Quantity": 2,
"QuoteLineGroupId": null
}
},
{
"referenceId": "GroupId1",
"record": {
"attributes": {
"type": "QuoteLineGroup",
"method": "DELETE",
"action": "Ungroup"
}
}
}
]
}

This example shows a sample request to create a new group.


{
"contextId": "",
"correlationId": "",
"records": [
{
"referenceId": "0Q0xx0000004CAgCAM",
"record": {
"attributes": {
"type": "Quote",
"method": "PUT"
}
}
},
{

796
Transaction Management Quote and Order Capture Business APIs

"referenceId": "GroupId1",
"record": {
"attributes": {
"type": "QuoteLineGroup",
"method": "POST"
},
"Name": "sample"
}
}
]
}

This example shows a sample request to delete a group.


{
"contextId": "",
"correlationId": "",
"records": [
{
"referenceId": "0Q0xx0000004CAgCAM",
"record": {
"attributes": {
"type": "Quote",
"method": "PUT"
}
}
},
{
"referenceId": "GroupId1",
"record": {
"attributes": {
"type": "QuoteLineGroup",
"method": "DELETE",
"action": "DeleteGroup"
},
"Name": "sample"
}
}
]
}

This example shows a sample request to move a group.


{
"contextId": "",
"correlationId": "",
"records": [
{
"referenceId": "0Q0xx0000004CAgCAM",
"record": {
"attributes": {
"type": "Quote",
"method": "PUT"
}
}

797
Transaction Management Quote and Order Capture Business APIs

},
{
"referenceId": "0QLxx0000004CBYGA2",
"record": {
"attributes": {
"type": "QuoteLineItem",
"method": "PUT"
},
"Quantity": 2
"QuoteLineGroupId": "{@GroupId2}"
}
},
]
}

Properties

Name Type Description Required or Available


Optional Version
contextId String The ID generated by the context service. Optional 59.0
If no context ID is provided, a new
context is created.

correlationId String Client-generated ID for tracking multiple Optional 59.0


related API requests.

records Object with List of pricing data to be fetched. Required 59.0


Reference Input[]

Response body for POST


Instant Pricing

Place Order (POST)


Place orders with integrated pricing, configuration, and validation, and manage them throughout their entire lifecycle. Additionally,
update an order or insert order items.
You can also group order items based on location, work types, or departments, if groups are enabled for your org. Groups provide a
visualization of the products to view large quotes.
This API supports a maximum of 300 transaction line items. To place sales transactions that exceed this limit, use the Place Sales Transaction
API. See Place Sales Transaction (POST).
Special Access Rules
You need the PlaceOrder API permission set to use this API.
Resource
/commerce/sales-orders/actions/place

Resource example

https://yourInstance.salesforce.com/services/data/v63.0/commerce/sales-orders/actions/place

798
Transaction Management Quote and Order Capture Business APIs

Available version
60.0
HTTP methods
POST
Request body for POST
JSON example
{
"pricingPref": "System",
"configurationInput": "RunAndAllowErrors",
"configurationOptions": {
"validateProductCatalog": true,
"validateAmendRenewCancel": true,
"executeConfigurationRules": true,
"addDefaultConfiguration": true
},
"graph": {
"graphId": "graphId",
"records": [
{
"referenceId": "refOrder",
"record": {
"attributes": {
"type": "Order",
"method": "POST",
"Id": "POST"
}
}
},
{
"referenceId":"refOrderItem",
"record":{
"attributes":{
"type":"OrderItem",
"method":"POST"
},
"OrderId":"@{refOrder.id}",
"OrderActionId":"@{refOrderAction.id}",
"ListPrice":"144.99",
"Quantity":3,
"PricebookEntryId":"01uxx0000008yXPAAY",
"Product2Id":"01txx0000006i2UAAQ",
"UnitPrice":"199.49"
}
}
]
}
}

This example shows a sample request to define grouping of order items.


{
"pricingPref": "system",

799
Transaction Management Quote and Order Capture Business APIs

"graph": {
"graphId": "placeOrder",
"records": [
{
"referenceId": "refOrder",
"record": {
"attributes": {
"type": "Order",
"method": "PATCH",
"id": "801xx000003GZ9bAAG"
}
}
},
{
"referenceId": "refOlg1",
"record": {
"attributes": {
"type": "OrderItemGroup",
"method": "POST"
},
"Name": "New Group",
"OrderId": "@{refOrder.id}"
}
}
]
}
}

This example shows a sample request to ungroup order items.


{
"pricingPref": "system",
"graph": {
"graphId": "placeOrder",
"records": [
{
"referenceId": "refOrder",
"record": {
"attributes": {
"type": "Order",
"method": "PATCH",
"id": "refOrder"
}
}
},
{
"referenceId": "refOlg1",
"record": {
"attributes": {
"type": "OrderItemGroup",
"method": "DELETE",
"id": "refOlg1",
"action": "Ungroup"
}
}

800
Transaction Management Quote and Order Capture Business APIs

}
]
}
}

This example shows a sample request to create a new group.


{
"pricingPref": "system",
"graph": {
"graphId": "placeOrder",
"records": [
{
"referenceId": "refOrder",
"record": {
"attributes": {
"type": "Order",
"method": "PATCH",
"id": "refOrder"
}
}
},
{
"referenceId": "refOlg",
"record": {
"attributes": {
"type": "OrderItemGroup",
"method": "POST"
},
"Name": "New Group",
"OrderId": "@{refOrder.id}"
}
}
]
}
}

This example shows a sample request to delete a group.


{
"contextId": "",
"correlationId": "",
"records": [
{
"referenceId": "refOrder",
"record": {
"attributes": {
"type": "Order",
"method": "PATCH",
"id": "refOrder"
}
}
},
{
"referenceId": "refOlg",

801
Transaction Management Quote and Order Capture Business APIs

"record": {
"attributes": {
"type": "OrderItemGroup",
"method": "DELETE",
"id": "refOlg",
"action": "DeleteGroup"
}
}
}
]
}

This example shows a sample request to group order items based on criteria.
{
"pricingPref": "system",
"graph": {
"graphId": "placeOrder",
"records": [
{
"referenceId": "refOrder",
"record": {
"attributes": {
"type": "Order",
"method": "PATCH",
"id": "refOrder"
}
}
},
{
"referenceId": "g0",
"record": {
"attributes": {
"type": "OrderItemGroup",
"method": "POST",
"action": "GroupBy",
"criteria": {
"BillingFrequency2": null
}
},
"Name": "Billing Frequency: ",
"OrderId": "@{refOrder.id}"
}
},
{
"referenceId": "g1",
"record": {
"attributes": {
"type": "OrderItemGroup",
"method": "POST",
"action": "GroupBy",
"criteria": {
"BillingFrequency2": "Monthly"
}
},

802
Transaction Management Quote and Order Capture Business APIs

"Name": "Billing Frequency: Monthly",


"OrderId": "@{refOrder.id}"
}
}
]
}
}

Properties

Name Type Description Required or Available


Optional Version
catalog String Rate card entries defined in the catalog Optional 62.0
RatesPref that must be fetched for order items with
usage-based pricing during the order
creation process. Valid values are:
• Fetch—Retrieves the rate card
entries defined in the catalog for
order items during the order creation
process.
• Skip—Skips the retrieval of rate
card entries for order items during
the order creation process.
The default value is Skip.
This property is available when the
Usage-Based Selling feature is enabled.

configuration String Configuration input for the place order Optional 60.0
Input process. Valid values are:
• RunAndAllowErrors—Specifies
to run the configuration and to
proceed order ingestion upon
encountering any configuration
errors.
• RunAndBlockErrors—Specifies
to run configuration and to block
order ingestion upon encountering
any configuration errors.
• Skip—Specifies to skip
configuration.
The default value is
RunAndBlockErrors.

configuration Configuration Configuration options during the Optional 60.0


Options Options Input[] ingestion process.

graph Object Graph Input The sObject graph of the order payload Required 60.0
to be ingested. You can perform create,

803
Transaction Management Quote and Order Capture Business APIs

Name Type Description Required or Available


Optional Version
update, or delete operations on objects
from the Sales Transaction context
definition by using this property.
Additionally, perform create, update, or
delete operations on custom objects and
fields in your extended context definition.

pricingPref String Pricing preference during the create order Optional 60.0
process. Valid values are:
• Force—Specifies to force pricing
during the order ingestion process.
• Skip—Specifies to skip pricing
during the order ingestion process.
• System—Specifies the system to
determine whether a pricing
calculation is required.
The default value is System.

Response body for POST


Place Order

Place Quote (POST)


Create a quote to discover and price products and services. Additionally, insert, update, or delete a quote line item.
You can also group quote line items based on location, work types, or departments, if groups are enabled for your org. Groups provide
a visualization of the products to view large quotes.
This API supports a maximum of 300 transaction line items. To place sales transactions that exceed this limit, use the Place Sales Transaction
API. See Place Sales Transaction (POST).
Special Access Rules
You need the Create on Quotes user permission to create quotes.
Resource
/commerce/quotes/actions/place

Resource example

https://yourInstance.salesforce.com/services/data/v63.0/commerce/quotes/actions/place

Available version
60.0
HTTP methods
POST

804
Transaction Management Quote and Order Capture Business APIs

Request body for POST


JSON example
This example shows a sample request to create a quote.
{
"pricingPref": "System",
"configurationInput": "RunAndAllowErrors",
"configurationOptions": {
"validateProductCatalog": true,
"validateAmendRenewCancel": true,
"executeConfigurationRules": true,
"addDefaultConfiguration": true
}, "graph": {
"graphId": "createQuote",
"records": [{
"referenceId": "refQuote",
"record": {
"attributes": {
"type": "Quote",
"method": "POST"
},
"opportunityId": "---",
"quoteProp1": "value1",
"quoteProp2": "value2"
}
},
{
"referenceId": "refQuoteLineItem1",
"record": {
"attributes": {
"type": "QuoteLineItem",
"method": "POST"
},
"QuoteLineItemProp1": "value1",
"QuoteLineItemProp2": "value2"
}
},
{
"referenceId": "refQuoteLineItemAttribute",
"record": {
"attributes": {
"type": "QuoteLineItemAttribute",
"method": "POST"
},
"QuoteLineItemId": "@{refQuoteItem1.id}",
"AttributeDefinitionId": "0tjxx0000000001AAA"
}
}
]
}
}

805
Transaction Management Quote and Order Capture Business APIs

This example shows a sample request to insert, update, or delete a quote line item.
{
"pricingPref": "System",
"configurationInput": "skip",
"graph": {
"graphId": "updateQuote",
"records": [
{
"referenceId": "refQuote",
"record": {
"attributes": {
"type": "Quote",
"method": "PATCH",
"id": "0Q0xx0000004E2mCAE"
},
"Name": "Quote_Acme"
}
},
{
"referenceId": "refQuoteLineItemToCreate1",
"record": {
"attributes": {
"type": "QuoteLineItem",
"method": "POST"
},
"QuoteId": "0Q0xx0000004E2mCAE",
"PricebookEntryId": "01uxx0000008yXPAAY",
"Product2Id": "01txx0000006i2UAAQ",
"Quantity": 2.0,
"UnitPrice": 800.0,
"PeriodBoundary": "Anniversary",
"BillingFrequency": "Monthly",
"StartDate": "2024-03-11"
}
},
{
"referenceId": "refQuoteLineItemToPatch2",
"record": {
"attributes": {
"type": "QuoteLineItem",
"method": "PATCH",
"id": "0Q0xx0000004E2mCAE"
},
"Quantity": 2.0,
"UnitPrice": 600.0
}
},
{
"referenceId": "refQuoteLineItemToDelete3",
"record": {
"attributes": {
"type": "QuoteLineItem",
"method": "DELETE",
"id": "0Q0xx0000004E2mYLK"

806
Transaction Management Quote and Order Capture Business APIs

}
}
}
]
}
}

This example shows a sample request to define grouping of quote line items.
{
"pricingPref": "Force",
"configurationInput": "skip",
"graph": {
"graphId": "groupLines",
"records": [
{
"referenceId": "refQuote",
"record": {
"attributes": {
"type": "Quote",
"method": "PATCH",
"id":"0Q0xx0000004C99CAE"
},
"Name": "From Place Quote API"
}
},
{
"referenceId": "refQlg1",
"record": {
"attributes": {
"type": "QuoteLineGroup",
"method": "POST",
"action": "GroupBy",
"criteria": {
"Quantity": 1
}
},
"Name": "From Place Quote API Group",
"QuoteId": "@{refQuote.id}"
}
},
{
"referenceId": "refQuoteItem1",
"record": {
"attributes": {
"type": "QuoteLineItem",
"method": "PATCH",
"id":"0QLxx0000004DJcGAM"
},
"QuoteLineGroupId": "@{refQlg1.id}",
"Quantity": 1
}
}
]

807
Transaction Management Quote and Order Capture Business APIs

}
}

This example shows a sample request for the initial grouping of the quote with the quote lines assigned to the first group.
{
"pricingPref": "Force",
"graph": {
"graphId": "test",
"records": [
{
"referenceId": "refQuote",
"record": {
"attributes": {
"type": "Quote",
"method": "PATCH",
"id": "0Q0xx0000004CAmCAM"
}
}
},
{
"referenceId": "refQlg1",
"record": {
"attributes": {
"type": "QuoteLineGroup",
"method": "POST",
"action": "GroupAll"
},
"Name": "From PQ API Group",
"QuoteId": "@{refQuote.id}"
}
}
]
}
}

This example shows a sample request to ungroup a quote but retain the quote lines.
{
"pricingPref": "Force",
"configurationInput": "skip",
"graph": {
"graphId": "test",
"records": [
{
"referenceId": "refQuote",
"record": {
"attributes": {
"type": "Quote",
"method": "PATCH",
"id":"0Q0xx0000004C99CAE"
},
"Name": "From Place Quote API"
}
},

808
Transaction Management Quote and Order Capture Business APIs

{
"referenceId": "refQlg1",
"record": {
"attributes": {
"type": "QuoteLineGroup",
"method": "DELETE",
"id": "{GroupId}",
"action": "Ungroup"
}
}
}
]
}
}

This example shows a sample request to create a new group.


{
"pricingPref": "Force",
"configurationInput": "skip",
"graph": {
"graphId": "test",
"records": [
{
"referenceId": "refQuote",
"record": {
"attributes": {
"type": "Quote",
"method": "PATCH",
"id":"0Q0xx0000004C99CAE"
},
"Name": "From Place Quote API"
}
},
{
"referenceId": "refQlg1",
"record": {
"attributes": {
"type": "QuoteLineGroup",
"method": "POST"
},
"Name": "From PQ API Group",
"QuoteId": "@{refQuote.id}"
}
}
]
}
}

This example shows a sample request to delete a group.


{
"pricingPref": "Force",
"configurationInput": "skip",
"graph": {

809
Transaction Management Quote and Order Capture Business APIs

"graphId": "test",
"records": [
{
"referenceId": "refQuote",
"record": {
"attributes": {
"type": "Quote",
"method": "PATCH",
"id":"0Q0xx0000004C99CAE"
},
"Name": "From Place Quote API"
}
},
{
"referenceId": "refQlg1",
"record": {
"attributes": {
"type": "QuoteLineGroup",
"method": "DELETE",
"id": "{GroupId}",
"action": "DeleteGroup"
}
}
}
]
}
}

This example shows a sample request to move a group.


{
"pricingPref": "Force",
"configurationInput": "skip",
"graph": {
"graphId": "test",
"records": [
{
"referenceId": "refQuote",
"record": {
"attributes": {
"type": "Quote",
"method": "PATCH",
"id":"0Q0xx0000004C99CAE"
},
"Name": "From PlaceQuote Api"
}
},
{
"referenceId": "0QLxx0000004CBYGA2",
"record": {
"attributes": {
"type": "QuoteLineItem",
"method": "PATCH"
"id": "0QLxx0000004CBYGA2"
},

810
Transaction Management Quote and Order Capture Business APIs

"Quantity": 2,
"QuoteLineGroupId": "@{GroupId2}"
}
]
}
}

Properties

Name Type Description Required or Available


Optional Version
catalog String Rate card entries defined in the catalog Optional 62.0
RatesPref that must be fetched for quote line items
with usage-based pricing during the
quote creation process. Valid values are:
• Fetch—Retrieves the rate card
entries defined in the catalog for
quote line items during the quote
creation process.
• Skip—Skips the retrieval of rate
card entries for quote line items
during the quote creation process.
The default value is Skip.
This property is available when the
Usage-Based Selling feature is enabled.

configuration String Configuration input for the place quote Optional 60.0
Input process. Valid values are:
• RunAndAllowErrors
• RunAndBlockErrors
• Skip
The default value is
RunAndBlockErrors.

configuration Configuration Configuration options during the Optional 60.0


Options Options Input ingestion process.

graph Object Graph Input The sObject graph representing the Required 60.0
quote structure. You can perform create,
update, or delete operations on objects
from the Sales Transaction context
definition by using this property.
Additionally, perform create, update, or
delete operations on custom objects and
fields in your extended context definition.

811
Transaction Management Quote and Order Capture Business APIs

Name Type Description Required or Available


Optional Version
pricingPref String Pricing preference during the quote Optional 60.0
process. Valid values are:
• Force
• Skip
• System
The default value is System.

Response body for POST


Place Quote

Place Sales Transaction (POST)


Create a sales transaction, such as an order or a quote, with integrated pricing and configuration. Additionally, update an order or a
quote, and insert and delete order or quote line items to calculate the estimated tax.
You can also group order or quote line items based on location, work types, or departments, if groups are enabled for your org. Groups
provide a visualization of the products to view large quotes. You can add up to 1000 quote line items for a quote, and 1000 order products
for an order.
Resource
/connect/rev/sales-transaction/actions/place

Resource example

https://yourInstance.salesforce.com/services/data/v63.0/connect/rev/sales-transaction/actions/place

Available version
63.0
HTTP methods
POST
Request body for POST
JSON example
This is a sample request to create a sales transaction for a quote.
{
"pricingPref": "system",
"catalogRatesPref" "skip",
"configurationPref": {
"configurationMethod": "Skip",
"configurationOptions": {
"validateProductCatalog": true,
"validateAmendRenewCancel": true,
"executeConfigurationRules": true,
"addDefaultConfiguration": true
}
},

812
Transaction Management Quote and Order Capture Business APIs

"contextDetails": {
"contextId": "e055bb18-d4e8-41c3-881e-0132b9561708"
},
"graph": {
"graphId": "createQuote",
"records": [
{
"referenceId": "refQuote",
"record": {
"attributes": {
"method": "POST",
"type": "Quote"
},
"Name": "Quote_Acme",
"Pricebook2Id": "01sDU000000JvhbYAC"
}
},
{
"referenceId": "refQuoteLine0",
"record": {
"attributes": {
"type": "QuoteLineItem",
"method": "POST"
},
"QuoteId": "@{refQuote.id}",
"Product2Id": "01tDU000000F7b8YAC",
"PricebookEntryId": "01uDU000000fxt2YAA",
"UnitPrice": 100,
"Quantity": "1",
"StartDate": "2024-10-29",
"EndDate": "2025-03-01",
"PeriodBoundary": "Anniversary"
}
}
]
}
}

This is a sample request to insert, update, or delete a quote line item.


{
{
"pricingPref": "system",
"catalogRatesPref": "skip",
"configurationPref": {
"configurationMethod": "Skip",
"configurationOptions": {
"validateProductCatalog": true,
"validateAmendRenewCancel": true,
"executeConfigurationRules": true,
"addDefaultConfiguration": true
}
},
"contextDetails": {
"contextId": "e055bb18-d4e8-41c3-881e-0132b9561708"

813
Transaction Management Quote and Order Capture Business APIs

},
"graph": {
"graphId": "updateQuote",
"records": [
{
"referenceId": "refQuote",
"record": {
"attributes": {
"method": "PATCH",
"type": "Quote",
"id": "801xx000003GZ9bAAG"
}
}
},
{
"referenceId": "refQuoteLine0",
"record": {
"attributes": {
"type": "QuoteLineItem",
"method": "PATCH",
"id": "402xx000003KY5vJGH"
},
"Quantity": "5"
}
}
]
}
}

This is a sample request to define grouping of quote line items.


{
"pricingPref": "Force",
"catalogRatesPref" "skip",
"configurationPref": {
"configurationMethod": "Skip",
"configurationOptions": {
"validateProductCatalog": true,
"validateAmendRenewCancel": true,
"executeConfigurationRules": true,
"addDefaultConfiguration": true
}
},
"contextDetails": {
"contextId": "e055bb18-d4e8-41c3-881e-0132b9561708"
},
"graph": {
"graphId": "groupQuoteLines",
"records": [
{
"referenceId": "refQuote",
"record": {
"attributes": {
"method": "PATCH",
"type": "Quote",

814
Transaction Management Quote and Order Capture Business APIs

"id": "801xx000003GZ9bAAG"
}
}
},
{
"referenceId": "refQuoteLine0",
"record": {
"attributes": {
"type": "QuoteLineItem",
"method": "PATCH",
"id": "402xx000003KY5vJGH"
},
"QuoteLineGroupId": "@{refQuote.id}"
}
}
]
}
}

This is s a sample request for the initial grouping of the quote with all the quote lines assigned to the first group.
{
"pricingPref": "Force",
"catalogRatesPref" "skip",
"graph": {
"graphId": "groupQuote",
"records": [
{
"referenceId": "refQuote",
"record": {
"attributes": {
"type": "Quote",
"method": "PATCH",
"id": "0Q0xx0000004CAmCAM"
}
}
},
{
"referenceId": "refQlg1",
"record": {
"attributes": {
"type": "QuoteLineGroup",
"method": "POST",
"action": "GroupAll"
},
"Name": "From PST API Group",
"QuoteId": "@{refQuote.id}"
}
}
]
}
}

815
Transaction Management Quote and Order Capture Business APIs

This is a sample request to ungroup a quote but retain the quote lines.
{
"catalogRatesPref" "skip",
"pricingPref": "Force",
"graph": {
"graphId": "ungroupQuote",
"records": [
{
"referenceId": "refQuote",
"record": {
"attributes": {
"type": "Quote",
"method": "PATCH",
"id":"0Q0xx0000004C99CAE"
},
"Name": "Grouped Quote with PST API"
}
},
{
"referenceId": "refQlg1",
"record": {
"attributes": {
"type": "QuoteLineGroup",
"method": "DELETE",
"id": "402xx000003KY5vJGH",
"action": "Ungroup"
}
}
}
]
}
}

This is a sample request to create a new group.


{
"catalogRatesPref" "skip",
"pricingPref": "Force",
"graph": {
"graphId": "createGroup",
"records": [
{
"referenceId": "refQuote",
"record": {
"attributes": {
"type": "Quote",
"method": "PATCH",
"id":"0Q0xx0000004C99CAE"
},
"Name": "Grouped Quote with PST API"
}
},
{
"referenceId": "refQlg1",

816
Transaction Management Quote and Order Capture Business APIs

"record": {
"attributes": {
"type": "QuoteLineGroup",
"method": "POST"
},
"Name": "From PQ API Group",
"QuoteId": "@{refQuote.id}"
}
}
]
}
}

This example shows a sample request to delete a group.


{
"catalogRatesPref" "skip",
"pricingPref": "Force",
"graph": {
"graphId": "deleteGroup",
"records": [
{
"referenceId": "refQuote",
"record": {
"attributes": {
"type": "Quote",
"method": "PATCH",
"id":"0Q0xx0000004C99CAE"
},
"Name": "Grouped Quote with PST API"
}
},
{
"referenceId": "refQlg1",
"record": {
"attributes": {
"type": "QuoteLineGroup",
"method": "DELETE",
"id": "402xx000003KY5vJGH",
"action": "DeleteGroup"
}
}
}
]
}
}

This is a sample request to group order items based on criteria.


{
"catalogRatesPref" "skip",
"pricingPref": "Force",
"graph": {
"graphId": "groupOrderItems",
"records": [

817
Transaction Management Quote and Order Capture Business APIs

{
"referenceId": "refOrder",
"record": {
"attributes": {
"type": "Order",
"method": "PATCH",
"id": "0Q0xx0000004C99CAE"
}
}
},
{
"referenceId": "refOlg1",
"record": {
"attributes": {
"type": "OrderItemGroup",
"method": "POST",
"action": "GroupBy",
"criteria": {
"BillingFrequency2": null
}
},
"Name": "Billing Frequency: ",
"OrderId": "@{refOrder.id}"
}
},
{
"referenceId": "g1",
"record": {
"attributes": {
"type": "OrderItemGroup",
"method": "POST",
"action": "GroupBy",
"criteria": {
"BillingFrequency2": "Monthly"
}
},
"Name": "Billing Frequency: Monthly",
"OrderId": "@{refOrder.id}"
}
}
]
}
}

This is a sample request to save changes to a ramp deal by using context ID. The context ID is returned by the Ramp Deal APIs.
See Create Ramp Deal (POST).
{
"pricingPref": "force",
"contextDetails": {
"contextId": "f1c9e3e1c335f7959a88de09d3a867cc2b95e08709b99de8e2edeb8f5039e8ed",

"scope": "Session"
},
"graph": {

818
Transaction Management Quote and Order Capture Business APIs

"graphId": "updateQuote",
"records": [
{
"referenceId": "refQuote",
"record": {
"attributes": {
"type": "Quote",
"method": "PATCH",
"id": "0Q0xx0000004DQ4CAM"
}
}
}
]
}
}

Properties

Name Type Description Required or Available


Optional Version
catalogRates String Rate card entries defined in the catalog Optional 63.0
Pref that must be fetched for sales items with
usage-based pricing during the creation
of the sales transaction. Valid values are:
• Fetch—Retrieves the rate card
entries defined in the catalog for sales
items during the creation of the sales
transaction.
• Skip—Skips the retrieval of rate
card entries for sales items during the
creation of the sales transaction.
The default value is Skip.

This property is available when the


Usage-Based Selling feature is enabled.

configuration Configurator Configuration preference during the Optional 63.0


Pref Preference Input quote process. These preferences ensure
that quotes are defined as per the
requirement.

contextDetails Context Input Context details that are created for a sales Required if the 63.0
transaction. graph property
isn’t specified.

graph Object Graph Input The sObject graph of the sales transaction Required if the 63.0
to be ingested. You can perform create, contextDetails
update, or delete operations on objects property isn’t
from the Sales Transaction context specified.
definition by using this property.
Additionally, perform create, update, or

819
Transaction Management Quote and Order Capture Business APIs

Name Type Description Required or Available


Optional Version
delete operations on custom objects and
fields in your extended context definition.

pricingPref String Pricing preference during the creation of Optional 63.0


a sales transaction. Valid values are:
• Force—Specifies to enforce pricing
during the creation of sales
transactions.
• Skip—Specifies to skip pricing
during the creation of sales
transactions.
• System—Specifies the system to
determine whether a pricing
calculation is required.
The default value is System.

Response body for POST


Place Sales Transaction

Create Ramp Deal (POST)


Create a ramp deal for a customer on a product. Sales reps can use ramp deals to provide yearly deals to a customer, resulting in long-term
revenue and customer relationship. A customer can create, update, or view multiple segments of periods for their subscription term
with different attributes for each segment.
This API request creates segments based on the specified input properties such as term, segment type, and trial details. The API response
includes the context ID and the updated context object for the sales transaction. You must call the Place Sales Transaction (POST) API
by specifying this context ID to apply the ramp deal updates. See Place Sales Transaction (POST) API.
Resource

/connect/revenue-management/sales-transaction-contexts/resourceId/actions/ramp-deal-create

Resource example

https://yourInstance.salesforce.com/services/data/v63.0/connect/revenue-management/sales-transaction-contexts/0QLxx0000004CfIGAU/actions/ramp-deal-create

Available version
62.0
HTTP methods
POST

820
Transaction Management Quote and Order Capture Business APIs

Path parameter for POST

Name Type Description Required or Available


Optional Version
resourceId String ID of the quote line item, order item, or Required 62.0
context.

Request body for POST


JSON example
{
"transactionId": "0Q0xx0000004C92CAE",
"transactionLineId": "0QLxx0000004C9VGAU",
"subscriptionTerm": 14,
"subscriptionTermUnit": "MONTHS",
"trialTerm": 45,
"trialTermUnit": "DAYS",
"segmentType": "YEARLY",
"executionSettings": {
"executePricing": true,
"executeConfigRules": false
}
}

Properties

Name Type Description Required or Available


Optional Version
execution Execution Settings Settings to run the pricing or Optional 62.0
Settings Input[] configuration rules.

segmentType String Type of segment that the user wants to Required 62.0
create. Valid values are:
• FREE_TRIAL
• CUSTOM
• YEARLY

subscription Integer Subscription length of the term-defined Required 62.0


Term product.

subscription String Unit of time for the subscription length. Required 62.0
TermUnit Valid value is:
• MONTHS

transaction String ID of the sales transaction that’s Required 62.0


Id configured, such as quote or order.

821
Transaction Management Quote and Order Capture Business APIs

Name Type Description Required or Available


Optional Version
transaction String Quote line item ID or order item ID that Required 62.0
LineId the price ramp is created for.

trialTerm Integer Length of the trial period, if any. Optional 62.0

trialTerm String Unit of time for the trial period. Valid Optional. Required 62.0
Unit value is: if trialTerm
property is
• DAYS specified.

Response body for POST


Ramp Deal Service

Delete Ramp Deal (POST)


Delete a ramp deal to convert a ramped product to include a single quote line item or order item.
This API request deletes the segments related to the product. The API response includes the updated context with the context ID. You
must call the Place Sales Transaction (POST) API by specifying this context ID to apply the ramp deal updates. See Place Sales Transaction
(POST) API.
Resource

/connect/revenue-management/sales-transaction-contexts/resourceId/actions/ramp-deal-delete

Resource example

https://yourInstance.salesforce.com/services/data/v63.0/connect/revenue-management/sales-transaction-contexts/0QLxx0000004CfIGAU/actions/ramp-deal-delete

Available version
62.0
HTTP methods
POST
Path parameter for POST

Name Type Description Required or Available


Optional Version
resourceId String ID of the context. Required 62.0

Request body for POST


JSON example
{
"rampDealIds": [
"0Q0xx0000004CDxCAM",
"0QLxx0000004CSOGA2"

822
Transaction Management Quote and Order Capture Business APIs

]
}

Properties

Name Type Description Required or Available


Optional Version
rampDealIds String[] Ramp identifier on the quote line item or Required 62.0
order item.

Response body for POST


Ramp Deal Service

Update Ramp Deal (POST)


Modify a ramp deal in scenarios where a segment has updates such as quantity, discount, or date change.
Update a ramp deal in these scenarios.
• A segment has quantity or discount changes.
• A trial segment or custom segment has a date change. A custom segment is an added or deleted segment. In this scenario, you can
update a ramp deal during the initial sale before assetization.
This API request returns the updated context with the context ID. You must call the Place Sales Transaction (POST) API by specifying this
context ID to apply the ramp deal updates. See Place Sales Transaction (POST) API.
Resource

/connect/revenue-management/sales-transaction-contexts/resourceId/actions/ramp-deal-update

Resource example

https://yourInstance.salesforce.com/services/data/v63.0/connect/revenue-management/sales-transaction-contexts/4f23961a5c98806f89305e064c67b397e93f1bb8a2a7a3a80db506f1d4110ee9/actions/ramp-deal-update

Available version
62.0
HTTP methods
POST
Path parameter for POST

Name Type Description Required or Available


Optional Version
resourceId String ID of the context data that’s used to build Required 62.0
the pricing procedure. Get the context
instance ID by invoking the Context Service
API. See Context Service (POST).

823
Transaction Management Quote and Order Capture Business APIs

Request body for POST


JSON example
{
"executionSettings": {
"executePricing": true,
"executeConfigRules": false
},
"addedNodes": [
{
"contextNodePath": [
"4f23961a5c98806f89305e064c67b397e93f1bb8a2a7a3a80db506f1d4110ee9", // Context
ID
"0Q0xx0000004CPACA2", //Quote or Order ID
"RandomUUID" // random UUID for Quote Line Item or Order Item ID
],
"contextNode": {
"Discount": 10,
"Quantity": 5,
"ItemSegmentName": "Year 5",
"StartDate":"2024-09-07T00:00:00.000Z",
"EndDate":"2024-09-07T00:00:00.000Z"
}
}
],
"updatedNodes": [
{
"contextNodePath": [
"4f23961a5c98806f89305e064c67b397e93f1bb8a2a7a3a80db506f1d4110ee9", // Context
ID
"0Q0xx0000004CPACA2", //Quote or Order ID
"0QLxx0000004CfIGAU" // Quote Line ID or Order Line ID to update
],
"contextNode": {
"Discount": 10,
"Quantity": 5
}
}
],
"deletedNodes": [
{
"contextNodePath": [
"4f23961a5c98806f89305e064c67b397e93f1bb8a2a7a3a80db506f1d4110ee9",
"0Q0xx0000004CPACA2",
"0QLxx0000004CfIGAU" // Quote Line Item ID to delete
]
}
]
}

824
Transaction Management Quote and Order Capture Business APIs

Properties

Name Type Description Required or Available


Optional Version
addedNodes Context Node Details of the nodes to be added. Required 62.0
Input[]

deletedNodes Context Node Details of the nodes to be deleted. Required 62.0


Input[]

execution Execution Settings Settings to run the pricing or Optional 62.0


Settings Input[] configuration rules.

updatedNodes Context Node Details of the nodes to be updated. Required 62.0


Input[]

Response body for POST


Ramp Deal Service

View Ramp Deal (GET)


View a ramp deal related to a quote line item or an order item.
This API request retrieves the segments if the ramp deal already exists.
Resource

/connect/revenue-management/sales-transaction-contexts/resourceId/actions/ramp-deal-view

Resource example

https://yourInstance.salesforce.com/services/data/v63.0/connect/revenue-management/sales-transaction-contexts/0QLxx0000004CSOGA2/actions/ramp-deal-view?transactionId=0Q0xx0000004CDxCAM&transactionLineId=0QLxx0000004CSOGA2

Available version
62.0
HTTP methods
GET
Path parameter for GET

Name Type Description Required or Available


Optional Version
resourceId String ID of the quote line item, order item, or Required 62.0
context.

825
Transaction Management Quote and Order Capture Business APIs

Request parameters for GET

Parameter Type Description Required or Available


Name Optional Version
transactionId String ID of the quote or order required to Required 62.0
hydrate the context and retrieve the quote
lines.

transaction String ID of the quote or order line required to Required 62.0


LineId retrieve the segmented details.

Response body for GET


Ramp Deal Service

Request Bodies
Learn more about the available API request bodies.

Configuration Options Input


Input representation for the configuration options.
Configurator Preference Input
Input representation of the configuration preference for the place sales transaction request.
Context Input
Input representation of the context that's associated with a sales transaction for a quote or an order.
Context Node Input
Input representation of the details of the context nodes for ramp segments.
Execution Settings Input
Input representation of the execution settings for a ramp deal.
Instant Pricing Input
Input representation to fetch the instant pricing details.
Object Graph Input
Input representation of an sObject with a graph ID.
Object Input Map
Input representation of an sObject record in a key-value map format.
Object with Reference Input
Input representation of a list of records to be inserted or updated. To update a record, specify the record ID.
Place Order Input
Input representation of the request to create or update an order.
Place Quote Input
Input representation of the request to create or update a quote.
Place Sales Transaction Input
Input representation of the details of the request to place a sales transaction, such as a quote or an order.

826
Transaction Management Quote and Order Capture Business APIs

Create Ramp Deal Input


Input representation of the request to create a ramp deal.
Delete Ramp Deal Input
Input representation of the request to delete a ramp deal.
Update Ramp Deal Input
Input representation of the request to update a ramp deal.

Configuration Options Input


Input representation for the configuration options.
JSON example
{
"configurationOptions": {
"validateProductCatalog": true,
"validateAmendRenewCancel": true,
"executeConfigurationRules": true,
"addDefaultConfiguration": true
}
}

Properties

Name Type Description Required or Available


Optional Version
addDefault Boolean Indicates whether to automatically add Optional 60.0
Configuration default configurations to the order (true)
or not (false).

execute Boolean Indicates whether the order must adhere Optional 60.0
Configuration to configuration rules during processing
Rules (true) or bypass them (false).

validateAmend Boolean Indicates whether to run validations Optional 60.0


RenewCancel related to amend, renew, or cancel
processes (true) or not (false).

validate Boolean Indicates whether the order must be Optional 60.0


Product validated against the product catalog
Catalog (true) or not (false).

Configurator Preference Input


Input representation of the configuration preference for the place sales transaction request.
JSON example
{
"configurationPref": {
"configurationMethod": "Skip",
"configurationOptions": {

827
Transaction Management Quote and Order Capture Business APIs

"validateProductCatalog": true,
"validateAmendRenewCancel": true,
"executeConfigurationRules": true,
"addDefaultConfiguration": true
}
}
}

Properties

Name Type Description Required or Available


Optional Version
configuration String Configuration method for the place sales Optional 63.0
Method transaction request. Valid values are:
• Force—Specifies to enforce the
predefined configuration process
during the sales transaction process.
• Skip—Specifies to skip the
configuration process during the
quote creation process.
• System—Specifies the system to
determine whether the configuration
process is required.
The default value is Skip.

configuration Configuration Configuration options during the ingestion Optional 63.0


Options Options Input process.

Context Input
Input representation of the context that's associated with a sales transaction for a quote or an order.
JSON example
{
"contextDetails": {
"contextId": "e055bb18-d4e8-41c3-881e-0132b9561708"
}
}

Properties

Name Type Description Required or Available


Optional Version
contextId String ID of the context that represents the Optional 63.0
created session for the sales transaction.
This property is supported only for a
PATCH request.

828
Transaction Management Quote and Order Capture Business APIs

Name Type Description Required or Available


Optional Version
If the contextId property isn’t
specified, the Place Sales Transaction API
generates the context ID for the sales
transaction.

Context Node Input


Input representation of the details of the context nodes for ramp segments.
JSON example
"updatedNodes": [
{
"contextNodePath": [
"4f23961a5c98806f89305e064c67b397e93f1bb8a2a7a3a80db506f1d4110ee9", // ContextId

"0Q0xx0000004CPACA2", //Quote or OrderId


"0QLxx0000004CfIGAU" // Quote Line ID or Order Line ID to update
],
"contextNode": {
"Discount": 10,
"Quantity": 5
}
},
{
"contextNodePath": [
"4f23961a5c98806f89305e064c67b397e93f1bb8a2a7a3a80db506f1d4110ee9",
"0Q0xx0000004CPACA2",
"2b6401d144904e10aa"
],
"contextNode": {
"Discount": 20,
"Quantity": 15
}
}
]

Properties

Name Type Description Required or Available


Optional Version
contextNode Map<String, Details of the context node to be added, Required 62.0
Object> updated, or deleted.

contextNode String[] Path to the context node to be added, Required 62.0


Path updated, or deleted.

829
Transaction Management Quote and Order Capture Business APIs

Execution Settings Input


Input representation of the execution settings for a ramp deal.
JSON example
"executionSettings": {
"executePricing": true,
"executeConfigRules": false
}

Properties

Name Type Description Required or Available


Optional Version
execute Boolean Indicates whether to run configuration Optional 62.0
ConfigRules rules (true) or not (false). The default
value is true.

execute Boolean Indicates whether to run pricing request Optional 62.0


Pricing (true) or not (false). The default value
is true.

Instant Pricing Input


Input representation to fetch the instant pricing details.
JSON example
{
"correlationId": "1234567",
"contextId": "",
"records": [
{
"referenceId": "refQuote",
"record": {
"attributes": {
"type": "Quote",
"method": "POST"
},
"Name": "Test Quote Proration Pricing",
"OpportunityId": "006xx000001a4ISAAY",
"Pricebook2Id": "01sxx0000005ptpAAA"
}
},
{
"referenceId": "refQuoteLine",
"record": {
"attributes": {
"type": "QuoteLineItem",
"method": "POST"
},
"QuoteId": "refQuote",
"PricebookEntryId": "01uxx0000008zHmAAI",

830
Transaction Management Quote and Order Capture Business APIs

"Product2Id": "01txx0000006jmWAAQ",
"Quantity": 2,
"UnitPrice": 25,
"StartDate": "2022-09-28",
"EndDate": "2028-09-27",
"PeriodBoundary": "ANNIVERSARY",
"BillingFrequency": "ANNUAL"
}
}
]
}

This example shows a sample request to specify grouping of lines based on criteria.
{
"contextId": "",
"correlationId": "",
"records": [
{
"referenceId": "0Q0xx0000004DOSCA2",
"record": {
"attributes": {
"type": "Quote",
"method": "PUT"
}
}
},
{
"referenceId": "0QLxx0000004F3gGAE",
"record": {
"attributes": {
"type": "QuoteLineItem",
"method": "PUT"
},
"Quantity": 5
}
}, {
"referenceId": "0QLxx0000004F3hGAE",
"record": {
"attributes": {
"type": "QuoteLineItem",
"method": "PUT"
},
"Quantity": 2
}
},
{
"referenceId": "GroupId1",
"record": {
"attributes": {
"type": "QuoteLineGroup",
"method": "POST",
"action": "GroupBy",
"criteria": {
"Quantity": 5

831
Transaction Management Quote and Order Capture Business APIs

}
},
"Name": "record"
}
}, {
"referenceId": "GroupId2",
"record": {
"attributes": {
"type": "QuoteLineGroup",
"method": "POST",
"action": "GroupBy",
"criteria": {
"Quantity": 2
}
},
"Name": "record1",
}
}
]
}

This example shows a sample request for the initial grouping of the quote with the quote lines assigned to the first group.
{
"contextId": "",
"correlationId": "",
"records": [
{
"referenceId": "0Q0xx0000004CAgCAM",
"record": {
"attributes": {
"type": "Quote",
"method": "PUT"
}
}
},
{
"referenceId": "GroupId1",
"record": {
"attributes": {
"type": "QuoteLineGroup",
"method": "POST",
"action": "GroupAll"
},
"Name": "sample"
}
}
]
}

This example shows a sample request to ungroup a quote but retain the quote lines.
{
"contextId": "",
"correlationId": "",

832
Transaction Management Quote and Order Capture Business APIs

"records": [
{
"referenceId": "0Q0xx0000004CAgCAM",
"record": {
"attributes": {
"type": "Quote",
"method": "PUT"
}
}
},
{
"referenceId": "0QLxx0000004CBYGA2",
"record": {
"attributes": {
"type": "QuoteLineItem",
"method": "PUT"
},
"Quantity": 2,
"QuoteLineGroupId": null
}
},
{
"referenceId": "GroupId1",
"record": {
"attributes": {
"type": "QuoteLineGroup",
"method": "DELETE",
"action": "Ungroup"
}
}
}
]
}

This example shows a sample request to create a new group.


{
"contextId": "",
"correlationId": "",
"records": [
{
"referenceId": "0Q0xx0000004CAgCAM",
"record": {
"attributes": {
"type": "Quote",
"method": "PUT"
}
}
},
{
"referenceId": "GroupId1",
"record": {
"attributes": {
"type": "QuoteLineGroup",
"method": "POST"

833
Transaction Management Quote and Order Capture Business APIs

},
"Name": "sample"
}
}
]
}

This example shows a sample request to delete a group.


{
"contextId": "",
"correlationId": "",
"records": [
{
"referenceId": "0Q0xx0000004CAgCAM",
"record": {
"attributes": {
"type": "Quote",
"method": "PUT"
}
}
},
{
"referenceId": "GroupId1",
"record": {
"attributes": {
"type": "QuoteLineGroup",
"method": "DELETE",
"action": "DeleteGroup"
},
"Name": "sample"
}
}
]
}

This example shows a sample request to move a group.


{
"contextId": "",
"correlationId": "",
"records": [
{
"referenceId": "0Q0xx0000004CAgCAM",
"record": {
"attributes": {
"type": "Quote",
"method": "PUT"
}
}
},
{
"referenceId": "0QLxx0000004CBYGA2",
"record": {
"attributes": {

834
Transaction Management Quote and Order Capture Business APIs

"type": "QuoteLineItem",
"method": "PUT"
},
"Quantity": 2
"QuoteLineGroupId": "{@GroupId2}"
}
},
]
}

Properties

Name Type Description Required or Available


Optional Version
contextId String The ID generated by the context service. Optional 59.0
If no context ID is provided, a new context
is created.

correlationId String Client-generated ID for tracking multiple Optional 59.0


related API requests.

records Object with List of pricing data to be fetched. Required 59.0


Reference Input[]

Object Graph Input


Input representation of an sObject with a graph ID.
JSON example
{
"graph": {
"graphId": "1",
"records": [
{
"referenceId": "refOrder",
"record": {
"attributes": {
"type": "Order",
"method": "POST"
}
}
}
]
}
}

Properties

Name Type Description Required or Available


Optional Version
graphId String The ID of the graph. Required 60.0

835
Transaction Management Quote and Order Capture Business APIs

Name Type Description Required or Available


Optional Version
records Object with List of the records to be ingested. Required 60.0
Reference Input on
page 837[]

Object Input Map


Input representation of an sObject record in a key-value map format.
JSON example
{
"records": [
{
"referenceId": "refOrder",
"record": {
"attributes": {
"type": "Order",
"method": "PATCH",
"id": "402xx000003KY5vJGH"
},
"Quantity": 5
}
}
]
}

Properties

Name Type Description Required or Available


Optional Version
attributes Map <String, Configuration input for the Required 60.0
String> record process. Valid values are:
• type—Type of sales
transaction such as Quote
or Order.
• method—HTTP methods
such as POST, PATCH, and
DELETE.
• id—Unique identifier for
the record. Required for
PATCH and DELETE
operations.
• criteria—Criteria to
group order or quote line
items. For example, group
order or quote line items

836
Transaction Management Quote and Order Capture Business APIs

Name Type Description Required or Available


Optional Version
based on a monthly billing
frequency.
• action—Action to
group order or quote line
items. Valid values are:
– GroupBy
– Group
– Ungroup
– GroupAll
– DeleteGroup

Object with Reference Input


Input representation of a list of records to be inserted or updated. To update a record, specify the record ID.
This is a sample request to create a sales transaction for an order line item.
JSON example
{
"referenceId": "refOrderItem0",
"record": {
"attributes": {
"type": "OrderItem",
"method": "POST"
},
"OrderId": "@{refOrder.id}",
"OrderActionId": "@{refOrderAction.id}",
"PricebookEntryId": "01uRM000000igZG",
"Quantity": 2
}
}

This is a sample request to update an order line item.


JSON example
{
"referenceId": "refOrderItem0",
"record": {
"attributes": {
"type": "OrderItem",
"method": "PATCH",
"id": "402xx000003KY5vJGH"
},
"OrderId": "@{refOrder.id}",
"OrderActionId": "@{refOrderAction.id}",
"PricebookEntryId": "01uRM000000igZG",
"Quantity": 2,

837
Transaction Management Quote and Order Capture Business APIs

"UnitPrice": 800
}
}

Properties

Name Type Description Required or Available


Optional Version
referenceId String Reference ID that maps to the response Required 60.0
and can be used as a reference in later
subrecords.

records Object Input Map Details of a record to be ingested. Required 60.0


on page 836

Place Order Input


Input representation of the request to create or update an order.
JSON example
{
"pricingPref": "System",
"configurationInput": "RunAndAllowErrors",
"configurationOptions": {
"validateProductCatalog": true,
"validateAmendRenewCancel": true,
"executeConfigurationRules": true,
"addDefaultConfiguration": true
},
"graph": {
"graphId": "graphId",
"records": [
{
"referenceId": "refOrder",
"record": {
"attributes": {
"type": "Order",
"method": "POST",
"Id": "POST"
}
}
},
{
"referenceId":"refOrderItem",
"record":{
"attributes":{
"type":"OrderItem",
"method":"POST"
},
"OrderId":"@{refOrder.id}",
"OrderActionId":"@{refOrderAction.id}",
"ListPrice":"144.99",

838
Transaction Management Quote and Order Capture Business APIs

"Quantity":3,
"PricebookEntryId":"01uxx0000008yXPAAY",
"Product2Id":"01txx0000006i2UAAQ",
"UnitPrice":"199.49"
}
}
]
}
}

This example shows a sample request to define grouping of order items.


{
"pricingPref": "system",
"graph": {
"graphId": "placeOrder",
"records": [
{
"referenceId": "refOrder",
"record": {
"attributes": {
"type": "Order",
"method": "PATCH",
"id": "801xx000003GZ9bAAG"
}
}
},
{
"referenceId": "refOlg1",
"record": {
"attributes": {
"type": "OrderItemGroup",
"method": "POST"
},
"Name": "New Group",
"OrderId": "@{refOrder.id}"
}
}
]
}
}

This example shows a sample request to ungroup order items.


{
"pricingPref": "system",
"graph": {
"graphId": "placeOrder",
"records": [
{
"referenceId": "refOrder",
"record": {
"attributes": {
"type": "Order",
"method": "PATCH",

839
Transaction Management Quote and Order Capture Business APIs

"id": "refOrder"
}
}
},
{
"referenceId": "refOlg1",
"record": {
"attributes": {
"type": "OrderItemGroup",
"method": "DELETE",
"id": "refOlg1",
"action": "Ungroup"
}
}
}
]
}
}

This example shows a sample request to create a new group.


{
"pricingPref": "system",
"graph": {
"graphId": "placeOrder",
"records": [
{
"referenceId": "refOrder",
"record": {
"attributes": {
"type": "Order",
"method": "PATCH",
"id": "refOrder"
}
}
},
{
"referenceId": "refOlg",
"record": {
"attributes": {
"type": "OrderItemGroup",
"method": "POST"
},
"Name": "New Group",
"OrderId": "@{refOrder.id}"
}
}
]
}
}

This example shows a sample request to delete a group.


{
"contextId": "",

840
Transaction Management Quote and Order Capture Business APIs

"correlationId": "",
"records": [
{
"referenceId": "refOrder",
"record": {
"attributes": {
"type": "Order",
"method": "PATCH",
"id": "refOrder"
}
}
},
{
"referenceId": "refOlg",
"record": {
"attributes": {
"type": "OrderItemGroup",
"method": "DELETE",
"id": "refOlg",
"action": "DeleteGroup"
}
}
}
]
}

This example shows a sample request to group order items based on criteria.
{
"pricingPref": "system",
"graph": {
"graphId": "placeOrder",
"records": [
{
"referenceId": "refOrder",
"record": {
"attributes": {
"type": "Order",
"method": "PATCH",
"id": "refOrder"
}
}
},
{
"referenceId": "g0",
"record": {
"attributes": {
"type": "OrderItemGroup",
"method": "POST",
"action": "GroupBy",
"criteria": {
"BillingFrequency2": null
}
},
"Name": "Billing Frequency: ",

841
Transaction Management Quote and Order Capture Business APIs

"OrderId": "@{refOrder.id}"
}
},
{
"referenceId": "g1",
"record": {
"attributes": {
"type": "OrderItemGroup",
"method": "POST",
"action": "GroupBy",
"criteria": {
"BillingFrequency2": "Monthly"
}
},
"Name": "Billing Frequency: Monthly",
"OrderId": "@{refOrder.id}"
}
}
]
}
}

Properties

Name Type Description Required or Available


Optional Version
catalog String Rate card entries defined in the catalog Optional 62.0
RatesPref that must be fetched for order items with
usage-based pricing during the order
creation process. Valid values are:
• Fetch—Retrieves the rate card
entries defined in the catalog for order
items during the order creation
process.
• Skip—Skips the retrieval of rate card
entries for order items during the order
creation process.
The default value is Skip.
This property is available when the
Usage-Based Selling feature is enabled.

configuration String Configuration input for the place order Optional 60.0
Input process. Valid values are:
• RunAndAllowErrors—Specifies
to run the configuration and to
proceed order ingestion upon
encountering any configuration errors.
• RunAndBlockErrors—Specifies
to run configuration and to block order

842
Transaction Management Quote and Order Capture Business APIs

Name Type Description Required or Available


Optional Version
ingestion upon encountering any
configuration errors.
• Skip—Specifies to skip
configuration.
The default value is
RunAndBlockErrors.

configuration Configuration Configuration options during the ingestion Optional 60.0


Options Options Input[] process.

graph Object Graph Input The sObject graph of the order payload to Required 60.0
be ingested. You can perform create,
update, or delete operations on objects
from the Sales Transaction context
definition by using this property.
Additionally, perform create, update, or
delete operations on custom objects and
fields in your extended context definition.

pricingPref String Pricing preference during the create order Optional 60.0
process. Valid values are:
• Force—Specifies to force pricing
during the order ingestion process.
• Skip—Specifies to skip pricing
during the order ingestion process.
• System—Specifies the system to
determine whether a pricing
calculation is required.
The default value is System.

Place Quote Input


Input representation of the request to create or update a quote.
JSON example
This example shows a sample request to create a quote.
{
"pricingPref": "System",
"configurationInput": "RunAndAllowErrors",
"configurationOptions": {
"validateProductCatalog": true,
"validateAmendRenewCancel": true,
"executeConfigurationRules": true,
"addDefaultConfiguration": true
}, "graph": {
"graphId": "createQuote",

843
Transaction Management Quote and Order Capture Business APIs

"records": [{
"referenceId": "refQuote",
"record": {
"attributes": {
"type": "Quote",
"method": "POST"
},
"opportunityId": "---",
"quoteProp1": "value1",
"quoteProp2": "value2"
}
},
{
"referenceId": "refQuoteLineItem1",
"record": {
"attributes": {
"type": "QuoteLineItem",
"method": "POST"
},
"QuoteLineItemProp1": "value1",
"QuoteLineItemProp2": "value2"
}
},
{
"referenceId": "refQuoteLineItemAttribute",
"record": {
"attributes": {
"type": "QuoteLineItemAttribute",
"method": "POST"
},
"QuoteLineItemId": "@{refQuoteItem1.id}",
"AttributeDefinitionId": "0tjxx0000000001AAA"
}
}
]
}
}

This example shows a sample request to insert, update, or delete a quote line item.
{
"pricingPref": "System",
"configurationInput": "skip",
"graph": {
"graphId": "updateQuote",
"records": [
{
"referenceId": "refQuote",
"record": {
"attributes": {
"type": "Quote",
"method": "PATCH",
"id": "0Q0xx0000004E2mCAE"
},
"Name": "Quote_Acme"

844
Transaction Management Quote and Order Capture Business APIs

}
},
{
"referenceId": "refQuoteLineItemToCreate1",
"record": {
"attributes": {
"type": "QuoteLineItem",
"method": "POST"
},
"QuoteId": "0Q0xx0000004E2mCAE",
"PricebookEntryId": "01uxx0000008yXPAAY",
"Product2Id": "01txx0000006i2UAAQ",
"Quantity": 2.0,
"UnitPrice": 800.0,
"PeriodBoundary": "Anniversary",
"BillingFrequency": "Monthly",
"StartDate": "2024-03-11"
}
},
{
"referenceId": "refQuoteLineItemToPatch2",
"record": {
"attributes": {
"type": "QuoteLineItem",
"method": "PATCH",
"id": "0Q0xx0000004E2mCAE"
},
"Quantity": 2.0,
"UnitPrice": 600.0
}
},
{
"referenceId": "refQuoteLineItemToDelete3",
"record": {
"attributes": {
"type": "QuoteLineItem",
"method": "DELETE",
"id": "0Q0xx0000004E2mYLK"
}
}
}
]
}
}

This example shows a sample request to define grouping of quote line items.
{
"pricingPref": "Force",
"configurationInput": "skip",
"graph": {
"graphId": "groupLines",
"records": [
{
"referenceId": "refQuote",

845
Transaction Management Quote and Order Capture Business APIs

"record": {
"attributes": {
"type": "Quote",
"method": "PATCH",
"id":"0Q0xx0000004C99CAE"
},
"Name": "From Place Quote API"
}
},
{
"referenceId": "refQlg1",
"record": {
"attributes": {
"type": "QuoteLineGroup",
"method": "POST",
"action": "GroupBy",
"criteria": {
"Quantity": 1
}
},
"Name": "From Place Quote API Group",
"QuoteId": "@{refQuote.id}"
}
},
{
"referenceId": "refQuoteItem1",
"record": {
"attributes": {
"type": "QuoteLineItem",
"method": "PATCH",
"id":"0QLxx0000004DJcGAM"
},
"QuoteLineGroupId": "@{refQlg1.id}",
"Quantity": 1
}
}
]
}
}

This example shows a sample request for the initial grouping of the quote with the quote lines assigned to the first group.
{
"pricingPref": "Force",
"graph": {
"graphId": "test",
"records": [
{
"referenceId": "refQuote",
"record": {
"attributes": {
"type": "Quote",
"method": "PATCH",
"id": "0Q0xx0000004CAmCAM"
}

846
Transaction Management Quote and Order Capture Business APIs

}
},
{
"referenceId": "refQlg1",
"record": {
"attributes": {
"type": "QuoteLineGroup",
"method": "POST",
"action": "GroupAll"
},
"Name": "From PQ API Group",
"QuoteId": "@{refQuote.id}"
}
}
]
}
}

This example shows a sample request to ungroup a quote but retain the quote lines.
{
"pricingPref": "Force",
"configurationInput": "skip",
"graph": {
"graphId": "test",
"records": [
{
"referenceId": "refQuote",
"record": {
"attributes": {
"type": "Quote",
"method": "PATCH",
"id":"0Q0xx0000004C99CAE"
},
"Name": "From Place Quote API"
}
},
{
"referenceId": "refQlg1",
"record": {
"attributes": {
"type": "QuoteLineGroup",
"method": "DELETE",
"id": "{GroupId}",
"action": "Ungroup"
}
}
}
]
}
}

847
Transaction Management Quote and Order Capture Business APIs

This example shows a sample request to create a new group.


{
"pricingPref": "Force",
"configurationInput": "skip",
"graph": {
"graphId": "test",
"records": [
{
"referenceId": "refQuote",
"record": {
"attributes": {
"type": "Quote",
"method": "PATCH",
"id":"0Q0xx0000004C99CAE"
},
"Name": "From Place Quote API"
}
},
{
"referenceId": "refQlg1",
"record": {
"attributes": {
"type": "QuoteLineGroup",
"method": "POST"
},
"Name": "From PQ API Group",
"QuoteId": "@{refQuote.id}"
}
}
]
}
}

This example shows a sample request to delete a group.


{
"pricingPref": "Force",
"configurationInput": "skip",
"graph": {
"graphId": "test",
"records": [
{
"referenceId": "refQuote",
"record": {
"attributes": {
"type": "Quote",
"method": "PATCH",
"id":"0Q0xx0000004C99CAE"
},
"Name": "From Place Quote API"
}
},
{
"referenceId": "refQlg1",

848
Transaction Management Quote and Order Capture Business APIs

"record": {
"attributes": {
"type": "QuoteLineGroup",
"method": "DELETE",
"id": "{GroupId}",
"action": "DeleteGroup"
}
}
}
]
}
}

This example shows a sample request to move a group.


{
"pricingPref": "Force",
"configurationInput": "skip",
"graph": {
"graphId": "test",
"records": [
{
"referenceId": "refQuote",
"record": {
"attributes": {
"type": "Quote",
"method": "PATCH",
"id":"0Q0xx0000004C99CAE"
},
"Name": "From PlaceQuote Api"
}
},
{
"referenceId": "0QLxx0000004CBYGA2",
"record": {
"attributes": {
"type": "QuoteLineItem",
"method": "PATCH"
"id": "0QLxx0000004CBYGA2"
},
"Quantity": 2,
"QuoteLineGroupId": "@{GroupId2}"
}
]
}
}

Properties

Name Type Description Required or Available


Optional Version
catalog String Rate card entries defined in the catalog Optional 62.0
RatesPref that must be fetched for quote line items

849
Transaction Management Quote and Order Capture Business APIs

Name Type Description Required or Available


Optional Version
with usage-based pricing during the quote
creation process. Valid values are:
• Fetch—Retrieves the rate card
entries defined in the catalog for quote
line items during the quote creation
process.
• Skip—Skips the retrieval of rate card
entries for quote line items during the
quote creation process.
The default value is Skip.
This property is available when the
Usage-Based Selling feature is enabled.

configuration String Configuration input for the place quote Optional 60.0
Input process. Valid values are:
• RunAndAllowErrors
• RunAndBlockErrors
• Skip
The default value is
RunAndBlockErrors.

configuration Configuration Configuration options during the ingestion Optional 60.0


Options Options Input process.

graph Object Graph Input The sObject graph representing the quote Required 60.0
structure. You can perform create, update,
or delete operations on objects from the
Sales Transaction context definition by
using this property. Additionally, perform
create, update, or delete operations on
custom objects and fields in your extended
context definition.

pricingPref String Pricing preference during the quote Optional 60.0


process. Valid values are:
• Force
• Skip
• System
The default value is System.

Place Sales Transaction Input


Input representation of the details of the request to place a sales transaction, such as a quote or an order.

850
Transaction Management Quote and Order Capture Business APIs

JSON example
This is a sample request to create a sales transaction for a quote.
{
"pricingPref": "system",
"catalogRatesPref" "skip",
"configurationPref": {
"configurationMethod": "Skip",
"configurationOptions": {
"validateProductCatalog": true,
"validateAmendRenewCancel": true,
"executeConfigurationRules": true,
"addDefaultConfiguration": true
}
},
"contextDetails": {
"contextId": "e055bb18-d4e8-41c3-881e-0132b9561708"
},
"graph": {
"graphId": "createQuote",
"records": [
{
"referenceId": "refQuote",
"record": {
"attributes": {
"method": "POST",
"type": "Quote"
},
"Name": "Quote_Acme",
"Pricebook2Id": "01sDU000000JvhbYAC"
}
},
{
"referenceId": "refQuoteLine0",
"record": {
"attributes": {
"type": "QuoteLineItem",
"method": "POST"
},
"QuoteId": "@{refQuote.id}",
"Product2Id": "01tDU000000F7b8YAC",
"PricebookEntryId": "01uDU000000fxt2YAA",
"UnitPrice": 100,
"Quantity": "1",
"StartDate": "2024-10-29",
"EndDate": "2025-03-01",
"PeriodBoundary": "Anniversary"
}
}
]
}
}

851
Transaction Management Quote and Order Capture Business APIs

This is a sample request to insert, update, or delete a quote line item.


{
{
"pricingPref": "system",
"catalogRatesPref": "skip",
"configurationPref": {
"configurationMethod": "Skip",
"configurationOptions": {
"validateProductCatalog": true,
"validateAmendRenewCancel": true,
"executeConfigurationRules": true,
"addDefaultConfiguration": true
}
},
"contextDetails": {
"contextId": "e055bb18-d4e8-41c3-881e-0132b9561708"
},
"graph": {
"graphId": "updateQuote",
"records": [
{
"referenceId": "refQuote",
"record": {
"attributes": {
"method": "PATCH",
"type": "Quote",
"id": "801xx000003GZ9bAAG"
}
}
},
{
"referenceId": "refQuoteLine0",
"record": {
"attributes": {
"type": "QuoteLineItem",
"method": "PATCH",
"id": "402xx000003KY5vJGH"
},
"Quantity": "5"
}
}
]
}
}

This is a sample request to define grouping of quote line items.


{
"pricingPref": "Force",
"catalogRatesPref" "skip",
"configurationPref": {
"configurationMethod": "Skip",
"configurationOptions": {
"validateProductCatalog": true,

852
Transaction Management Quote and Order Capture Business APIs

"validateAmendRenewCancel": true,
"executeConfigurationRules": true,
"addDefaultConfiguration": true
}
},
"contextDetails": {
"contextId": "e055bb18-d4e8-41c3-881e-0132b9561708"
},
"graph": {
"graphId": "groupQuoteLines",
"records": [
{
"referenceId": "refQuote",
"record": {
"attributes": {
"method": "PATCH",
"type": "Quote",
"id": "801xx000003GZ9bAAG"
}
}
},
{
"referenceId": "refQuoteLine0",
"record": {
"attributes": {
"type": "QuoteLineItem",
"method": "PATCH",
"id": "402xx000003KY5vJGH"
},
"QuoteLineGroupId": "@{refQuote.id}"
}
}
]
}
}

This is s a sample request for the initial grouping of the quote with all the quote lines assigned to the first group.
{
"pricingPref": "Force",
"catalogRatesPref" "skip",
"graph": {
"graphId": "groupQuote",
"records": [
{
"referenceId": "refQuote",
"record": {
"attributes": {
"type": "Quote",
"method": "PATCH",
"id": "0Q0xx0000004CAmCAM"
}
}
},
{

853
Transaction Management Quote and Order Capture Business APIs

"referenceId": "refQlg1",
"record": {
"attributes": {
"type": "QuoteLineGroup",
"method": "POST",
"action": "GroupAll"
},
"Name": "From PST API Group",
"QuoteId": "@{refQuote.id}"
}
}
]
}
}

This is a sample request to ungroup a quote but retain the quote lines.
{
"catalogRatesPref" "skip",
"pricingPref": "Force",
"graph": {
"graphId": "ungroupQuote",
"records": [
{
"referenceId": "refQuote",
"record": {
"attributes": {
"type": "Quote",
"method": "PATCH",
"id":"0Q0xx0000004C99CAE"
},
"Name": "Grouped Quote with PST API"
}
},
{
"referenceId": "refQlg1",
"record": {
"attributes": {
"type": "QuoteLineGroup",
"method": "DELETE",
"id": "402xx000003KY5vJGH",
"action": "Ungroup"
}
}
}
]
}
}

This is a sample request to create a new group.


{
"catalogRatesPref" "skip",
"pricingPref": "Force",
"graph": {

854
Transaction Management Quote and Order Capture Business APIs

"graphId": "createGroup",
"records": [
{
"referenceId": "refQuote",
"record": {
"attributes": {
"type": "Quote",
"method": "PATCH",
"id":"0Q0xx0000004C99CAE"
},
"Name": "Grouped Quote with PST API"
}
},
{
"referenceId": "refQlg1",
"record": {
"attributes": {
"type": "QuoteLineGroup",
"method": "POST"
},
"Name": "From PQ API Group",
"QuoteId": "@{refQuote.id}"
}
}
]
}
}

This example shows a sample request to delete a group.


{
"catalogRatesPref" "skip",
"pricingPref": "Force",
"graph": {
"graphId": "deleteGroup",
"records": [
{
"referenceId": "refQuote",
"record": {
"attributes": {
"type": "Quote",
"method": "PATCH",
"id":"0Q0xx0000004C99CAE"
},
"Name": "Grouped Quote with PST API"
}
},
{
"referenceId": "refQlg1",
"record": {
"attributes": {
"type": "QuoteLineGroup",
"method": "DELETE",
"id": "402xx000003KY5vJGH",
"action": "DeleteGroup"

855
Transaction Management Quote and Order Capture Business APIs

}
}
}
]
}
}

This is a sample request to group order items based on criteria.


{
"catalogRatesPref" "skip",
"pricingPref": "Force",
"graph": {
"graphId": "groupOrderItems",
"records": [
{
"referenceId": "refOrder",
"record": {
"attributes": {
"type": "Order",
"method": "PATCH",
"id": "0Q0xx0000004C99CAE"
}
}
},
{
"referenceId": "refOlg1",
"record": {
"attributes": {
"type": "OrderItemGroup",
"method": "POST",
"action": "GroupBy",
"criteria": {
"BillingFrequency2": null
}
},
"Name": "Billing Frequency: ",
"OrderId": "@{refOrder.id}"
}
},
{
"referenceId": "g1",
"record": {
"attributes": {
"type": "OrderItemGroup",
"method": "POST",
"action": "GroupBy",
"criteria": {
"BillingFrequency2": "Monthly"
}
},
"Name": "Billing Frequency: Monthly",
"OrderId": "@{refOrder.id}"
}
}

856
Transaction Management Quote and Order Capture Business APIs

]
}
}

This is a sample request to save changes to a ramp deal by using context ID. The context ID is returned by the Ramp Deal APIs. See
Create Ramp Deal (POST).
{
"pricingPref": "force",
"contextDetails": {
"contextId": "f1c9e3e1c335f7959a88de09d3a867cc2b95e08709b99de8e2edeb8f5039e8ed",
"scope": "Session"
},
"graph": {
"graphId": "updateQuote",
"records": [
{
"referenceId": "refQuote",
"record": {
"attributes": {
"type": "Quote",
"method": "PATCH",
"id": "0Q0xx0000004DQ4CAM"
}
}
}
]
}
}

Properties

Name Type Description Required or Available


Optional Version
catalogRates String Rate card entries defined in the catalog Optional 63.0
Pref that must be fetched for sales items with
usage-based pricing during the creation
of the sales transaction. Valid values are:
• Fetch—Retrieves the rate card
entries defined in the catalog for sales
items during the creation of the sales
transaction.
• Skip—Skips the retrieval of rate card
entries for sales items during the
creation of the sales transaction.
The default value is Skip.

This property is available when the


Usage-Based Selling feature is enabled.

857
Transaction Management Quote and Order Capture Business APIs

Name Type Description Required or Available


Optional Version
configuration Configurator Configuration preference during the quote Optional 63.0
Pref Preference Input process. These preferences ensure that
quotes are defined as per the requirement.

contextDetails Context Input Context details that are created for a sales Required if the 63.0
transaction. graph property
isn’t specified.

graph Object Graph Input The sObject graph of the sales transaction Required if the 63.0
to be ingested. You can perform create, contextDetails
update, or delete operations on objects property isn’t
from the Sales Transaction context specified.
definition by using this property.
Additionally, perform create, update, or
delete operations on custom objects and
fields in your extended context definition.

pricingPref String Pricing preference during the creation of Optional 63.0


a sales transaction. Valid values are:
• Force—Specifies to enforce pricing
during the creation of sales
transactions.
• Skip—Specifies to skip pricing
during the creation of sales
transactions.
• System—Specifies the system to
determine whether a pricing
calculation is required.
The default value is System.

Create Ramp Deal Input


Input representation of the request to create a ramp deal.
JSON example
{
"transactionId": "0Q0xx0000004C92CAE",
"transactionLineId": "0QLxx0000004C9VGAU",
"subscriptionTerm": 14,
"subscriptionTermUnit": "MONTHS",
"trialTerm": 45,
"trialTermUnit": "DAYS",
"segmentType": "YEARLY",
"executionSettings": {
"executePricing": true,
"executeConfigRules": false

858
Transaction Management Quote and Order Capture Business APIs

}
}

Properties

Name Type Description Required or Available


Optional Version
execution Execution Settings Settings to run the pricing or configuration Optional 62.0
Settings Input[] rules.

segmentType String Type of segment that the user wants to Required 62.0
create. Valid values are:
• FREE_TRIAL
• CUSTOM
• YEARLY

subscription Integer Subscription length of the term-defined Required 62.0


Term product.

subscription String Unit of time for the subscription length. Required 62.0
TermUnit Valid value is:
• MONTHS

transactionId String ID of the sales transaction that’s Required 62.0


configured, such as quote or order.

transaction String Quote line item ID or order item ID that Required 62.0
LineId the price ramp is created for.

trialTerm Integer Length of the trial period, if any. Optional 62.0

trialTermUnit String Unit of time for the trial period. Valid value Optional. Required 62.0
is: if trialTerm
property is specified.
• DAYS

Delete Ramp Deal Input


Input representation of the request to delete a ramp deal.
JSON example
{
"rampDealIds": [
"0Q0xx0000004CDxCAM",
"0QLxx0000004CSOGA2"
]
}

859
Transaction Management Quote and Order Capture Business APIs

Properties

Name Type Description Required or Available


Optional Version
rampDealIds String[] Ramp identifier on the quote line item or Required 62.0
order item.

Update Ramp Deal Input


Input representation of the request to update a ramp deal.
JSON example
{
"executionSettings": {
"executePricing": true,
"executeConfigRules": false
},
"addedNodes": [
{
"contextNodePath": [
"4f23961a5c98806f89305e064c67b397e93f1bb8a2a7a3a80db506f1d4110ee9", // Context
ID
"0Q0xx0000004CPACA2", //Quote or Order ID
"RandomUUID" // random UUID for Quote Line Item or Order Item ID
],
"contextNode": {
"Discount": 10,
"Quantity": 5,
"ItemSegmentName": "Year 5",
"StartDate":"2024-09-07T00:00:00.000Z",
"EndDate":"2024-09-07T00:00:00.000Z"
}
}
],
"updatedNodes": [
{
"contextNodePath": [
"4f23961a5c98806f89305e064c67b397e93f1bb8a2a7a3a80db506f1d4110ee9", // Context
ID
"0Q0xx0000004CPACA2", //Quote or Order ID
"0QLxx0000004CfIGAU" // Quote Line ID or Order Line ID to update
],
"contextNode": {
"Discount": 10,
"Quantity": 5
}
}
],
"deletedNodes": [
{
"contextNodePath": [
"4f23961a5c98806f89305e064c67b397e93f1bb8a2a7a3a80db506f1d4110ee9",

860
Transaction Management Quote and Order Capture Business APIs

"0Q0xx0000004CPACA2",
"0QLxx0000004CfIGAU" // Quote Line Item ID to delete
]
}
]
}

Properties

Name Type Description Required or Available


Optional Version
addedNodes Context Node Details of the nodes to be added. Required 62.0
Input[]

deletedNodes Context Node Details of the nodes to be deleted. Required 62.0


Input[]

execution Execution Settings Settings to run the pricing or configuration Optional 62.0
Settings Input[] rules.

updatedNodes Context Node Details of the nodes to be updated. Required 62.0


Input[]

Response Bodies
Learn more about the available response bodies.

Instant Pricing
Output representation containing the results of the instant pricing request.
Object Reference
Output representation of an sObject with a reference ID along with any potential error.
Place Order Error Response
Output representation of the error response for the place order request.
Place Order Response
Output representation of the request to create or update an order.
Place Quote Error Response
Output representation of the error responses of a place quote request.
Place Quote
Output representation of the request to create or update a quote.
Place Sales Transaction
Output representation of the request to create a sales transaction.
Place Sales Transaction Context
Output representation of the context details that are associated with a sales transaction.
Sales Transaction Error Response
Output representation of the error details associated with the Place Sales Transaction API.

861
Transaction Management Quote and Order Capture Business APIs

Ramp Deal Service Error Response


Output representation of the details of errors encountered during the processing of the API request.
Ramp Deal Service
Output representation of the details of a created, updated, or deleted ramp deal.

Instant Pricing
Output representation containing the results of the instant pricing request.
Sample Response
{
"correlationid": "123",
"contextid": "abcl23",
"records": [
{
"referenceid": "refQuote",
"record": {
"attributes": {
"type": "Quote",
"method": "POST"
},
"quantity": "2"
},
"error": {
"errorCode": "INVALID_API_INPUT",
"message": "Reference Id format is irrelevant."
}
}
],
"success": true
}

Property Name Type Description Filter Group and Available Version


Version
contextId String Context ID returned by the context service. Small, 59.0 59.0

correlationId String Client-generated ID for tracking multiple Small, 59.0 59.0


related API calls.

records Object Reference[] List of records related to pricing results. Small, 59.0 59.0

success Boolean Indicates whether the fetching of instant Small, 59.0 59.0
pricing is successful (true) or not
(false).

Object Reference
Output representation of an sObject with a reference ID along with any potential error.

862
Transaction Management Quote and Order Capture Business APIs

Sample Response
{
"referenceid": "refQuote",
"record": {
"attributes": {
"type": "Quote",
"method": "POST"
},
"quantity": "2"
},
"error": {
"errorCode": "INVALID_API_INPUT",
"message": "Reference Id format is irrelevant."
}
}

Property Name Type Description Filter Group and Available Version


Version
referenceId String ID that identifies the specific Salesforce Small, 59.0 59.0
object that’s returned in the API response.

record Map<String, The sObject record data represented as a Small, 59.0 59.0
Object> map of attribute names to their values.

error hpt/ds:evoelpesaoslf.creo.m/doceas/n.ltu-chs.aetm
rp.ieat/chaetrp/coinnec_tersponses_eor_rersponhsem
.t ][ Detailed information about any error Small, 59.0 59.0
associated with the sObject in the response.

Place Order Error Response


Output representation of the error response for the place order request.

Property Name Type Description Filter Group and Available Version


Version
errorCode String Code representing the type of error Small, 60.0 60.0
encountered during the place order create
request.

message String Message stating the reason for the error, if Small, 60.0 60.0
any.

referenceId String Reference ID associated with the specific Small, 60.0 60.0
error instance for tracking and reference
purposes.

Place Order Response


Output representation of the request to create or update an order.

863
Transaction Management Quote and Order Capture Business APIs

JSON example
{
"requestId": "16PRM0000004DBq",
"orderId": "801S70000001VKgIAM",
"success": true,
"errors": [],
"statusURL": "/services/data/vXX.X/sobjects/AsyncOperationTracker/16PRM0000004DBq"
}

Property Name Type Description Filter Group and Available Version


Version
errors Place OrderError List of errors encountered during the Small, 60.0 60.0
Response on page synchronous processing.
863[]

orderId String ID of the order created after a successful Small, 60.0 60.0
request.

requestId String Request ID of the process to query Small, 60.0 60.0


asynchronous status of the place order API.

statusURL String Asynchronous status URL of the request, if Small, 60.0 60.0
available.

success Boolean Indicates whether the synchronous part of Small, 60.0 60.0
the processing is successful (true) or not
(false).

Place Quote Error Response


Output representation of the error responses of a place quote request.
JSON Example
{
"errorCode": "INVALID_API_INPUT",
"message": "Include record type and method in the request and try again.",
"referenceId": "refQuoteItem2"
}

Property Name Type Description Filter Group and Available Version


Version
errorCode String Error code representing the type of error Small, 60.0 60.0
encountered in the create place quote
request.

message String Message stating the reason for the error, if Small, 60.0 60.0
any.

864
Transaction Management Quote and Order Capture Business APIs

Property Name Type Description Filter Group and Available Version


Version
referenceId String Reference ID associated with the specific Small, 60.0 60.0
error instance for tracking and reference
purposes.

Place Quote
Output representation of the request to create or update a quote.
JSON Example
This example shows a sample response of the place quote request.
{
"quoteId": "0Q0xx0000004E2mCAE",
"requestIdentifier": "95Txx0000004Cx2",
"responseError": [],
"statusURL": "/services/data/v60.0/sobjects/RevenueAsyncOperation/95Txx0000004Cx2EAE",

"success": true
}

Property Name Type Description Filter Group and Available Version


Version
quoteId String ID of the quote created after a successful Small, 60.0 60.0
request.

request String Unique request identifier that can be used Big, 60.0 60.0
Identifier to poll the async request.

responseError Place Quote Error List of errors encountered during the Small, 60.0 60.0
Response [] synchronous processing.

statusURL String Asynchronous status URL to track the Big, 60.0 60.0
operation, if available.

success Boolean Indicates whether the synchronous part of Small, 60.0 60.0
the processing is successful (true) or not
(false).

Place Sales Transaction


Output representation of the request to create a sales transaction.
JSON example
{
"contextDetails": {
"contextId": "e055bb18-d4e8-41c3-881e-0132b9561708",
"isBuiltInTransaction": true
},
"errorResponse": {

865
Transaction Management Quote and Order Capture Business APIs

"errorCode": "INVALID_API_INPUT",
"message": "Include record type and method in the request and try again.",
"referenceId": "refQuoteItem2"
},
"isSuccess": true,
"salesTransactionId": "0Q0xx0000004CNYCA2",
"statusUrl": null,
"trackerId": null
}

Property Name Type Description Filter Group and Available Version


Version
contextDetails Sales Transaction Details of the context that’s created for the Small, 63.0 63.0
Context sales transaction.

errorResponse Sales Transaction Details of the error if the operation fails. Small, 63.0 63.0
Error Response[]

isSuccess Boolean Indicates if the operation is successful Small, 63.0 63.0


(true) or not (false).

salesTransactionId String ID of the sales transaction, such as a quote Small, 63.0 63.0
or an order.

statusUrl String URL to check the status of the operation. Small, 63.0 63.0

trackerId String Unique identifier assigned to a specific Small, 63.0 63.0


operation or request that's used for tracking
and referencing the operation.

Place Sales Transaction Context


Output representation of the context details that are associated with a sales transaction.
JSON example
{
"contextDetails": {
"contextId": "e055bb18-d4e8-41c3-881e-0132b9561708",
"isBuiltInTransaction": true
}
}

Property Name Type Description Filter Group and Available Version


Version
contextId String ID of the context that’s created for a session Small, 63.0 63.0
of the sales transaction.

866
Transaction Management Quote and Order Capture Business APIs

Property Name Type Description Filter Group and Available Version


Version
isBuiltIn Boolean Indicates whether a new context ID is Small, 63.0 63.0
Transaction created for the sales transaction (true) or
not (false).
If the contextId property isn’t specified,
the Place Sales Transaction API generates it.

Sales Transaction Error Response


Output representation of the error details associated with the Place Sales Transaction API.
JSON example
{
"errorResponse": {
"errorCode": "INVALID_API_INPUT",
"message": "Include record type and method in the request and try again.",
"referenceId": "refQuoteItem2"
}
}

Property Name Type Description Filter Group and Available Version


Version
errorCode String Code for the resultant error. Small, 63.0 63.0

message String Error message for the resultant error. Small, 63.0 63.0

referenceId String Unique ID that’s associated with the specific Small, 63.0 63.0
error for tracking and reference purposes.

Ramp Deal Service Error Response


Output representation of the details of errors encountered during the processing of the API request.

Property Name Type Description Filter Group and Available Version


Version
errorCode String Error code from the API request. For Small, 62.0 62.0
example, INVALID_INPUT_ERROR.

message String Error message from the API request. Small, 62.0 62.0

Ramp Deal Service


Output representation of the details of a created, updated, or deleted ramp deal.

867
Transaction Management Quote and Order Capture Business APIs

JSON Example
This example shows the sample response for the create, update, or view ramp deal requests.
{
"correlationId": "0QLDU0000002t0Z4AQ",
"errors": [],
"salesTransactionContext": {
"SalesTransaction": [
{
"LegalEntity": null,
"Account": null,
"HeaderDistributionType": null,
"BillingCity": null,
"AccountBusinessType": null,
"HeaderDiscountType": null,
"businessObjectType": "Quote",
"QuoteAccount": null,
"EmployeeCount": null,
"SalesTransactionName": "WarrantyPriceRampAR",
"StartDate": null,
"HeaderDiscountValue": null,
"SalesTransactionType": null,
"Pricebook": "01sDU000000JGf4YAG",
"Opportunity": null,
"ShippingCountry": null,
"ShippingCity": null,
"BillingPostalCode": null,
"id": "0Q0DU0000002f3d0AA",
"BillToContact": null,
"CalculationStatus": "CompletedWithTax",
"Status": "Draft",
"LastPricedDate": null,
"Subtotal": 108.47145205479453,
"OriginalActionType": null,
"TotalAmount": 99.98,
"CurrencyIsoCode": null,
"ShippingStreet": null,
"SalesTransactionItem": [
{
"LegalEntity": null,
"ProductName": "Warranty",
"businessObjectType": "QuoteLineItem",
"Product": "01tDU000000EsWSYA0",
"ItemIsPrimarySegment": true,
"ListPrice": 49.99,
"ValidationResult": null,
"StartDate": "2024-08-23T00:00:00.000Z",
"ContractVolumePasId": null,
"BillingTreatment": null,
"PeriodBoundaryStartMonth": null,
"SalesTransactionSourceAsset": null,
"id": "0QLDU0000002t0Z4AQ",
"PartnerDiscountPercent": null,
"PriceWaterFall": "0QLDU0000002t0Z4AQ:548201414593252",

868
Transaction Management Quote and Order Capture Business APIs

"ItemProductRecipient": null,
"BillingFrequency": "Annual",
"ProductCode": "W001",
"DerivedPricingAttribute": null,
"TaxTreatment": "1ttDU0000001oGKYAY",
"Subtotal": 8.491452054794523,
"ItemRampIdentifier": "RDI5b5ce52b2db4484",
"ItemSegmentName": "Trial",
"PricebookEntry": "01uDU000000f4LSYAY",
"DiscountAmount": null,
"PricingTermCount": 0.0849315068493151,
"NetUnitPrice": 0,
"ItemEffectiveGrantDate": null,
"ProductCategory": null,
"SalesTransactionAction": null,
"SalesTransactionActionType": null,
"SalesTransactionItemGroup": null,
"PeriodBoundaryDay": null,
"LineItemDistributionType": null,
"ProrationPolicy": "0muDU00000029ryYAA",
"ContractDiscountType": null,
"TransactionType": null,
"ParentReference": null,
"Discount": 100,
"ProductSellingModel": "0jPDU00000029zb2AA",
"PricingTermUnit": "Annual",
"PricingSource": null,
"StockKeepingUnit": null,
"PartnerUnitPrice": null,
"ItemTotalAdjustmentAmount": -8.491452054794523,
"SalesTransactionItemSource": "0QLDU0000002t0Z4AQ",
"ContractAttributePasId": null,
"SubscriptionTerm": 1,
"SellingModelType": "TermDefined",
"EndQuantity": 2,
"NetTotalPrice": 0,
"TotalLineAmount": 8.491452054794523,
"ItemSegmentType": "FreeTrial",
"ProductBasedOn": null,
"Deleted": null,
"BillingReference": null,
"ArePartialPeriodsAllowed": true,
"ItemRecordedPrice": null,
"CustomProductName": "Warranty",
"ItemSegmentIdentifier": "SEG4380006a1c2b416",
"SalesTransactionItemParent": "0Q0DU0000002f3d0AA",
"Quantity": 2,
"PeriodBoundary": "Anniversary",
"ContractDiscountValue": null,
"LineItemDiscountValue": null,
"ContractId": null,
"EndDate": "2024-09-22T00:00:00.000Z",
"ItemGroupSummarySubtotal": null,
"IsContracted": null,

869
Transaction Management Quote and Order Capture Business APIs

"UnitPrice": 49.99,
"StartQuantity": 0,
"ContractPrice": null,
"TotalPrice": 0,
"ItemPath": null,
"LineItemDiscountType": null
},
{
"LegalEntity": null,
"ProductName": "Warranty",
"businessObjectType": "QuoteLineItem",
"Product": "01tDU000000EsWSYA0",
"ItemIsPrimarySegment": false,
"ListPrice": 49.99,
"ValidationResult": null,
"StartDate": "2024-09-23T00:00:00.000Z",
"ContractVolumePasId": null,
"BillingTreatment": null,
"PeriodBoundaryStartMonth": null,
"SalesTransactionSourceAsset": null,
"id": "0QLDU0000003CZ94AM",
"PartnerDiscountPercent": null,
"PriceWaterFall": "0QLDU0000003CZ94AM:548201414593252",
"ItemProductRecipient": null,
"BillingFrequency": "Annual",
"ProductCode": "W001",
"DerivedPricingAttribute": null,
"TaxTreatment": "1ttDU0000001oGKYAY",
"Subtotal": 99.98,
"ItemRampIdentifier": "RDI5b5ce52b2db4484",
"ItemSegmentName": "Year-1",
"PricebookEntry": "01uDU000000f4LSYAY",
"DiscountAmount": null,
"PricingTermCount": 1,
"NetUnitPrice": 49.99,
"ItemEffectiveGrantDate": null,
"ProductCategory": null,
"SalesTransactionAction": null,
"SalesTransactionActionType": null,
"SalesTransactionItemGroup": null,
"PeriodBoundaryDay": null,
"LineItemDistributionType": null,
"ProrationPolicy": "0muDU00000029ryYAA",
"ContractDiscountType": null,
"TransactionType": null,
"ParentReference": null,
"Discount": null,
"ProductSellingModel": "0jPDU00000029zb2AA",
"PricingTermUnit": "Annual",
"PricingSource": null,
"StockKeepingUnit": null,
"PartnerUnitPrice": null,
"ItemTotalAdjustmentAmount": 0,
"SalesTransactionItemSource": "0QLDU0000003CZ94AM",

870
Transaction Management Quote and Order Capture Business APIs

"ContractAttributePasId": null,
"SubscriptionTerm": 1,
"SellingModelType": "TermDefined",
"EndQuantity": 2,
"NetTotalPrice": 99.98,
"TotalLineAmount": 99.98,
"ItemSegmentType": "Yearly",
"ProductBasedOn": null,
"Deleted": null,
"BillingReference": null,
"ArePartialPeriodsAllowed": true,
"ItemRecordedPrice": null,
"CustomProductName": "Warranty",
"ItemSegmentIdentifier": "SEG73ad7378e1ed4c5",
"SalesTransactionItemParent": "0Q0DU0000002f3d0AA",
"Quantity": 2,
"PeriodBoundary": "Anniversary",
"ContractDiscountValue": null,
"LineItemDiscountValue": null,
"ContractId": null,
"EndDate": "2025-08-22T00:00:00.000Z",
"ItemGroupSummarySubtotal": null,
"IsContracted": null,
"UnitPrice": 49.99,
"StartQuantity": 0,
"ContractPrice": null,
"TotalPrice": 99.98,
"ItemPath": null,
"LineItemDiscountType": null
}
],
"AppUsageAssignment": [
{
"businessObjectType": "AppUsageAssignment",
"ParentReference": null,
"Record": "0Q0DU0000002f3d0AA",
"id": "0j8DU0000002VKiYAM",
"AppUsageType": "RevenueLifecycleManagement"
}
],
"BillingCountry": null,
"BillingStreet": null,
"ShippingPostalCode": null,
"SalesTransactionSource": "0Q0DU0000002f3d0AA",
"PrimaryIndustry": null,
"ShippingState": null,
"HeaderDistributionLogic": null,
"Contract": null,
"BillingState": null,
"AnnualRevenue": null,
"EffectiveDate": null
}
]
},

871
Transaction Management Quote and Order Capture Apex Reference

"success": true,
"transactionContextId":
"d3fd83b007418ce4980340313b40fd45665b194973486ebac3674c2b8002336f"
}

Property Name Type Description Filter Group and Available Version


Version
correlationId String Resource ID to correlate the API request with Small, 62.0 62.0
the response.

errors Ramp Deal Service List of errors encountered during the Small, 62.0 62.0
Error Response[] processing of the API request.

sales Map<String, Context object for the sales transaction with Small, 62.0 62.0
Transaction Object> updated segment details.
Context

success Boolean Indicates whether the API request is Small, 62.0 62.0
successful (true) or not (false).

transaction String ID of the sales transaction context record Small, 62.0 62.0
ContextId instance.

Quote and Order Capture Apex Reference


Use built-in Apex classes and interfaces grouped by namespace.

CommerceOrders Namespace
The CommerceOrders namespace provides classes and methods to place orders with integrated pricing, configuration, and
validation.
CommerceTax Namespace
Manage the communication between Salesforce and an external tax engine.
PlaceQuote Namespace
The PlaceQuote namespace provides classes and methods to create or update quotes with pricing preferences and configuration
options.
RevSalesTrxn Namespace
Create a sales transaction, such as a quote or an order, with integrated pricing and configuration. Additionally, update an order or a
quote, and insert and delete order or quote line items to calculate the estimated tax.

CommerceOrders Namespace
The CommerceOrders namespace provides classes and methods to place orders with integrated pricing, configuration, and validation.
The CommerceOrders namespace includes these classes.

872
Transaction Management Quote and Order Capture Apex Reference

CatalogRatesPreferenceEnum Enum
Specifies the rate card entries defined in the catalog that must be fetched for order items, with usage-based selling during the order
creation process.
ConfigurationInputEnum Enum
Specifies the configuration input for the request to place an order.
ConfigurationOptionsInput Class
Contains methods and properties to set the configuration options for the input to the product configurator.
GraphRequest Class
Contains constructors and properties to set the graph ID and a list of records to be ingested. The list of records is specified in a
key-value map format that contains the field values of an order.
PlaceOrderExecutor Class
Contains methods to place an order with details of the graph request, pricing preferences, and configuration options.
PlaceOrderResult Class
Contains properties to hold the response to the place order request.
PricingPreferenceEnum Enum
Specifies the pricing preference during the create order process.
RecordResource Class
Contains constructors and properties to create a record object from field values of an order.
RecordWithReferenceRequest Class
Contains constructors and properties to associate a record object with a reference identifier.

CatalogRatesPreferenceEnum Enum
Specifies the rate card entries defined in the catalog that must be fetched for order items, with usage-based selling during the order
creation process.

Usage
This enum is available when the Usage-Based Selling feature is enabled.

Enum Values
The commerceorders.CatalogRatesPreferenceEnum enum includes these values.

Value Description
Fetch Retrieves the rate card entries defined in the catalog for order items during the order
creation process.

Skip Skips the retrieval of rate card entries for order items during the order creation
process. The default value is Skip.

ConfigurationInputEnum Enum
Specifies the configuration input for the request to place an order.

873
Transaction Management Quote and Order Capture Apex Reference

Usage
Use these enum values for the configurationInputEnum property in the PlaceOrderExecutor Class

Enum Values
The commerceorders.ConfigurationInputEnum enum has these values.

Value Description
RunAndAllowErrors Run the configuration and proceed with order ingestion upon encountering any
configuration errors.

RunAndBlockErrors Run the configuration and block order ingestion upon encountering any
configuration errors.

Skip Skip the configuration execution.

ConfigurationOptionsInput Class
Contains methods and properties to set the configuration options for the input to the product configurator.

Namespace
CommerceOrders

Usage
This class holds the required details of the product configuration input. Set the class properties to enable default configuration, execution
of configuration rules, and validation of the product catalog. Use these class properties as an input to the PlaceOrderExecutor Class
method.

Example
CommerceOrders.ConfigurationOptionsInput configurationInput = new
CommerceOrders.ConfigurationOptionsInput();
configurationInput.validateProductCatalog = true;
configurationInput.validateAmendRenewCancel = true;
configurationInput.executeConfigurationRules = true;
configurationInput.addDefaultConfiguration = true;

CommerceOrders.GraphRequest graph = new CommerceOrders.GraphRequest('testGraph',


recordNodes);
CommerceOrders.PlaceOrderResult result = CommerceOrders.PlaceOrderExecutor.execute(graph,
pricingPreference, configurationPreference, configurationInput);

ConfigurationOptionsInput Properties
Set the ConfigurationOptionsInput class properties to add default configuration, execute configuration rules, and validate
the product catalog.
ConfigurationOptionsInput Methods
Learn more about the methods available with the ConfigurationOptionsInput class.

874
Transaction Management Quote and Order Capture Apex Reference

ConfigurationOptionsInput Properties
Set the ConfigurationOptionsInput class properties to add default configuration, execute configuration rules, and validate
the product catalog.
The ConfigurationOptionsInput class includes these properties.

addDefaultConfiguration
Sets the default product configuration, such as bundle and product attributes, for an order request.
executeConfigurationRules
Sets the requirement for an order to adhere to the configuration rules.
validateAmendRenewCancel
Sets the requirement to run validations related to amend, renew, or cancel processes.
validateProductCatalog
Sets the requirement to validate an order against the product catalog.

addDefaultConfiguration
Sets the default product configuration, such as bundle and product attributes, for an order request.

Signature
public Boolean addDefaultConfiguration {get; set;}

Property Value
Type: Boolean
Indicates whether to automatically add default configuration to the order (true) or not (false).

executeConfigurationRules
Sets the requirement for an order to adhere to the configuration rules.

Signature
public Boolean executeConfigurationRules {get; set;}

Property Value
Type: Boolean
Indicates whether the order must adhere to configuration rules during processing (true) or bypass them (false).

validateAmendRenewCancel
Sets the requirement to run validations related to amend, renew, or cancel processes.

Signature
public Boolean validateAmendRenewCancel {get; set;}

875
Transaction Management Quote and Order Capture Apex Reference

Property Value
Type: Boolean
Indicates whether to run validations related to amend, renew, or cancel processes (true) or not (false).

validateProductCatalog
Sets the requirement to validate an order against the product catalog.

Signature
public Boolean validateProductCatalog {get; set;}

Property Value
Type: Boolean
Indicates whether the order must be validated against the product catalog (true) or not (false).

ConfigurationOptionsInput Methods
Learn more about the methods available with the ConfigurationOptionsInput class.
The ConfigurationOptionsInput class includes these methods.

equals(obj)
Determines the equality of external objects in a list. This method is dynamic and is based on the equals() method in Java.
hashCode()
Determines the uniqueness of the external object records in a list.
toString()
Converts a value to a string.

equals(obj)
Determines the equality of external objects in a list. This method is dynamic and is based on the equals() method in Java.

Signature
public Boolean equals(Object obj)

Parameters
obj
Type: Object
Reference object that’s used to compare with the class object.

Return Value
Type: Boolean
Indicates if the class object is same as the reference object (true) or not (false).

876
Transaction Management Quote and Order Capture Apex Reference

hashCode()
Determines the uniqueness of the external object records in a list.

Signature
public Integer hashCode()

Return Value
Type: Integer
Integer hash code that represents the value of the object. Equal objects as per the equals() method must return the same hash
code.

toString()
Converts a value to a string.

Signature
public String toString()

Return Value
Type: String

GraphRequest Class
Contains constructors and properties to set the graph ID and a list of records to be ingested. The list of records is specified in a key-value
map format that contains the field values of an order.

Namespace
CommerceOrders

Example
Create the list of records to be ingested by using these steps.
• Create the list of records by constructing the Map<String, Object> map of field values of an order.
List<CommerceOrders.RecordWithReferenceRequest> recordNodes = new
List<CommerceOrders.RecordWithReferenceRequest>();

// Prepare for the Order


Map<String,Object> orderFieldValues = new Map<String,Object>();
orderFieldValues.put('Pricebook2Id', '01sDU0000000lEIYAY');
orderFieldValues.put('AccountId', '001DU000001nIPKYA2');
orderFieldValues.put('EffectiveDate', '2024-01-01');

877
Transaction Management Quote and Order Capture Apex Reference

• To create a record object from the field values, create an instance of the RecordResource class.

CommerceOrders.RecordResource orderRecord = new


CommerceOrders.RecordResource(Order.getSobjectType(), 'POST');
orderRecord.fieldValues = orderFieldValues;

• To associate the Record object with a reference identifier, create an instance of the RecordWithReferenceRequest class.

CommerceOrders.RecordWithReferenceRequest orderRecordNode = new


CommerceOrders.RecordWithReferenceRequest('refOrder', orderRecord);
recordNodes.add(orderRecordNode);

// Prepare for the App Usage Assignment


Map<String,Object> auaFieldValues = new Map<String,Object>();
auaFieldValues.put('AppUsageType', 'RevenueLifecycleManagement');
auaFieldValues.put('RecordId', '@{refOrder.id}');

CommerceOrders.RecordResource auaRecord = new


CommerceOrders.RecordResource(AppUsageAssignment.getSobjectType(), 'POST');
auaRecord.fieldValues = auaFieldValues;

CommerceOrders.RecordWithReferenceRequest auaRecordNode = new


CommerceOrders.RecordWithReferenceRequest('refAppTag', auaRecord);
recordNodes.add(auaRecordNode);

// Prepare for the Order Item


Map<String,Object> oiFieldValues = new Map<String,Object>();
oiFieldValues.put('OrderId', '@{refOrder.id}');
oiFieldValues.put('PricebookEntryId', '01uDU000000YPkIYAW');
oiFieldValues.put('Product2Id', '01tDU000000ESCSYA4');
oiFieldValues.put('Quantity', 2);
oiFieldValues.put('UnitPrice', 800);

CommerceOrders.RecordResource oiRecord = new


CommerceOrders.RecordResource(OrderItem.getSobjectType(), 'POST');
oiRecord.fieldValues = oiFieldValues;

CommerceOrders.RecordWithReferenceRequest oiRecordNode = new


CommerceOrders.RecordWithReferenceRequest('refOrderItem', oiRecord);
recordNodes.add(oiRecordNode);

• Invoke the Place Order Apex API.

Note: The CatalogRatesPreferenceEnum enum is available when the Usage-Based Selling feature is enabled.

// Invoke the Place Order Apex API


CommerceOrders.PricingPreferenceEnum pricingPreference =
CommerceOrders.PricingPreferenceEnum.System;
CommerceOrders.CatalogRatesPreferenceEnum catalogRatesPreference =
CommerceOrders.CatalogRatesPreferenceEnum.Fetch;
CommerceOrders.ConfigurationInputEnum configurationPreference =

878
Transaction Management Quote and Order Capture Apex Reference

CommerceOrders.ConfigurationInputEnum.RunAndAllowErrors;
CommerceOrders.ConfigurationOptionsInput configurationInput = new
CommerceOrders.ConfigurationOptionsInput();
configurationInput.validateProductCatalog = true;
configurationInput.validateAmendRenewCancel = true;
configurationInput.executeConfigurationRules = true;
configurationInput.addDefaultConfiguration = true;

• To contain all record objects, create an instance of the GraphRequest class.

CommerceOrders.GraphRequest graph = new CommerceOrders.GraphRequest('testGraph',


recordNodes);
CommerceOrders.PlaceOrderResult result = CommerceOrders.PlaceOrderExecutor.execute(graph,
pricingPreference, catalogRatesPreference, configurationPreference, configurationInput);

// Process any error, if exists


if (!result.success) {
List<ConnectApi.PlaceOrderErrorResponse> errors = result.responseError;
for (ConnectApi.PlaceOrderErrorResponse error : errors) {
System.debug(error.errorCode + ': ' + error.message);
}
}

GraphRequest Constructors
Learn more about the available constructors with the GraphRequest class.
GraphRequest Properties
Learn more about the available properties with the GraphRequest class.

GraphRequest Constructors
Learn more about the available constructors with the GraphRequest class.
The GraphRequest class includes these constructors.

GraphRequest(graphId, records)
Creates an instance of the GraphRequest class to assign the graph ID and a list of records to be ingested.

GraphRequest(graphId, records)
Creates an instance of the GraphRequest class to assign the graph ID and a list of records to be ingested.

Signature
public GraphRequest(String graphId, List<commerceorders.RecordWithReferenceRequest>
records)

Parameters
graphId
Type: String

879
Transaction Management Quote and Order Capture Apex Reference

ID of the graph.
records
Type: List<commerceorders.RecordWithReferenceRequest>
List of records to be ingested.

GraphRequest Properties
Learn more about the available properties with the GraphRequest class.
The GraphRequest class includes these properties.

graphId
Set the graphId property to assign the ID value of the graph.

graphId
Set the graphId property to assign the ID value of the graph.

Signature
public String graphId {get; set;}

Property Value
Type: String

PlaceOrderExecutor Class
Contains methods to place an order with details of the graph request, pricing preferences, and configuration options.

Namespace
CommerceOrders

Example
CommerceOrders.PlaceOrderResult resp =
CommerceOrders.PlaceOrderExecutor.execute(graph,internalEnum,cEnum,cInput,catalogRatesPreference);

PlaceOrderExecutor Methods
Learn more about the methods available with the PlaceOrderExecutor class.
PlaceOrderExecutor Example Implementation
Place orders with integrated pricing, configuration, and validation, and manage them throughout their entire lifecycle. To place an
order from Apex, refer to the example implementation of the PlaceOrderExecutor class.

PlaceOrderExecutor Methods
Learn more about the methods available with the PlaceOrderExecutor class.

880
Transaction Management Quote and Order Capture Apex Reference

The PlaceOrderExecutor class includes these methods.

execute(graphRequest, pricingPreferenceEnum, configurationInputEnum, configurationOptionsInput)


Use the method in the PlaceOrderExecutor class to execute the Place Order Apex API request by assigning the properties
for graph request, pricing reference, and configuration options.
execute(graphRequest, pricingPreferenceEnum, catalogRatesPreference, configurationInputEnum, configurationOptionsInput)
Use the method in the PlaceOrderExecutor class to execute the Place Order Apex API request by assigning the properties
for graph request, pricing reference, and configuration options. This method also includes the property to define fetching of rate
card entries.
execute(graphRequest)
Use the method in the PlaceOrderExecutor class to execute the Place Order Apex API request by assigning the properties
for graph request.

execute(graphRequest, pricingPreferenceEnum, configurationInputEnum,


configurationOptionsInput)
Use the method in the PlaceOrderExecutor class to execute the Place Order Apex API request by assigning the properties for
graph request, pricing reference, and configuration options.

Signature
public static commerceorders.PlaceOrderResult execute(commerceorders.GraphRequest
graphRequest, commerceorders.PricingPreferenceEnum pricingPreferenceEnum,
commerceorders.ConfigurationInputEnum configurationInputEnum,
commerceorders.ConfigurationOptionsInput configurationOptionsInput)

Parameters
graphRequest
Type: commerceorders.GraphRequest
The sObject graph values of the order payload to be ingested.
pricingPreferenceEnum
Type: commerceorders.PricingPreferenceEnum
Pricing preference during the order process.
configurationInputEnum
Type: commerceorders.ConfigurationInputEnum
Configuration input for the place order process.
configurationOptionsInput
Type: commerceorders.ConfigurationOptionsInput on page 874
Configuration options during the ingestion process.

Return Value
Type: commerceorders.PlaceOrderResult

881
Transaction Management Quote and Order Capture Apex Reference

execute(graphRequest, pricingPreferenceEnum, catalogRatesPreference,


configurationInputEnum, configurationOptionsInput)
Use the method in the PlaceOrderExecutor class to execute the Place Order Apex API request by assigning the properties for
graph request, pricing reference, and configuration options. This method also includes the property to define fetching of rate card entries.

Signature
public static commerceorders.PlaceOrderResult execute(commerceorders.GraphRequest
graphRequest, commerceorders.PricingPreferenceEnum pricingPreferenceEnum,
commerceorders.CatalogRatesPreferenceEnum catalogRatesPreferenceEnum,
commerceorders.ConfigurationInputEnum configurationInputEnum,
commerceorders.ConfigurationOptionsInput configurationOptionsInput)

Parameters
graphRequest
Type: commerceorders.GraphRequest
The sObject graph values of the order payload to be ingested.
pricingPreferenceEnum
Type: commerceorders.PricingPreferenceEnum
Pricing preference during the order process.
catalogRatesPreference
Type: commerceorders.CatalogRatesPreferenceEnum
The rate card entries defined in the catalog that must be fetched for order items, with usage-based pricing during the order creation
process. The CatalogRatesPreferenceEnum enum is available when the Usage-Based Selling feature is enabled.
configurationInputEnum
Type: commerceorders.ConfigurationInputEnum
Configuration input for the place order process.
configurationOptionsInput
Type: commerceorders.ConfigurationOptionsInput on page 874
Configuration options during the ingestion process.

Return Value
Type: commerceorders.PlaceOrderResult

execute(graphRequest)
Use the method in the PlaceOrderExecutor class to execute the Place Order Apex API request by assigning the properties for
graph request.

Signature
public static commerceorders.PlaceOrderResult execute(commerceorders.GraphRequest
graphRequest)

882
Transaction Management Quote and Order Capture Apex Reference

Parameters
graphRequest
Type: commerceorders.GraphRequest
The sObject graph values of the order payload to be ingested.

Return Value
Type: commerceorders.PlaceOrderResult

PlaceOrderExecutor Example Implementation


Place orders with integrated pricing, configuration, and validation, and manage them throughout their entire lifecycle. To place an order
from Apex, refer to the example implementation of the PlaceOrderExecutor class.

Namespace
commerceorders

Usage
Customize this example to suit your requirements. Create the list of records to be ingested by using these steps. Replace the respective
IDs with the values that are present in your org. For example, replace the value of ${Pricebook2Id} field with the price book ID
that’s present in the org.

Example:
• Create the list of records by constructing the Map<String, Object> map of field values of an order.
List<CommerceOrders.RecordWithReferenceRequest> recordNodes = new
List<CommerceOrders.RecordWithReferenceRequest>();

// Prepare for the Order


Map<String,Object> orderFieldValues = new Map<String,Object>();
orderFieldValues.put('Pricebook2Id', '01sDU0000000lEIYAY');
orderFieldValues.put('AccountId', '001DU000001nIPKYA2');
orderFieldValues.put('EffectiveDate', '2024-01-01');

• To create a record object from the field values, create an instance of the RecordResource class.

CommerceOrders.RecordResource orderRecord = new


CommerceOrders.RecordResource(Order.getSobjectType(), 'POST');
orderRecord.fieldValues = orderFieldValues;

• To associate the Record object with a reference identifier, create an instance of the RecordWithReferenceRequest
class.

CommerceOrders.RecordWithReferenceRequest orderRecordNode = new


CommerceOrders.RecordWithReferenceRequest('refOrder', orderRecord);
recordNodes.add(orderRecordNode);

// Prepare for the App Usage Assignment

883
Transaction Management Quote and Order Capture Apex Reference

Map<String,Object> auaFieldValues = new Map<String,Object>();


auaFieldValues.put('AppUsageType', 'RevenueLifecycleManagement');
auaFieldValues.put('RecordId', '@{refOrder.id}');

CommerceOrders.RecordResource auaRecord = new


CommerceOrders.RecordResource(AppUsageAssignment.getSobjectType(), 'POST');
auaRecord.fieldValues = auaFieldValues;

CommerceOrders.RecordWithReferenceRequest auaRecordNode = new


CommerceOrders.RecordWithReferenceRequest('refAppTag', auaRecord);
recordNodes.add(auaRecordNode);

// Prepare for the Order Item


Map<String,Object> oiFieldValues = new Map<String,Object>();
oiFieldValues.put('OrderId', '@{refOrder.id}');
oiFieldValues.put('PricebookEntryId', '01uDU000000YPkIYAW');
oiFieldValues.put('Product2Id', '01tDU000000ESCSYA4');
oiFieldValues.put('Quantity', 2);
oiFieldValues.put('UnitPrice', 800);

CommerceOrders.RecordResource oiRecord = new


CommerceOrders.RecordResource(OrderItem.getSobjectType(), 'POST');
oiRecord.fieldValues = oiFieldValues;

CommerceOrders.RecordWithReferenceRequest oiRecordNode = new


CommerceOrders.RecordWithReferenceRequest('refOrderItem', oiRecord);
recordNodes.add(oiRecordNode);

• Invoke the Place Order Apex API.

Note: The CatalogRatesPreferenceEnum enum is available when the Usage-Based Selling feature is enabled.

// Invoke the Place Order Apex API


CommerceOrders.PricingPreferenceEnum pricingPreference =
CommerceOrders.PricingPreferenceEnum.System;
CommerceOrders.CatalogRatesPreferenceEnum catalogRatesPreference =
CommerceOrders.CatalogRatesPreferenceEnum.Fetch;
CommerceOrders.ConfigurationInputEnum configurationPreference =
CommerceOrders.ConfigurationInputEnum.RunAndAllowErrors;
CommerceOrders.ConfigurationOptionsInput configurationInput = new
CommerceOrders.ConfigurationOptionsInput();
configurationInput.validateProductCatalog = true;
configurationInput.validateAmendRenewCancel = true;
configurationInput.executeConfigurationRules = true;
configurationInput.addDefaultConfiguration = true;

• To contain all record objects, create an instance of the GraphRequest class.

CommerceOrders.GraphRequest graph = new CommerceOrders.GraphRequest('testGraph',


recordNodes);
CommerceOrders.PlaceOrderResult result =

884
Transaction Management Quote and Order Capture Apex Reference

CommerceOrders.PlaceOrderExecutor.execute(graph, pricingPreference,
catalogRatesPreference, configurationPreference, configurationInput);

// Process any error, if exists


if (!result.success) {
List<ConnectApi.PlaceOrderErrorResponse> errors = result.responseError;
for (ConnectApi.PlaceOrderErrorResponse error : errors) {
System.debug(error.errorCode + ': ' + error.message);
}
}

PlaceOrderResult Class
Contains properties to hold the response to the place order request.

Namespace
CommerceOrders

Example
CommerceOrders.PlaceOrderResult resp =
CommerceOrders.PlaceOrderExecutor.execute(graph,internalEnum,cEnum,cInput,catalogRatesPreference);

PlaceOrderResult Properties
Learn more about the available properties with the PlaceOrderResult class.

PlaceOrderResult Properties
Learn more about the available properties with the PlaceOrderResult class.
The PlaceOrderResult class includes these properties.

orderId
Get the ID of the order that’s created after a successful request.
requestIdentifier
Get the request ID of the process to query the asynchronous status of the Place Order Apex API.
responseError
Get the list of errors encountered during the synchronous processing of the API request.
statusURL
Get the asynchronous status URL of the request, if available.
success
Get the request status of the synchronous part of the processing.

885
Transaction Management Quote and Order Capture Apex Reference

orderId
Get the ID of the order that’s created after a successful request.

Signature
public String orderId {get; set;}

Property Value
Type: String

requestIdentifier
Get the request ID of the process to query the asynchronous status of the Place Order Apex API.

Signature
public String requestIdentifier {get; set;}

Property Value
Type: String

responseError
Get the list of errors encountered during the synchronous processing of the API request.

Signature
public List<commerceorders.PlaceOrderErrorResponse> responseError {get; set;}

Property Value
Type: List<ConnectApi.PlaceOrderErrorResponse>

statusURL
Get the asynchronous status URL of the request, if available.

Signature
public String statusURL {get; set;}

Property Value
Type: String

success
Get the request status of the synchronous part of the processing.

886
Transaction Management Quote and Order Capture Apex Reference

Signature
public Boolean success {get; set;}

Property Value
Type: Boolean
Indicates whether the synchronous part of the processing is successful (true) or not (false).

PricingPreferenceEnum Enum
Specifies the pricing preference during the create order process.

Usage
Used by the PlaceOrderExecutor class.

Enum Values
The commerceorders.PricingPreferenceEnum enum includes these values.

Value Description
Force Enforce pricing during the order ingestion process.

Skip Skip pricing during the order ingestion process.

System Determine whether a pricing calculation is required.

RecordResource Class
Contains constructors and properties to create a record object from field values of an order.

Namespace
CommerceOrders

Example
CommerceOrders.RecordResource orderRecord = new
CommerceOrders.RecordResource(Order.getSobjectType(), 'POST');
orderRecord.fieldValues = orderFieldValues;

RecordResource Constructors
Learn more about the available constructors with the RecordResource class.
RecordResource Properties
Learn more about the available properties with the RecordResource class.

887
Transaction Management Quote and Order Capture Apex Reference

RecordResource Constructors
Learn more about the available constructors with the RecordResource class.
The RecordResource class includes these constructors.

RecordResource(type, method, id)


Creates an instance of the RecordResource class to assign values to the fields of an order item by using the sObject type, API
method, and order ID properties.
RecordResource(type, method)
Creates an instance of the RecordResource class to assign the values to the fields of an order item by using the sObject type
and API method properties.

RecordResource(type, method, id)


Creates an instance of the RecordResource class to assign values to the fields of an order item by using the sObject type, API
method, and order ID properties.

Signature
public RecordResource(Schema.SObjectType type, String method, Id id)

Parameters
type
Type: Schema.SObjectType
Object that’s returned from the field describe result using the getReferenceTo() method or from the sObject describe result
using the getSObjectType() method.
method
Type: String
Method for the API request, such as POST or PATCH.
id
Type: Id
ID of the order.

RecordResource(type, method)
Creates an instance of the RecordResource class to assign the values to the fields of an order item by using the sObject type and
API method properties.

Signature
public RecordResource(Schema.SObjectType type, String method)

Parameters
type
Type: Schema.SObjectType

888
Transaction Management Quote and Order Capture Apex Reference

Object that’s returned from the field describe result using the getReferenceTo() method or from the sObject describe result
using the getSObjectType() method.
method
Type: String
Method for the API request, such as POST or PATCH.

RecordResource Properties
Learn more about the available properties with the RecordResource class.
The RecordResource class includes these properties.

fieldValues
Set the fieldValues property to assign values to the fields to update the order record.
id
Set the id property to assign the ID of the order record.
method
Set the method property to specify the API request method, such as POST or PATCH.
type
Set the type property to assign the object type that’s returned from the field describe result using
the getReferenceTo() method or from the sObject describe result using the getSObjectType() method.

fieldValues
Set the fieldValues property to assign values to the fields to update the order record.

Signature
public Map<String,ANY> fieldValues {get; set;}

Property Value
Type: List<Map<String,ANY>>

id
Set the id property to assign the ID of the order record.

Signature
public String id {get; set;}

Property Value
Type: String

method
Set the method property to specify the API request method, such as POST or PATCH.

889
Transaction Management Quote and Order Capture Apex Reference

Signature
public String method {get; set;}

Property Value
Type: String

type
Set the type property to assign the object type that’s returned from the field describe result using the getReferenceTo() method
or from the sObject describe result using the getSObjectType() method.

Signature
public Schema.SObjectType type {get; set;}

Property Value
Type: Schema.SObjectType

RecordWithReferenceRequest Class
Contains constructors and properties to associate a record object with a reference identifier.

Namespace
CommerceOrders

Example
CommerceOrders.RecordWithReferenceRequest orderRecordNode = new
CommerceOrders.RecordWithReferenceRequest('refOrder', orderRecord);

RecordWithReferenceRequest Constructors
Learn more about the available constructors with the RecordWithReferenceRequest class.
RecordWithReferenceRequest Properties
Learn more about the available properties with the RecordWithReferenceRequest class.

RecordWithReferenceRequest Constructors
Learn more about the available constructors with the RecordWithReferenceRequest class.
The RecordWithReferenceRequest class includes these constructors.

RecordWithReferenceRequest(referenceId, record)
Creates an instance of the RecordWithReferenceRequest class to associate a record object with a reference identifier by
using the referenceId and record object properties.

890
Transaction Management Quote and Order Capture Apex Reference

RecordWithReferenceRequest(referenceId, record)
Creates an instance of the RecordWithReferenceRequest class to associate a record object with a reference identifier by using
the referenceId and record object properties.

Signature
public RecordWithReferenceRequest(String referenceId, commerceorders.RecordResource
record)

Parameters
referenceId
Type: String
Reference ID that maps to the subrequest response and can be used to reference the response in subsequent subrequests. You can
reference the referenceId in either the body or URL of a subrequest. Use this syntax to include a reference:
@{referenceId.FieldName}. See referenceId property of a composite subrequest.
record
Type: commerceorders.RecordResource
Record object that’s defined using the RecordResource class.

RecordWithReferenceRequest Properties
Learn more about the available properties with the RecordWithReferenceRequest class.
The RecordWithReferenceRequest class includes these properties.

record
Set the record property to specify the record object that’s defined by using the RecordResource class.
referenceId
Set the referenceId property to specify the reference ID that maps to the subrequest response. This reference ID can be used
to reference the response in subsequent subrequests.

record
Set the record property to specify the record object that’s defined by using the RecordResource class.

Signature
public commerceorders.RecordResource record {get; set;}

Property Value
Type: commerceorders.RecordResource

referenceId
Set the referenceId property to specify the reference ID that maps to the subrequest response. This reference ID can be used to
reference the response in subsequent subrequests.

891
Transaction Management Quote and Order Capture Apex Reference

Signature
public String referenceId {get; set;}

Property Value
Type: String

CommerceTax Namespace
Manage the communication between Salesforce and an external tax engine.
The CommerceTax namespace includes these classes.

AbstractTransactionResponse Class
Abstract class that contains methods for setting tax fields based on the external tax provider's response. Response classes that extend
AbstractTransactionResponse inherit these methods.
AddressesResponse Class
Sets the tax address fields based on a response from the external tax engine. Contains setter methods for the Ship From, Ship To,
and Sold To addresses.
AddressResponse Class
Contains a location code sent from the external tax engine.
AmountDetailsResponse Class
Sets tax amount fields based on a response from the external tax engine.
CalculateTaxRequest Class
Represents a request to an external tax engine to calculate tax. Extends the TaxTransactionRequest class and is the top-level request
class.
CalculateTaxResponse Class
Sets the values of the tax transaction following a response from the external tax engine. Extends the AbstractTransactionResponse
class and is the top-level response class.
CalculateTaxType Enum
Shows whether a tax calculation request is for estimated or actual tax.
ErrorResponse Class
Use to respond with an error after receiving errors from the PaymentGatewayAdapter methods of the CommercePayments namespace,
such as request-forbidden responses, custom validation errors, or expired API tokens.
HeaderTaxAddressesRequest Class
Captures the address values that are applicable for the quote or order transaction.
ImpositionResponse Class
Stores details of tax impositions from the external tax engine.
JurisdictionResponse Class
Stores details from the external tax engine about the tax jurisdiction used in the tax calculation process. A tax jurisdiction represents
a government entity that collects tax.
LineItemResponse Class
Response class that stores details of a list of one or more line items on which the tax engine has calculated tax.

892
Transaction Management Quote and Order Capture Apex Reference

LineTaxAddressesRequest Class
Stores details of the addresses applied per line item in a tax calculation request.
RequestType Enum
Shows the type of tax request made to the tax engine.
ResultCode Enum
Code that represents the results of a tax request made to the tax engine.
RuleDetailsResponse Class
Contains details about the tax rules used for tax calculation.
TaxAddressesRequest Class
Contains methods to get and set tax address values.
TaxAddressRequest Class
Contains address details used for tax calculation.
TaxApiException Class
Contains details about any exceptions during the tax calculation process. Extends the ApexBaseException class.
TaxCustomerDetailsRequest Class
Contains customer details used in tax calculation.
TaxDetailsResponse Class
Stores details of the tax values that an external tax engine calculates in response to a tax calculation request.
TaxEngineAdapter Interface
Retrieves information from the tax engine and evaluates the information to define tax details.
TaxEngineContext Class
Wrapper class that stores details about the type of a tax calculation request.
TaxLineItemRequest Class
Contains line item details of a tax request.
TaxSellerDetailsRequest Class
Contains tax code details used in the tax calculation request.
TaxTransactionRequest Class
Abstract class for storing customer details used in tax calculation and estimation requests.
TaxTransactionStatus Enum
Shows whether the tax transaction has been committed or uncommitted.
TaxTransactionType Enum
Shows whether the tax transaction is for a credit or debit transaction.

AbstractTransactionResponse Class
Abstract class that contains methods for setting tax fields based on the external tax provider's response. Response classes that extend
AbstractTransactionResponse inherit these methods.

Namespace
CommerceTax

893
Transaction Management Quote and Order Capture Apex Reference

AbstractTransactionResponse Methods
Learn more about the methods for AbstractTransactionResponse class.

AbstractTransactionResponse Methods
Learn more about the methods for AbstractTransactionResponse class.
The AbstractTransactionResponse class includes these methods.

setAddresses(addresses)
Uses an instance of AddressesResponse to set the values of tax address fields.
setAmountDetails(amountDetails)
Uses an instance of AmountDetailsResponse to set tax amount fields such as exemption amount and tax amount.
setCurrencyIsoCode(currencyIsoCode)
Sets the currencyIsoCode field.
setDescription(dscptn)
Sets the Description field.
setDocumentCode(documentCode)
Sets the DocumentCode field. Document codes are often used to reference tax documents that the external tax engine uses in the
tax calculation process. Document code acts as a unique link to chain-related transactions, such as amendment or refunds.
setEffectiveDate(effectiveDate)
Sets the EffectiveDate field. Effective Date fields are optional fields that store the date that a transaction takes effect. We provide
these fields only for recordkeeping purposes – for example, if you must report an effective date to an external general ledger system.
Salesforce doesn't use them to calculate any tax or payment values.
setLineItems(lineItems)
Uses an instance of the LineItemResponse class to set a list of line items. Each line item represents an item sent to an external
tax engine for tax calculation.
setReferenceDocumentCode(referenceDocumentCode)
Sets the ReferenceDocumentCode field. Use this field to store the code of an additional document used in the tax calculation process.
For example, use this field in case of a refund for a previously taxed purchase.
setReferenceEntityId(referenceEntityId)
Sets the ID of a reference entity. In Commerce Tax, a reference entity represents a record related to the items sent to the external
tax engine for tax calculation. For example, if you sent order items for tax calculation, you could define the parent order as the
reference entity.
setTaxTransactionId(taxTrxnId)
Sets the TaxTransactionId field using the ID of a tax transaction record. In Commerce Tax, a tax transaction record stores information
about a specific tax calculation process.
setTransactionDate(transactionDate)
Sets the TransactionDate field.

setAddresses(addresses)
Uses an instance of AddressesResponse to set the values of tax address fields.

894
Transaction Management Quote and Order Capture Apex Reference

Signature
global void setAddresses(commercetax.AddressesResponse addresses)

Parameters
addresses
Type: AddressesResponse
Class that contains methods to set the Ship To, Ship From, and Sold To address information.

Return Value
Type: void

setAmountDetails(amountDetails)
Uses an instance of AmountDetailsResponse to set tax amount fields such as exemption amount and tax amount.

Signature
global void setAmountDetails(commercetax.AmountDetailsResponse amountDetails)

Parameters
amountDetails
Type: AmountDetailsResponse
Class that contains methods to set the tax exemption amount, tax amount, total amount, and total amount with tax.

Return Value
Type: void

setCurrencyIsoCode(currencyIsoCode)
Sets the currencyIsoCode field.

Signature
global void setCurrencyIsoCode(String currencyIsoCode)

Parameters
currencyIsoCode
Type: String
Three-letter ISO 4217 currency code associated with a tax object.

Return Value
Type: void

895
Transaction Management Quote and Order Capture Apex Reference

setDescription(dscptn)
Sets the Description field.

Signature
global void setDescription(String dscptn)

Parameters
dscptn
Type: String
Optional field for providing additional information about a record.

Return Value
Type: void

setDocumentCode(documentCode)
Sets the DocumentCode field. Document codes are often used to reference tax documents that the external tax engine uses in the tax
calculation process. Document code acts as a unique link to chain-related transactions, such as amendment or refunds.

Signature
global void setDocumentCode(String documentCode)

Parameters
documentCode
Type: String
Code for a tax document used in the tax calculation process.

Return Value
Type: void

setEffectiveDate(effectiveDate)
Sets the EffectiveDate field. Effective Date fields are optional fields that store the date that a transaction takes effect. We provide these
fields only for recordkeeping purposes – for example, if you must report an effective date to an external general ledger system. Salesforce
doesn't use them to calculate any tax or payment values.

Signature
global void setEffectiveDate(Datetime effectiveDate)

Parameters
effectiveDate
Type: Datetime

896
Transaction Management Quote and Order Capture Apex Reference

Optional field that stores the date that a transaction takes effect.

Return Value
Type: void

setLineItems(lineItems)
Uses an instance of the LineItemResponse class to set a list of line items. Each line item represents an item sent to an external
tax engine for tax calculation.

Signature
global void setLineItems(List<commercetax.LineItemResponse> lineItems)

Parameters
lineItems
Type: List<LineItemResponse>
A list of line items sent to an external tax engine for tax calculation.

Return Value
Type: void

setReferenceDocumentCode(referenceDocumentCode)
Sets the ReferenceDocumentCode field. Use this field to store the code of an additional document used in the tax calculation process.
For example, use this field in case of a refund for a previously taxed purchase.

Signature
global void setReferenceDocumentCode(String referenceDocumentCode)

Parameters
referenceDocumentCode
Type: String
The code for a document used in the tax calculation process.

Return Value
Type: void

setReferenceEntityId(referenceEntityId)
Sets the ID of a reference entity. In Commerce Tax, a reference entity represents a record related to the items sent to the external tax
engine for tax calculation. For example, if you sent order items for tax calculation, you could define the parent order as the reference
entity.

897
Transaction Management Quote and Order Capture Apex Reference

Signature
global void setReferenceEntityId(String referenceEntityId)

Parameters
referenceEntityId
Type: String
ID of a record related to the items sent for tax calculation.

Return Value
Type: void

setTaxTransactionId(taxTrxnId)
Sets the TaxTransactionId field using the ID of a tax transaction record. In Commerce Tax, a tax transaction record stores information
about a specific tax calculation process.

Signature
global void setTaxTransactionId(String taxTrxnId)

Parameters
taxTrxnId
Type: String
The ID of a tax transaction record in Commerce Tax.

Return Value
Type: void

setTransactionDate(transactionDate)
Sets the TransactionDate field.

Signature
global void setTransactionDate(Datetime transactionDate)

Parameters
transactionDate
Type: Datetime
Date that a tax transaction occurred.

Return Value
Type: void

898
Transaction Management Quote and Order Capture Apex Reference

AddressesResponse Class
Sets the tax address fields based on a response from the external tax engine. Contains setter methods for the Ship From, Ship To, and
Sold To addresses.

Namespace
CommerceTax

Usage
Because AddressesResponse contains multiple addresses, we recommend using multiple instances of AddressResponse
to set unique values for each address.

Example
This code sample represents a portion of the code used in a mock tax adapter. In this example, you create three AddressResponse
classes, set their location codes, and pass them to the Ship To, Ship From, and Sold To setter methods in
AddressesResponse. In an actual implementation, your AddressResponse classes already have a location code based on
the response from the external tax engine.
commercetax.AddressesResponse addressesRes = new commercetax.AddressesResponse();

//AddressResponse containing ShipTo information


commercetax.AddressResponse shipToAddress = new commercetax.AddressResponse();
shipToAddress.setLocationCode('1234567');

//AddressResponse containing ShipFrom information


commercetax.AddressResponse shipFromAddress = new commercetax.AddressResponse();
shipFromAddress.setLocationCode('84720385');

//AddressResponse containing Sold To information


commercetax.AddressResponse soldToAddress = new commercetax.AddressResponse();
soldToAddress.setLocationCode('92381749');

//set values of addressesRes


addressesRes.setShipFrom(shipFromAddress);
addressesRes.setShipTo(shipToAddress);
addressesRes.setSoldTo(soldToAddress);

AddressesResponse Methods
Learn more about the methods for AddressesResponse class.

AddressesResponse Methods
Learn more about the methods for AddressesResponse class.
The AddressesResponse class includes these methods.

setShipFrom(shipFrom)
Sets the value of a ShipFrom address field.

899
Transaction Management Quote and Order Capture Apex Reference

setShipTo(shipTo)
Sets the value of a ShipTo address field.
setSoldTo(soldTo)
Sets the value of a SoldTo address field.

setShipFrom(shipFrom)
Sets the value of a ShipFrom address field.

Signature
global void setShipFrom(commercetax.AddressResponse shipFrom)

Parameters
shipFrom
Type: AddressResponse
A single address. Use this generic address parameter to store any type of address, such as Ship From, Ship To, and Sold To details.
Users set the specific address in an AddressResponse instance and then pass that instance to the AddressesResponse’s
setShipTo(), setShipFrom(), and setSoldTo() methods as needed.

Return Value
Type: void

setShipTo(shipTo)
Sets the value of a ShipTo address field.

Signature
global void setShipTo(commercetax.AddressResponse shipTo)

Parameters
shipTo
Type: AddressResponse
Stores a single address. This is a generic address parameter and can be used to store any type of address, such as Ship From, Ship
To, and Sold To details. Users set the specific address in an AddressResponse instance and then pass that instance to the
AddressesResponse’s setShipTo(), setShipFrom(), and setSoldTo() methods as needed.

Return Value
Type: void

setSoldTo(soldTo)
Sets the value of a SoldTo address field.

900
Transaction Management Quote and Order Capture Apex Reference

Signature
global void setSoldTo(commercetax.AddressResponse soldTo)

Parameters
soldTo
Type: AddressResponse
Stores a single address. This is a generic address parameter and can be used to store any type of address, such as Ship From, Ship
To, Sold To details. Users set the specific address in an AddressResponse instance and then pass that instance to the
AddressesResponse’s setShipTo(), setShipFrom(), and setSoldTo() methods as needed.

Return Value
Type: void

AddressResponse Class
Contains a location code sent from the external tax engine.

Namespace
CommerceTax

Usage
Use the AddressResponse class to set unique values for each address.
commercetax.AddressesResponse addressesRes = new commercetax.AddressesResponse();

//AddressResponse containing ShipTo information


commercetax.AddressResponse shipToAddress = new commercetax.AddressResponse();
shipToAddress.setLocationCode('1234567');

//AddressResponse containing ShipFrom information


commercetax.AddressResponse shipFromAddress = new commercetax.AddressResponse();
shipFromAddress.setLocationCode('84720385');

//AddressResponse containing Sold To information


commercetax.AddressResponse soldToAddress = new commercetax.AddressResponse();
soldToAddress.setLocationCode('92381749');

//set values of addressesRes


addressesRes.setShipFrom(shipFromAddress);
addressesRes.setShipTo(shipToAddress);
addressesRes.setSoldTo(soldToAddress);

AddressResponse Methods
Learn more about the available methods with the AddressResponse class.

901
Transaction Management Quote and Order Capture Apex Reference

AddressResponse Methods
Learn more about the available methods with the AddressResponse class.
The AddressResponse class includes these methods.

setLocationCode(locationCode)
Sets the value of a LocationCode field.

setLocationCode(locationCode)
Sets the value of a LocationCode field.

Signature
global void setLocationCode(String locationCode)

Parameters
locationCode
Type: String
A code that contains address information. This value can be passed to a method that sets the value of an address field.

Return Value
Type: void

AmountDetailsResponse Class
Sets tax amount fields based on a response from the external tax engine.

Namespace
CommerceTax

Example
In this example, an instance of AmountDetailsResponse class in a mock adapter calculates several tax amount fields. The
totalTax and totalAmount parameters were defined in an instance of LineItemResponse class. The adapter then assigns
the instance to lineItemResponse.
commercetax.AmountDetailsResponse amountResponse = new commercetax.AmountDetailsResponse();
amountResponse.setTotalAmountWithTax(totalTax+totalAmount);
amountResponse.setExemptAmount(0);
amountResponse.setTotalAmount(totalAmount);
amountResponse.setTaxAmount(totalTax);
lineItemResponse.setAmountDetails(amountResponse);

AmountDetailsResponse Methods
Learn more about the methods available from the AmountDetailsResponse class.

902
Transaction Management Quote and Order Capture Apex Reference

AmountDetailsResponse Methods
Learn more about the methods available from the AmountDetailsResponse class.
The following are methods for AmountDetailsResponse.

setExemptAmount(exemptAmount)
Sets the value of the ExemptAmount field.
setTaxAmount(taxAmount)
Sets the value of the TaxAmount field.
setTotalAmount(totalAmount)
Sets the value of the TotalAmount field.
setTotalAmountWithTax(totalAmtWithTax)
Sets the value of the TotalAmountWithTax field.

setExemptAmount(exemptAmount)
Sets the value of the ExemptAmount field.

Signature
global void setExemptAmount(Double exemptAmount)

Parameters
exemptAmount
Type: Double
The amount of a line item's total amount that's exempt from tax calculation.

Return Value
Type: void

setTaxAmount(taxAmount)
Sets the value of the TaxAmount field.

Signature
global void setTaxAmount(Double taxAmount)

Parameters
taxAmount
Type: Double
The calculated amount of tax for a line item.

903
Transaction Management Quote and Order Capture Apex Reference

Return Value
Type: void

setTotalAmount(totalAmount)
Sets the value of the TotalAmount field.

Signature
global void setTotalAmount(Double totalAmount)

Parameters
totalAmount
Type: Double
The total amount of a line item, excluding tax.

Return Value
Type: void

setTotalAmountWithTax(totalAmtWithTax)
Sets the value of the TotalAmountWithTax field.

Signature
global void setTotalAmountWithTax(Double totalAmtWithTax)

Parameters
totalAmtWithTax
Type: Double
The total amount of a line item combined with the calculated tax for that line item.

Return Value
Type: void

CalculateTaxRequest Class
Represents a request to an external tax engine to calculate tax. Extends the TaxTransactionRequest class and is the top-level request
class.

Namespace
CommerceTax

904
Transaction Management Quote and Order Capture Apex Reference

Example
See TaxEngineAdapter Example Implementation for more details on how to access information from the CalculateTaxRequest
class.

CalculateTaxRequest Constructors
Learn more about the constructors that are available with the CalculateTaxRequest class. This constructor is intended for
test usage and throws an exception if used outside of the Apex test context.
CalculateTaxRequest Properties
Learn more about the available properties with the CalculateTaxRequest class.
CalculateTaxRequest Methods
Learn more about the available methods with the CalculateTaxRequest class.

CalculateTaxRequest Constructors
Learn more about the constructors that are available with the CalculateTaxRequest class. This constructor is intended for test
usage and throws an exception if used outside of the Apex test context.
The CalculateTaxRequest class includes these constructors.

CalculateTaxRequest(taxType)
This constructor is intended for test usage only and throws an exception if used outside of the Apex test context.

CalculateTaxRequest(taxType)
This constructor is intended for test usage only and throws an exception if used outside of the Apex test context.

Signature
global CalculateTaxRequest(commercetax.CalculateTaxType taxType)

Parameters
taxType
Type: CalculateTaxType
Indicates whether the tax calculation is for estimated tax or actual tax.

CalculateTaxRequest Properties
Learn more about the available properties with the CalculateTaxRequest class.
The CalculateTaxRequest class includes these properties.

isCommit
Indicates whether the tax calculation has to be committed or reported to government authorities.
taxTransactionType
Shows whether the tax transaction is for a credit or debit transaction.

905
Transaction Management Quote and Order Capture Apex Reference

taxType
Shows whether the tax calculation is for estimated or actual tax wherein only actual tax can be submitted.

isCommit
Indicates whether the tax calculation has to be committed or reported to government authorities.

Signature
global Boolean isCommit {get; set;}

Property Value
Type: Boolean

taxTransactionType
Shows whether the tax transaction is for a credit or debit transaction.

Signature
global commercetax.TaxTransactionType taxTransactionType {get; set;}

Property Value
Type: TaxTransactionType

taxType
Shows whether the tax calculation is for estimated or actual tax wherein only actual tax can be submitted.

Signature
global commercetax.CalculateTaxType taxType {get; set;}

Property Value
Type: CalculateTaxType

CalculateTaxRequest Methods
Learn more about the available methods with the CalculateTaxRequest class.
The CalculateTaxRequest class includes these methods.

equals(obj)
Maintains the integrity of lists of type CalculateTaxRequest by determining the equality of external objects in a list. This
method is dynamic and is based on the equals() method in Java.

906
Transaction Management Quote and Order Capture Apex Reference

hashCode()
Maintains the integrity of lists of type CalculateTaxRequest by determining the uniqueness of the external object records
in a list.
toString()
Converts a value to a string.

equals(obj)
Maintains the integrity of lists of type CalculateTaxRequest by determining the equality of external objects in a list. This method
is dynamic and is based on the equals() method in Java.

Signature
global Boolean equals(Object obj)

Parameters
obj
Type: Object
External object whose key is to be validated.

Return Value
Type: Boolean

hashCode()
Maintains the integrity of lists of type CalculateTaxRequest by determining the uniqueness of the external object records in a
list.

Signature
global Integer hashCode()

Return Value
Type: Integer

toString()
Converts a value to a string.

Signature
global String toString()

Return Value
Type: String

907
Transaction Management Quote and Order Capture Apex Reference

CalculateTaxResponse Class
Sets the values of the tax transaction following a response from the external tax engine. Extends the AbstractTransactionResponse class
and is the top-level response class.

Namespace
CommerceTax

Example
if(requestType == commercetax.RequestType.CalculateTax){
commercetax.calculatetaxtype type = request.taxtype;
String docCode='';
if(request.DocumentCode == 'simulateEmptyDocumentCode')
docCode = '';
else if(request.DocumentCode != null)
docCode =request.DocumentCode;
else if(request.ReferenceEntityId != null) docCode = request.ReferenceEntityId;

else docCode = String.valueOf(getRandomInteger(0,2147483647));


commercetax.CalculateTaxResponse response = new
commercetax.CalculateTaxResponse();
if(request.isCommit == true) {
response.setStatus(commercetax.TaxTransactionStatus.Committed);
} else {
response.setStatus(commercetax.TaxTransactionStatus.Uncommitted);
}
response.setDocumentCode(docCode);
response.setReferenceDocumentCode(request.referenceDocumentCode);
response.setTaxType(type);
response.setStatusDescription('statusDescription');
if(request.sellerDetails.code == 'testSellerCode') {
response.setDescription('SellerCode fetched from TaxEngine entity');
}
else {
response.setDescription('description');
}
response.setEffectiveDate(system.now());
if(request.transactionDate == null) {
response.setTransactionDate(system.now());
} else {
response.setTransactionDate(request.transactionDate);
}
if(request.taxTransactionType == null) {
response.setTaxTransactionType(commercetax.TaxTransactionType.Debit);
} else {
response.setTaxTransactionType(request.taxTransactionType);
}
if(request.currencyIsoCode == null || request.currencyIsoCode == '') {
response.setCurrencyIsoCode('USD');
} else {
response.setCurrencyIsoCode(request.currencyIsoCode);
}

908
Transaction Management Quote and Order Capture Apex Reference

response.setReferenceEntityId(request.ReferenceEntityId);
}

CalculateTaxResponse Methods
Learn more about the available methods with the CalculateTaxResponse class.

CalculateTaxResponse Methods
Learn more about the available methods with the CalculateTaxResponse class.
The CalculateTaxResponse class includes these methods.

setAddresses(addresses)
Sets the value of the Addresses field using the addresses contained in an instance of the AddressesResponse class.
setAmountDetails(amountDetails)
Sets the value of the AmountDetails field using an instance of AmountDetailsResponse.
setCurrencyIsoCode(currencyIsoCode)
Sets the value of the CurrencyIsoCode field of the CalculateTaxResponse object.
setDescription(dscptn)
Sets the value of the Description field of the CalculateTaxResponse object.
setDocumentCode(documentCode)
Sets the value of the DocumentCode field of the CalculateTaxResponse object.
setEffectiveDate(effectiveDate)
Sets the value of the EffectiveDate field of the CalculateTaxResponse object.
setLineItems(lineItems)
Sets the value of the LineItems field of the CalculateTaxResponse object.
setReferenceDocumentCode(referenceDocumentCode)
Sets the value of the ReferenceDocumentCode field of the CalculateTaxResponse object.
setReferenceEntityId(referenceEntityId)
Sets the value of the ReferenceEntityId field of the CalculateTaxResponse object.
setStatus(status)
Sets the value of the Status field of the CalculateTaxResponse object.
setStatusDescription(statusDescription)
Sets the value of the StatusDescription field of the CalculateTaxResponse object.
setTaxTransactionId(taxTrxnId)
Sets the value of the TaxTransactionId field of the CalculateTaxResponse object.
setTaxTransactionType(taxTransactionType)
Sets the value of the TaxTransactionType field of the CalculateTaxResponse object.
setTaxType(taxType)
Sets the value of the TaxType field of the CalculateTaxResponse object.
setTransactionDate(transactionDate)
Sets the value of the TransactionDate field of the CalculateTaxResponse object.

909
Transaction Management Quote and Order Capture Apex Reference

setAddresses(addresses)
Sets the value of the Addresses field using the addresses contained in an instance of the AddressesResponse class.

Signature
global void setAddresses(commercetax.AddressesResponse addresses)

Parameters
addresses
Type: AddressesResponse
Contains Ship To, Ship From, and Sold To addresses.

Return Value
Type: void

setAmountDetails(amountDetails)
Sets the value of the AmountDetails field using an instance of AmountDetailsResponse.

Signature
global void setAmountDetails(commercetax.AmountDetailsResponse amountDetails)

Parameters
amountDetails
Type: AmountDetailsResponse
The tax amount details for a line item on which tax was calculated.

Return Value
Type: void

setCurrencyIsoCode(currencyIsoCode)
Sets the value of the CurrencyIsoCode field of the CalculateTaxResponse object.

Signature
global void setCurrencyIsoCode(String currencyIsoCode)

Parameters
currencyIsoCode
Type: String
Three-letter ISO 4217 currency code associated with a tax object.

910
Transaction Management Quote and Order Capture Apex Reference

Return Value
Type: void

setDescription(dscptn)
Sets the value of the Description field of the CalculateTaxResponse object.

Signature
global void setDescription(String dscptn)

Parameters
dscptn
Type: String
Optional description for providing more information about the calculate tax response.

Return Value
Type: void

setDocumentCode(documentCode)
Sets the value of the DocumentCode field of the CalculateTaxResponse object.

Signature
global void setDocumentCode(String documentCode)

Parameters
documentCode
Type: String
Code for a tax document that’s created by the tax engine for the calculation process.

Return Value
Type: void

setEffectiveDate(effectiveDate)
Sets the value of the EffectiveDate field of the CalculateTaxResponse object.

Signature
global void setEffectiveDate(Datetime effectiveDate)

911
Transaction Management Quote and Order Capture Apex Reference

Parameters
effectiveDate
Type: Datetime
The date a tax calculation action takes effect. This parameter is optional and is provided only for recordkeeping purpose. Additionally,
this parameter is used to determine the tax rates or rules and overrides the transaction date. For example, if the tax calculation
request is placed on January 3 and the transaction date is January 1, you can set the effective date as January 1.

Return Value
Type: void

setLineItems(lineItems)
Sets the value of the LineItems field of the CalculateTaxResponse object.

Signature
global void setLineItems(List<commercetax.LineItemResponse> lineItems)

Parameters
lineItems
Type: List<LineItemResponse>
Response object that the tax adapter populates from the response of the external tax engine.

Return Value
Type: void

setReferenceDocumentCode(referenceDocumentCode)
Sets the value of the ReferenceDocumentCode field of the CalculateTaxResponse object.

Signature
global void setReferenceDocumentCode(String referenceDocumentCode)

Parameters
referenceDocumentCode
Type: String
Code for a reference document used in the tax calculation process.

Return Value
Type: void

912
Transaction Management Quote and Order Capture Apex Reference

setReferenceEntityId(referenceEntityId)
Sets the value of the ReferenceEntityId field of the CalculateTaxResponse object.

Signature
global void setReferenceEntityId(String referenceEntityId)

Parameters
referenceEntityId
Type: String
ID of an entity related to the line items submitted for tax calculation. For example, if order items were sent for tax calculation, you
could use the ID of their parent order.

Return Value
Type: void

setStatus(status)
Sets the value of the Status field of the CalculateTaxResponse object.

Signature
global void setStatus(commercetax.TaxTransactionStatus status)

Parameters
status
Type: TaxTransactionStatus
Indicates whether a tax transaction has been committed.

Return Value
Type: void

setStatusDescription(statusDescription)
Sets the value of the StatusDescription field of the CalculateTaxResponse object.

Signature
global void setStatusDescription(String statusDescription)

Parameters
statusDescription
Type: String
Optional value for providing more information about a tax transaction's status.

913
Transaction Management Quote and Order Capture Apex Reference

Return Value
Type: void

setTaxTransactionId(taxTrxnId)
Sets the value of the TaxTransactionId field of the CalculateTaxResponse object.

Signature
public void setTaxTransactionId(String taxTrxnId)

Parameters
taxTrxnId
Type: String
The ID of the Salesforce tax transaction entity that stores information about the tax calculation transaction.

Return Value
Type: void

setTaxTransactionType(taxTransactionType)
Sets the value of the TaxTransactionType field of the CalculateTaxResponse object.

Signature
global void setTaxTransactionType(commercetax.TaxTransactionType taxTransactionType)

Parameters
taxTransactionType
Type: TaxTransactionType
Whether the tax transaction was for a credit or debit transacation.

Return Value
Type: void

setTaxType(taxType)
Sets the value of the TaxType field of the CalculateTaxResponse object.

Signature
global void setTaxType(commercetax.CalculateTaxType taxType)

914
Transaction Management Quote and Order Capture Apex Reference

Parameters
taxType
Type: CalculateTaxType
Indicates whether a tax calculation request is for estimated or actual tax.

Return Value
Type: void

setTransactionDate(transactionDate)
Sets the value of the TransactionDate field of the CalculateTaxResponse object.

Signature
global void setTransactionDate(Datetime transactionDate)

Parameters
transactionDate
Type: Datetime
The date that the tax transaction occurred.

Return Value
Type: void

CalculateTaxType Enum
Shows whether a tax calculation request is for estimated or actual tax.

Usage
Used by the CalculateTaxRequest and CalculateTaxResponse class methods.

Enum Values
The commercetax.CalculateTaxType enum includes these values.

Value Description
Actual Specifies that the tax calculation service should calculate the finalized (actual) tax
for the requested line items.

Estimated Specifies that the tax calculation service should estimate the tax for the requested
line items.

915
Transaction Management Quote and Order Capture Apex Reference

ErrorResponse Class
Use to respond with an error after receiving errors from the PaymentGatewayAdapter methods of the CommercePayments namespace,
such as request-forbidden responses, custom validation errors, or expired API tokens.

Namespace
CommerceTax

Example
This example snippet of a mock tax adapter shows a hypothetical scenario to demo an error response. The adapter receives request
information from TaxEngineContext and stores it in an instance of CalculateTaxRequest. If the request's documentCode
property is null or indicates an error, the adapter returns an error response with information about the error.

global virtual class MockAdapter implements commercetax.TaxEngineAdapter {

global commercetax.TaxEngineResponse processRequest(commercetax.TaxEngineContext


taxEngineContext) {
commercetax.RequestType requestType = taxEngineContext.getRequestType();
commercetax.CalculateTaxRequest request =
(commercetax.CalculateTaxRequest)taxEngineContext.getRequest();

if(request.documentCode == null) {
return new commercetax.ErrorResponse(commercetax.resultcode.TaxEngineError,
'404', 'documentCode is mandatory');
}
if(request.documentCode == 'TaxEngineError') {
return new commercetax.ErrorResponse(commercetax.resultcode.TaxEngineError,
'504', 'documentCode - not supported');
}
if(request.documentCode == 'simulateValidationFailureInAdapter') {
return new commercetax.ErrorResponse(commercetax.resultcode.TaxEngineError,
'400', 'validations for documentCode failed in adapter');
}
if(request.documentCode == 'simulateMalformedErrorInAdapter') {
return new
commercetax.ErrorResponse(commercetax.resultcode.TaxEngineError, null, 'malformed adapter
error response');
}
if(request.documentCode == 'simulateTaxEngineProcessFailure') {
return new commercetax.ErrorResponse(commercetax.resultcode.TaxEngineError,
'500', 'Tax Engine couldnt process your request');
}

ErrorResponse Constructors
Learn more about the available constructors with the ErrorResponse class.

ErrorResponse Constructors
Learn more about the available constructors with the ErrorResponse class.

916
Transaction Management Quote and Order Capture Apex Reference

The ErrorResponse class includes these constructors.

ErrorResponse(resultCode, errorCode, errorMessage)


Constructor to initialize an ErrorResponse object from the result code, error code, and error message sent from the tax engine.

ErrorResponse(resultCode, errorCode, errorMessage)


Constructor to initialize an ErrorResponse object from the result code, error code, and error message sent from the tax engine.

Signature
global ErrorResponse(commercetax.ResultCode resultCode, String errorCode, String
errorMessage)

Parameters
resultCode
Type: ResultCode
Code for the type of result sent by the tax engine.
errorCode
Type: String
Code for the type of error sent by the tax engine.
Codes must match the HTTP status codes to be returned to the user. Here are a few examples:
• If the status code is for a bad request, set errorCode to 400.
• If the status code is for a forbidden request, set errorCode to 403.
• If errorCode isn't a valid HTTP status code, a 500 internal server error is returned.
errorMessage
Type: String
The error message sent by the tax engine.

HeaderTaxAddressesRequest Class
Captures the address values that are applicable for the quote or order transaction.

Namespace
CommerceTax

HeaderTaxAddressesRequest Constructors
Learn more about the constructors available with the HeaderTaxAddressesRequest class.
HeaderTaxAddressesRequest Properties
Learn more about the available properties with the HeaderTaxAddressesRequest class.
HeaderTaxAddressesRequest Methods
Learn more about the available methods with the HeaderTaxAddressesRequest class.

917
Transaction Management Quote and Order Capture Apex Reference

HeaderTaxAddressesRequest Constructors
Learn more about the constructors available with the HeaderTaxAddressesRequest class.
The HeaderTaxAddressesRequest class includes these constructors.

HeaderTaxAddressesRequest(shipFrom, shipTo, soldTo, billTo, taxEngineAddress)


Constructor for initializing the required addresses of the tax addresses request such as the ship from, ship to, sold to, and bill to
addresses. This constructor is intended for test usage and throws an exception if used outside of the Apex test context.

HeaderTaxAddressesRequest(shipFrom, shipTo, soldTo, billTo, taxEngineAddress)


Constructor for initializing the required addresses of the tax addresses request such as the ship from, ship to, sold to, and bill to addresses.
This constructor is intended for test usage and throws an exception if used outside of the Apex test context.

Signature
global HeaderTaxAddressesRequest(commercetax.TaxAddressRequest shipFrom,
commercetax.TaxAddressRequest shipTo, commercetax.TaxAddressRequest soldTo,
commercetax.TaxAddressRequest billTo, commercetax.TaxAddressRequest taxEngineAddress)

Parameters
shipFrom
Type: TaxAddressRequest
Address where a line item was shipped from.
shipTo
Type: TaxAddressRequest
Address where a line item was shipped to.
soldTo
Type: TaxAddressRequest
Address of the line item's buyer.
billTo
Type: TaxAddressRequest
Person or group who was billed for the line item.
taxEngineAddress
Type: TaxAddressRequest
Address that the tax engine uses to calculate tax.

HeaderTaxAddressesRequest Properties
Learn more about the available properties with the HeaderTaxAddressesRequest class.
The HeaderTaxAddressesRequest class includes these properties.

billTo
Specifies the billTo address for a line item on which tax was calculated.

918
Transaction Management Quote and Order Capture Apex Reference

shipFrom
Specifies the shipFrom address for a line item on which tax was calculated.
shipTo
Specifies the shipTo address for a line item on which tax was calculated.
soldTo
Specifies the soldTo address for a line item on which tax was calculated.
taxEngineAddress
Address used by the tax engine when calculating tax for a line item.

billTo
Specifies the billTo address for a line item on which tax was calculated.

Signature
global commercetax.TaxAddressRequest billTo {get; set;}

Property Value
Type: TaxAddressRequest

shipFrom
Specifies the shipFrom address for a line item on which tax was calculated.

Signature
global commercetax.TaxAddressRequest shipFrom {get; set;}

Property Value
Type: TaxAddressRequest

shipTo
Specifies the shipTo address for a line item on which tax was calculated.

Signature
global commercetax.TaxAddressRequest shipTo {get; set;}

Property Value
Type: TaxAddressRequest

soldTo
Specifies the soldTo address for a line item on which tax was calculated.

919
Transaction Management Quote and Order Capture Apex Reference

Signature
global commercetax.TaxAddressRequest soldTo {get; set;}

Property Value
Type: TaxAddressRequest

taxEngineAddress
Address used by the tax engine when calculating tax for a line item.

Signature
global commercetax.TaxAddressRequest taxEngineAddress {get; set;}

Property Value
Type: TaxAddressRequest

HeaderTaxAddressesRequest Methods
Learn more about the available methods with the HeaderTaxAddressesRequest class.
The HeaderTaxAddressesRequest class includes these methods.

equals(obj)
Maintains the integrity of lists of type HeaderTaxAddressesRequest by determining the equality of external objects in a
list. This method is dynamic and is based on the equals() method in Java.
hashCode()
Maintains the integrity of lists of type TaxAddressesRequest by determining the uniqueness of the external objects in a list.
toString()
Converts a value to a string.

equals(obj)
Maintains the integrity of lists of type HeaderTaxAddressesRequest by determining the equality of external objects in a list.
This method is dynamic and is based on the equals() method in Java.

Signature
global Boolean equals(Object obj)

Parameters
obj
Type: Object
External object whose key is to be validated.

920
Transaction Management Quote and Order Capture Apex Reference

Return Value
Type: Boolean

hashCode()
Maintains the integrity of lists of type TaxAddressesRequest by determining the uniqueness of the external objects in a list.

Signature
global Integer hashCode()

Return Value
Type: Integer

toString()
Converts a value to a string.

Signature
global String toString()

Return Value
Type: String

ImpositionResponse Class
Stores details of tax impositions from the external tax engine.

Namespace
CommerceTax

Example
In this mock adapter example, the adapter sets the TaxDetailsResponse.setImposition() method parameter to null if
the request's document code indicates that the tax calculation didn't require any exceptions. Otherwise, it creates an instance of
ImpositionResponse and sets its SubType and Type values, and then assigns it to TaxDetailsResponse.

if(request.DocumentCode == 'SetsNullForResponseWithoutException'){
taxDetailsResponse.setImposition(null);
}else{
commercetax.ImpositionResponse imposition = new
commercetax.ImpositionResponse();
imposition.setSubType('subtype');
imposition.setType('type');
taxDetailsResponse.setImposition(imposition);
}

921
Transaction Management Quote and Order Capture Apex Reference

ImpositionResponse Methods
Learn more about the available methods with the ImpositionResponse class.

ImpositionResponse Methods
Learn more about the available methods with the ImpositionResponse class.
The ImpositionResponse class includes these methods.

setId(id)
Sets the ID field of the ImpositionResponse class.
setName(name)
Sets the Name field of the ImpositionResponse class.
setSubType(subType)
Sets the SubType field of the ImpositionResponse class.
setType(type)
Sets the Type field of the ImpositionResponse class.

setId(id)
Sets the ID field of the ImpositionResponse class.

Signature
global void setId(String id)

Parameters
id
Type: String
User-defined ID value used for referencing the tax imposition.

Return Value
Type: void

setName(name)
Sets the Name field of the ImpositionResponse class.

Signature
global void setName(String name)

Parameters
name
Type: String

922
Transaction Management Quote and Order Capture Apex Reference

Optional user-defined name for the tax imposition response.

Return Value
Type: void

setSubType(subType)
Sets the SubType field of the ImpositionResponse class.

Signature
global void setSubType(String subType)

Parameters
subType
Type: String
Many tax calculation organizations use types and subtypes to categorize their tax imposition procedures. If the tax engine you use
follows this process, set the subtype with this parameter.

Return Value
Type: void

setType(type)
Sets the Type field of the ImpositionResponse class.

Signature
public void setType(String type)

Parameters
type
Type: String
Many tax calculation organizations use types and subtypes to categorize their tax imposition procedures. If the tax engine you use
follows this process, set the type with this parameter.

Return Value
Type: void

JurisdictionResponse Class
Stores details from the external tax engine about the tax jurisdiction used in the tax calculation process. A tax jurisdiction represents a
government entity that collects tax.

923
Transaction Management Quote and Order Capture Apex Reference

Namespace
CommerceTax

Example
In this mock adapter example, the adapter sets the TaxDetailsResponse.setJurisdiction() method parameter to null
if the request's document code indicates that the tax calculation didn't require any exceptions. Otherwise, it creates an instance of
JurisdictionResponse and sets its address values. Because this code represents a mock adapter, the example defines the
address parameters directly. In a standard implementation, the jurisdiction's setters receive values passed from the eternal tax engine.
if(request.DocumentCode == 'SetsNullForResponseWithoutException'){
taxDetailsResponse.setJurisdiction(null);
}else{
commercetax.JurisdictionResponse jurisdiction = new
commercetax.JurisdictionResponse();
jurisdiction.setCountry('country');
jurisdiction.setRegion('region');
jurisdiction.setName('name');
jurisdiction.setStateAssignedNumber('stateAssignedNo');
jurisdiction.setId('id');
jurisdiction.setLevel('level');
taxDetailsResponse.setJurisdiction(jurisdiction);

JurisdictionResponse Methods
Learn more about the available methods with the JurisdictionResponse class.

JurisdictionResponse Methods
Learn more about the available methods with the JurisdictionResponse class.
The JurisdictionResponse class includes these methods.

setCountry(country)
Sets the Country field of the JurisdictionResponse class.
setId(id)
Sets the ID field of the JurisdictionResponse class.
setLevel(level)
Sets the Level field of the JurisdictionResponse class.
setName(name)
Sets the Name field of the JurisdictionResponse class.
setRegion(region)
Sets the Region value of the JurisdictionResponse class.
setStateAssignedNumber(stateAssignedNo)
Sets the StateAssignedNumber field of the JurisdictionResponse class.

924
Transaction Management Quote and Order Capture Apex Reference

setCountry(country)
Sets the Country field of the JurisdictionResponse class.

Signature
global void setCountry(String country)

Parameters
country
Type: String
The country of the tax jurisdiction entity's address.

Return Value
Type: void

setId(id)
Sets the ID field of the JurisdictionResponse class.

Signature
global void setId(String id)

Parameters
id
Type: String
User-defined Id value used to reference the jurisdiction response.

Return Value
Type: void

setLevel(level)
Sets the Level field of the JurisdictionResponse class.

Signature
global void setLevel(String level)

Parameters
level
Type: String
Level value used in the jurisdiction entity's address.

925
Transaction Management Quote and Order Capture Apex Reference

Return Value
Type: void

setName(name)
Sets the Name field of the JurisdictionResponse class.

Signature
global void setName(String name)

Parameters
name
Type: String
Optional user-defined name field for referencing the jurisdiction response.

Return Value
Type: void

setRegion(region)
Sets the Region value of the JurisdictionResponse class.

Signature
global void setRegion(String region)

Parameters
region
Type: String
Region value used in the tax jurisdiction entity's address.

Return Value
Type: void

setStateAssignedNumber(stateAssignedNo)
Sets the StateAssignedNumber field of the JurisdictionResponse class.

Signature
global void setStateAssignedNumber(String stateAssignedNo)

926
Transaction Management Quote and Order Capture Apex Reference

Parameters
stateAssignedNo
Type: String
State assigned number value of the tax jurisdiction entity's address.

Return Value
Type: void

LineItemResponse Class
Response class that stores details of a list of one or more line items on which the tax engine has calculated tax.

Namespace
CommerceTax

Example
This example uses a LineItemResponse list to store information about each line item that was processed as part of the request.
For simplicity, the sample code uses a static value of 1 for the tax rate. However, most integrations typically have a more complex process
for determining a tax rate. Most integrations also build a TaxDetailsResponse list to store the actual tax value information that
they assign to each line item in the LineItemResponse list.
Double totalTax = 0.0;
Double totalAmount = 0.0;
List<commercetax.LineItemResponse> lineItemResponses = new
List<commercetax.LineItemResponse>();
for(Commercetax.TaxLineItemRequest lineItem : request.lineItems){
commercetax.AddressesResponse addressesRes = new
commercetax.AddressesResponse();
if(request.DocumentCode == 'SetsNullForResponseWithoutException'){
addressesRes.setShipFrom(null);
addressesRes.setShipTO(null);
addressesRes.setSoldTo(null);
}else{
commercetax.AddressResponse addRes = new commercetax.AddressResponse();

addRes.setLocationCode('locationCode');
addressesRes.setShipFrom(addRes);
addressesRes.setShipTO(addRes);
addressesRes.setSoldTo(addRes);
}
commercetax.LineItemResponse lineItemResponse = new
commercetax.LineItemResponse();
Double totalLineTax = 0;
List<commercetax.TaxDetailsResponse> taxDetailsResponses = new
List<commercetax.TaxDetailsResponse>();
for(integer i =0;i<1;i++){
Integer rate = 1;
Double taxableAmount = lineItem.amount;
commercetax.TaxDetailsResponse taxDetailsResponse = new

927
Transaction Management Quote and Order Capture Apex Reference

commercetax.TaxDetailsResponse();
taxDetailsResponse.setRate(Double.valueOf(rate));
taxDetailsResponse.setTaxableAmount(taxableAmount);
Double tax = taxableAmount*rate;
totalLineTax+=tax;
taxDetailsResponse.setTax(taxableAmount*rate);
taxDetailsResponse.setExemptAmount(0);
taxDetailsResponse.setExemptReason('exemptReason');
taxDetailsResponse.setTaxRegionId('taxRegionId');

taxDetailsResponse.setTaxId(String.valueOf(getRandomInteger(0,2323233)));
taxDetailsResponse.setSerCode('serCode');
taxDetailsResponse.setTaxAuthorityTypeId('taxAuthorityTypeId');
if(request.DocumentCode == 'SetsNullForResponseWithoutException'){
taxDetailsResponse.setImposition(null);
}else{
commercetax.ImpositionResponse imposition = new
commercetax.ImpositionResponse();
imposition.setSubType('subtype');
imposition.setType('type');
taxDetailsResponse.setImposition(imposition);
}

if(request.DocumentCode == 'SetsNullForResponseWithoutException'){
taxDetailsResponse.setJurisdiction(null);
}else{
commercetax.JurisdictionResponse jurisdiction = new
commercetax.JurisdictionResponse();
jurisdiction.setCountry('country');
jurisdiction.setRegion('region');
jurisdiction.setName('name');
jurisdiction.setStateAssignedNumber('stateAssignedNo');
jurisdiction.setId('id');
jurisdiction.setLevel('level');
taxDetailsResponse.setJurisdiction(jurisdiction);
}

taxDetailsResponses.add(taxDetailsResponse);
}
lineItemResponse.setTaxes(taxDetailsResponses);
totalTax +=totalLineTax;
totalAmount+=lineItem.amount;

LineItemResponse Methods
Learn more about the available methods with the LineItemResponse class.

LineItemResponse Methods
Learn more about the available methods with the LineItemResponse class.
The LineItemResponse class includes these methods.

928
Transaction Management Quote and Order Capture Apex Reference

setAddresses(addresses)
Sets the Addresses field on the LineItemResponse using an instance of AddressesResponse class.
setAmountDetails(amountDetails)
Sets the Amount Details field on the LineItemResponse using an instance of AmountDetails.
setEffectiveDate(effectiveDate)
Sets the EffectiveDate field on the LineItemResponse class. Effective Date fields are optional fields that store the date that a
transaction takes effect. We provide these fields only for recordkeeping purposes – for example, if you must report an effective date
to an external general ledger system. Salesforce doesn't use them to calculate any tax or payment values.
setIsTaxable(isTaxable)
Sets the IsTaxable field on the LineItemResponse class.
setLineNumber(lineNumber)
Sets the LineNumber field on the LineItemResponse class.
setProductCode(productCode)
Sets the ProductCode field on the LineItemResponse class.
setQuantity(quantity)
Sets the Quantity field on the LineItemResponse class.
setTaxCode(taxCode)
Sets the TaxCode field on the LineItemResponse.
setTaxes(taxes)
Sets the Taxes field on a LineItemResponse.

setAddresses(addresses)
Sets the Addresses field on the LineItemResponse using an instance of AddressesResponse class.

Signature
global void setAddresses(commercetax.AddressesResponse addresses)

Parameters
addresses
Type: AddressesResponse
Class that contains methods to set the Ship To, Ship From, and Sold To address information.

Return Value
Type: void

setAmountDetails(amountDetails)
Sets the Amount Details field on the LineItemResponse using an instance of AmountDetails.

Signature
global void setAmountDetails(commercetax.AmountDetailsResponse amountDetails)

929
Transaction Management Quote and Order Capture Apex Reference

Parameters
amountDetails
Type: AmountDetailsResponse
Class that contains methods to set the tax amount, total amount with tax, total amount, and exempt amount.

Return Value
Type: void

setEffectiveDate(effectiveDate)
Sets the EffectiveDate field on the LineItemResponse class. Effective Date fields are optional fields that store the date that a
transaction takes effect. We provide these fields only for recordkeeping purposes – for example, if you must report an effective date to
an external general ledger system. Salesforce doesn't use them to calculate any tax or payment values.

Signature
global void setEffectiveDate(Datetime effectiveDate)

Parameters
effectiveDate
Type: Datetime
Optional field that stores the date that a transaction takes effect.

Return Value
Type: void

setIsTaxable(isTaxable)
Sets the IsTaxable field on the LineItemResponse class.

Signature
global void setIsTaxable(Boolean isTaxable)

Parameters
isTaxable
Type: Boolean
Whether line items were taxed as part of the tax calculation request.

Return Value
Type: void

930
Transaction Management Quote and Order Capture Apex Reference

setLineNumber(lineNumber)
Sets the LineNumber field on the LineItemResponse class.

Signature
global void setLineNumber(String lineNumber)

Parameters
lineNumber
Type: String
User-defined number used to identify a line item.

Return Value
Type: void

setProductCode(productCode)
Sets the ProductCode field on the LineItemResponse class.

Signature
global void setProductCode(String productCode)

Parameters
productCode
Type: String
Code for the product that a line item represents.

Return Value
Type: void

setQuantity(quantity)
Sets the Quantity field on the LineItemResponse class.

Signature
global void setQuantity(Double quantity)

Parameters
quantity
Type: Double
Quantity of a line item.

931
Transaction Management Quote and Order Capture Apex Reference

Return Value
Type: void

setTaxCode(taxCode)
Sets the TaxCode field on the LineItemResponse.

Signature
global void setTaxCode(String taxCode)

Parameters
taxCode
Type: String
Federal code that an individual or business uses to pay their taxes to a federal or state government. The tax engine uses this code
during the tax calculation process.

Return Value
Type: void

setTaxes(taxes)
Sets the Taxes field on a LineItemResponse.

Signature
global void setTaxes(List<commercetax.TaxDetailsResponse> taxes)

Parameters
taxes
Type: List<TaxDetailsResponse>
Tax values applied to a line item in the LineItemResponse list. This information is stored in a list of TaxDetailsResponses,
which contains values such as tax, taxable amount, and tax rate.

Return Value
Type: void

LineTaxAddressesRequest Class
Stores details of the addresses applied per line item in a tax calculation request.

Namespace
CommerceTax

932
Transaction Management Quote and Order Capture Apex Reference

LineTaxAddressesRequest Constructors
Learn more about the constructors available with the LineTaxAddressesRequest class.
LineTaxAddressesRequest Properties
Learn more about the available properties with the LineTaxAddressesRequest class.
LineTaxAddressesRequest Methods
Learn more about the available methods with the LineTaxAddressesRequest class.

LineTaxAddressesRequest Constructors
Learn more about the constructors available with the LineTaxAddressesRequest class.
The LineTaxAddressesRequest class includes these constructors.

LineTaxAddressesRequest(shipFrom, shipTo, soldTo, billTo, taxEngineAddress)


Constructor for initializing the required addresses for a line item of the tax addresses request such as the ship to, ship from, and bill
to addresses. This constructor is intended for test usage and throws an exception if used outside of the Apex test context.

LineTaxAddressesRequest(shipFrom, shipTo, soldTo, billTo, taxEngineAddress)


Constructor for initializing the required addresses for a line item of the tax addresses request such as the ship to, ship from, and bill to
addresses. This constructor is intended for test usage and throws an exception if used outside of the Apex test context.

Signature
global LineTaxAddressesRequest(commercetax.TaxAddressRequest shipFrom,
commercetax.TaxAddressRequest shipTo, commercetax.TaxAddressRequest soldTo,
commercetax.TaxAddressRequest billTo, commercetax.TaxAddressRequest taxEngineAddress)

Parameters
shipFrom
TaxAddressRequest
Address where a line item was shipped from.
shipTo
TaxAddressRequest
Address where a line item is shipped to.
soldTo
TaxAddressRequest
Address of the line item's buyer.
billTo
TaxAddressRequest
Person or group who was billed for the line item.
taxEngineAddress
TaxAddressRequest
Address that the tax engine uses to calculate tax.

933
Transaction Management Quote and Order Capture Apex Reference

LineTaxAddressesRequest Properties
Learn more about the available properties with the LineTaxAddressesRequest class.
The LineTaxAddressesRequest class includes these properties.

billTo
The Bill To address for a line item.
shipFrom
The Ship From address for a line item.
shipTo
The Ship To address for a line item.
soldTo
The Sold To address for a line item.

billTo
The Bill To address for a line item.

Signature
global commercetax.TaxAddressRequest billTo {get; set;}

Property Value
Type: TaxAddressRequest

shipFrom
The Ship From address for a line item.

Signature
global commercetax.TaxAddressRequest shipFrom {get; set;}

Property Value
Type: TaxAddressRequest

shipTo
The Ship To address for a line item.

Signature
global commercetax.TaxAddressRequest shipTo {get; set;}

Property Value
Type: TaxAddressRequest

934
Transaction Management Quote and Order Capture Apex Reference

soldTo
The Sold To address for a line item.

Signature
global commercetax.TaxAddressRequest soldTo {get; set;}

Property Value
Type: TaxAddressRequest

LineTaxAddressesRequest Methods
Learn more about the available methods with the LineTaxAddressesRequest class.
The LineTaxAddressesRequest class includes these methods.

equals(obj)
Maintains the integrity of lists of type LineTaxAddressesRequest by determining the equality of external objects in a list.
This method is dynamic and is based on the equals() method in Java.
hashCode()
Maintains the integrity of lists of type LineTaxAddressesRequest by determining the uniquness of the external object
records in a list.
toString()
Converts a value to a string.

equals(obj)
Maintains the integrity of lists of type LineTaxAddressesRequest by determining the equality of external objects in a list. This
method is dynamic and is based on the equals() method in Java.

Signature
global Boolean equals(Object obj)

Parameters
obj
Type: Object
External object whose key is to be validated.

Return Value
Type: Boolean

hashCode()
Maintains the integrity of lists of type LineTaxAddressesRequest by determining the uniquness of the external object records
in a list.

935
Transaction Management Quote and Order Capture Apex Reference

Signature
global Integer hashCode()

Return Value
Type: Integer

toString()
Converts a value to a string.

Signature
global String toString()

Return Value
Type: String

RequestType Enum
Shows the type of tax request made to the tax engine.

Usage
Used by the TaxEngineContext class method.

Enum Values
The commercetax.RequestType enum includes these values.

Value Description
CalculateTax Represents a request to calculate tax on a list of taxable line items.

ResultCode Enum
Code that represents the results of a tax request made to the tax engine.

Usage
Used by the ErrorResponse class method.

Enum Values
The commercetax.ResultCode enum includes these values.

Value Description
TaxEngineError Represents an error that occurred during the tax request process.

936
Transaction Management Quote and Order Capture Apex Reference

RuleDetailsResponse Class
Contains details about the tax rules used for tax calculation.

Namespace
CommerceTax

RuleDetailsResponse Methods
Learn more about the available methods with the RuleDetailsResponse class.

RuleDetailsResponse Methods
Learn more about the available methods with the RuleDetailsResponse class.
The RuleDetailsResponse includes these methods.

RuleDetailsResponse()
Contains information about the tax rules used when calculating tax for line items.
setNonTaxableRuleId(nonTaxableRuleId)
Sets the NonTaxableRuleId field of the RuleDetailsResponse.
setNonTaxableType(nonTaxableType)
Sets the NonTaxableType field of the RuleDetailsResponse.
setRateRuleId(rateRuleId)
Sets the RateRuleId field of the RuleDetailsResponse.
setRateSourceId(rateSourceId)
Sets the RateSourceId field on the RuleDetailsResponse.

RuleDetailsResponse()
Contains information about the tax rules used when calculating tax for line items.

Signature
global void RuleDetailsResponse()

Return Value
Type: void

setNonTaxableRuleId(nonTaxableRuleId)
Sets the NonTaxableRuleId field of the RuleDetailsResponse.

Signature
global void setNonTaxableRuleId(String nonTaxableRuleId)

937
Transaction Management Quote and Order Capture Apex Reference

Parameters
nonTaxableRuleId
Type: String
ID of the tax rule applied to non-taxable line items.

Return Value
Type: void

setNonTaxableType(nonTaxableType)
Sets the NonTaxableType field of the RuleDetailsResponse.

Signature
global void setNonTaxableType(String nonTaxableType)

Parameters
nonTaxableType
Type: String
Reason (from several possible types) that a line item is non-taxable.

Return Value
Type: void

setRateRuleId(rateRuleId)
Sets the RateRuleId field of the RuleDetailsResponse.

Signature
global void setRateRuleId(String rateRuleId)

Parameters
rateRuleId
Type: String
ID of the tax rule used to determine a tax rate.

Return Value
Type: void

setRateSourceId(rateSourceId)
Sets the RateSourceId field on the RuleDetailsResponse.

938
Transaction Management Quote and Order Capture Apex Reference

Signature
global void setRateSourceId(String rateSourceId)

Parameters
rateSourceId
Type: String
ID of the source object used for calculating tax rate.

Return Value
Type: void

TaxAddressesRequest Class
Contains methods to get and set tax address values.

Namespace
CommerceTax

TaxAddressesRequest Constructors
Learn more about the available constructors with the TaxAddressesRequest class.
TaxAddressesRequest Properties
Learn more about the available properties with the TaxAddressesRequest class.
TaxAddressesRequest Methods
Learn more about the available methods with the TaxAddressesRequest class.

TaxAddressesRequest Constructors
Learn more about the available constructors with the TaxAddressesRequest class.
The TaxAddressesRequest class includes these constructors.

TaxAddressesRequest(shipFrom, shipTo, soldTo, billTo, taxEngineAddress)


Constructor for defining addresses for the tax addresses request. This constructor is intended for test usage and throws an exception
if used outside of the Apex test context.

TaxAddressesRequest(shipFrom, shipTo, soldTo, billTo, taxEngineAddress)


Constructor for defining addresses for the tax addresses request. This constructor is intended for test usage and throws an exception if
used outside of the Apex test context.

Signature
global TaxAddressesRequest(commercetax.TaxAddressRequest shipFrom,
commercetax.TaxAddressRequest shipTo, commercetax.TaxAddressRequest soldTo,
commercetax.TaxAddressRequest billTo, commercetax.TaxAddressRequest taxEngineAddress)

939
Transaction Management Quote and Order Capture Apex Reference

Parameters
shipFrom
TaxAddressRequest
The address where a line item was shipped from.
shipTo
TaxAddressRequest
The address where a line item is shipped to.
soldTo
TaxAddressRequest
The address of the line item's buyer.
billTo
TaxAddressRequest
The person or group who was billed for the line item.
taxEngineAddress
TaxAddressRequest
The address that the tax engine uses to calculate tax.

TaxAddressesRequest Properties
Learn more about the available properties with the TaxAddressesRequest class.
The TaxAddressesRequest class includes these properties.

billTo
The Bill To address for a line item.
shipFrom
The Ship From address for a line item.
shipTo
The Ship To address for a line item.
soldTo
The Sold To address for a line item.
taxEngineAddress
The Tax Engine Address for a line item.

billTo
The Bill To address for a line item.

Signature
global commercetax.TaxAddressRequest billTo {get; set;}

Property Value
TaxAddressRequest

940
Transaction Management Quote and Order Capture Apex Reference

shipFrom
The Ship From address for a line item.

Signature
global commercetax.TaxAddressRequest shipFrom {get; set;}

Property Value
TaxAddressRequest

shipTo
The Ship To address for a line item.

Signature
public commercetax.TaxAddressRequest shipTo {get; set;}

Property Value
TaxAddressRequest

soldTo
The Sold To address for a line item.

Signature
global commercetax.TaxAddressRequest soldTo {get; set;}

Property Value
TaxAddressRequest

taxEngineAddress
The Tax Engine Address for a line item.

Signature
global commercetax.TaxAddressRequest taxEngineAddress {get; set;}

Property Value
TaxAddressRequest

TaxAddressesRequest Methods
Learn more about the available methods with the TaxAddressesRequest class.
The TaxAddressesRequest class includes these methods.

941
Transaction Management Quote and Order Capture Apex Reference

equals(obj)
Maintains the integrity of lists of type TaxAddressesRequest by determining the equality of external objects in a list. This
method is dynamic and is based on the equals() method in Java.
hashCode()
Maintains the integrity of lists of type TaxAddressesRequest by determining the uniqueness of the external object records
in a list.
toString()
Converts a value to a string.

equals(obj)
Maintains the integrity of lists of type TaxAddressesRequest by determining the equality of external objects in a list. This method
is dynamic and is based on the equals() method in Java.

Signature
global Boolean equals(Object obj)

Parameters
obj
Type: Object
External object whose key is to be validated.

Return Value
Type: Boolean

hashCode()
Maintains the integrity of lists of type TaxAddressesRequest by determining the uniqueness of the external object records in a
list.

Signature
global Integer hashCode()

Return Value
Type: Integer

toString()
Converts a value to a string.

Signature
global String toString()

942
Transaction Management Quote and Order Capture Apex Reference

Return Value
Type: String

TaxAddressRequest Class
Contains address details used for tax calculation.

Namespace
CommerceTax

TaxAddressRequest Constructors
Learn more about the available constructors with the TaxAddressRequest class.
TaxAddressRequest Properties
Learn more about the available properties with the TaxAddressRequest class.
TaxAddressRequest Methods
Learn more about the available methods with the TaxAddressRequest class.

TaxAddressRequest Constructors
Learn more about the available constructors with the TaxAddressRequest class.
The TaxAddressRequest class includes these constructors.

TaxAddressRequest(city, country, latitude, longitude, postalCode, state, street, locationCode)


Initializes the TaxAddressRequest object using address details. This constructor is intended for test usage and throws an
exception if used outside of the Apex test context.

TaxAddressRequest(city, country, latitude, longitude, postalCode, state, street,


locationCode)
Initializes the TaxAddressRequest object using address details. This constructor is intended for test usage and throws an exception
if used outside of the Apex test context.

Signature
global TaxAddressRequest(String city, String country, Double latitude, Double longitude,
String postalCode, String state, String street, String locationCode)

Parameters
city
Type: String
City used in an address required for tax calculation.
country
Type: String
Country used in an address required for tax calculation.

943
Transaction Management Quote and Order Capture Apex Reference

latitude
Type: Double
Latitude used in an address required for tax calculation.
longitude
Type: Double
Longitude used in an address required for tax calculation.
postalCode
Type: String
Postal code used in an address required for tax calculation.
state
Type: String
State used in an address required for tax calculation.
street
Type: String
Street used in an address required for tax calculation.
locationCode
Type: String
Location code used in an address required for tax calculation.

TaxAddressRequest Properties
Learn more about the available properties with the TaxAddressRequest class.
The TaxAddressRequest class includes these properties.

city
City used in an address required for tax calculation.
country
Country used in an address required for tax calculation.
latitude
Latitude used in an address required for tax calculation.
locationCode
Location code used in an address required for tax calculation.
longitude
Longitude used in an address required for tax calculation.
postalCode
Postal code used in an address required for tax calculation.
state
State used in an address required for tax calculation.
street
Street used in an address required for tax calculation.

944
Transaction Management Quote and Order Capture Apex Reference

city
City used in an address required for tax calculation.

Signature
global String city {get; set;}

Property Value
Type: String

country
Country used in an address required for tax calculation.

Signature
global String country {get; set;}

Property Value
Type: String

latitude
Latitude used in an address required for tax calculation.

Signature
global Double latitude {get; set;}

Property Value
Type: Double

locationCode
Location code used in an address required for tax calculation.

Signature
global String locationCode {get; set;}

Property Value
Type: String

longitude
Longitude used in an address required for tax calculation.

945
Transaction Management Quote and Order Capture Apex Reference

Signature
global Double longitude {get; set;}

Property Value
Type: Double

postalCode
Postal code used in an address required for tax calculation.

Signature
global String postalCode {get; set;}

Property Value
Type: String

state
State used in an address required for tax calculation.

Signature
global String state {get; set;}

Property Value
Type: String

street
Street used in an address required for tax calculation.

Signature
global String street {get; set;}

Property Value
Type: String

TaxAddressRequest Methods
Learn more about the available methods with the TaxAddressRequest class.
The TaxAddressRequest class includes these methods.

946
Transaction Management Quote and Order Capture Apex Reference

equals(obj)
Maintains the integrity of lists of type TaxAddressRequest by determining the equality of external objects in a list. This method is
dynamic and based on the equals() method in Java.
hashCode()
Maintains the integrity of lists of type TaxAddressRequest by determining the uniqueness of the external object in a list.
toString()
Converts a date to a string.

equals(obj)
Maintains the integrity of lists of type TaxAddressRequest by determining the equality of external objects in a list. This method is dynamic
and based on the equals() method in Java.

Signature
global Boolean equals(Object obj)

Parameters
obj
Type: Object
External object whose key is to be validated.

Return Value
Type: Boolean

hashCode()
Maintains the integrity of lists of type TaxAddressRequest by determining the uniqueness of the external object in a list.

Signature
global Integer hashCode()

Return Value
Type: Integer

toString()
Converts a date to a string.

Signature
global String toString()

947
Transaction Management Quote and Order Capture Apex Reference

Return Value
Type: String

TaxApiException Class
Contains details about any exceptions during the tax calculation process. Extends the ApexBaseException class.

Namespace
CommerceTax

TaxApiException Constructors
Learn more about the available constructors with the TaxApiException class.

TaxApiException Constructors
Learn more about the available constructors with the TaxApiException class.
The TaxApiException class includes these constructors.

TaxApiException(var1, var2)
Initializes the TaxApiException class using an Exception and a string to provide more details about the exception. This
constructor is intended for test usage and throws an exception if used outside of the Apex test context.
TaxApiException(var1)
Initializes the TaxApiException class using an Exception. This constructor is intended for test usage and throws an
exception if used outside of the Apex test context.
TaxApiException()
Initializes the TaxApiException class without any initialized parameters. This constructor is intended for test usage and throws
an exception if used outside of the Apex test context.

TaxApiException(var1, var2)
Initializes the TaxApiException class using an Exception and a string to provide more details about the exception. This
constructor is intended for test usage and throws an exception if used outside of the Apex test context.

Signature
global TaxApiException(String var1, Exception var2)

Parameters
var1
Type: String
Text that provides more information about the returned exception.
var2
Type: Exception

948
Transaction Management Quote and Order Capture Apex Reference

An exception denotes an error that disrupts the normal flow of code execution. You can use Apex built-in exceptions or create
custom exceptions. All exceptions have common methods.

TaxApiException(var1)
Initializes the TaxApiException class using an Exception. This constructor is intended for test usage and throws an exception
if used outside of the Apex test context.

Signature
global TaxApiException(Exception var1)

Parameters
var1
Type: Exception
An exception denotes an error that disrupts the normal flow of code execution. You can use Apex built-in exceptions or create
custom exceptions. All exceptions have common methods.

TaxApiException()
Initializes the TaxApiException class without any initialized parameters. This constructor is intended for test usage and throws an
exception if used outside of the Apex test context.

Signature
global TaxApiException()

TaxCustomerDetailsRequest Class
Contains customer details used in tax calculation.

Namespace
CommerceTax

TaxCustomerDetailsRequest Constructors
Learn more about the available constructors with the TaxCustomerDetailsRequest class.
TaxCustomerDetailsRequest Properties
Learn more about the available properties with the TaxCustomerDetailsRequest class.
TaxCustomerDetailsRequest Methods
Learn more about the available methods with the TaxCustomerDetailsRequest class.

TaxCustomerDetailsRequest Constructors
Learn more about the available constructors with the TaxCustomerDetailsRequest class.
The TaxCustomerDetailsRequest class includes these constructors.

949
Transaction Management Quote and Order Capture Apex Reference

TaxCustomerDetailsRequest(accountId, code, exemptionNo, exemptionReason)


Initializes the TaxCustomerDetailsRequest object. This constructor is intended for test usage and throws an exception if
used outside of the Apex test context.

TaxCustomerDetailsRequest(accountId, code, exemptionNo, exemptionReason)


Initializes the TaxCustomerDetailsRequest object. This constructor is intended for test usage and throws an exception if used
outside of the Apex test context.

Signature
global TaxCustomerDetailsRequest(String accountId, String code, String exemptionNo,
String exemptionReason)

Parameters
accountId
Type: String
The customer account ID for the line items sent for tax calculation.
code
Type: String
The tax code used during tax calculation.
exemptionNo
Type: String
The exemption number applied to any tax exempt line items.
exemptionReason
Type: String
The reason that certain line items are tax exempt.

TaxCustomerDetailsRequest Properties
Learn more about the available properties with the TaxCustomerDetailsRequest class.
The TaxCustomerDetailsRequest class includes these properties.

accountId
Customer account that contains the line items sent for tax calculation.
code
Tax code used during tax calculation.
exemptionNo
Number used to qualify a line item for tax exemption.
exemptionReason
Reason why a line item qualifies for tax exemption.
taxCertificateId
ID of a tax certificate used for tax calculation.

950
Transaction Management Quote and Order Capture Apex Reference

accountId
Customer account that contains the line items sent for tax calculation.

Signature
global String accountId {get; set;}

Property Value
Type: String

code
Tax code used during tax calculation.

Signature
global String code {get; set;}

Property Value
Type: String

exemptionNo
Number used to qualify a line item for tax exemption.

Signature
global String exemptionNo {get; set;}

Property Value
Type: String

exemptionReason
Reason why a line item qualifies for tax exemption.

Signature
global String exemptionReason {get; set;}

Property Value
Type: String

taxCertificateId
ID of a tax certificate used for tax calculation.

951
Transaction Management Quote and Order Capture Apex Reference

Signature
global String taxCertificateId {get; set;}

Property Value
Type: String

TaxCustomerDetailsRequest Methods
Learn more about the available methods with the TaxCustomerDetailsRequest class.
The TaxCustomerDetailsRequest class includes these methods.

equals(obj)
Maintains the integrity of lists of type TaxCustomerDetailsRequest by determining the equality of external objects in a
list. This method is dynamic and based on the equals() method in Java.
hashCode()
Maintains the integrity of lists of type TaxCustomerDetailsRequest by determining the uniqueness of the external objects
in a list.
toString()
Converts a value to a string.

equals(obj)
Maintains the integrity of lists of type TaxCustomerDetailsRequest by determining the equality of external objects in a list.
This method is dynamic and based on the equals() method in Java.

Signature
global Boolean equals(Object obj)

Parameters
obj
Type: Object
External object whose key is to be validated.

Return Value
Type: Boolean

hashCode()
Maintains the integrity of lists of type TaxCustomerDetailsRequest by determining the uniqueness of the external objects in
a list.

Signature
global Integer hashCode()

952
Transaction Management Quote and Order Capture Apex Reference

Return Value
Type: Integer

toString()
Converts a value to a string.

Signature
global String toString()

Return Value
Type: String

TaxDetailsResponse Class
Stores details of the tax values that an external tax engine calculates in response to a tax calculation request.

Namespace
CommerceTax

Usage
If your tax calculation request contains multiple line items, we recommend building your adapter using a list of TaxDetailsResponse
instances. Each instance represents the tax details calculated for a given line item.

Example
List<commercetax.TaxDetailsResponse> taxDetailsResponses = new
List<commercetax.TaxDetailsResponse>();
for(integer i =0;i<1;i++){
Integer rate = 1;
Double taxableAmount = lineItem.amount;
commercetax.TaxDetailsResponse taxDetailsResponse = new
commercetax.TaxDetailsResponse();
taxDetailsResponse.setRate(Double.valueOf(rate));
taxDetailsResponse.setTaxableAmount(taxableAmount);
Double tax = taxableAmount*rate;
totalLineTax+=tax;
taxDetailsResponse.setTax(taxableAmount*rate);
taxDetailsResponse.setExemptAmount(0);
taxDetailsResponse.setExemptReason('exemptReason');
taxDetailsResponse.setTaxRegionId('taxRegionId');

taxDetailsResponse.setTaxId(String.valueOf(getRandomInteger(0,2323233)));
taxDetailsResponse.setSerCode('serCode');
taxDetailsResponse.setTaxAuthorityTypeId('taxAuthorityTypeId');
if(request.DocumentCode == 'SetsNullForResponseWithoutException'){
taxDetailsResponse.setImposition(null);
}else{

953
Transaction Management Quote and Order Capture Apex Reference

commercetax.ImpositionResponse imposition = new


commercetax.ImpositionResponse();
imposition.setSubType('subtype');
imposition.setType('type');
taxDetailsResponse.setImposition(imposition);
}

if(request.DocumentCode == 'SetsNullForResponseWithoutException'){
taxDetailsResponse.setJurisdiction(null);
}else{
commercetax.JurisdictionResponse jurisdiction = new
commercetax.JurisdictionResponse();
jurisdiction.setCountry('country');
jurisdiction.setRegion('region');
jurisdiction.setName('name');
jurisdiction.setStateAssignedNumber('stateAssignedNo');
jurisdiction.setId('id');
jurisdiction.setLevel('level');
taxDetailsResponse.setJurisdiction(jurisdiction);
}

taxDetailsResponses.add(taxDetailsResponse);
}
lineItemResponse.setTaxes(taxDetailsResponses);
totalTax +=totalLineTax;
totalAmount+=lineItem.amount;

TaxDetailsResponse Methods
Learn more about the available methods with the TaxDetailsResponse class.

TaxDetailsResponse Methods
Learn more about the available methods with the TaxDetailsResponse class.
The TaxDetailsResponse class includes these methods.

setExemptAmount(exemptAmount)
Sets the ExemptAmount field of the TaxDetailsResponse class.
setExemptReason(reason)
Sets the ExemptReason field of the TaxDetailsResponse class.
setImposition(imposition)
Sets the Imposition field of the TaxDetailsResponse class using an instance of the ImpositionResponse class.
setJurisdiction(jurisdiction)
Sets the Jurisdiction field of the TaxDetailsResponse using an instance of the JurisdictionResponse class.
setRate(rate)
Sets the Rate field of the TaxDetailsResponse class.
setSerCode(serCode)
Sets the Service Code field of the TaxDetailsResponse class.

954
Transaction Management Quote and Order Capture Apex Reference

setTax(tax)
Sets the Tax field of the TaxDetailsResponse class.
setTaxAuthorityTypeId(taxAuthorityTypeId)
Sets the TaxAuthorityTypeId field of the TaxDetailsResponse class.
setTaxId(taxId)
Sets the TaxId field of the TaxDetailsResponse class.
setTaxRegionId(taxRegionId)
Sets the TaxRegionId field on the TaxDetailsResponse class.
setTaxRuleDetails(taxRuleDetails)
Sets the TaxRuleDetails field of the TaxDetailsResponse class.
setTaxableAmount(taxableAmount)
Sets the TaxableAmount field of the TaxDetailsResponse class.

setExemptAmount(exemptAmount)
Sets the ExemptAmount field of the TaxDetailsResponse class.

Signature
global void setExemptAmount(Double exemptAmount)

Parameters
exemptAmount
Type: Double
Amount of tax on a line item that is exempt from tax calculation.

Return Value
Type: void

setExemptReason(reason)
Sets the ExemptReason field of the TaxDetailsResponse class.

Signature
global void setExemptReason(String reason)

Parameters
reason
Type: String
Optional user-defined information on why a tax exemption applies to a line item.

955
Transaction Management Quote and Order Capture Apex Reference

Return Value
Type: void

setImposition(imposition)
Sets the Imposition field of the TaxDetailsResponse class using an instance of the ImpositionResponse class.

Signature
global void setImposition(commercetax.ImpositionResponse imposition)

Parameters
imposition
Type: ImpositionResponse
Contains information about why tax was imposed on a line item.

Return Value
Type: void

setJurisdiction(jurisdiction)
Sets the Jurisdiction field of the TaxDetailsResponse using an instance of the JurisdictionResponse class.

Signature
global void setJurisdiction(commercetax.JurisdictionResponse jurisdiction)

Parameters
jurisdiction
Type: JurisdictionResponse
Contains address information about the tax jurisdiction used in the tax calculation process.

Return Value
Type: void

setRate(rate)
Sets the Rate field of the TaxDetailsResponse class.

Signature
global void setRate(Double rate)

956
Transaction Management Quote and Order Capture Apex Reference

Parameters
rate
Type: Double
Tax used during tax calculation. This value is often a decimal amount, such as 0.1 or 0.06, based on the applied tax percentage.

Return Value
Type: void

setSerCode(serCode)
Sets the Service Code field of the TaxDetailsResponse class.

Signature
global void setSerCode(String serCode)

Parameters
serCode
Type: String
Service code used in tax calculation.

Return Value
Type: void

setTax(tax)
Sets the Tax field of the TaxDetailsResponse class.

Signature
global void setTax(Double tax)

Parameters
tax
Type: Double
Amount of tax for a line item.

Return Value
Type: void

setTaxAuthorityTypeId(taxAuthorityTypeId)
Sets the TaxAuthorityTypeId field of the TaxDetailsResponse class.

957
Transaction Management Quote and Order Capture Apex Reference

Signature
global void setTaxAuthorityTypeId(String taxAuthorityTypeId)

Parameters
taxAuthorityTypeId
Type: String
ID of the organization that oversees tax collection.

Return Value
Type: void

setTaxId(taxId)
Sets the TaxId field of the TaxDetailsResponse class.

Signature
global void setTaxId(String taxId)

Parameters
taxId
Type: String
ID value used to determine the tax for an individual or business.

Return Value
Type: void

setTaxRegionId(taxRegionId)
Sets the TaxRegionId field on the TaxDetailsResponse class.

Signature
global void setTaxRegionId(String taxRegionId)

Parameters
taxRegionId
Type: String
ID of the tax region used in tax calculation. A tax region represents a geographical area where tax is applied.

Return Value
Type: void

958
Transaction Management Quote and Order Capture Apex Reference

setTaxRuleDetails(taxRuleDetails)
Sets the TaxRuleDetails field of the TaxDetailsResponse class.

Signature
global void setTaxRuleDetails(commercetax.RuleDetailsResponse taxRuleDetails)

Parameters
taxRuleDetails
Type: RuleDetailsResponse
Information about the Salesforce tax rules used during tax calculation.

Return Value
Type: void

setTaxableAmount(taxableAmount)
Sets the TaxableAmount field of the TaxDetailsResponse class.

Signature
global void setTaxableAmount(Double taxableAmount)

Parameters
taxableAmount
Type: Double
Amount that can be taxed on a line item.

Return Value
Type: void

TaxEngineAdapter Interface
Retrieves information from the tax engine and evaluates the information to define tax details.

Namespace
CommerceTax

TaxEngineAdapter Methods
Learn more about the available methods with the TaxEngineAdapter class.
TaxEngineAdapter Example Implementation
Refer to the example implementation of the TaxEngineAdapter interface to accept information from a tax engine and evaluate
the information to define tax details.

959
Transaction Management Quote and Order Capture Apex Reference

TaxEngineAdapter Methods
Learn more about the available methods with the TaxEngineAdapter class.
The TaxEngineAdapter class includes these methods.

processRequest(requestType)
The processRequest method takes an instance of TaxEngineContext class and returns a response with the calculated
tax details through the TaxDetailsResponse class or an error response through the ErrorResponse class.

processRequest(requestType)
The processRequest method takes an instance of TaxEngineContext class and returns a response with the calculated tax
details through the TaxDetailsResponse class or an error response through the ErrorResponse class.

Signature
global commercetax.TaxEngineResponse processRequest(commercetax.TaxEngineContext var1)

Parameters
var1
Type: TaxEngineContext
Wrapper class that stores information about the type of a tax calculation request.

Return Value
Type: TaxEngineResponse
Generic interface representing a response from a tax engine.

TaxEngineAdapter Example Implementation


Refer to the example implementation of the TaxEngineAdapter interface to accept information from a tax engine and evaluate
the information to define tax details.

Namespace
commercetax

Usage
The TaxEngineAdapter interface accepts information from the tax engine through the TaxEngineContext class. The
interface evaluates the information to define tax in the response with details, such as tax amount and addresses. The response is used
to update and create entities in the Salesforce org.
Use these steps to build a sample tax adapter implementation. Each tax adapter implementation varies based on your implementation
requirements. Customize this example to suit your business requirements.

960
Transaction Management Quote and Order Capture Apex Reference

Example:
• The custom adapter class implements the TaxEngineAdapter interface. The processRequest method takes an
instance of TaxEngineContext class and returns a response with the calculated tax details through the
TaxDetailsResponse class or an error response through the ErrorResponse class.

global virtual class AvalaraAdapter implements commercetax.TaxEngineAdapter {


global commercetax.TaxEngineResponse processRequest(commercetax.TaxEngineContext
taxEngineContext) {
commercetax.RequestType requestType = taxEngineContext.getRequestType();
if(requestType == commercetax.RequestType.CalculateTax){
return CalculateTaxService.getTax(taxEngineContext);
}
else
return null;
}
}

• This example shows the CalculateTaxService class.


global class CalculateTaxService {
// ============================================================================

// CONSTANT
// ============================================================================

private static final String AVALARA_ENDPOINT_URL_SANDBOX =


'https://sandbox-rest.avatax.com/api/v2';
// Avalara Endpoint URL Production
private static final String AVALARA_ENDPOINT_URL_PRODUCTION =
'https://rest.avatax.com/api/v2';
private static final String TEST_REQUEST_BODY = '{ "id": -1, "code": "00000131",
"companyId": -1, "date": "2017-02-03T00:00:00", "taxDate": "2017-02-03T00:00:00",
"status": "Temporary", "type": "SalesOrder", "reconciled": false, "totalAmount":
4000, "totalExempt": 0, "totalTax": 290, "totalTaxable": 4000,
"totalTaxCalculated": 290, "adjustmentReason": "NotAdjusted", "locked": false,
"version": 1, "modifiedDate": "2017-02-03T12:18:18.7347388Z", "modifiedUserId":
53894, "lines": [ { "id": -1, "transactionId": -1, "lineNumber":
"80241000000jNDCAA2", "discountAmount": 0, "exemptAmount": 0,
"exemptCertId": 0, "isItemTaxable": true, "lineAmount": 1000,
"reportingDate": "2017-02-03T00:00:00", "tax": 72.5, "taxableAmount":
1000, "taxCalculated": 72.5, "taxCode": "P0000000", "taxDate":
"2017-02-03T00:00:00", "taxIncluded": false, "details": [ {
"id": -1, "transactionLineId": -1, "transactionId": -1,
"country": "US", "region": "CA", "exemptAmount": 0,
"jurisCode": "06", "jurisName": "CALIFORNIA", "stateAssignedNo":
"", "jurisType": "STA", "nonTaxableAmount": 0, "rate":
0.06, "tax": 60, "taxableAmount": 1000, "taxType":
"Sales", "taxName": "CA STATE TAX", "taxAuthorityTypeId": 45,
"taxCalculated": 60, "rateType": "General" }, {
"id": -1, "transactionLineId": -1, "transactionId": -1,
"country": "US", "region": "CA", "exemptAmount": 0,
"jurisCode": "075", "jurisName": "SAN FRANCISCO",
"stateAssignedNo": "", "jurisType": "CTY", "nonTaxableAmount": 0,

961
Transaction Management Quote and Order Capture Apex Reference

"rate": 0.0025, "tax": 2.5, "taxableAmount": 1000,


"taxType": "Sales", "taxName": "CA COUNTY TAX",
"taxAuthorityTypeId": 45, "taxCalculated": 2.5, "rateType":
"General" }, { "id": -1, "transactionLineId": -1,
"transactionId": -1, "country": "US", "region": "CA",
"exemptAmount": 0, "jurisCode": "EMTV0", "jurisName": "SAN
FRANCISCO CO LOCAL TAX SL", "stateAssignedNo": "38", "jurisType":
"STJ", "nonTaxableAmount": 0, "rate": 0.01, "tax": 10,
"taxableAmount": 1000, "taxType": "Sales", "taxName":
"CA SPECIAL TAX", "taxAuthorityTypeId": 45, "taxCalculated": 10,
"rateType": "General" } ] } ]}';

private static String getTestResponseString(){

List<String> jsonResponse = new List<String> {


'"id": 0',
'"code": "testDocCode1231245984"',
'"companyId": 468039',
'"date": "2020-07-15"',
'"paymentDate": "2020-07-15"',
'"status": "Temporary"',
'"type": "SalesOrder"',
'"customerVendorCode": "testDocCode1234"',
'"customerCode": "testDocCode1234"',
'"reconciled": false',
'"totalAmount": 232',
'"totalExempt": 0',
'"totalDiscount": 0',
'"totalTax": 23.43',
'"totalTaxable": 232',
'"totalTaxCalculated": 23.43',
'"adjustmentReason": "NotAdjusted"',
'"locked": false',
'"version": 1',
'"exchangeRateEffectiveDate": "2020-07-15"',
'"exchangeRate": 1',
'"modifiedDate": "2020-08-13T11:19:20.4836636Z"',

'"modifiedUserId": 53894',
'"taxDate": "2020-07-15T00:00:00"',
'"lines": [{"id": 0,"transactionId":
0,"lineNumber": "1","discountAmount": 0,"exemptAmount": 0,"exemptCertId":
0,"isItemTaxable": true,"itemCode": "","lineAmount": 232,"quantity":
1,"reportingDate": "2020-07-15","tax": 23.43,"taxableAmount": 232,"taxCalculated":
23.43,"taxCode": "P0000000","taxCodeId": 8087,"taxDate":
"2020-07-15","taxOverrideType": "None","taxOverrideAmount": 0,"taxIncluded":
false,"details": [{"id": 0,"transactionLineId": 0,"transactionId": 0,"country":
"US","region": "WA","exemptAmount": 0,"jurisCode": "53","jurisName":
"WASHINGTON","stateAssignedNo": "","jurisType": "STA","jurisdictionType":
"State","nonTaxableAmount": 0,"rate": 0.065,"tax": 15.08,"taxableAmount":
232,"taxType": "Sales","taxSubTypeId": "S","taxName": "WA STATE
TAX","taxAuthorityTypeId": 45,"taxCalculated": 15.08,"rateType":
"General","rateTypeCode": "G","unitOfBasis": "PerCurrencyUnit","isNonPassThru":
false,"isFee": false},{"id": 0,"transactionLineId": 0,"transactionId": 0,"country":

962
Transaction Management Quote and Order Capture Apex Reference

"US","region": "WA","exemptAmount": 0,"jurisCode": "033","jurisName":


"KING","stateAssignedNo": "1700","jurisType": "CTY","jurisdictionType":
"County","nonTaxableAmount": 0,"rate": 0,"tax": 0,"taxableAmount": 232,"taxType":
"Sales","taxSubTypeId": "S","taxName": "WA COUNTY TAX","taxAuthorityTypeId":
45,"taxCalculated": 0,"rateType": "General","rateTypeCode": "G","unitOfBasis":
"PerCurrencyUnit","isNonPassThru": false,"isFee": false}],"nonPassthroughDetails":
[],"hsCode": "","costInsuranceFreight": 0,"vatCode": "","vatNumberTypeId": 0}]',
'"addresses": [{"id": 0,"transactionId":
0,"boundaryLevel": "Address","line1": "255 S. King Street","line2": "","line3":
"","city": "Seattle","region": "WA","postalCode": "98104","country":
"US","taxRegionId": 2109700,"latitude": "47.59821","longitude": "-122.33108"}]',
'"summary": [{"country": "US","region":
"WA","jurisType": "State","jurisCode": "53","jurisName":
"WASHINGTON","taxAuthorityType": 45,"stateAssignedNo": "","taxType":
"Sales","taxSubType": "S","taxName": "WA STATE TAX","rateType": "General","taxable":
232,"rate": 0.065,"tax": 15.08,"taxCalculated": 15.08,"nonTaxable": 0,"exemption":
0},{"country": "US","region": "WA","jurisType": "County","jurisCode":
"033","jurisName": "KING","taxAuthorityType": 45,"stateAssignedNo": "1700","taxType":
"Sales","taxSubType": "S","taxName": "WA COUNTY TAX","rateType": "General","taxable":
232,"rate": 0,"tax": 0,"taxCalculated": 0,"nonTaxable": 0,"exemption": 0}]'
};
return '{' + String.join(jsonResponse, ',') + '}';
}

public static commercetax.TaxEngineResponse getTax(commercetax.TaxEngineContext


taxEngineContext)
{
commercetax.CalculateTaxRequest request =
(commercetax.CalculateTaxRequest)taxEngineContext.getRequest();
commercetax.calculatetaxtype requestType = request.taxtype;
string referenceEntity = request.ReferenceEntityId;
try{
List<commercetax.TaxLineItemRequest> listOfLines = request.lineItems;
if(!listOfLines.isEmpty()){
HttpService sendHttpRequest = new HttpService();
sendHttpRequest.addHeader('Content-type', 'application/json');
String requestBody =
AvalaraJSONBuilder.getInstance().frameJsonForGetTaxOrderItem(request);
sendHttpRequest.post('/transactions/create',requestBody);
//system.debug('Request '+requestBody);
String responseString = '';
if(Test.isRunningTest()){
responseString = getTestResponseString();
} else{
responseString = sendHttpRequest.getResponse().getBody();
}
//system.debug(sendHttpRequest.getResponse());
//system.debug('response'+responseString);
//responseString = TEST_REQUEST_BODY;
system.debug('Heap size used ' +Limits.getHeapSize());

if(!responseString.contains('error'))
{
commercetax.CalculateTaxResponse response = new

963
Transaction Management Quote and Order Capture Apex Reference

commercetax.CalculateTaxResponse();
JsonSuccessParser jsonSuccessParserClass =
JsonSuccessParser.parse(responseString);
response.setTaxTransactionType(request.taxTransactionType);
response.setDocumentCode(jsonSuccessParserClass.code);

response.setReferenceDocumentCode(jsonSuccessParserClass.referenceCode);
if(jsonSuccessParserClass.status == 'Temporary') {

response.setStatus(commercetax.TaxTransactionStatus.Uncommitted);
}
if(jsonSuccessParserClass.status == 'Committed') {

response.setStatus(commercetax.TaxTransactionStatus.Committed);
}
response.setTaxType(requestType);
commercetax.AmountDetailsResponse headerAmountResponse = new
commercetax.AmountDetailsResponse();

headerAmountResponse.setTotalAmountWithTax(jsonSuccessParserClass.totalAmount +
jsonSuccessParserClass.totaltax);

headerAmountResponse.setExemptAmount(jsonSuccessParserClass.totalExempt);

headerAmountResponse.setTotalAmount(jsonSuccessParserClass.totalAmount);

headerAmountResponse.setTaxAmount(jsonSuccessParserClass.totalTax);
response.setAmountDetails(headerAmountResponse);

response.setStatusDescription(jsonSuccessParserClass.adjustmentReason);

response.setEffectiveDate(date.valueof(jsonSuccessParserClass.taxDate));

response.setTransactionDate(date.valueof(jsonSuccessParserClass.transactionDate));
response.setReferenceEntityId(referenceEntity);
response.setTaxTransactionId(jsonSuccessParserClass.id);
response.setCurrencyIsoCode(request.currencyIsoCode);
List<commercetax.LineItemResponse> lineItemResponses = new
List<commercetax.LineItemResponse>();
for(JsonSuccessParser.Lines linesToProcess:
jsonSuccessParserClass.lines)
{
commercetax.LineItemResponse lineItemResponse = new
commercetax.LineItemResponse();
Double rateCalculated = 0.0;
List<commercetax.TaxDetailsResponse> taxDetailsResponses =
new List<commercetax.TaxDetailsResponse>();
for(JsonSuccessParser.details linesDetails :
linesToProcess.details)
{
commercetax.TaxDetailsResponse taxDetailsResponse = new
commercetax.TaxDetailsResponse();
if(linesDetails.exemptAmount != 0){

964
Transaction Management Quote and Order Capture Apex Reference

taxDetailsResponse.setExemptAmount(linesDetails.exemptAmount);
taxDetailsResponse.setExemptReason('Some reason we
dont know');
}
commercetax.ImpositionResponse imposition = new
commercetax.ImpositionResponse();
imposition.setSubType(linesDetails.taxName);
imposition.setType(linesDetails.ratetype);
imposition.setSubType(linesDetails.taxName);
taxDetailsResponse.setImposition(imposition);
commercetax.JurisdictionResponse jurisdiction = new
commercetax.JurisdictionResponse();
jurisdiction.setCountry(linesDetails.country);
jurisdiction.setRegion(linesDetails.region);
jurisdiction.setName(linesDetails.jurisName);

jurisdiction.setStateAssignedNumber(linesDetails.stateAssignedNo);
jurisdiction.setId(linesDetails.jurisCode);
jurisdiction.setLevel(linesDetails.jurisType);
taxDetailsResponse.setJurisdiction(jurisdiction);

rateCalculated += linesDetails.rate;
taxDetailsResponse.setRate(rateCalculated);
taxDetailsResponse.setTax(linesDetails.taxCalculated);

taxDetailsResponse.setTaxableAmount(linesDetails.taxableAmount);

taxDetailsResponse.setTaxAuthorityTypeId(String.valueOf(linesDetails.taxAuthorityTypeId));

taxDetailsResponse.setTaxId(linesDetails.id);

taxDetailsResponse.setTaxRegionId(linesDetails.region);
taxDetailsResponses.add(taxDetailsResponse);

}
lineItemResponse.setTaxes(taxDetailsResponses);

lineItemResponse.setEffectiveDate(date.valueof(linesToProcess.taxDate));
lineItemResponse.setIsTaxable(true);
commercetax.AmountDetailsResponse amountResponse =
new commercetax.AmountDetailsResponse();

amountResponse.setTaxAmount(linesToProcess.taxCalculated);

amountResponse.setTotalAmount(linesToProcess.lineAmount);

amountResponse.setTotalAmountWithTax(linesToProcess.lineAmount+linesToProcess.taxCalculated);

amountResponse.setExemptAmount(linesToProcess.exemptAmount);
lineItemResponse.setAmountDetails(amountResponse);

lineItemResponse.setIsTaxable(linesToProcess.isItemTaxable);

965
Transaction Management Quote and Order Capture Apex Reference

lineItemResponse.setProductCode(linesToProcess.itemCode);

lineItemResponse.setTaxCode(linesToProcess.taxCode);
lineItemResponse.setLineNumber(linesToProcess.lineNumber);

lineItemResponse.setQuantity(linesToProcess.quantity);
lineItemResponses.add(lineItemResponse);
}
response.setLineItems(lineItemResponses);
return response;
}
else
{
JsonErrorParser jsonErrorParserClass =
JsonErrorParser.parse(responseString);
String message = null;
if(String.isNotBlank(jsonErrorParserClass.error.message))
{
message=jsonErrorParserClass.error.message;
}else{
String errorMessage = '';
for(JsonErrorParser.cls_details messageString :
jsonErrorParserClass.error.details)
{
if(String.isNotBlank(messageString.message) )
{
errorMessage = messageString.message;
}
}
message = errorMessage;
}
return new
commercetax.ErrorResponse(commercetax.resultcode.TaxEngineError, '501', message);

}
}else return null;
}
catch (Exception e)
{
throw e;
}
}
}

• In the HttpService class, replace the test value in the endpoint variable with the name of the
TaxTypedNamedCredential record. This class contains the credentials that are required to access your Avalara account
through Salesforce.

public with sharing class HttpService


{
// Attribute to implement singleton pattern for Order Product Service class
private static HttpService httpServiceInstance;

966
Transaction Management Quote and Order Capture Apex Reference

// VARIABLES

private HttpResponse httpResponse;


private Map<String,String> mapOfHeaderParameter = new Map<String,String>();
private enum Method {GET, POST}

/**
* @name getInstance
* @description get an Instance of Service class
* @params NA
* @return Http Service Class Instance
*/
public static HttpService getInstance()
{
if (NULL == httpServiceInstance)
{
httpServiceInstance = new HttpService();
}
return httpServiceInstance;
}

/**
* @name get
* @description Get Method to get a HTTP request
*/
public void get(String endPoint)
{
send(newRequest(Method.GET, endPoint));
}

/**
* @name post
* @description Post Method to Post a HTTP request
*/
public void post(String path, String requestBody)
{
String endPoint = 'callout:commerce.tax.TaxTypedNamedCredential:test'+path;
send(newRequest(Method.POST, endPoint, requestBody));
}

/**
* @name addHeader
* @description addHeader Methods to add all the defualt Header's required fo
rthe request
*/
public void addHeader(String name, String value)
{
mapOfHeaderParameter.put(name, value);
}

/**
* @name setHeader
* @description setHeader Methods to set setHeader for the request
*/

967
Transaction Management Quote and Order Capture Apex Reference

private void setHeader(HttpRequest request)


{
for(String headerValue : mapOfHeaderParameter.keySet())
{
request.setHeader(headerValue, mapOfHeaderParameter.get(headerValue));
}
}
/**
* @name newRequest
* @description newRequest Methods to make a new request
*/
private HttpRequest newRequest(Method method, String endPoint)
{
return newRequest(method, endPoint, NULL);
}

/**
* @name newRequest
* @description newRequest Methods to make a new request
*/
private HttpRequest newRequest(Method method, String endPoint, String requestBody)

{
HttpRequest request = new HttpRequest();
request.setMethod(Method.name());
setHeader(request);
request.setEndpoint(endPoint);
if (String.isNotBlank(requestBody))
{
request.setBody(requestBody);
}
request.setTimeout(120000);
return request;
}

/**
* @name send
* @description send Methods to send a request
*/
private void send(HttpRequest request)
{
try
{
Http http = new Http();
httpResponse = http.send(request);
}
catch(System.CalloutException e)
{
system.debug('callout exception happened' + e.getMessage());
}
catch(Exception e)
{
system.debug('callout did not happen' + e.getMessage());
}

968
Transaction Management Quote and Order Capture Apex Reference

/**
* @name getResponse
* @description getResponse Method to get the Response
*/
public HttpResponse getResponse()
{
return httpResponse;
}

/**
* @name getResponseToString
* @description getResponse Method to get the Responses
*/
public String getResponseToString()
{
return getResponse().toString();
}
}

• Parse the JsonSuccessParser response object by using the AvalaraJSONBuilder class to build the response
for your adapter.
This example shows the JsonSuccessParser class.
global with sharing class JsonSuccessParser
{
public static void consumeObject(JSONParser parser)
{
Integer depth = 0;
do {
JSONToken curr = parser.getCurrentToken();
if (curr == JSONToken.START_OBJECT ||
curr == JSONToken.START_ARRAY) {
depth++;
} else if (curr == JSONToken.END_OBJECT ||
curr == JSONToken.END_ARRAY) {
depth--;
}
} while (depth > 0 && parser.nextToken() != null);
}

public class Addresses {


public String id {get;set;}
public String transactionId {get;set;}
public String boundaryLevel {get;set;}
public String line1 {get;set;}
public String city {get;set;}
public String region {get;set;}
public String postalCode {get;set;}
public String country {get;set;}
public Integer taxRegionId {get;set;}

public Addresses(JSONParser parser) {

969
Transaction Management Quote and Order Capture Apex Reference

while (parser.nextToken() != JSONToken.END_OBJECT) {


if (parser.getCurrentToken() == JSONToken.FIELD_NAME) {
String text = parser.getText();
if (parser.nextToken() != JSONToken.VALUE_NULL) {
if (text == 'id') {
id = parser.getText();
} else if (text == 'transactionId') {
transactionId = parser.getText();
} else if (text == 'boundaryLevel') {
boundaryLevel = parser.getText();
} else if (text == 'line1') {
line1 = parser.getText();
} else if (text == 'city') {
city = parser.getText();
} else if (text == 'region') {
region = parser.getText();
} else if (text == 'postalCode') {
postalCode = parser.getText();
} else if (text == 'country') {
country = parser.getText();
} else if (text == 'taxRegionId') {
taxRegionId = parser.getIntegerValue();
} else {
consumeObject(parser);
}
}
}
}
}
}

public class Details {


public String id {get;set;}
public String transactionLineId {get;set;}
public String transactionId {get;set;}
public String country {get;set;}
public String region {get;set;}
public Integer exemptAmount {get;set;}
public String jurisCode {get;set;}
public String jurisName {get;set;}
public String stateAssignedNo {get;set;}
public String jurisType {get;set;}
public Integer nonTaxableAmount {get;set;}
public Double rate {get;set;}
public Double tax {get;set;}
public Integer taxableAmount {get;set;}
public String taxType {get;set;}
public String taxName {get;set;}
public Integer taxAuthorityTypeId {get;set;}
public Double taxCalculated {get;set;}
public String rateType {get;set;}

public Details(JSONParser parser) {


while (parser.nextToken() != JSONToken.END_OBJECT) {

970
Transaction Management Quote and Order Capture Apex Reference

if (parser.getCurrentToken() == JSONToken.FIELD_NAME) {
String text = parser.getText();
if (parser.nextToken() != JSONToken.VALUE_NULL) {
if (text == 'id') {
id = parser.getText();
} else if (text == 'transactionLineId') {
transactionLineId = parser.getText();
} else if (text == 'transactionId') {
transactionId = parser.getText();
} else if (text == 'country') {
country = parser.getText();
} else if (text == 'region') {
region = parser.getText();
} else if (text == 'exemptAmount') {
exemptAmount = parser.getIntegerValue();
} else if (text == 'jurisCode') {
jurisCode = parser.getText();
} else if (text == 'jurisName') {
jurisName = parser.getText();
} else if (text == 'stateAssignedNo') {
stateAssignedNo = parser.getText();
} else if (text == 'jurisType') {
jurisType = parser.getText();
} else if (text == 'nonTaxableAmount') {
nonTaxableAmount = parser.getIntegerValue();
} else if (text == 'rate') {
rate = parser.getDoubleValue();
} else if (text == 'tax') {
tax = parser.getDoubleValue();
} else if (text == 'taxableAmount') {
taxableAmount = parser.getIntegerValue();
} else if (text == 'taxType') {
taxType = parser.getText();
} else if (text == 'taxName') {
taxName = parser.getText();
} else if (text == 'taxAuthorityTypeId') {
taxAuthorityTypeId = parser.getIntegerValue();
} else if (text == 'taxCalculated') {
taxCalculated = parser.getDoubleValue();
} else if (text == 'rateType') {
rateType = parser.getText();
} else {
consumeObject(parser);
}
}
}
}
}
}

public class Messages {


public String summary {get;set;}
public String details {get;set;}
public String refersTo {get;set;}

971
Transaction Management Quote and Order Capture Apex Reference

public String severity {get;set;}


public String source {get;set;}

public Messages(JSONParser parser) {


while (parser.nextToken() != JSONToken.END_OBJECT) {
if (parser.getCurrentToken() == JSONToken.FIELD_NAME) {
String text = parser.getText();
if (parser.nextToken() != JSONToken.VALUE_NULL) {
if (text == 'summary') {
summary = parser.getText();
} else if (text == 'details') {
details = parser.getText();
} else if (text == 'refersTo') {
refersTo = parser.getText();
} else if (text == 'severity') {
severity = parser.getText();
} else if (text == 'source') {
source = parser.getText();
} else {
consumeObject(parser);
}
}
}
}
}
}

public String id {get;set;}


public String code {get;set;}
public String referenceCode {get;set;}
public Integer companyId {get;set;}
public String taxDate {get;set;}
public String transactionDate {get;set;}
public String status {get;set;}
public String type_Z {get;set;} // in json: type
public Boolean reconciled {get;set;}
public Integer totalAmount {get;set;}
public Integer totalExempt {get;set;}
public Double totalTax {get;set;}
public Integer totalTaxable {get;set;}
public Double totalTaxCalculated {get;set;}
public String adjustmentReason {get;set;}
public Boolean locked {get;set;}
public Integer version {get;set;}
public String modifiedDate {get;set;}
public Integer modifiedUserId {get;set;}
public List<Lines> lines {get;set;}
public List<Addresses> addresses {get;set;}
public List<Summary> summary {get;set;}
public List<Messages> messages {get;set;}

public JsonSuccessParser(JSONParser parser) {


while (parser.nextToken() != JSONToken.END_OBJECT) {
if (parser.getCurrentToken() == JSONToken.FIELD_NAME) {

972
Transaction Management Quote and Order Capture Apex Reference

String text = parser.getText();


if (parser.nextToken() != JSONToken.VALUE_NULL) {
if (text == 'id') {
id = parser.getText();
} else if (text == 'code') {
code = parser.getText();
} else if (text == 'referenceCode'){
referenceCode = parser.getText();
} else if (text == 'companyId') {
companyId = parser.getIntegerValue();
} else if (text == 'taxDate') {
taxDate = parser.getText();
} else if (text == 'date') {
transactionDate = parser.getText();
} else if (text == 'status') {
status = parser.getText();
} else if (text == 'type') {
type_Z = parser.getText();
} else if (text == 'reconciled') {
reconciled = parser.getBooleanValue();
} else if (text == 'totalAmount') {
totalAmount = parser.getIntegerValue();
} else if (text == 'totalExempt') {
totalExempt = parser.getIntegerValue();
} else if (text == 'totalTax') {
totalTax = parser.getDoubleValue();
} else if (text == 'totalTaxable') {
totalTaxable = parser.getIntegerValue();
} else if (text == 'totalTaxCalculated') {
totalTaxCalculated = parser.getDoubleValue();
} else if (text == 'adjustmentReason') {
adjustmentReason = parser.getText();
} else if (text == 'locked') {
locked = parser.getBooleanValue();
} else if (text == 'version') {
version = parser.getIntegerValue();
} else if (text == 'modifiedDate') {
modifiedDate = parser.getText();
} else if (text == 'modifiedUserId') {
modifiedUserId = parser.getIntegerValue();
} else if (text == 'lines') {
lines = new List<Lines>();
while (parser.nextToken() != JSONToken.END_ARRAY) {
lines.add(new Lines(parser));
}
} else if (text == 'addresses') {
addresses = new List<Addresses>();
while (parser.nextToken() != JSONToken.END_ARRAY) {
addresses.add(new Addresses(parser));
}
} else if (text == 'summary') {
summary = new List<Summary>();
while (parser.nextToken() != JSONToken.END_ARRAY) {
summary.add(new Summary(parser));

973
Transaction Management Quote and Order Capture Apex Reference

}
} else if (text == 'messages') {
messages = new List<Messages>();
while (parser.nextToken() != JSONToken.END_ARRAY) {
messages.add(new Messages(parser));
}
} else {
consumeObject(parser);
}
}
}
}
}

public class Summary {


public String country {get;set;}
public String region {get;set;}
public String jurisType {get;set;}
public String jurisCode {get;set;}
public String jurisName {get;set;}
public Integer taxAuthorityType {get;set;}
public String stateAssignedNo {get;set;}
public String taxType {get;set;}
public String taxName {get;set;}
public String taxGroup {get;set;}
public String rateType {get;set;}
public Integer taxable {get;set;}
public Double rate {get;set;}
public Double tax {get;set;}
public Double taxCalculated {get;set;}
public Integer nonTaxable {get;set;}
public Integer exemption {get;set;}

public Summary(JSONParser parser) {


while (parser.nextToken() != JSONToken.END_OBJECT) {
if (parser.getCurrentToken() == JSONToken.FIELD_NAME) {
String text = parser.getText();
if (parser.nextToken() != JSONToken.VALUE_NULL) {
if (text == 'country') {
country = parser.getText();
} else if (text == 'region') {
region = parser.getText();
} else if (text == 'jurisType') {
jurisType = parser.getText();
} else if (text == 'jurisCode') {
jurisCode = parser.getText();
} else if (text == 'jurisName') {
jurisName = parser.getText();
} else if (text == 'taxAuthorityType') {
taxAuthorityType = parser.getIntegerValue();
} else if (text == 'stateAssignedNo') {
stateAssignedNo = parser.getText();
} else if (text == 'taxType') {
taxType = parser.getText();

974
Transaction Management Quote and Order Capture Apex Reference

} else if (text == 'taxName') {


taxName = parser.getText();
} else if (text == 'taxGroup') {
taxGroup = parser.getText();
} else if (text == 'rateType') {
rateType = parser.getText();
} else if (text == 'taxable') {
taxable = parser.getIntegerValue();
} else if (text == 'rate') {
rate = parser.getDoubleValue();
} else if (text == 'tax') {
tax = parser.getDoubleValue();
} else if (text == 'taxCalculated') {
taxCalculated = parser.getDoubleValue();
} else if (text == 'nonTaxable') {
nonTaxable = parser.getIntegerValue();
} else if (text == 'exemption') {
exemption = parser.getIntegerValue();
} else {
consumeObject(parser);
}
}
}
}
}
}

public class Lines {


public String id {get;set;}
public String transactionId {get;set;}
public String lineNumber {get;set;}
public Integer discountAmount {get;set;}
public Integer exemptAmount {get;set;}
public Integer exemptCertId {get;set;}
public Boolean isItemTaxable {get;set;}
public Integer lineAmount {get;set;}
public Double quantity {get;set;}
public String reportingDate {get;set;}
public Double tax {get;set;}
public Integer taxableAmount {get;set;}
public Double taxCalculated {get;set;}
public String taxCode {get;set;}
public String taxDate {get;set;}
public Boolean taxIncluded {get;set;}
public List<Details> details {get;set;}
public String itemCode {get;set;}
public Lines(JSONParser parser) {
while (parser.nextToken() != JSONToken.END_OBJECT) {
if (parser.getCurrentToken() == JSONToken.FIELD_NAME) {
String text = parser.getText();
if (parser.nextToken() != JSONToken.VALUE_NULL) {
if (text == 'id') {
id = parser.getText();
} else if (text == 'transactionId') {

975
Transaction Management Quote and Order Capture Apex Reference

transactionId = parser.getText();
}else if (text == 'itemCode') {
itemCode = parser.getText();
}else if (text == 'lineNumber') {
lineNumber = parser.getText();
} else if (text == 'discountAmount') {
discountAmount = parser.getIntegerValue();
} else if (text == 'exemptAmount') {
exemptAmount = parser.getIntegerValue();
} else if (text == 'exemptCertId') {
exemptCertId = parser.getIntegerValue();
} else if (text == 'isItemTaxable') {
isItemTaxable = parser.getBooleanValue();
} else if (text == 'lineAmount') {
lineAmount = parser.getIntegerValue();
} else if (text == 'quantity') {
quantity = parser.getDoubleValue();
} else if (text == 'reportingDate') {
reportingDate = parser.getText();
} else if (text == 'tax') {
tax = parser.getDoubleValue();
} else if (text == 'taxableAmount') {
taxableAmount = parser.getIntegerValue();
} else if (text == 'taxCalculated') {
taxCalculated = parser.getDoubleValue();
} else if (text == 'taxCode') {
taxCode = parser.getText();
} else if (text == 'taxDate') {
taxDate = parser.getText();
} else if (text == 'taxIncluded') {
taxIncluded = parser.getBooleanValue();
} else if (text == 'details') {
details = new List<Details>();
while (parser.nextToken() != JSONToken.END_ARRAY) {
details.add(new Details(parser));
}
} else {
consumeObject(parser);
}
}
}
}
}
}

public static JsonSuccessParser parse(String json)


{
return new JsonSuccessParser(System.JSON.createParser(json));
}
}

976
Transaction Management Quote and Order Capture Apex Reference

Prepare your JSON request to call the Avalara endpoint by using the AvalaraJSONBuilder class.
public with sharing class AvalaraJSONBuilder
{
private static AvalaraJSONBuilder avalaraJSONBuilderInstance;

public static AvalaraJSONBuilder getInstance()


{
if (NULL == avalaraJSONBuilderInstance)
{
avalaraJSONBuilderInstance = new AvalaraJSONBuilder();
}
return avalaraJSONBuilderInstance;
}

public String frameJsonForGetTaxOrderItem(commercetax.CalculateTaxRequest


calculateTaxRequest)
{
try
{
Id accountid = null;
if(calculateTaxRequest.CustomerDetails.AccountId != null &&
calculateTaxRequest.CustomerDetails.AccountId != '')
accountid = Id.valueof(calculateTaxRequest.CustomerDetails.AccountId);

JSONGenerator jsonGeneratorInstance = JSON.createGenerator(true);


jsonGeneratorInstance.writeStartObject();
String type = null;
if(calculateTaxRequest.taxtype == commercetax.CalculateTaxType.Actual)
type ='SalesInvoice';
else type = 'SalesOrder';
jsonGeneratorInstance.writeStringField('type', type);
if(calculateTaxRequest.SellerDetails != null)
jsonGeneratorInstance.writeStringField('companyCode',
calculateTaxRequest.SellerDetails.code);
else
jsonGeneratorInstance.writeStringField('companyCode', 'billing2');
if(calculateTaxRequest.isCommit != null) {
jsonGeneratorInstance.writeBooleanField('commit',
calculateTaxRequest.isCommit);
}
if(calculateTaxRequest.documentcode != null){
jsonGeneratorInstance.writeStringField('code',
calculateTaxRequest.documentcode);
}else if(calculateTaxRequest.referenceEntityId != null) {
jsonGeneratorInstance.writeStringField('code',
calculateTaxRequest.referenceEntityId);
}
if(calculateTaxRequest.CustomerDetails.code == null && accountid !=null)
{
Account acc = [select id, name from account where id=:accountid];
jsonGeneratorInstance.writeStringField('customerCode', acc.name);
} else {
jsonGeneratorInstance.writeStringField('customerCode',
calculateTaxRequest.CustomerDetails.code);

977
Transaction Management Quote and Order Capture Apex Reference

}
if(calculateTaxRequest.EffectiveDate == null)
jsonGeneratorInstance.writeDateField('date', system.today());
else
jsonGeneratorInstance.writeDateTimeField('date',
calculateTaxRequest.EffectiveDate);

jsonGeneratorInstance.writeFieldName('lines');
jsonGeneratorInstance.writeStartArray();
for(integer i=0;i<1;i++){
for(Commercetax.TaxLineItemRequest lineItem :
calculateTaxRequest.LineItems)
{
jsonGeneratorInstance.writeStartObject();
if(lineItem.linenumber != null){
jsonGeneratorInstance.writeStringField('number',
lineItem.linenumber);
}
jsonGeneratorInstance.writeNumberField('quantity',
lineItem.Quantity);
jsonGeneratorInstance.writeNumberField('amount',
(lineItem.Amount));

jsonGeneratorInstance.writeStringField('taxCode',lineItem.taxCode);

jsonGeneratorInstance.writeFieldName('addresses');
jsonGeneratorInstance.writeStartObject();
jsonGeneratorInstance.writeFieldName('ShipFrom');
jsonGeneratorInstance.writeStartObject();
jsonGeneratorInstance.writeStringField('line1',
lineItem.addresses.shipfrom.street);
jsonGeneratorInstance.writeStringField('line2',
lineItem.addresses.shipfrom.street);
jsonGeneratorInstance.writeStringField('city',
lineItem.addresses.shipfrom.city);
jsonGeneratorInstance.writeStringField('region',
lineItem.addresses.shipfrom.state);
jsonGeneratorInstance.writeStringField('country',
lineItem.addresses.shipfrom.country);

jsonGeneratorInstance.writeStringField('postalCode',lineItem.addresses.shipfrom.postalcode);

jsonGeneratorInstance.writeEndObject();

jsonGeneratorInstance.writeFieldName('ShipTo');
jsonGeneratorInstance.writeStartObject();
jsonGeneratorInstance.writeStringField('line1',
lineItem.addresses.shipto.street);
jsonGeneratorInstance.writeStringField('line2',
lineItem.addresses.shipto.street);
jsonGeneratorInstance.writeStringField('city',
lineItem.addresses.shipto.city);
jsonGeneratorInstance.writeStringField('region',
lineItem.addresses.shipto.state);

978
Transaction Management Quote and Order Capture Apex Reference

jsonGeneratorInstance.writeStringField('country',
lineItem.addresses.shipto.country);

jsonGeneratorInstance.writeStringField('postalCode',lineItem.addresses.shipto.postalcode);

jsonGeneratorInstance.writeEndObject();

jsonGeneratorInstance.writeFieldName('pointOfOrderOrigin');
jsonGeneratorInstance.writeStartObject();
jsonGeneratorInstance.writeStringField('line1',
lineItem.addresses.soldto.street);
jsonGeneratorInstance.writeStringField('line2',
lineItem.addresses.soldto.street);
jsonGeneratorInstance.writeStringField('city',
lineItem.addresses.soldto.city);
jsonGeneratorInstance.writeStringField('region',
lineItem.addresses.soldto.state);
jsonGeneratorInstance.writeStringField('country',
lineItem.addresses.soldto.country);

jsonGeneratorInstance.writeStringField('postalCode',lineItem.addresses.soldto.postalcode);

jsonGeneratorInstance.writeEndObject();

if(lineItem.effectiveDate != null)
{
jsonGeneratorInstance.writeFieldName('taxOverride');
jsonGeneratorInstance.writeStartObject();
jsonGeneratorInstance.writeDateTimeField('taxDate',
lineItem.effectiveDate);
jsonGeneratorInstance.writeEndObject();
}
jsonGeneratorInstance.writeEndObject();
jsonGeneratorInstance.writeEndObject();
}
}
jsonGeneratorInstance.writeEndArray();
jsonGeneratorInstance.writeEndObject();
return jsonGeneratorInstance.getAsString();
}
catch (Exception e)
{
throw e;
}
}
}

• Use the JsonErrorParser class to extract the error details, if any.


global with sharing class JsonErrorParser
{
public cls_error error;

979
Transaction Management Quote and Order Capture Apex Reference

public class cls_error


{
public String code;
public String message;
public String target;
public cls_details[] details;
}

public class cls_details


{
public String code;
public String message;
public String description;
public String faultCode;
public String helpLink;
public String severity;
}
public static JsonErrorParser parse(String json)
{
return (JsonErrorParser) System.JSON.deserialize(json, JsonErrorParser.class);

}
}

TaxEngineContext Class
Wrapper class that stores details about the type of a tax calculation request.

Namespace
CommerceTax

Example
At the beginning of a tax adapter, use TaxEngineContext class to pass the value of a request type to an instance of RequestType.
global virtual class MockAdapter implements commercetax.TaxEngineAdapter {

global commercetax.TaxEngineResponse processRequest(commercetax.TaxEngineContext


taxEngineContext) {
commercetax.RequestType requestType = taxEngineContext.getRequestType();
commercetax.CalculateTaxRequest request =
(commercetax.CalculateTaxRequest)taxEngineContext.getRequest();

Build the rest of your adapter based on the type of request that you got from TaxEngineContext class.
if(requestType == commercetax.RequestType.CalculateTax){
commercetax.calculatetaxtype type = request.taxtype;
String docCode='';
if(request.DocumentCode == 'simulateEmptyDocumentCode')
docCode = '';
else if(request.DocumentCode != null)
docCode =request.DocumentCode;

980
Transaction Management Quote and Order Capture Apex Reference

else if(request.ReferenceEntityId != null) docCode = request.ReferenceEntityId;

else docCode = String.valueOf(getRandomInteger(0,2147483647));


commercetax.CalculateTaxResponse response = new
commercetax.CalculateTaxResponse();
if(request.isCommit == true) {
response.setStatus(commercetax.TaxTransactionStatus.Committed);
} else {
response.setStatus(commercetax.TaxTransactionStatus.Uncommitted);
}
}

TaxEngineContext Constructors
Learn more about the available constructors with the TaxEngineContext class.
TaxEngineContext Methods
Learn more about the available methods with the TaxEngineContext class.

TaxEngineContext Constructors
Learn more about the available constructors with the TaxEngineContext class.
The TaxEngineContext class includes these constructors.

TaxEngineContext(request, requestType, namedUri)


Initializes the TaxEngineContext object. This constructor is intended for test usage and throws an exception if used outside
of the Apex test context.

TaxEngineContext(request, requestType, namedUri)


Initializes the TaxEngineContext object. This constructor is intended for test usage and throws an exception if used outside of
the Apex test context.

Signature
TaxEngineContext(commercetax.TaxEngineRequest request, commercetax.RequestType
requestType, String namedUri)

Parameters
request
Type: TaxEngineRequest
Information about the request.
requestType
Type: RequestType
Whether the tax request is to calculate or estimate tax.
namedUri
Type: String
URI that was called as part of the tax calculation request.

981
Transaction Management Quote and Order Capture Apex Reference

TaxEngineContext Methods
Learn more about the available methods with the TaxEngineContext class.
The TaxEngineContext class includes these methods.

getNamedUri()
Retrieves the value of the NamedUri field of the TaxEngineContext class.
getRequest()
Gets the value of the TaxEngineContext's Request field.
getRequestType()
Gets the value of the RequestType field of the TaxEngineContext class.

getNamedUri()
Retrieves the value of the NamedUri field of the TaxEngineContext class.

Signature
global String getNamedUri()

Return Value
Type: String

getRequest()
Gets the value of the TaxEngineContext's Request field.

Signature
global commercetax.TaxEngineRequest getRequest()

Return Value
Type: TaxEngineRequest
An implemented instance of an external tax engine's interface for processing requests. We've provided the TaxEngineRequest
interface for you to test within mock adapters with classes that implement it, such as CalculateTaxRequest. However, don’t use it outside
of a testing context.

getRequestType()
Gets the value of the RequestType field of the TaxEngineContext class.

Signature
global commercetax.RequestType getRequestType()

982
Transaction Management Quote and Order Capture Apex Reference

Return Value
Type: RequestType
Indicates whether the calculation request was for actual or calculated tax.

TaxLineItemRequest Class
Contains line item details of a tax request.

Namespace
CommerceTax

TaxLineItemRequest Constructors
Learn more about the constructors available with the TaxLineItemRequest class.
TaxLineItemRequest Properties
Learn more about the available properties with the TaxLineItemRequest class.
TaxLineItemRequest Methods
Learn more about the available methods with the TaxLineItemRequest class.

TaxLineItemRequest Constructors
Learn more about the constructors available with the TaxLineItemRequest class.
The TaxLineItemRequest class includes these constructors.

TaxLineItemRequest(addresses, amount, description, productCode, quantity, lineNumber, taxCode, effectiveDate)


Initializes the request for the tax line item. This constructor is intended for test usage and throws an exception if used outside of the
Apex test context.

TaxLineItemRequest(addresses, amount, description, productCode, quantity, lineNumber,


taxCode, effectiveDate)
Initializes the request for the tax line item. This constructor is intended for test usage and throws an exception if used outside of the
Apex test context.

Signature
global TaxLineItemRequest(commercetax.LineTaxAddressesRequest addresses, Double amount,
String description, String productCode, Double quantity, String lineNumber, String
taxCode, Datetime effectiveDate)

Parameters
addresses
Type: LineTaxAddressesRequest
Information about the addresses applied to each line item in a tax calculation request.

983
Transaction Management Quote and Order Capture Apex Reference

amount
Type: Double
Total amount (in a given currency) represented by a line item sent for tax calculation.
description
Type: String
User-defined description for a tax line item.
productCode
Type: String
Catalog code for the product represented by the tax line item.
quantity
Type: Double
The number of units of a given product that the tax line item represents.
lineNumber
Type: String
Unique number used to identify a tax line item.
taxCode
Type: String
Code used to identify how tax is calculated for a tax line item.
effectiveDate
Type: Datetime
This is a user-defined date used for reporting only.

TaxLineItemRequest Properties
Learn more about the available properties with the TaxLineItemRequest class.
The TaxLineItemRequest class includes these properties.

addresses
Contains the list of addresses of a line item.
amount
Total amount (in a given currency) represented by a line item sent for tax calculation.
description
User-defined description for a tax line item.
effectiveDate
The date that a tax transaction takes effect on a line item. This is a user-defined date used for reporting only.
lineNumber
Unique number used to identify a tax line item.
productCode
Catalog code for the product represented by the tax line item.
quantity
Number of units of a given product that the tax line item represents.

984
Transaction Management Quote and Order Capture Apex Reference

taxCode
Code used to identify how tax is calculated for a tax line item.

addresses
Contains the list of addresses of a line item.

Signature
public commercetax.LineTaxAddressesRequest addresses {get; set;}

Property Value
Type: commercetax.LineTaxAddressesRequest

amount
Total amount (in a given currency) represented by a line item sent for tax calculation.

Signature
global Double amount {get; set;}

Property Value
Type: Double

description
User-defined description for a tax line item.

Signature
global String description {get; set;}

Property Value
Type: String

effectiveDate
The date that a tax transaction takes effect on a line item. This is a user-defined date used for reporting only.

Signature
global Datetime effectiveDate {get; set;}

Property Value
Type: Datetime

985
Transaction Management Quote and Order Capture Apex Reference

lineNumber
Unique number used to identify a tax line item.

Signature
global String lineNumber {get; set;}

Property Value
Type: String

productCode
Catalog code for the product represented by the tax line item.

Signature
global String productCode {get; set;}

Property Value
Type: String

quantity
Number of units of a given product that the tax line item represents.

Signature
global Double quantity {get; set;}

Property Value
Type: Double

taxCode
Code used to identify how tax is calculated for a tax line item.

Signature
global String taxCode {get; set;}

Property Value
Type: String

TaxLineItemRequest Methods
Learn more about the available methods with the TaxLineItemRequest class.
The TaxLineItemRequest class includes these methods.

986
Transaction Management Quote and Order Capture Apex Reference

equals(obj)
Maintains the integrity of lists of type TaxLineItemRequest by determining the equality of external objects in a list. This
method is dynamic and is based on the equals() method in Java.
hashCode()
Maintains the integrity of lists of type TaxLineItemRequest by determining the uniqueness of the external object records in
a list.
toString()
Converts a value to a string.

equals(obj)
Maintains the integrity of lists of type TaxLineItemRequest by determining the equality of external objects in a list. This method
is dynamic and is based on the equals() method in Java.

Signature
global Boolean equals(Object obj)

Parameters
obj
Type: Object
External object whose key is to be validated.

Return Value
Type: Boolean

hashCode()
Maintains the integrity of lists of type TaxLineItemRequest by determining the uniqueness of the external object records in a
list.

Signature
global Integer hashCode()

Return Value
Type: Integer

toString()
Converts a value to a string.

Signature
global String toString()

987
Transaction Management Quote and Order Capture Apex Reference

Return Value
Type: String

TaxSellerDetailsRequest Class
Contains tax code details used in the tax calculation request.

Namespace
CommerceTax

TaxSellerDetailsRequest Constructors
Learn more about the available constructors with the TaxSellerDetailsRequest class.
TaxSellerDetailsRequest Properties
Learn more about the available properties with the TaxSellerDetailsRequest class.
TaxSellerDetailsRequest Methods
Learn more about the available methods with the TaxSellerDetailsRequest class.

TaxSellerDetailsRequest Constructors
Learn more about the available constructors with the TaxSellerDetailsRequest class.
The TaxSellerDetailsRequest class includes these constructors.

TaxSellerDetailsRequest(code)
Initializes the request for the tax seller details. This constructor is intended for test usage and throws an exception if used outside of
the Apex test context

TaxSellerDetailsRequest(code)
Initializes the request for the tax seller details. This constructor is intended for test usage and throws an exception if used outside of the
Apex test context

Signature
global TaxSellerDetailsRequest(String code)

Parameters
code
Type: String
Tax code used for tax calculation.

TaxSellerDetailsRequest Properties
Learn more about the available properties with the TaxSellerDetailsRequest class.
The TaxSellerDetailsRequest class includes these properties.

988
Transaction Management Quote and Order Capture Apex Reference

code
Tax code used for tax calculation.

code
Tax code used for tax calculation.

Signature
global String code {get; set;}

Property Value
Type: String

TaxSellerDetailsRequest Methods
Learn more about the available methods with the TaxSellerDetailsRequest class.
The TaxSellerDetailsRequest class includes these methods.

equals(obj)
Maintains the integrity of lists of type TaxSellerDetailsRequest by determining the equality of the external objects in a
list. This method is dynamic and based on the equals() method in Java.
hashCode()
Maintains the integrity of lists of type TaxSellerDetailsRequest by determining the uniqueness of the external objects
in a list.
toString()
Converts a value to a string.

equals(obj)
Maintains the integrity of lists of type TaxSellerDetailsRequest by determining the equality of the external objects in a list.
This method is dynamic and based on the equals() method in Java.

Signature
global Boolean equals(Object obj)

Parameters
obj
Type: Object
External object whose key is to be validated.

Return Value
Type: Boolean

989
Transaction Management Quote and Order Capture Apex Reference

hashCode()
Maintains the integrity of lists of type TaxSellerDetailsRequest by determining the uniqueness of the external objects in a
list.

Signature
global Integer hashCode()

Return Value
Type: Integer

toString()
Converts a value to a string.

Signature
global String toString()

Return Value
Type: String

TaxTransactionRequest Class
Abstract class for storing customer details used in tax calculation and estimation requests.

Namespace
CommerceTax

Usage
Specify the CommerceTax namespace when creating an instance of this class. The constructor of this class takes no arguments. For
example, let's say you create an instance of CalculateTaxRequest class, which extends the TaxTransactionRequest
class.

TaxTransactionRequest Constructors
Learn more about the available constructors with the TaxTransactionRequest class.
TaxTransactionRequest Properties
Learn more about the available properties with the TaxTransactionRequest class.
TaxTransactionRequest Methods

TaxTransactionRequest Constructors
Learn more about the available constructors with the TaxTransactionRequest class.
The TaxTransactionRequest class includes these constructors.

990
Transaction Management Quote and Order Capture Apex Reference

TaxTransactionRequest(addresses, currencyIsoCode, customerDetails, description, documentCode, referenceDocumentCode,


transactionDate, effectiveDate, lineItems, referenceEntityId, sellerDetails)
Initializes the request for the tax transaction. This constructor is intended for test usage and throws an exception if used outside of
the Apex test context.

TaxTransactionRequest(addresses, currencyIsoCode, customerDetails, description,


documentCode, referenceDocumentCode, transactionDate, effectiveDate, lineItems,
referenceEntityId, sellerDetails)
Initializes the request for the tax transaction. This constructor is intended for test usage and throws an exception if used outside of the
Apex test context.

Signature
global TaxTransactionRequest(commercetax.HeaderTaxAddressesRequest addresses, String
currencyIsoCode, commercetax.TaxCustomerDetailsRequest customerDetails, String
description, String documentCode, String referenceDocumentCode, Datetime transactionDate,
Datetime effectiveDate, List<commercetax.TaxLineItemRequest> lineItems, String
referenceEntityId, commercetax.TaxSellerDetailsRequest sellerDetails)

Parameters
addresses
Type: HeaderTaxAddressesRequest
Tax addresses, such as Ship To and Bill From.
currencyIsoCode
Type: String
Three-letter ISO 4217 currency code associated with the TaxTransactionRequest.
customerDetails
Type: TaxCustomerDetailsRequest
Customer information used in tax calculation.
description
Type: String
Optional user-defined description for providing more information about the tax transaction request.
documentCode
Type: String
Code for documents that are used to provide more information in the tax calculation process.
referenceDocumentCode
Type: String
Code for additional documents that are used in the tax calculation process.
transactionDate
Type: Datetime
The date that the tax transaction occurred.

991
Transaction Management Quote and Order Capture Apex Reference

effectiveDate
Type: Datetime
The date that the tax transaction takes effect. User-defined and used only for reporting purposes.
lineItems
Type: List<TaxLineItemRequest>
A list of line items on which tax is calculated.
referenceEntityId
Type: String
ID of an object related to the line items sent for tax calculation.
sellerDetails
Type: TaxSellerDetailsRequest
Contains tax code information used in a tax calculation request.

TaxTransactionRequest Properties
Learn more about the available properties with the TaxTransactionRequest class.
The TaxTransactionRequest class includes these properties.

addresses
A list of addresses (such as Ship To and Sold To) used as part of the tax transaction.
currencyIsoCode
Three-letter ISO 4217 currency code associated with the TaxTransactionRequest.
customerDetails
Customer information used in tax calculation.
description
Optional user-defined description for providing more information about the tax transaction request.
documentCode
Code for documents used to provide more information in the tax calculation process.
effectiveDate
The date that the tax transaction takes effect. User-defined and used only for reporting purposes.
lineItems
A list of line items on which tax will be calculated.
referenceDocumentCode
Code for documents used to provide more information in the tax calculation process.
referenceEntityId
ID of an object related to the line items sent for tax calculation.
sellerDetails
Contains tax code information used in a tax calculation request.
transactionDate
The date that the tax transaction occurred.

992
Transaction Management Quote and Order Capture Apex Reference

addresses
A list of addresses (such as Ship To and Sold To) used as part of the tax transaction.

Signature
global commercetax.HeaderTaxAddressesRequest addresses {get; set;}

Property Value
Type: HeaderTaxAddressesRequest

currencyIsoCode
Three-letter ISO 4217 currency code associated with the TaxTransactionRequest.

Signature
global String currencyIsoCode {get; set;}

Property Value
Type: String

customerDetails
Customer information used in tax calculation.

Signature
global CommerceTax.TaxCustomerDetailsRequest customerDetails {get; set;}

Property Value
Type: TaxCustomerDetailsRequest

description
Optional user-defined description for providing more information about the tax transaction request.

Signature
global String description {get; set;}

Property Value
Type: String

documentCode
Code for documents used to provide more information in the tax calculation process.

993
Transaction Management Quote and Order Capture Apex Reference

Signature
global String documentCode {get; set;}

Property Value
Type: String

effectiveDate
The date that the tax transaction takes effect. User-defined and used only for reporting purposes.

Signature
global Datetime effectiveDate {get; set;}

Property Value
Type: Datetime

lineItems
A list of line items on which tax will be calculated.

Signature
global List<CommerceTax.TaxLineItemRequest> lineItems {get; set;}

Property Value
Type: List<TaxLineItemRequest>

referenceDocumentCode
Code for documents used to provide more information in the tax calculation process.

Signature
global String referenceDocumentCode {get; set;}

Property Value
Type: String

referenceEntityId
ID of an object related to the line items sent for tax calculation.

Signature
global String referenceEntityId {get; set;}

994
Transaction Management Quote and Order Capture Apex Reference

Property Value
Type: String

sellerDetails
Contains tax code information used in a tax calculation request.

Signature
global commercetax.TaxSellerDetailsRequest sellerDetails {get; set;}

Property Value
Type: TaxSellerDetailsRequest

transactionDate
The date that the tax transaction occurred.

Signature
global Datetime transactionDate {get; set;}

Property Value
Type: Datetime

TaxTransactionRequest Methods
The following are methods for TaxTransactionRequest.

equals(obj)
Maintains the integrity of lists of type TaxTransactionRequest by determining the equality of external objects in a list. This
method is dynamic and based on the equals() method in Java.
hashCode()
Maintains the integrity of lists of type TaxTransactionRequest by determining the uniqueness of the external object records
in a list.
toString()
Converts a value to a string.

equals(obj)
Maintains the integrity of lists of type TaxTransactionRequest by determining the equality of external objects in a list. This
method is dynamic and based on the equals() method in Java.

Signature
global Boolean equals(Object obj)

995
Transaction Management Quote and Order Capture Apex Reference

Parameters
obj
Type: Object

Return Value
Type: Boolean

hashCode()
Maintains the integrity of lists of type TaxTransactionRequest by determining the uniqueness of the external object records
in a list.

Signature
global Integer hashCode()

Return Value
Type: Integer

toString()
Converts a value to a string.

Signature
global String toString()

Return Value
Type: String

TaxTransactionStatus Enum
Shows whether the tax transaction has been committed or uncommitted.

Usage
Used by the CalculateTaxResponse class method.

Enum Values
The commercetax.TaxTransactionStatus enum includes these values.

Value Description
Committed Tax has been calculated and committed.

Uncommitted Tax has been calculated but hasn't been committed.

996
Transaction Management Quote and Order Capture Apex Reference

TaxTransactionType Enum
Shows whether the tax transaction is for a credit or debit transaction.

Usage
Used by the CalculateTaxResponse and CalculateTaxRequest class methods.

Enum Values
The commercetax.TaxTransactionType enum includes these values.

Value Description
Credit Represents a credit transaction.

Debit Represents a debit transaction.

PlaceQuote Namespace
The PlaceQuote namespace provides classes and methods to create or update quotes with pricing preferences and configuration
options.
The PlaceQuote namespace includes these classes.

CatalogRatesPreferenceEnum Enum
Specifies the rate card entries defined in the catalog that must be fetched for quote line items, with usage-based selling during the
quote creation process.
ConfigurationInputEnum Enum
Specifies the configuration input for the request to place a quote.
ConfigurationOptionsInput Class
Contains methods and properties to set the configuration options for the input to the product configurator.
GraphRequest Class
Contains constructors and properties to set the graph ID and a list of records to be ingested. The list of records is specified in a
key-value map format that contains the field values of an order.
PlaceQuoteException Class
Contains methods to hold the exception details for the place quote request.
PlaceQuoteResponse Class
Contains properties to hold the response to the place quote request.
PlaceQuoteRLMApexProcessor Class
Contains methods to place a quote with details of the graph request, pricing preferences, and configuration options.
PricingPreferenceEnum Enum
Specifies the pricing preference during the create quote process.
RecordResource Class
Contains constructors and properties to create a record object from the field values of a quote.

997
Transaction Management Quote and Order Capture Apex Reference

RecordWithReferenceRequest Class
Contains constructors and properties to associate a record object with a reference identifier.

CatalogRatesPreferenceEnum Enum
Specifies the rate card entries defined in the catalog that must be fetched for quote line items, with usage-based selling during the quote
creation process.

Usage
This enum is available when the Usage-Based Selling feature is enabled.

Enum Values
The placequote.CatalogRatesPreferenceEnum enum includes these values.

Value Description
Fetch Retrieves the rate card entries defined in the catalog for quote line items during the
quote creation process.

Skip Skips the retrieval of rate card entries for quote line items during the quote creation
process. The default value is Skip.

ConfigurationInputEnum Enum
Specifies the configuration input for the request to place a quote.

Usage
Use these enum values for the configurationInputEnum property in the PlaceQuoteRLMApexProcessor class.

Enum Values
The placequote.ConfigurationInputEnum enum has these values.

Value Description
RunAndAllowErrors Run the configuration and proceed with order ingestion upon encountering any
configuration errors.

RunAndBlockErrors Run the configuration and block order ingestion upon encountering any
configuration errors.

Skip Skip the configuration execution.

ConfigurationOptionsInput Class
Contains methods and properties to set the configuration options for the input to the product configurator.

998
Transaction Management Quote and Order Capture Apex Reference

Namespace
PlaceQuote

Usage
This class holds the required details of the product configuration input. Set the class properties to enable default configuration, execution
of configuration rules, and validation of the product catalog. Use these class properties as an input to
the PlaceQuoteRLMApexProcessor class method.

Example
PlaceQuote.GraphRequest graph = new PlaceQuote.GraphRequest('test',listOfRecords);
PlaceQuote.PricingPreferenceEnum pricingPreference =
PlaceQuote.PricingPreferenceEnum.System;
PlaceQuote.ConfigurationInputEnum configurationPreference =
PlaceQuote.ConfigurationInputEnum.RunAndAllowErrors;
PlaceQuote.ConfigurationOptionsInput cInput = new PlaceQuote.ConfigurationOptionsInput();

cInput.addDefaultConfiguration = true;
cInput.executeConfigurationRules = true;
cInput.validateAmendRenewCancel = true;
cInput.validateProductCatalog = true;
//Place Quote Call
PlaceQuote.PlaceQuoteResponse resp =
PlaceQuote.PlaceQuoteRLMApexProcessor.execute(pricingPreference,graph,configurationPreference,cInput);

ConfigurationOptionsInput Properties
Set the ConfigurationOptionsInput class properties to add default configuration, execute configuration rules, and validate
the product catalog.
ConfigurationOptionsInput Methods
Learn more about the methods available with the ConfigurationOptionsInput class.

ConfigurationOptionsInput Properties
Set the ConfigurationOptionsInput class properties to add default configuration, execute configuration rules, and validate
the product catalog.
The ConfigurationOptionsInput class includes these properties.

addDefaultConfiguration
Sets the default product configuration, such as bundle and product attributes, for a quote request.
executeConfigurationRules
Sets the requirement for a quote to adhere to the configuration rules.
validateAmendRenewCancel
Sets the requirement to run validations related to amend, renew, or cancel processes.
validateProductCatalog
Sets the requirement to validate a quote against the product catalog.

999
Transaction Management Quote and Order Capture Apex Reference

addDefaultConfiguration
Sets the default product configuration, such as bundle and product attributes, for a quote request.

Signature
public Boolean addDefaultConfiguration {get; set;}

Property Value
Type: Boolean
Indicates whether to automatically add default configuration to the order (true) or not (false).

executeConfigurationRules
Sets the requirement for a quote to adhere to the configuration rules.

Signature
public Boolean executeConfigurationRules {get; set;}

Property Value
Type: Boolean
Indicates whether the order must adhere to configuration rules during processing (true) or bypass them (false).

validateAmendRenewCancel
Sets the requirement to run validations related to amend, renew, or cancel processes.

Signature
public Boolean validateAmendRenewCancel {get; set;}

Property Value
Type: Boolean
Indicates whether to run validations related to amend, renew, or cancel processes (true) or not (false).

validateProductCatalog
Sets the requirement to validate a quote against the product catalog.

Signature
public Boolean validateProductCatalog {get; set;}

Property Value
Type: Boolean

1000
Transaction Management Quote and Order Capture Apex Reference

Indicates whether the quote must be validated against the product catalog (true) or not (false).

ConfigurationOptionsInput Methods
Learn more about the methods available with the ConfigurationOptionsInput class.
The ConfigurationOptionsInput class includes these methods.

equals(obj)
Determines the equality of external objects in a list. This method is dynamic and is based on the equals() method in Java.
hashCode()
Determines the uniqueness of the external object records in a list.
toString()
Converts a value to a string.

equals(obj)
Determines the equality of external objects in a list. This method is dynamic and is based on the equals() method in Java.

Signature
public Boolean equals(Object obj)

Parameters
obj
Type: Object
Reference object that’s used to compare with the class object.

Return Value
Type: Boolean
Indicates if the class object is same as the reference object (true) or not (false).

hashCode()
Determines the uniqueness of the external object records in a list.

Signature
public Integer hashCode()

Return Value
Type: Integer
Integer hash code that represents the value of the object. Equal objects as per the equals() method must return the same hash
code.

1001
Transaction Management Quote and Order Capture Apex Reference

toString()
Converts a value to a string.

Signature
public String toString()

Return Value
Type: String

GraphRequest Class
Contains constructors and properties to set the graph ID and a list of records to be ingested. The list of records is specified in a key-value
map format that contains the field values of an order.

Namespace
PlaceQuote

Example
Invoke the Place Quote Apex API by using these steps.
• Set up a quote and quote line item. To associate the Record object with a reference identifier, create an instance of the
RecordWithReferenceRequest class.

//Quote Setup
PlaceQuote.RecordResource quoteRecord = new
PlaceQuote.RecordResource(Quote.getSobjectType(),'POST');
Map<String,Object> quoteFieldValues = new Map<String,Object>();
quoteFieldValues.put('Name','q-ap12');
quoteFieldValues.put('OpportunityId','006xx000001aBFcAAM');
quoteFieldValues.put('Pricebook2Id','01sxx0000005pvRAAQ');
quoteRecord.fieldValues = quoteFieldValues;

//Quote Line Item Setup


PlaceQuote.RecordResource quoteLineItemRecord1 = new
PlaceQuote.RecordResource(QuoteLineItem.getSobjectType(),'POST');
Map<String,Object> quoteLineItemFieldValues = new Map<String,Object>();
quoteLineItemFieldValues.put('Product2Id','01txx0000006ibwAAA');
quoteLineItemFieldValues.put('PricebookEntryId','01uxx0000008zPqAAI');
quoteLineItemFieldValues.put('Quantity','2.0');
quoteLineItemFieldValues.put('UnitPrice','5.0');
quoteLineItemFieldValues.put('StartDate','2023-03-15');
quoteLineItemFieldValues.put('QuoteId','@{refQuote.id}');
quoteLineItemRecord1.fieldValues = quoteLineItemFieldValues;
PlaceQuote.RecordWithReferenceRequest quoteItemRecords = new
PlaceQuote.RecordWithReferenceRequest('refQuote',quoteRecord);
PlaceQuote.RecordWithReferenceRequest quoteLineItemRecords1 = new
PlaceQuote.RecordWithReferenceRequest('refQuoteItem1',quoteLineItemRecord1);

1002
Transaction Management Quote and Order Capture Apex Reference

• To create a quote line relationship, create an instance of the RecordResource class.


PlaceQuote.RecordResource quoteLineRelationship1 = new
PlaceQuote.RecordResource(QuoteLineRelationship.getSobjectType(),'POST');
Map<String,Object> quoteLineRelationshipValues = new Map<String,Object>();
quoteLineRelationshipValues.put('ProductRelationshipTypeId','0yoxx00000000JNAAY');
quoteLineRelationshipValues.put('MainQuoteLineId','@{refQuoteItem2.id}');
quoteLineRelationshipValues.put('AssociatedQuoteLineId','@{refQuoteItem1.id}');
quoteLineRelationshipValues.put('AssociatedQuoteLinePricing','IncludedInBundlePrice');

quoteLineRelationship1.fieldValues = quoteLineRelationshipValues;

• Create the list of records to be ingested.

PlaceQuote.RecordWithReferenceRequest quoteLineRelationship = new


PlaceQuote.RecordWithReferenceRequest('QuoteLineRelationship',quoteLineRelationship1);
List<PlaceQuote.RecordWithReferenceRequest> listOfRecords = new
List<PlaceQuote.RecordWithReferenceRequest>();
listOfRecords.add(quoteItemRecords);
listOfRecords.add(quoteLineItemRecords1);
listOfRecords.add(quoteLineItemRecords2);
listOfRecords.add(quoteLineRelationship);

• To contain all record objects, create an instance of the GraphRequest class.

Note: The CatalogRatesPreferenceEnum enum is available when the Usage-Based Selling feature is enabled.

PlaceQuote.GraphRequest graph = new PlaceQuote.GraphRequest('test',listOfRecords);


PlaceQuote.ConfigurationOptionsInput cInput = new
PlaceQuote.ConfigurationOptionsInput();
PlaceQuote.CatalogRatesPreferenceEnum catalogRatesPreference =
PlaceQuote.CatalogRatesPreferenceEnum.Fetch;
....PlaceQuote.ConfigurationInputEnum configurationPreference =
PlaceQuote.ConfigurationInputEnum.RunAndAllowErrors;
PlaceQuote.PricingPreferenceEnum pricingPreference =
PlaceQuote.PricingPreferenceEnum.System;
//System.debug(graph);

//Place Quote Call


PlaceQuote.PlaceQuoteResponse resp =
PlaceQuote.PlaceQuoteRLMApexProcessor.execute(pricingPreference, catalogRatesPreference,
graph, configurationPreference, cInput);
System.debug(resp);

GraphRequest Constructors
Learn more about the available constructors with the GraphRequest class.
GraphRequest Properties

GraphRequest Constructors
Learn more about the available constructors with the GraphRequest class.

1003
Transaction Management Quote and Order Capture Apex Reference

The GraphRequest class includes these constructors.

GraphRequest(graphId, records)
Creates an instance of the GraphRequest class to assign the graph ID and a list of records to be ingested.

GraphRequest(graphId, records)
Creates an instance of the GraphRequest class to assign the graph ID and a list of records to be ingested.

Signature
public GraphRequest(String graphId, List<placequote.RecordWithReferenceRequest> records)

Parameters
graphId
Type: String
ID of the graph.
records
Type: List<placequote.RecordWithReferenceRequest on page 1014>
List of records to be ingested.

GraphRequest Properties
The following are properties for GraphRequest.

graphId
Set the graphId property to assign the ID value of the graph.

graphId
Set the graphId property to assign the ID value of the graph.

Signature
public String graphId {get; set;}

Property Value
Type: String

PlaceQuoteException Class
Contains methods to hold the exception details for the place quote request.

Namespace
PlaceQuote

1004
Transaction Management Quote and Order Capture Apex Reference

PlaceQuoteException Methods
Learn more about the methods available with the PlaceQuoteException class.

PlaceQuoteException Methods
Learn more about the methods available with the PlaceQuoteException class.
The PlaceQuoteException class includes these methods.

getErrorCode()
Gets the error code that’s associated to the place quote request.

getErrorCode()
Gets the error code that’s associated to the place quote request.

Signature
public String getErrorCode()

Return Value
Type: String

PlaceQuoteResponse Class
Contains properties to hold the response to the place quote request.

Namespace
PlaceQuote

Example
PlaceQuote.PlaceQuoteResponse resp =
PlaceQuote.PlaceQuoteExecutor.execute(internalEnum,graph);

PlaceQuoteResponse Properties
Learn more about the available properties with the PlaceQuoteResponse class.

PlaceQuoteResponse Properties
Learn more about the available properties with the PlaceQuoteResponse class.
The PlaceQuoteResponse class includes these properties.

quoteId
Get the ID of the quote that’s created after a successful request.

1005
Transaction Management Quote and Order Capture Apex Reference

requestIdentifier
Get the request ID of the process to query the asynchronous status of the Place Quote Apex API.
responseError
Get the list of errors encountered during the synchronous processing of the API request.
statusURL
Get the asynchronous status URL of the request, if available.
success
Get the request status of the synchronous part of the processing.

quoteId
Get the ID of the quote that’s created after a successful request.

Signature
public String quoteId {get; set;}

Property Value
Type: String

requestIdentifier
Get the request ID of the process to query the asynchronous status of the Place Quote Apex API.

Signature
public String requestIdentifier {get; set;}

Property Value
Type: String

responseError
Get the list of errors encountered during the synchronous processing of the API request.

Signature
public List<ConnectApi.PlaceQuoteErrorResponse> responseError {get; set;}

Property Value
Type: List<ConnectApi.PlaceQuoteErrorResponse>

statusURL
Get the asynchronous status URL of the request, if available.

1006
Transaction Management Quote and Order Capture Apex Reference

Signature
public String statusURL {get; set;}

Property Value
Type: String

success
Get the request status of the synchronous part of the processing.

Signature
public Boolean success {get; set;}

Property Value
Type: Boolean
Indicates whether the synchronous part of the processing is successful (true) or not (false).

PlaceQuoteRLMApexProcessor Class
Contains methods to place a quote with details of the graph request, pricing preferences, and configuration options.

Namespace
PlaceQuote

PlaceQuoteRLMApexProcessor Methods
Learn more about the methods available with the PlaceQuoteRLMApexProcessor class.
PlaceQuoteRLMApexProcessor Example Implementation
To place a quote from Apex, refer to the example implementation of the PlaceQuoteRLMApexProcessor class.

PlaceQuoteRLMApexProcessor Methods
Learn more about the methods available with the PlaceQuoteRLMApexProcessor class.
The PlaceQuoteRLMApexProcessor class includes these methods.

execute(pricingPreferenceEnum, graphRequest, configurationInputEnum, configurationOptionsInput)


Use the method in the PlaceQuoteExecutor class to execute the Place Quote Apex API request by assigning the properties
for graph request, pricing references, and configuration options.
execute(pricingPreferenceEnum, catalogRatesPreference, graphRequest, configurationInputEnum, configurationOptionsInput)
Use the method in the PlaceQuoteExecutor class to execute the Place Quote Apex API request by assigning the properties
for graph request, pricing references, and configuration options. This method also includes the property to define fetching of rate
card entries.

1007
Transaction Management Quote and Order Capture Apex Reference

execute(pricingPreferenceEnum, graphRequest, configurationInputEnum,


configurationOptionsInput)
Use the method in the PlaceQuoteExecutor class to execute the Place Quote Apex API request by assigning the properties for
graph request, pricing references, and configuration options.

Signature
public static placequote.PlaceQuoteResponse execute(placequote.PricingPreferenceEnum
pricingPreferenceEnum, placequote.GraphRequest graphRequest,
placequote.ConfigurationInputEnum configurationInputEnum,
placequote.ConfigurationOptionsInput configurationOptionsInput)

Parameters
pricingPreferenceEnum
Type: placequote.PricingPreferenceEnum
Pricing preference during the quote process.
graphRequest
Type: placequote.GraphRequest
The sObject graph values of the quote payload to be ingested.
configurationInputEnum
Type: placequote.ConfigurationInputEnum
Configuration input for the quote process.
configurationOptionsInput
Type: placequote.ConfigurationOptionsInput
Configuration options during the ingestion process.

Return Value
Type: placequote.PlaceQuoteResponse

execute(pricingPreferenceEnum, catalogRatesPreference, graphRequest,


configurationInputEnum, configurationOptionsInput)
Use the method in the PlaceQuoteExecutor class to execute the Place Quote Apex API request by assigning the properties for
graph request, pricing references, and configuration options. This method also includes the property to define fetching of rate card
entries.

Signature
public static placequote.PlaceQuoteResponse execute(placequote.PricingPreferenceEnum
pricingPreferenceEnum, placequote.CatalogRatesPreferenceEnum catalogRatesPreference,
placequote.GraphRequest graphRequest, placequote.ConfigurationInputEnum
configurationInputEnum, placequote.ConfigurationOptionsInput configurationOptionsInput)

1008
Transaction Management Quote and Order Capture Apex Reference

Parameters
pricingPreferenceEnum
Type: placequote.PricingPreferenceEnum
Pricing preference during the quote process.
catalogRatesPreference
Type: placequote.CatalogRatesPreferenceEnum
The rate card entries defined in the catalog that must be fetched for quote line items, with usage-based pricing during the quote
creation process. The CatalogRatesPreferenceEnum enum is available when the Usage-Based Selling feature is enabled.
graphRequest
Type: placequote.GraphRequest
The sObject graph values of the quote payload to be ingested.
configurationInputEnum
Type: placequote.ConfigurationInputEnum
Configuration input for the quote process.
configurationOptionsInput
Type: placequote.ConfigurationOptionsInput
Configuration options during the ingestion process.

Return Value
Type: placequote.PlaceQuoteResponse

PlaceQuoteRLMApexProcessor Example Implementation


To place a quote from Apex, refer to the example implementation of the PlaceQuoteRLMApexProcessor class.

Namespace
PlaceQuote

Usage
Customize this example to suit your requirements. Create the list of records to be ingested by using these steps. Replace the respective
IDs with the values that are present in your org. For example, replace the value of ${Pricebook2Id} field with the price book ID
that’s present in the org.

Example:
• Set up a quote and quote line item. To associate the Record object with a reference identifier, create an instance of the
RecordWithReferenceRequest class.

//Quote Setup
PlaceQuote.RecordResource quoteRecord = new
PlaceQuote.RecordResource(Quote.getSobjectType(),'POST');
Map<String,Object> quoteFieldValues = new Map<String,Object>();
quoteFieldValues.put('Name','q-ap12');
quoteFieldValues.put('OpportunityId','006xx000001aBFcAAM');

1009
Transaction Management Quote and Order Capture Apex Reference

quoteFieldValues.put('Pricebook2Id','01sxx0000005pvRAAQ');
quoteRecord.fieldValues = quoteFieldValues;

//Quote Line Item Setup


PlaceQuote.RecordResource quoteLineItemRecord1 = new
PlaceQuote.RecordResource(QuoteLineItem.getSobjectType(),'POST');
Map<String,Object> quoteLineItemFieldValues = new Map<String,Object>();
quoteLineItemFieldValues.put('Product2Id','01txx0000006ibwAAA');
quoteLineItemFieldValues.put('PricebookEntryId','01uxx0000008zPqAAI');
quoteLineItemFieldValues.put('Quantity','2.0');
quoteLineItemFieldValues.put('UnitPrice','5.0');
quoteLineItemFieldValues.put('StartDate','2023-03-15');
quoteLineItemFieldValues.put('QuoteId','@{refQuote.id}');
quoteLineItemRecord1.fieldValues = quoteLineItemFieldValues;
PlaceQuote.RecordWithReferenceRequest quoteItemRecords = new
PlaceQuote.RecordWithReferenceRequest('refQuote',quoteRecord);
PlaceQuote.RecordWithReferenceRequest quoteLineItemRecords1 = new
PlaceQuote.RecordWithReferenceRequest('refQuoteItem1',quoteLineItemRecord1);

• To create a quote line relationship, create an instance of the RecordResource class.


PlaceQuote.RecordResource quoteLineRelationship1 = new
PlaceQuote.RecordResource(QuoteLineRelationship.getSobjectType(),'POST');
Map<String,Object> quoteLineRelationshipValues = new Map<String,Object>();
quoteLineRelationshipValues.put('ProductRelationshipTypeId','0yoxx00000000JNAAY');

quoteLineRelationshipValues.put('MainQuoteLineId','@{refQuoteItem2.id}');
quoteLineRelationshipValues.put('AssociatedQuoteLineId','@{refQuoteItem1.id}');

quoteLineRelationshipValues.put('AssociatedQuoteLinePricing','IncludedInBundlePrice');

quoteLineRelationship1.fieldValues = quoteLineRelationshipValues;

• Create the list of records to be ingested.

PlaceQuote.RecordWithReferenceRequest quoteLineRelationship = new


PlaceQuote.RecordWithReferenceRequest('QuoteLineRelationship',quoteLineRelationship1);

List<PlaceQuote.RecordWithReferenceRequest> listOfRecords = new


List<PlaceQuote.RecordWithReferenceRequest>();
listOfRecords.add(quoteItemRecords);
listOfRecords.add(quoteLineItemRecords1);
listOfRecords.add(quoteLineItemRecords2);
listOfRecords.add(quoteLineRelationship);

• To contain all record objects, create an instance of the GraphRequest class.

Note: The CatalogRatesPreferenceEnum enum is available when the Usage-Based Selling feature is enabled.

PlaceQuote.GraphRequest graph = new PlaceQuote.GraphRequest('test',listOfRecords);

1010
Transaction Management Quote and Order Capture Apex Reference

PlaceQuote.ConfigurationOptionsInput cInput = new


PlaceQuote.ConfigurationOptionsInput();
PlaceQuote.CatalogRatesPreferenceEnum catalogRatesPreference =
PlaceQuote.CatalogRatesPreferenceEnum.Fetch;
....PlaceQuote.ConfigurationInputEnum configurationPreference =
PlaceQuote.ConfigurationInputEnum.RunAndAllowErrors;
PlaceQuote.PricingPreferenceEnum pricingPreference =
PlaceQuote.PricingPreferenceEnum.System;
//System.debug(graph);

//Place Quote Call


PlaceQuote.PlaceQuoteResponse resp =
PlaceQuote.PlaceQuoteRLMApexProcessor.execute(pricingPreference,
catalogRatesPreference, graph, configurationPreference, cInput);
System.debug(resp);

PricingPreferenceEnum Enum
Specifies the pricing preference during the create quote process.

Usage
Used by the PlaceQuoteRLMApexProcessor class.

Enum Values
The placequote.PricingPreferenceEnum enum class includes these values.

Value Description
Force Enforce pricing during the quote ingestion process.

Skip Skip pricing during the quote ingestion process.

System Determine whether a pricing calculation is required.

RecordResource Class
Contains constructors and properties to create a record object from the field values of a quote.

Namespace
PlaceQuote

Example
PlaceQuote.RecordResource quoteLineRelationship1 = new
PlaceQuote.RecordResource(QuoteLineRelationship.getSobjectType(),'POST');

See PlaceQuoteRLMApexProcessor to refer to an example implementation.

1011
Transaction Management Quote and Order Capture Apex Reference

RecordResource Constructors
Learn more about the available constructors with the RecordResource class.
RecordResource Properties
Learn more about the available properties with the RecordResource class.

RecordResource Constructors
Learn more about the available constructors with the RecordResource class.
The RecordResource class includes these constructors.

RecordResource(type, method, id)


Creates an instance of the RecordResource class to assign values to the fields of a quote item by using the sObject type, API
method, and quote ID properties.
RecordResource(type, method)
Creates an instance of the RecordResource class to assign the values to the fields of a quote item by using the sObject type
and API method properties.

RecordResource(type, method, id)


Creates an instance of the RecordResource class to assign values to the fields of a quote item by using the sObject type, API method,
and quote ID properties.

Signature
public RecordResource(Schema.SObjectType type, String method, Id id)

Parameters
type
Type: Schema.SObjectType
Object that’s returned from the field describe result using the getReferenceTo() method or from the sObject describe result
using the getSObjectType() method.
method
Type: String
Method for the API request, such as POST or PATCH.
id
Type: Id
ID of the quote.

RecordResource(type, method)
Creates an instance of the RecordResource class to assign the values to the fields of a quote item by using the sObject type and
API method properties.

1012
Transaction Management Quote and Order Capture Apex Reference

Signature
public RecordResource(Schema.SObjectType type, String method)

Parameters
type
Type: Schema.SObjectType
Object that’s returned from the field describe result using the getReferenceTo() method or from the sObject describe result
using the getSObjectType() method.
method
Type: String
Method for the API request, such as POST or PATCH.

RecordResource Properties
Learn more about the available properties with the RecordResource class.
The RecordResource class includes these properties.

fieldValues
Set the fieldValues property to assign values to the fields to update the quote record.
id
Set the id property to assign the ID of the quote record.
method
Set the method property to specify the API request method, such as POST or PATCH.
type
Set the type property to assign the object type that’s returned from the field describe result by using
the getReferenceTo() method or from the sObject describe result by using the getSObjectType() method.

fieldValues
Set the fieldValues property to assign values to the fields to update the quote record.

Signature
public Map<String,ANY> fieldValues {get; set;}

Property Value
Type: List <Map<String,ANY>>

id
Set the id property to assign the ID of the quote record.

Signature
public String id {get; set;}

1013
Transaction Management Quote and Order Capture Apex Reference

Property Value
Type: String

method
Set the method property to specify the API request method, such as POST or PATCH.

Signature
public String method {get; set;}

Property Value
Type: String

type
Set the type property to assign the object type that’s returned from the field describe result by using the getReferenceTo() method
or from the sObject describe result by using the getSObjectType() method.

Signature
public Schema.SObjectType type {get; set;}

Property Value
Type: Schema.SObjectType

RecordWithReferenceRequest Class
Contains constructors and properties to associate a record object with a reference identifier.

Namespace
PlaceQuote

Example
PlaceQuote.RecordWithReferenceRequest quoteLineRelationship = new
PlaceQuote.RecordWithReferenceRequest('QuoteLineRelationship',quoteLineRelationship1);

See PlaceQuoteRLMApexProcessor to refer to an example implementation.

RecordWithReferenceRequest Constructors
Learn more about the available constructors with the RecordWithReferenceRequest class.
RecordWithReferenceRequest Properties
Learn more about the available properties with the RecordWithReferenceRequest class.

1014
Transaction Management Quote and Order Capture Apex Reference

RecordWithReferenceRequest Constructors
Learn more about the available constructors with the RecordWithReferenceRequest class.
The RecordWithReferenceRequest class includes these constructors.

RecordWithReferenceRequest(referenceId, record)
Creates an instance of the RecordWithReferenceRequest class to associate a record object with a reference identifier by
using the referenceId and record object properties.

RecordWithReferenceRequest(referenceId, record)
Creates an instance of the RecordWithReferenceRequest class to associate a record object with a reference identifier by using
the referenceId and record object properties.

Signature
public RecordWithReferenceRequest(String referenceId, placequote.RecordResource record)

Parameters
referenceId
Type: String
Reference ID that maps to the subrequest response and can be used to reference the response in subsequent subrequests. You can
reference the referenceId in either the body or URL of a subrequest. Use this syntax to include a reference: @{referenceId.FieldName}.
See referenceId property of a composite subrequest.
record
Type: placequote.RecordResource
Record object that’s defined using the RecordResource class.

RecordWithReferenceRequest Properties
Learn more about the available properties with the RecordWithReferenceRequest class.
The RecordWithReferenceRequest class includes these properties.

record
Set the record property to specify the record object that’s defined by using the RecordResource class.
referenceId
Set the referenceId property to specify the reference ID that maps to the subrequest response. This reference ID can be used
to reference the response in subsequent subrequests.

record
Set the record property to specify the record object that’s defined by using the RecordResource class.

Signature
public placequote.RecordResource record {get; set;}

1015
Transaction Management Quote and Order Capture Apex Reference

Property Value
Type: placequote.RecordResource

referenceId
Set the referenceId property to specify the reference ID that maps to the subrequest response. This reference ID can be used to
reference the response in subsequent subrequests.

Signature
public String referenceId {get; set;}

Property Value
Type: String

RevSalesTrxn Namespace
Create a sales transaction, such as a quote or an order, with integrated pricing and configuration. Additionally, update an order or a
quote, and insert and delete order or quote line items to calculate the estimated tax.
The RevSalesTrxn namespace includes these classes.

CatalogRatesPreferenceEnum Enum
Specifies the rate card entries defined in the catalog that must be fetched for quote line items, with usage-based selling during the
place sales transaction process.
ConfigurationExecutionEnum Enum
Specifies the configuration method for the place sales transaction request.
ConfigurationOptionsInput Class
Contains methods and properties to set the configuration options for the input to the product configurator.
GraphRequest Class
Contains constructors and properties to set the graph ID and a list of records to be ingested. The list of records is specified in a
key-value map format that contains the field values of an order.
PlaceSalesTransactionException Class
Contains methods to hold the exception details for the place sales transaction request.
PlaceSalesTransactionExecutor Class
Contains methods to place a sales transaction with details of the graph request, pricing preferences, and configuration options.
PlaceSalesTransactionResponse Class
Contains properties to hold the response to the place sales transaction request.
PricingPreferenceEnum Enum
Specifies the pricing preference during the creation of a sales transaction.
RecordResource Class
Contains constructors and properties to create a record object from the field values of a sales transaction.
RecordWithReferenceRequest Class
Contains constructors and properties to associate a record object with a reference identifier.

1016
Transaction Management Quote and Order Capture Apex Reference

CatalogRatesPreferenceEnum Enum
Specifies the rate card entries defined in the catalog that must be fetched for quote line items, with usage-based selling during the place
sales transaction process.

Usage
This enum is available when the Usage-Based Selling feature is enabled.

Enum Values
The RevSalesTrxn.CatalogRatesPreferenceEnum enum includes these values.

Value Description
Fetch Retrieves the rate card entries defined in the catalog for quote line items during the
quote creation process.

Skip Skips the retrieval of rate card entries for quote line items during the quote creation
process. The default value is Skip.

ConfigurationExecutionEnum Enum
Specifies the configuration method for the place sales transaction request.

Usage
Use these enum values for the configurationExecutionEnum property in the PlaceSalesTransactionExecutor class.

Enum Values
The RevSalesTrxn.ConfigurationExecutionEnum enum has these values.

Value Description
Force Specifies to enforce the predefined configuration process during the sales transaction
process.

Skip Specifies to skip the configuration process during the quote creation process. The
default value is Skip.

System Specifies the system to determine whether the configuration process is required.

ConfigurationOptionsInput Class
Contains methods and properties to set the configuration options for the input to the product configurator.

Namespace
RevSalesTrxn

1017
Transaction Management Quote and Order Capture Apex Reference

Usage
This class holds the required details of the product configuration input. Set the class properties to enable default configuration, execution
of configuration rules, and validation of the product catalog. Use these class properties as an input to
the PlaceSalesTransactionExecutor class method.

Example
RevSalesTrxn.GraphRequest graph = new RevSalesTrxn.GraphRequest('test',
listOfRecords);
RevSalesTrxn.PricingPreferenceEnum pricingPrefEnum =
RevSalesTrxn.PricingPreferenceEnum.SYSTEM;
RevSalesTrxn.ConfigurationExecutionEnum configurationExecutionEnum =
RevSalesTrxn.ConfigurationExecutionEnum.SYSTEM;
RevSalesTrxn.ConfigurationOptionsInput cInput = new
RevSalesTrxn.ConfigurationOptionsInput();
cInput.addDefaultConfiguration = true;
cInput.executeConfigurationRules = true;
cInput.validateAmendRenewCancel = true;
cInput.validateProductCatalog = true;
//Place Sales Transaction API Call
RevSalesTrxn.PlaceSalesTransactionResponse resp =
PlaceQuote.PlaceSalesTransactionExecutor.execute(graph,pricingPrefEnum,configurationExecutionEnum,cInput,null);

ConfigurationOptionsInput Properties
Set the ConfigurationOptionsInput class properties to add default configuration, execute configuration rules, and validate the product
catalog.
ConfigurationOptionsInput Methods
Learn more about the methods available with the ConfigurationOptionsInput class.

ConfigurationOptionsInput Properties
Set the ConfigurationOptionsInput class properties to add default configuration, execute configuration rules, and validate the product
catalog.
The ConfigurationOptionsInput class includes these properties.

addDefaultConfiguration
Sets the default product configuration, such as bundle and product attributes, for a quote request.
executeConfigurationRules
Sets the requirement for a quote to adhere to the configuration rules.
validateAmendRenewCancel
Sets the requirement to run validations related to amend, renew, or cancel processes.
validateProductCatalog
Sets the requirement to validate a quote against the product catalog.

addDefaultConfiguration
Sets the default product configuration, such as bundle and product attributes, for a quote request.

1018
Transaction Management Quote and Order Capture Apex Reference

Signature
public Boolean addDefaultConfiguration {get; set;}

Property Value
Type: Boolean
Indicates whether to automatically add default configuration to the order (true) or not (false).

executeConfigurationRules
Sets the requirement for a quote to adhere to the configuration rules.

Signature
public Boolean executeConfigurationRules {get; set;}

Property Value
Type: Boolean
Indicates whether the order must adhere to configuration rules during processing (true) or bypass them (false).

validateAmendRenewCancel
Sets the requirement to run validations related to amend, renew, or cancel processes.

Signature
public Boolean validateAmendRenewCancel {get; set;}

Property Value
Type: Boolean
Indicates whether to run validations related to amend, renew, or cancel processes (true) or not (false).

validateProductCatalog
Sets the requirement to validate a quote against the product catalog.

Signature
public Boolean validateProductCatalog {get; set;}

Property Value
Type: Boolean
Indicates whether the quote must be validated against the product catalog (true) or not (false).

1019
Transaction Management Quote and Order Capture Apex Reference

ConfigurationOptionsInput Methods
Learn more about the methods available with the ConfigurationOptionsInput class.
The ConfigurationOptionsInput class includes these methods.

equals(obj)
Determines the equality of external objects in a list. This method is dynamic and is based on the equals() method in Java.
hashCode()
Determines the uniqueness of the external object records in a list.
toString()
Converts a value to a string.

equals(obj)
Determines the equality of external objects in a list. This method is dynamic and is based on the equals() method in Java.

Signature
public Boolean equals(Object obj)

Parameters
obj
Type: Object
Reference object that’s used to compare with the class object.

Return Value
Type: Boolean
Indicates if the class object is same as the reference object (true) or not (false).

hashCode()
Determines the uniqueness of the external object records in a list.

Signature
public Integer hashCode()

Return Value
Type: Integer
Integer hash code that represents the value of the object. Equal objects as per the equals() method must return the same hash
code.

toString()
Converts a value to a string.

1020
Transaction Management Quote and Order Capture Apex Reference

Signature
public String toString()

Return Value
Type: String

GraphRequest Class
Contains constructors and properties to set the graph ID and a list of records to be ingested. The list of records is specified in a key-value
map format that contains the field values of an order.

Namespace
RevSalesTrxn

GraphRequest Constructors
Learn more about the available constructors with the GraphRequest class.
GraphRequest Properties
Learn more about the available properties with the GraphRequest class.

GraphRequest Constructors
Learn more about the available constructors with the GraphRequest class.
The GraphRequest class includes these constructors.

GraphRequest(graphId, records)
Creates an instance of the GraphRequest class to assign the graph ID and a list of records to be ingested.

GraphRequest(graphId, records)
Creates an instance of the GraphRequest class to assign the graph ID and a list of records to be ingested.

Signature
public GraphRequest(String graphId, List<RevSalesTrxn.RecordWithReferenceRequest>
records)

Parameters
graphId
Type: String
ID of the graph.
records
Type: List<placequote.RecordWithReferenceRequest on page 1034>
List of records to be ingested.

1021
Transaction Management Quote and Order Capture Apex Reference

GraphRequest Properties
Learn more about the available properties with the GraphRequest class.
The GraphRequest class includes these properties.

graphId
Set the graphId property to assign the ID value of the graph.

graphId
Set the graphId property to assign the ID value of the graph.

Signature
public String graphId {get; set;}

Property Value
Type: String

PlaceSalesTransactionException Class
Contains methods to hold the exception details for the place sales transaction request.

Namespace
RevSalesTrxn

PlaceSalesTransactionException Methods
Learn more about the methods available with the PlaceSalesTransactionException class.

PlaceSalesTransactionException Methods
Learn more about the methods available with the PlaceSalesTransactionException class.
The PlaceSalesTransactionException class includes these methods.

getErrorCode()
Gets the error code that’s associated to the place sales transaction request.

getErrorCode()
Gets the error code that’s associated to the place sales transaction request.

Signature
public String getErrorCode()

1022
Transaction Management Quote and Order Capture Apex Reference

Return Value
Type: String

PlaceSalesTransactionExecutor Class
Contains methods to place a sales transaction with details of the graph request, pricing preferences, and configuration options.

Namespace
RevSalesTrxn

PlaceSalesTransactionExecutor Methods
Learn more about the methods available with the PlaceSalesTransactionExecutor class.
PlaceSalesTransactionExecutor Example Implementation
To place a sales transaction from Apex, refer to the example implementation of the PlaceSalesTransactionExecutor
class.

PlaceSalesTransactionExecutor Methods
Learn more about the methods available with the PlaceSalesTransactionExecutor class.
The PlaceSalesTransactionExecutor class includes these methods.

execute(graphRequest, pricingPreferenceEnum, configurationExecutionEnum, configuratorOptions, id)


Use the method in the PlaceSalesTransactionExecutor class to execute the Place Sales Transaction Apex API request
by assigning the properties for graph request, pricing references, and configurator options.

execute(graphRequest, pricingPreferenceEnum, configurationExecutionEnum,


configuratorOptions, id)
Use the method in the PlaceSalesTransactionExecutor class to execute the Place Sales Transaction Apex API request by
assigning the properties for graph request, pricing references, and configurator options.

Signature
public static revsalestrxn.PlaceSalesTransactionResponse
execute(revsalestrxn.GraphRequest graphRequest, revsalestrxn.PricingPreferenceEnum
pricingPreferenceEnum, revsalestrxn.ConfigurationExecutionEnum
configurationExecutionEnum, revsalestrxn.ConfiguratorOptions configuratorOptions,
revsalestrxn.Id id)

Parameters
graphRequest
Type: revsalestrxn.GraphRequest
The sObject graph values of the order payload to be ingested.
pricingPreferenceEnum
Type: revsalestrxn.PricingPreferenceEnum

1023
Transaction Management Quote and Order Capture Apex Reference

Pricing preference during the sales transaction process.


configurationExecutionEnum
Type: revsalestrxn.ConfigurationExecutionEnum
Configuration method for the sales transaction request.
configuratorOptions
Type: revsalestrxn.ConfigurationOptionsInput
Configuration options during the creation of the sales transaction.
id
Type: String
ID to assign to the sales transaction.

Return Value
Type: revsalestrxn.PlaceSalesTransactionResponse

PlaceSalesTransactionExecutor Example Implementation


To place a sales transaction from Apex, refer to the example implementation of the PlaceSalesTransactionExecutor class.

Namespace
RevSalesTrxn

Usage
Customize this example to suit your requirements. Create the list of records to be ingested by using these steps. Replace the respective
IDs with the values that are present in your org. For example, replace the value of ${Pricebook2Id} field with the price book ID
that’s present in the org.

Example:
• Set up a quote and quote line item. To associate the Record object with a reference identifier, create an instance of the
RecordWithReferenceRequest class.
• To create a quote line relationship, create an instance of the RecordResource class.
• Create the list of records to be ingested.
• To contain all record objects, create an instance of the GraphRequest class.
This example shows a sample request to create a sales transaction, to update a quote with a quote line item, or to delete a quote
line item.
public class PlaceSalesTransactionTest {
public static void callPSTAPI_Post() {
RevSalesTrxn.PricingPreferenceEnum pricingPrefEnum =
RevSalesTrxn.PricingPreferenceEnum.SYSTEM;
RevSalesTrxn.ConfigurationExecutionEnum configurationExecutionEnum =
RevSalesTrxn.ConfigurationExecutionEnum.SYSTEM;

//Quote setup
RevSalesTrxn.RecordResource quoteRecord = new
RevSalesTrxn.RecordResource(Quote.getSobjectType(),'POST');

1024
Transaction Management Quote and Order Capture Apex Reference

Map<String,Object> quoteFieldValues = new Map<String,Object>();


quoteFieldValues.put('Name','q-ap12');
quoteFieldValues.put('OpportunityId','006xx000001a3e8AAA');
quoteFieldValues.put('Pricebook2Id','01sDU000000JRX8YAO');
quoteRecord.fieldValues = quoteFieldValues;

//Quote line item setup

//1st quote line item


RevSalesTrxn.RecordResource quoteLineItemRecord1 = new
RevSalesTrxn.RecordResource(QuoteLineItem.getSobjectType(),'POST');
Map<String,Object> quoteLineItemFieldValues = new Map<String,Object>();
quoteLineItemFieldValues.put('Product2Id','01txx0000006i7JAAQ');
quoteLineItemFieldValues.put('PricebookEntryId','01uxx0000008yc6AAA');
quoteLineItemFieldValues.put('Quantity','2.0');
quoteLineItemFieldValues.put('UnitPrice','1000');
quoteLineItemFieldValues.put('StartDate','2025-03-15');
quoteLineItemFieldValues.put('QuoteId','@{refQuote.id}');
quoteLineItemRecord1.fieldValues = quoteLineItemFieldValues;
RevSalesTrxn.RecordWithReferenceRequest quoteItemRecords = new
RevSalesTrxn.RecordWithReferenceRequest('refQuote',quoteRecord);
RevSalesTrxn.RecordWithReferenceRequest quoteLineItemRecords1 = new
RevSalesTrxn.RecordWithReferenceRequest('refQuoteItem1',quoteLineItemRecord1);

//2nd quote line item


RevSalesTrxn.RecordResource quoteLineItemRecord2 = new
RevSalesTrxn.RecordResource(QuoteLineItem.getSobjectType(),'POST');
Map<String,Object> quoteLineItemFieldValues2 = new Map<String,Object>();
quoteLineItemFieldValues2.put('Product2Id','01txx0000006i7RAAQ');
quoteLineItemFieldValues2.put('PricebookEntryId','01uxx0000008ybvAAA');
quoteLineItemFieldValues2.put('Quantity','2.0');
quoteLineItemFieldValues2.put('UnitPrice','7.0');
quoteLineItemFieldValues2.put('StartDate','2025-03-15');
quoteLineItemFieldValues2.put('QuoteId','@{refQuote.id}');
quoteLineItemRecord2.fieldValues = quoteLineItemFieldValues2;
RevSalesTrxn.RecordWithReferenceRequest quoteLineItemRecords2 = new
RevSalesTrxn.RecordWithReferenceRequest('refQuoteItem2',quoteLineItemRecord2);

List<RevSalesTrxn.RecordWithReferenceRequest> listOfRecords = new


List<RevSalesTrxn.RecordWithReferenceRequest>();
listOfRecords.add(quoteItemRecords);
listOfRecords.add(quoteLineItemRecords1);
listOfRecords.add(quoteLineItemRecords2);

RevSalesTrxn.GraphRequest graph = new


RevSalesTrxn.GraphRequest('test',listOfRecords);
System.debug(graph);

//Place sales transaction API call


RevSalesTrxn.PlaceSalesTransactionResponse resp =
RevSalesTrxn.PlaceSalesTransactionExecutor.execute(graph, pricingPrefEnum,
configurationExecutionEnum, new RevSalesTrxn.ConfigurationOptionsInput(), null);
System.debug(resp);

1025
Transaction Management Quote and Order Capture Apex Reference

public static void callPSTAPI_Patch() {

// Apex test to update a quote with a quote line item


RevSalesTrxn.PricingPreferenceEnum pricingPrefEnum =
RevSalesTrxn.PricingPreferenceEnum.SYSTEM;
RevSalesTrxn.ConfigurationExecutionEnum configurationExecutionEnum =
RevSalesTrxn.ConfigurationExecutionEnum.SYSTEM;

//Quote setup
RevSalesTrxn.RecordResource quoteRecord = new
RevSalesTrxn.RecordResource(Quote.getSobjectType(),'PATCH','0Q0xx0000004CYsCAM');
RevSalesTrxn.RecordWithReferenceRequest quoteItemRecords = new
RevSalesTrxn.RecordWithReferenceRequest('refQuote',quoteRecord);

//Quote line item setup


//New quote line item
RevSalesTrxn.RecordResource quoteLineItemRecord = new
RevSalesTrxn.RecordResource(QuoteLineItem.getSobjectType(),'POST');
Map<String,Object> quoteLineItemFieldValues = new Map<String,Object>();
quoteLineItemFieldValues.put('Product2Id','01txx0000006i7KAAQ');
quoteLineItemFieldValues.put('PricebookEntryId','01uxx0000008ycFAAQ');
quoteLineItemFieldValues.put('Quantity','2.0');
quoteLineItemFieldValues.put('UnitPrice','7.0');
quoteLineItemFieldValues.put('StartDate','2025-03-15');
quoteLineItemFieldValues.put('QuoteId','@{refQuote.id}');
quoteLineItemRecord.fieldValues = quoteLineItemFieldValues;
RevSalesTrxn.RecordWithReferenceRequest quoteLineItemRecords = new
RevSalesTrxn.RecordWithReferenceRequest('refQuoteItem',quoteLineItemRecord);
List<RevSalesTrxn.RecordWithReferenceRequest> listOfRecords = new
List<RevSalesTrxn.RecordWithReferenceRequest>();
listOfRecords.add(quoteItemRecords);
listOfRecords.add(quoteLineItemRecords);
RevSalesTrxn.GraphRequest graph = new RevSalesTrxn.GraphRequest('test',
listOfRecords);

//Place sales transaction API call


RevSalesTrxn.PlaceSalesTransactionResponse resp =
RevSalesTrxn.PlaceSalesTransactionExecutor.execute(graph, pricingPrefEnum,
configurationExecutionEnum, new RevSalesTrxn.ConfigurationOptionsInput(), null);
System.debug(resp);
}

public static void callPSTAPI_Delete() {

// Apex test to update a quote with a quote line item


RevSalesTrxn.PricingPreferenceEnum pricingPrefEnum =
RevSalesTrxn.PricingPreferenceEnum.SYSTEM;
RevSalesTrxn.ConfigurationExecutionEnum configurationExecutionEnum =
RevSalesTrxn.ConfigurationExecutionEnum.SYSTEM;

//Quote setup
RevSalesTrxn.RecordResource quoteRecord = new

1026
Transaction Management Quote and Order Capture Apex Reference

RevSalesTrxn.RecordResource(Quote.getSobjectType(),'PATCH','0Q0xx0000004CYsCAM');
RevSalesTrxn.RecordWithReferenceRequest quoteItemRecords = new
RevSalesTrxn.RecordWithReferenceRequest('refQuote',quoteRecord);

//Quote line item setup


//Delete a quote line item
RevSalesTrxn.RecordResource quoteLineItemRecord = new
RevSalesTrxn.RecordResource(QuoteLineItem.getSobjectType(),'DELETE','0QLxx0000004CYsCAM');

RevSalesTrxn.RecordWithReferenceRequest quoteLineItemRecords = new


RevSalesTrxn.RecordWithReferenceRequest('refQuoteItem',quoteLineItemRecord);
List<RevSalesTrxn.RecordWithReferenceRequest> listOfRecords = new
List<RevSalesTrxn.RecordWithReferenceRequest>();
listOfRecords.add(quoteItemRecords);
listOfRecords.add(quoteLineItemRecords);
RevSalesTrxn.GraphRequest graph = new
RevSalesTrxn.GraphRequest('test',listOfRecords);

//Place sales transaction API call


RevSalesTrxn.PlaceSalesTransactionResponse resp =
RevSalesTrxn.PlaceSalesTransactionExecutor.execute(graph, pricingPrefEnum,
configurationExecutionEnum, new RevSalesTrxn.ConfigurationOptionsInput(), null);
System.debug(resp);
}
}

PlaceSalesTransactionResponse Class
Contains properties to hold the response to the place sales transaction request.

Namespace
RevSalesTrxn

Example
RevSalesTrxn.PlaceSalesTransactionResponse resp =
RevSalesTrxn.PlaceSalesTransactionExecutor.execute(graph, pricingPrefEnum,
configurationExecutionEnum, new RevSalesTrxn.ConfigurationOptionsInput(), null);

PlaceSalesTransactionResponse Properties
Learn more about the available properties with the PlaceSalesTransactionResponse class.

PlaceSalesTransactionResponse Properties
Learn more about the available properties with the PlaceSalesTransactionResponse class.
The PlaceSalesTransactionResponse class includes these properties.

contextDetails
Get the details of the context that’s created for the sales transaction.

1027
Transaction Management Quote and Order Capture Apex Reference

errorResponse
Get the list of errors encountered during the synchronous processing of the API request.
isSuccess
Get the request status of the synchronous part of the processing.
salesTransactionId
Get the ID of the sales transaction, such as a quote or an order.
statusUrl
Get the asynchronous status URL of the request, if available.
trackerId
Get the unique identifier assigned to a specific operation or request that's used for tracking and referencing the operation.

contextDetails
Get the details of the context that’s created for the sales transaction.

Signature
public ConnectApi.ContextDetails contextDetails {get; set;}

Property Value
Type: ConnectApi.ContextDetails

errorResponse
Get the list of errors encountered during the synchronous processing of the API request.

Signature
public List<ConnectApi.PlaceSalesTransactionErrorResponse> errorResponse {get; set;}

Property Value
Type: List<ConnectApi.PlaceSalesTransactionErrorResponse>

isSuccess
Get the request status of the synchronous part of the processing.

Signature
public Boolean isSuccess {get; set;}

Property Value
Type: Boolean
Indicates whether the synchronous part of the processing is successful (true) or not (false).

1028
Transaction Management Quote and Order Capture Apex Reference

salesTransactionId
Get the ID of the sales transaction, such as a quote or an order.

Signature
public String salesTransactionId {get; set;}

Property Value
Type: String

statusUrl
Get the asynchronous status URL of the request, if available.

Signature
public String statusUrl {get; set;}

Property Value
Type: String

trackerId
Get the unique identifier assigned to a specific operation or request that's used for tracking and referencing the operation.

Signature
public String trackerId {get; set;}

Property Value
Type: String

PricingPreferenceEnum Enum
Specifies the pricing preference during the creation of a sales transaction.

Usage
Used by the PlaceSalesTransactionExecutor class.

Enum Values
The RevSalesTrxn.PricingPreferenceEnum enum includes these values.

Value Description
Force Specifies to enforce pricing during the creation of sales transactions.

1029
Transaction Management Quote and Order Capture Apex Reference

Value Description
Skip Specifies to skip pricing during the creation of sales transactions.

System Specifies the system to determine whether a pricing calculation is required. The
default value is System.

RecordResource Class
Contains constructors and properties to create a record object from the field values of a sales transaction.

Namespace
RevSalesTrxn

Example
RevSalesTrxn.RecordResource quoteRecord = new
RevSalesTrxn.RecordResource(Quote.getSobjectType(),'POST');

RecordResource Constructors
Learn more about the available constructors with the RecordResource class.
RecordResource Properties
Learn more about the available properties with the RecordResource class.

RecordResource Constructors
Learn more about the available constructors with the RecordResource class.
The RecordResource class has these constructors.

RecordResource(type, method, groupAction, criteria)


Creates an instance of the RecordResource class to assign values to the fields of a sales transaction by using the sObject type, API
method, and sales transaction ID properties. Additionally, you can group order or quote line items based on a criteria by using the
groupAction and criteria properties.
RecordResource(type, method, id)
Creates an instance of the RecordResource class to assign values to the fields of a sales transaction by using the sObject type, API
method, and sales transaction ID properties.
RecordResource(type, method)
Creates an instance of the RecordResource class to assign the values to the fields of a sales transaction by using the sObject type
and API method properties.

RecordResource(type, method, groupAction, criteria)


Creates an instance of the RecordResource class to assign values to the fields of a sales transaction by using the sObject type, API method,
and sales transaction ID properties. Additionally, you can group order or quote line items based on a criteria by using the groupAction
and criteria properties.

1030
Transaction Management Quote and Order Capture Apex Reference

Signature
public RecordResource(Schema.SObjectType type, String method, String groupAction,
Map<String,ANY> criteria)

Parameters
type
Type: Schema.SObjectType
Object that’s returned from the field describe result using the getReferenceTo() method or from the sObject describe result
using the getSObjectType() method.
method
Type: String
Method for the API request, such as POST, PATCH, or DELETE.
groupAction
Type: String
Action to group order or quote line items. Valid values are:
• GroupBy
• Group
• Ungroup
• GroupAll
• DeleteGroup
criteria
Type: Map<String,ANY>
Criteria to group order or quote line items. For example, group order or quote line items based on a monthly billing frequency.

RecordResource(type, method, id)


Creates an instance of the RecordResource class to assign values to the fields of a sales transaction by using the sObject type, API method,
and sales transaction ID properties.

Signature
public RecordResource(Schema.SObjectType type, String method, Id id)

Parameters
type
Type: Schema.SObjectType
Object that’s returned from the field describe result using the getReferenceTo() method or from the sObject describe result
using the getSObjectType() method.
method
Type: String
Method for the API request, such as POST, PATCH, or DELETE.

1031
Transaction Management Quote and Order Capture Apex Reference

id
Type: Id
ID of the sales transaction, such as a quote or an order.

RecordResource(type, method)
Creates an instance of the RecordResource class to assign the values to the fields of a sales transaction by using the sObject type and
API method properties.

Signature
public RecordResource(Schema.SObjectType type, String method)

Parameters
type
Type: Schema.SObjectType
Object that’s returned from the field describe result using the getReferenceTo() method or from the sObject describe result
using the getSObjectType()method.
method
Type: String
Method for the API request, such as POST, PATCH, or DELETE.

RecordResource Properties
Learn more about the available properties with the RecordResource class.
The RecordResource class includes these properties.

criteria
Set the criteria property to group order or quote line items. For example, group order or quote line items based on a monthly billing
frequency.
fieldValues
Set the fieldValues property to assign values to the fields to update the sales transaction.
groupAction
Set the groupAction property to group order or quote line items.
id
Set the id property to assign the ID of the sales transaction record.
method
Set the method property to specify the API request method, such as POST, PATCH, or DELETE.
type
Set the type property to assign the object type that’s returned from the field describe result by using the getReferenceTo() method
or from the sObject describe result by using the getSObjectType() method.

1032
Transaction Management Quote and Order Capture Apex Reference

criteria
Set the criteria property to group order or quote line items. For example, group order or quote line items based on a monthly billing
frequency.

Signature
public Map<String,ANY> criteria {get; set;}

Property Value
Type: Map<String,ANY>

fieldValues
Set the fieldValues property to assign values to the fields to update the sales transaction.

Signature
public Map<String,ANY> fieldValues {get; set;}

Property Value
Type: ListMap<String,ANY>

groupAction
Set the groupAction property to group order or quote line items.
You can group order or quote line items based on location, work types, or departments, if groups are enabled for your org. Groups
provide a visualization of the products to view large quotes.

Signature
public String groupAction {get; set;}

Property Value
Type: String
Valid values are:
• GroupBy
• Group
• Ungroup
• GroupAll
• DeleteGroup

id
Set the id property to assign the ID of the sales transaction record.

1033
Transaction Management Quote and Order Capture Apex Reference

Signature
public String id {get; set;}

Property Value
Type: String

method
Set the method property to specify the API request method, such as POST, PATCH, or DELETE.

Signature
public String method {get; set;}

Property Value
Type: String

type
Set the type property to assign the object type that’s returned from the field describe result by using the getReferenceTo() method or
from the sObject describe result by using the getSObjectType() method.

Signature
public Schema.SObjectType type {get; set;}

Property Value
Type: Schema.SObjectType

RecordWithReferenceRequest Class
Contains constructors and properties to associate a record object with a reference identifier.

Namespace
RevSalesTrxn

Example
RevSalesTrxn.RecordWithReferenceRequest quoteLineItemRecords = new
RevSalesTrxn.RecordWithReferenceRequest('refQuoteItem',quoteLineItemRecord);

RecordWithReferenceRequest Constructors
Learn more about the available constructors with the RecordWithReferenceRequest class.
RecordWithReferenceRequest Properties
Learn more about the available properties with the RecordWithReferenceRequest class.

1034
Transaction Management Quote and Order Capture Apex Reference

RecordWithReferenceRequest Constructors
Learn more about the available constructors with the RecordWithReferenceRequest class.
The RecordWithReferenceRequest class includes these constructors.

RecordWithReferenceRequest(referenceId, record)
Creates an instance of the RecordWithReferenceRequest class to associate a record object with a reference identifier by using the
referenceId and record object properties.

RecordWithReferenceRequest(referenceId, record)
Creates an instance of the RecordWithReferenceRequest class to associate a record object with a reference identifier by using the
referenceId and record object properties.

Signature
public RecordWithReferenceRequest(String referenceId, RevSalesTrxn.RecordResource
record)

Parameters
referenceId
Type: String
Reference ID that maps to the subrequest response and can be used to reference the response in subsequent subrequests. You can
reference the referenceId in either the body or URL of a subrequest. Use this syntax to include a reference: @{referenceId.FieldName}.
See referenceId property of a composite subrequest.
record
Type: RevSalesTrxn.RecordResource
Record object that’s defined using the RecordResource class.

RecordWithReferenceRequest Properties
Learn more about the available properties with the RecordWithReferenceRequest class.
The RecordWithReferenceRequest class has these properties.

record
Set the record property to specify the record object that’s defined by using the RecordResource class.
referenceId
Set the referenceId property to specify the reference ID that maps to the subrequest response. This reference ID can be used to
reference the response in subsequent subrequests.

record
Set the record property to specify the record object that’s defined by using the RecordResource class.

1035
Transaction Management Quote and Order Capture Standard Invocable Actions

Signature
public RevSalesTrxn.RecordResource record {get; set;}

Property Value
Type: RevSalesTrxn.RecordResource

referenceId
Set the referenceId property to specify the reference ID that maps to the subrequest response. This reference ID can be used to reference
the response in subsequent subrequests.

Signature
public String referenceId {get; set;}

Property Value
Type: String

Quote and Order Capture Standard Invocable Actions


Learn more about the standard invocable actions available with Quote and Order Capture.

Create Contract Action


Create a contract from a specific quote record.
Create Order From Quote Action
Create an order from a quote record.
Create Service Document Actions
Create service documents from work orders, work order line items, or service appointments.

SEE ALSO:
Actions Developer Guide: Overview
REST API Developer Guide: Invocable Actions Standard

Create Contract Action


Create a contract from a specific quote record.
This action is available in API version 60.0 and later.

Special Access Rules


The Create Contract action is available in Developer, Enterprise, and Unlimited Editions of Revenue Cloud.

1036
Transaction Management Quote and Order Capture Standard Invocable Actions

Supported REST HTTP Methods


URI
/services/data/v63.0/actions/standard/createContract
Formats
JSON, XML
HTTP Methods
POST
Authentication
Authorization: Bearer token

Inputs

Input Details
contractPriceOption Type
string
Description
Optional.
Determines how the contract price is set for quote line items based on the selected value.
Valid values are:
• CONTRACT_HEADER_ONLY—Creates a contract with only the header information,
without using net prices or discounts.
• NET_UNIT_PRICE_ONLY—Creates a contract specifically for quote line items with a
net unit price, saving all net unit prices of the quote as contract prices.
• DISCOUNT_ONLY—Creates contract prices specifically for quote line items with discounts,
saving all discounts of the quote as contract prices.
The default value is CONTRACT_HEADER_ONLY.

sourceId Type
string
Description
Required.
ID of the quote or order that you want to create a contract from.

Outputs

Output Details
contractId Type
string

1037
Transaction Management Quote and Order Capture Standard Invocable Actions

Output Details

Description
ID of the contract created for the specified order or quote.

Example
POST
This sample request is for the Create Contract action.
{
"inputs": [
{
"sourceId": "0Q0RO0000003LyU",
"contractPriceOption": "NET_UNIT_PRICE_ONLY"
}
]
}

This sample response is for the Create Contract action.


[
{
"actionName": "createContract",
"errors": null,
"isSuccess": true,
"outputValues": {
"contractId": "800XXX123456789"
}
}
]

SEE ALSO:
Salesforce Help: Use a Custom Flow to Create Contracts

Create Order From Quote Action


Create an order from a quote record.
This action is available in API version 60.0 and later.

Special Access Rules


The Create Order From Quote action is available in Enterprise, Unlimited, and Developer Editions of Revenue Cloud.

Supported REST HTTP Methods


URI
/services/data/v63.0/actions/standard/createOrderFromQuote

1038
Transaction Management Quote and Order Capture Standard Invocable Actions

Formats
JSON, XML
HTTP Methods
POST
Authentication
Authorization: Bearer token

Inputs

Input Details
quoteRecordId Type
datetime
Description
Required.
ID of the quote record.

Outputs

Output Details
requestId Type
string
Description
ID of the request.

Example
POST
This sample request is for the Create Order From Quote action.
{
"inputs": [
{
"quoteRecordId": "0Q0D200000000DhKAI"
}
]
}

This sample response is for the Create Order From Quote action.
[
{
"actionName": "createOrderFromQuote",
"errors": null,
"isSuccess": true,

1039
Transaction Management Quote and Order Capture Standard Invocable Actions

"outputValues": {
"requestId": "143021b0-ada6-49f5-a2ea-6977a45c06a6"
}
}
]

Create Service Document Actions


Create service documents from work orders, work order line items, or service appointments.
This object is available in API version 60.0 and later.

Supported REST HTTP Methods


URI
/services/data/v60.0/actions/standard/createServiceDocument
Formats
JSON
HTTP Methods
POST
Authentication
Authorization: Bearer token

Inputs

Input Details
recordId Type
string
Description
Required. The record ID of a work order, work order line item, or service appointment used to
generate the service document. Create a Lightning web component to use a Custom Property
Editor (CPE) to validate the recordId to avoid deployment issues.

templateId Type
string
Description
Required, if the recordId is a work order, work order line item, or service appointment. The
ID of the service document template to use when generating the document.

locale Type
string
Description
Optional. Specifies the language for service document localization. The default is the user’s
language. Used when generating a document in a different language from the user’s language.
See a list of supported languages in Supported Languages.

1040
Transaction Management Quote and Order Capture Standard Invocable Actions

Input Details
You can only input language for locale. For example, use es for Spanish. Using language and
country, for example es_ES for Spanish associated with Spain, results in error.

title Type
string
Description
Optional. The value used to name the document that’s generated and saved.

documentType Type
string
Description
Optional. Value that allows users to generate different types of documents by using the service.
Valid values are:
• ServiceDocument—Type of service document, such as service agreement or service
contract.
• QuoteDocument—Type of quote document, such as sales quote or service quote.
• SfsQuoteDocument—Type of quote document for Salesforce Field Service (SFS), suitable
for mobile use. This document is stored in the QuoteDocument object, and is generated
through flow-based processes that link to related service documents.
The default value is ServiceDocument.

pdfReportId Type
string
Description
Optional value corresponding to recordId and templateId. However, the value is required
if you aren’t generating the document from the default pdfRecord record. For the Document
Builder feature, this is a service report ID for a report that is in progress, queued, or failed. It must
be used to generate a service document from failed state.

Outputs

Inputs Details
pdfReportId Type
string
Description
Required. The report’s record ID that holds the generated PDF. For service documents, the
pdfReportId is a service report, and the record is created if the work order, work order line
item, or service appointment is passed as the recordId.

1041
Transaction Management Quote and Order Capture Metadata API Types

Usage
Sample Input
The following code sample generates a PDF of a service document with a specific recordId and templateId:
{

"inputs":[

"recordId": "08pOG00000023anYAA",

"templateId": "0M0OG0000005Na40AE",

"locale": "en_US",

"title": "My Awesome PDF"

Quote and Order Capture Metadata API Types


Metadata API enables you to access some types and feature settings that you can customize in the user interface.

Flow for Quote and Order Capture


The flow for Quote and Order Capture represents the metadata associated with a flow. With Flow, you can create an application that
takes users through a series of pages to query and update the records in the database. You can also run logic and provide branching
capability based on user input to build dynamic applications.

SEE ALSO:
Metadata API Developer Guide: Understanding Metadata API

Flow for Quote and Order Capture


The flow for Quote and Order Capture represents the metadata associated with a flow. With Flow, you can create an application that
takes users through a series of pages to query and update the records in the database. You can also run logic and provide branching
capability based on user input to build dynamic applications.

FlowActionCall
Quote and Order Capture exposes additional actionType values for the FlowActionCall metadata type.

1042
Transaction Management Asset Lifecycle

Field Name Field Type Description


actionType InvocableActionType Required.
(enumeration of
type string) The action type. Additional valid values for Quote and Order Capture
are:
• createOrderFromQuote—Create an order from a quote
record.
• createContract—Create a contract from a specific quote
record.

Asset Lifecycle
Get insights into customer assets and increase customer lifetime value. Also, get a consolidated list
EDITIONS
of all assets that belong to an account.
Available in: Lightning
Asset Lifecycle Standard Objects Experience
The Asset Lifecycle data model provides objects and fields to manage details of a customer Available in: Enterprise,
asset. Unlimited, and Developer
Asset Lifecycle Standard Invocable Actions Editions of Revenue Cloud
Learn more about the standard invocable actions available with Asset Lifecycle management.
Asset Lifecycle Metadata API Types
Metadata API enables you to access some types and feature settings that you can customize in the user interface.
Asset Lifecycle Business APIs
Use the Asset Lifecycle Business APIs to initiate the amendment, cancellation, or renewal of assets.

Asset Lifecycle Standard Objects


The Asset Lifecycle data model provides objects and fields to manage details of a customer asset.

Asset
Represents an item of commercial value, such as a product sold by your company or a competitor, that a customer has purchased.
AssetAction
Represents a change made to a lifecycle-managed asset. The fields can’t be edited. This object is available in API version 50.0 and
later.
AssetActionSource
Represents an optional way to record what transactions caused changes to lifecycle-managed assets. Use it to trace financial and
other information about asset actions. This object supports Salesforce order products and work order line items, and transaction IDs
from other systems. The fields can’t be edited. This object is available in API version 50.0 and later.
AssetAttribute
Stores asset attributes to track and analyze asset conditions to improve their uptime. This object is available in API version 57.0 and
later.

1043
Transaction Management Asset Lifecycle Standard Objects

AssetContractRelationship
Represents a relationship between an asset and a contract. This object is available in API version 60.0 and later.
AssetDowntimePeriod
Represents a period during which an asset is not able to perform as expected. Downtime periods include planned activities, such
as maintenance, and unplanned events, such as mechanical breakdown. This object is available in API version 49.0 and later.
AssetOwnerSharingRule
Represents the rules for sharing an Asset with users other than the owner. This object is available in API version 33.0 and later.
AssetRelationship
Represents a non-hierarchical relationship between assets due to an asset modification; for example, a replacement, upgrade, or
other circumstance. In Subscription Management and Revenue Lifecycle Management, this object represents an asset or assets
grouped in a bundle or set. This object is available in API version 41.0 and later.
AssetShare
Represents a sharing entry on an Asset. This object is available in API version 33.0 and later.
AssetStatePeriod
Represents a time span when an asset has the same quantity, amount, and monthly recurring revenue (MRR). An asset has as many
asset state periods as there are changes to it (asset actions) during its lifecycle. The dashboard and related pages show the current
asset state period. The fields can’t be edited. This object is available in API version 50.0 and later.
AssetStatePeriodAttribute
Represents a virtual object that holds the key-value pair of the asset attribute in a specified asset state period. This object is a child
object of AssetStatePeriod. This object is available in API version 60.0 and later.
AssetTag
Associates a word or short phrase with an Asset.
AssetTokenEvent
The documentation has moved to AssetTokenEvent in the Platform Events Developer Guide.
AssetWarranty
Defines the warranty terms applicable to an asset along with any exclusions and extensions. This object is available in API version
50.0 and later.

SEE ALSO:
Object Reference for the Salesforce Platform: Overview of Salesforce Objects and Fields
SOAP API Developer Guide: Introduction to SOAP API

Asset
Represents an item of commercial value, such as a product sold by your company or a competitor, that a customer has purchased.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), search(), undelete(), update(), upsert()

1044
Transaction Management Asset Lifecycle Standard Objects

Fields

Field Details
AccountId Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
(Required) ID of the Account associated with this asset. Must be a valid account ID. Required
if ContactId isn’t specified.
This field is a relationship field.
Relationship Name
Account
Relationship Type
Lookup
Refers To
Account

Address Type
address
Properties
Filter, Nillable
Description
Represents the physical address or geolocation of the asset.

AssetLevel Type
int
Properties
Filter, Group, Nillable, Sort
Description
The asset’s position in an asset hierarchy. If the asset has no parent or child assets, its level
is 1. Assets that belong to a hierarchy have a level of 1 for the root asset, 2 for the child assets
of the root asset, 3 for their children, and so forth. On assets created before the introduction
of this field, the asset level defaults to –1. After the asset record is updated, the asset level is
calculated and automatically updated.

AssetProvidedById Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The account that provided the asset, typically a manufacturer.
This field is a relationship field.

1045
Transaction Management Asset Lifecycle Standard Objects

Field Details

Relationship Name
AssetProvidedBy
Relationship Type
Lookup
Refers To
Account

AssetServicedById Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The account in charge of servicing the asset.
This field is a relationship field.
Relationship Name
AssetServicedBy
Relationship Type
Lookup
Refers To
Account

AssetTypeId Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The asset type associated with the asset.
This field is a relationship field.
This field is available in API version 62.0 and later for users with the Health Cloud Appointment
Management permission set.
Relationship Name
AssetType
Relationship Type
Lookup
Refers To
AssetType

Availability Type
percent
Properties
Filter, Nillable, Sort

1046
Transaction Management Asset Lifecycle Standard Objects

Field Details

Description
The percentage of expected uptime where the asset was available for use.

AveragetimetoRepair Type
double
Properties
Create, Filter, Nillable, Sort, Update
Description
Represents the number of hours it typically takes to repair an asset after a failure.

AveragetimeBetweenFailure Type
double
Properties
Create, Filter, Nillable, Sort, Update
Description
Represents the number of hours that typically elapses before the asset is likely to fail again.

AverageUptimePerDay Type
double
Properties
Create, Filter, Nillable, Sort, Update
Description
The average number of hours per day the asset is expected to be available for use.

City Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The city detail for the address.

ConsequenceOfFailure Type
picklist
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The business impact associated with the asset’s failure. Using this field, you can address the
asset’s health and take action using Flows. To enable this field, use Object Manager to update
the field availability. Make sure that the field is visible for field-level security and for page
layout. To learn more, see What Determines Field Access. The picklist values aren’t predefined
in orgs created before Winter ’22 that aren’t Field Service enabled. This field is available in
API version 53.0 and later.

1047
Transaction Management Asset Lifecycle Standard Objects

Field Details
Possible values are:
• Insignificant
• Minor
• Moderate
• Major
• Critical

ContactId Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
Required if AccountId isn’t specified. ID of the Contact associated with this asset. Must
be a valid contact ID that has an account parent (but doesn’t need to match the asset’s
AccountId).
This field is a relationship field.
Relationship Name
Contact
Relationship Type
Lookup
Refers To
Contact

Country Type
String
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The country detail for the address.

CurrencyIsoCode Type
picklist
Properties
Create, Defaulted on create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
Three-letter ISO 4217 currency code associated with the invoice. The default value is USD.
This field is available in API version 55.0 and later. This field is available when CPQ Plus,
Salesforce Billing, or Subscription Management is enabled.

CurrentAmount Type
currency

1048
Transaction Management Asset Lifecycle Standard Objects

Field Details

Properties
Filter, Nillable, Sort
Description
Reserved for future use.
This field is available in API version 50.0 and later. This field is available when CPQ Plus,
Salesforce Billing, or Subscription Management is enabled.

CurrentLifecycleEndDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
Represents the end of the period shown as current. System-populated field inherited from
the end date of the current asset state period. If that field is empty, as with an evergreen
subscription, the Current Lifecycle End Date field is also empty.
This field is available in API version 50.0 and later. This field is available when CPQ Plus,
Salesforce Billing, or Subscription Management is enabled.

CurrentMrr Type
currency
Properties
Filter, Nillable, Sort
Description
The asset’s monthly recurring revenue during the current asset state period. System-populated
field inherited from the monthly recurring revenue on the current asset state period. If no
asset state period is current, the value is 0. Label is Current Monthly Recurring Revenue.
This field is available in API version 50.0 and later. This field is available when CPQ Plus,
Salesforce Billing, or Subscription Management is enabled.

CurrentQuantity Type
double
Properties
Filter, Nillable, Sort
Description
The asset’s quantity during the current asset state period. System-populated field inherited
from the quantity on the current asset state period. If no asset state period is current, the
value is 0.
This field is available in API version 50.0 and later. This field is available when CPQ Plus,
Salesforce Billing, or Subscription Management is enabled.

Description Type
textarea

1049
Transaction Management Asset Lifecycle Standard Objects

Field Details

Properties
Create, Nillable, Update
Description
Description of the asset.

DigitalAssetStatus Type
picklist
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
Status of digital tracking of the asset. The default picklist includes the following values:
• On
• Off
• Warning
• Error

ExternalIdentifier Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The ID of the matching record in an external system. This field is available in API version 49.0
and later.

GeocodeAccuracy Type
picklist
Properties
Create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
Accuracy level of the geocode for the address.

HasLifecycleManagement Type
boolean
Properties
Defaulted on create, Filter, Group, Sort
Description
True if this asset is a lifecycle-managed asset, otherwise false. You can’t switch an asset to a
lifecycle-managed asset or the reverse. This field is system populated.
The default value is false.
This field is available in API version 50.0 and later. This field is available when CPQ Plus,
Salesforce Billing, or Subscription Management is enabled.

1050
Transaction Management Asset Lifecycle Standard Objects

Field Details
InstallDate Type
date
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
Date when the asset was installed.

IsCompetitorProduct Type
boolean
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
Indicates whether this Asset represents a product sold by a competitor (true) or not
(false). The default value is false. Its UI label is Competitor Asset.

IsInternal Type
boolean
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
Indicates that the asset is produced or used internally (true) or not (false). The default
value is false. Its UI label is Internal Asset.

LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The date and time that the asset was last modified. Its UI label is Last Modified Date.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The date and time that the asset was last viewed.

Latitude Type
double
Properties
Create, Filter, Group, Nillable, Sort, Update

1051
Transaction Management Asset Lifecycle Standard Objects

Field Details

Description
Used with Longitude to specify the precise geolocation of the address.

LifecycleEndDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
Represents the end of the asset’s lifecycle. System-populated field inherited from the end
date of the final asset state period. If that field is empty, as with an evergreen subscription,
the lifecycle has no end date. This field is available in API version 50.0 and later. This field is
available when CPQ Plus, Salesforce Billing, or Subscription Management is enabled.

LifecycleStartDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
Represents the beginning of the asset’s lifecycle. System-populated field inherited from the
start date of the earliest asset state period. This field can’t be edited. When a new asset action
affects the start date of an asset state period, the period is deleted and a new one is generated.
This field is available in API version 50.0 and later. This field is available when CPQ Plus,
Salesforce Billing, or Subscription Management is enabled.

LocationId Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The asset’s location. Typically, this location is the place where the asset is stored, such as a
warehouse or van.

Longitude Type
double
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
Used with Latitude to specify the precise geolocation of the address.

ManufactureDate Type
date
Properties
Create, Filter, Group, Nillable, Sort, Update

1052
Transaction Management Asset Lifecycle Standard Objects

Field Details

Description
The date when the asset was manufactured. This field is available from API version 49.0 and
later.

Name Type
string
Properties
Create, Filter, Group, idLookup, Sort, Update
Description
(Required) Name of the asset. Label is Asset Name.

OwnerId Type
reference
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
The asset’s owner. By default, the asset owner is the user who created the asset record. Its
UI label is Asset Owner.
This field is a relationship field.
Relationship Name
Owner
Relationship Type
Lookup
Refers To
User

ParentId Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The asset’s parent asset. Its UI label is Parent Asset.
This field is a relationship field.
Relationship Name
Parent
Relationship Type
Lookup
Refers To
Asset

1053
Transaction Management Asset Lifecycle Standard Objects

Field Details
PostalCode Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The postal code for the address.

Price Type
currency
Properties
Create, Filter, Nillable, Sort, Update
Description
Price paid for this asset.

PricingSource Type
picklist
Properties
Create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
Pricing source to use when amending or renewing an asset.
Valid values are:
• LastTransaction—Last Transaction
• PriceBookListPrice—Price Book or List Price
Available in API version 60.0 and later.

Product2Id Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
(Optional) ID of the Product2 associated with this asset. Must be a valid Product2 ID. Its UI
label is Product.
This field is a relationship field.
Relationship Name
Product2
Relationship Type
Lookup
Refers To
Product2

1054
Transaction Management Asset Lifecycle Standard Objects

Field Details
ProductCode Type
string
Properties
Filter, Group, Nillable, Sort
Description
The product code of the related product.

ProductDescription Type
string
Properties
Filter, Sort, Nillable
Description
The product description of the related product.

ProductFamily Type
picklist
Properties
Filter, Group, Sort, Nillable
Description
The product family of the related product.

PurchaseDate Type
date
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
Date on which this asset was purchased.

Quantity Type
double
Properties
Create, Filter, Nillable, Sort, Update
Description
Quantity purchased or installed. The Quantity field value isn’t set by Customer Asset Lifecycle
Management. Instead, you can populate the field as you need.

QuantityIncreasePricingType Type
picklist
Properties
Create, Filter, Group, Nillable, Restricted picklist, Sort, Update

1055
Transaction Management Asset Lifecycle Standard Objects

Field Details

Description
Specify which pricing type to use when the quantity of this asset is increased. Its UI label is
Pricing Type for Quantity Increase. This field is available in API version 56.0 and later. This
field is available when Subscription Management is enabled.
Possible values are:
• LastNegotiatedPrice—Available in API version 58.0 and later.
• ListPrice

RecordTypeId Type
reference
Properties
Create, Filter, Group, Sort, Update
Description
The unique identifier for the asset.
This field is a relationship field.
Relationship Name
RecordType
Relationship Type
Lookup
Refers To
RecordType

Reliability Type
percent
Properties
Filter, Nillable, Sort
Description
The percentage of expected uptime where the asset wasn’t subject to unplanned downtime.

RenewalPricingType Type
picklist
Properties
Create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
The price used when renewing a subscription. Its UI label is Pricing Type for Renewal. This
field is available in API version 55.0 and later. This field is available when Subscription
Management is enabled.
Possible values are:
• LastNegotiatedPrice
• ListPrice

1056
Transaction Management Asset Lifecycle Standard Objects

Field Details
RenewalTerm Type
double
Properties
Create, Filter, Nillable, Sort, Update
Description
With Renewal Term Unit, defines the default subscription term for renewal quotes. This field
is available in API version 55.0 and later. This field is available when Subscription Management
is enabled.

RenewalTermUnit Type
picklist
Properties
Create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
The unit of time for a subscription term. This field is available in API version 55.0 and later.
This field is available when Subscription Management is enabled.
Possible values are:
• Annual—Available in API version 58.0 and later. —UI label is Years.
• Months

RootAssetId Type
reference
Properties
Filter, Group, Nillable, Sort
Description
(Read only) The top-level asset in an asset hierarchy. Depending on where an asset lies in
the hierarchy, its root could be the same as its parent. Its UI label is Root Asset.
This field is a relationship field.
Relationship Name
RootAsset
Relationship Type
Lookup
Refers To
Asset

SalesStoreId Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
ID of the RetailStore or WebStore associated with this Asset.

1057
Transaction Management Asset Lifecycle Standard Objects

Field Details
This field is a polymorphic relationship field.
To access this field, your org must have a Salesforce Order Management license or a B2B
Commerce License.
This field is available in API v60.0 and later.
Relationship Name
SalesStore
Relationship Type
Lookup
Refers To
RetailStore, WebStore

SerialNumber Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
Serial number for this asset.

State Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The state detail for the address.

Status Type
picklist
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
Customizable picklist of values. The default picklist includes the following values:
• Purchased
• Shipped
• Installed
• Registered
• Obsolete

StatusReason Type
picklist
Properties
Create, Filter, Group, Nillable, Sort, Update

1058
Transaction Management Asset Lifecycle Standard Objects

Field Details

Description
The explanation of the device status. This field is available from API version 49.0 and later.
Possible values are:
• Not Ready
• Off
• Offline
• Online
• Paused
• Standby

StockKeepingUnit Type
string
Properties
Filter, Group, Nillable, Sort
Description
The SKU assigned to the related product.

Street Type
textarea
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The street detail for the address.

SumDowntime Type
double
Properties
Filter, Nillable, Sort
Description
Accumulated downtime (planned and unplanned), determined as follows:
• When only UptimeRecordStart is set, the sum of all downtime from
UptimeRecordStart
• When UptimeRecordStart and UptimeRecordEnd are set, the sum of all
downtime from UptimeRecordStart to UptimeRecordEnd
Otherwise, downtime isn’t accumulated.

SumUnplannedDowntime Type
double
Properties
Filter, Nillable, Sort

1059
Transaction Management Asset Lifecycle Standard Objects

Field Details

Description
Accumulated unplanned downtime, determined as follows:
• When only UptimeRecordStart is set, the sum of all unplanned downtime from
UptimeRecordStart
• When UptimeRecordStart and UptimeRecordEnd are set, the sum of all
unplanned downtime from UptimeRecordStart to UptimeRecordEnd
Otherwise, unplanned downtime isn’t accumulated.

TotalLifecycleAmount Type
currency
Properties
Filter, Nillable, Sort
Description
The total amount of revenue for the asset, including revenue from each stage in the asset
lifecycle. This field is available when CPQ Plus, Salesforce Billing, or Subscription Management
is enabled.

UptimeRecordEnd Type
dateTime
Properties
Create, Filter, Nillable, Sort, Update
Description
The date until which SumDowntime and SumUnplannedDowntime are accumulated.

UptimeRecordStart Type
dateTime
Properties
Create, Filter, Nillable, Sort, Update
Description
The date from which SumDowntime and SumUnplannedDowntime are accumulated.

UsageEndDate Type
date
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
Date when usage for this asset ends or expires.

Uuid Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update

1060
Transaction Management Asset Lifecycle Standard Objects

Field Details

Description
The unique ID for the asset. This field is available in API version 49.0 and later.

Usage
Use this object to track products sold to customers. With asset tracking, a client application can quickly determine which products were
previously sold or are currently installed at a specific account. You can also create hierarchies of up to 10,000 assets.
For example, suppose that your company wants to renew and upsell opportunities on products sold in the past. Similarly, your company
can track competitive products in a customer environment where products can be replaced or swapped out.
Asset tracking is also useful for product support, providing detailed information to assist with product-specific support issues. For example,
the PurchaseDate or SerialNumber can indicate whether a given product has certain maintenance requirements, including
product recalls. Similarly, the UsageEndDate can indicate when the asset was removed from service or when a license or warranty
expires.
If an application creates an Asset record, it must specify a Name and either an AccountId, ContactId, or both.
With REST API, use the getRelatedListInfo function to get information about related lists on the asset. Note that when requesting
information about PrimaryAssets, the response is labeled Related Assets, and the response for RelatedAssets is
labeled Primary Assets.

Associated Objects
This object has the following associated objects. If the API version isn’t specified, those objects are available in the same API versions as
this object. Otherwise, they’re available in the specified API version and later.
AssetChangeEvent (API version 44.0)
Change events are available for the object.
AssetFeed
Feed tracking is available for the object.
AssetHistory
History is available for tracked fields of the object.
AssetOwnerSharingRule
Sharing rules are available for the object.
AssetShare
Sharing is available for the object.

AssetAction
Represents a change made to a lifecycle-managed asset. The fields can’t be edited. This object is available in API version 50.0 and later.

Supported Calls
describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(), retrieve(), search()

1061
Transaction Management Asset Lifecycle Standard Objects

Special Access Rules


To use Customer Asset Lifecycle Management APIs, you must have the Access Customer Asset Lifecycle Management APIs permission
and Read access to the Asset, Asset Action, Asset Action Source, and Asset State Period objects.

Fields

Field Details
ActionDate Type
dateTime
Properties
Filter, Sort
Description
The date when an asset action change is recorded. This date can differ from the start date
of the related asset state period. For example, suppose that a customer cancels a subscription
in June, and the subscription expires in October. The date the customer cancels the
subscription (June) is the action date of the asset action. The cancellation's effective date
(October) is the start date of the asset state period.

ActualTaxChange Type
currency
Properties
Filter, Nillable, Sort
Description
The rollup of actual tax from all asset action sources. This field is populated by the system.
Label is Change in Actual Tax.
This field is a calculated field.

AdjustmentAmountChange Type
currency
Properties
Filter, Nillable, Sort
Description
The rollup of adjustment amount from all asset action sources. This field is populated by the
system. Label is Change in Adjustment Amount.
This field is a calculated field.

Amount Type
currency
Properties
Filter, Sort
Description
The delta in the total asset amount resulting from an asset action.

1062
Transaction Management Asset Lifecycle Standard Objects

Field Details
AssetActionNumber Type
string
Properties
Autonumber, Defaulted on create, Filter, idLookup, Sort
Description
The ID of the asset action. Label is Name.

AssetId Type
reference
Properties
Filter, Group, Sort
Description
The ID of the related lifecycle-managed asset. Label is Asset.
This field is a relationship field.
Relationship Name
Asset
Relationship Type
Lookup
Refers To
Asset

Category Type
picklist
Properties
Filter, Group, Sort
Description
A category to apply to the asset action. In your layouts and reports, replace this optional
picklist with the required Business Category picklist. Label is Category. Available in API
version 55.0 and earlier.
Possible values are:
• Cancellations
• Cross-Sells
• Downsells
• Initial Sale
• Other
• Renewals
• Terms And Conditions Changes
• Transfers
• Upsells

1063
Transaction Management Asset Lifecycle Standard Objects

Field Details
CategoryEnum Type
picklist
Properties
Filter, Group, Nillable, Restricted picklist, Sort
Description
The business category of the asset action, for use in reporting. Asset action totals are broken
out by the picklist values on this required field, and those totals are in turn reflected on assets.
The following categories are available. They aren’t customizable. Label is Business Category.
Possible values are:
• Cancellations
• Cross-Sells
• Downsells
• Initial Sale
• Other
• Renewals
• Terms And Conditions Changes
• Transfers
• Upsells

EstimatedTaxChange Type
currency
Properties
Filter, Nillable, Sort
Description
The rollup of estimated tax from all asset action sources. This field is populated by the system.
Label is Change in Estimated Tax.
This field is a calculated field.

MrrChange Type
currency
Properties
Filter, Sort
Description
The delta in the asset’s monthly recurring revenue resulting from an asset action. For example,
suppose that the MRR during an asset state period is $200 and the next asset action adds
$100. Then this field’s value is $100. Label is Change in Monthly Recurring Revenue.

ProductAmountChange Type
currency
Properties
Filter, Nillable, Sort

1064
Transaction Management Asset Lifecycle Standard Objects

Field Details

Description
The rollup of product amount from all asset action sources. This field is populated by the
system. Label is Change in Product Amount.
This field is a calculated field.

QuantityChange Type
double
Properties
Filter, Sort
Description
The delta in the asset quantity resulting from an asset action. For example, suppose that the
asset quantity during an asset state period is 20 and the next asset action adds 10. Then this
field’s value is 10. Label is Change in Quantity.

SubtotalChange Type
currency
Properties
Filter, Nillable, Sort
Description
The rollup of subtotal from all asset action sources. This field is populated by the system.
Label is Change in Subtotal.
This field is a calculated field.

TotalAmount Type
currency
Properties
Filter, Nillable, Sort
Description
The sum of the current and previous asset action amount. This field is populated by the
system.
This field is a calculated field.

TotalCancellationsAmount Type
currency
Properties
Filter, Nillable, Sort
Description
The sum of current and previous asset action amounts categorized as Cancellations.
This field is populated by the system.

TotalCrossSellsAmount Type
currency

1065
Transaction Management Asset Lifecycle Standard Objects

Field Details

Properties
Filter, Nillable, Sort
Description
The sum of current and previous asset action amounts categorized as Cross-Sells. This
field is populated by the system.

TotalDownsellsAmount Type
currency
Properties
Filter, Nillable, Sort
Description
The sum of current and previous asset action amounts categorized as Downsells. This
field is populated by the system.

TotalInitialSaleAmount Type
currency
Properties
Filter, Nillable, Sort
Description
The sum of current and previous asset action amounts categorized as Initial Sale.
This field is populated by the system.

TotalMrr Type
currency
Properties
Filter, Nillable, Sort
Description
The sum of the monthly recurring revenue for the current and previous asset action. This
field is populated by the system. Label is Total Monthly Recurring Revenue.

TotalOtherAmount Type
currency
Properties
Filter, Nillable, Sort
Description
The sum of current and previous asset action amounts categorized as Other. This field is
populated by the system.

TotalQuantity Type
double
Properties
Filter, Nillable, Sort

1066
Transaction Management Asset Lifecycle Standard Objects

Field Details

Description
The sum of the changes in quantity for the current and previous asset action. This field is
populated by the system.

TotalRenewalsAmount Type
currency
Properties
Filter, Nillable, Sort
Description
The sum of current and previous asset action amounts categorized as Renewals. This field
is populated by the system.

TotalTermsAndConditionsAmount Type
currency
Properties
Filter, Nillable, Sort
Description
The sum of current and previous asset action amounts categorized as Terms and
Conditions Changes. This field is populated by the system. Label is Total Terms
and Conditions Changes Amount.

TotalTransfersAmount Type
currency
Properties
Filter, Nillable, Sort
Description
The sum of current and previous asset action amounts categorized as Transfers. This
field is populated by the system.

TotalUpsellsAmount Type
currency
Properties
Filter, Nillable, Sort
Description
The sum of current and previous asset action amounts categorized as Upsells. This field
is populated by the system.

Type Type
picklist
Properties
Filter, Group, Restricted picklist, Sort

1067
Transaction Management Asset Lifecycle Standard Objects

Field Details

Description
The REST API used to generate the asset action. This field is populated by the system.
Possible values are:
• Cancel
• Change
• Generate

AssetActionSource
Represents an optional way to record what transactions caused changes to lifecycle-managed assets. Use it to trace financial and other
information about asset actions. This object supports Salesforce order products and work order line items, and transaction IDs from other
systems. The fields can’t be edited. This object is available in API version 50.0 and later.

Supported Calls
describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(), retrieve(), search()

Special Access Rules


To use Customer Asset Lifecycle Management APIs, you must have the Access Customer Asset Lifecycle Management APIs permission
and Read access to the Asset, Asset Action, Asset Action Source, and Asset State Period objects.

Fields

Field Details
ActualTax Type
currency
Properties
Filter, Nillable, Sort
Description
The region-specific tax amount determined at time of the order.

AdjustmentAmount Type
currency
Properties
Filter, Nillable, Sort
Description
An adjustment to the product amount, such as a discount.

AssetActionId Type
reference

1068
Transaction Management Asset Lifecycle Standard Objects

Field Details

Properties
Filter, Group, Sort
Description
The related asset action, that is, the change caused by an asset action source transaction.
This field is a relationship field.
Relationship Name
AssetAction
Relationship Type
Lookup
Refers To
AssetAction

AssetActionSourceNumber Type
string
Properties
Autonumber, Defaulted on create, Filter, idLookup, Sort
Description
The ID of the asset action source. Label is Name.

BillingReference Type
string
Properties
Filter, Group, Nillable, Sort
Description
The ID of the OrderItem or OrderItemDetail record that this AssetActionSource record is
created for.

Discount Type
percent
Properties
Filter, Group, Nillable, Sort
Description
The discount, expressed as a percentage, that's applied to the asset.
This field is available in API version 62.0 and later.

DiscountAmount Type
currency
Properties
Filter, Nillable, Sort
Description
The discount, expressed as currency, that's applied to the asset.

1069
Transaction Management Asset Lifecycle Standard Objects

Field Details
This field is available in API version 62.0 and later.

EffectiveGrantDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The date when the resources associated with the asset were granted.
This field is available in orgs that have Revenue Cloud when Rate Management is enabled.
This field is available in API version 62.0 and later.

EndDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The end date of the service or change.

EstimatedTax Type
currency
Properties
Filter, Nillable, Sort
Description
The estimate of the region-specific tax amount made at time of the transaction.

ExternalReference Type
string
Properties
Filter, Group, Nillable, Sort
Description
The ID of an asset action source transaction originating in a system outside of Salesforce.

ExternalReferenceDataSource Type
string
Properties
Filter, Group, Nillable, Sort
Description
A system outside of Salesforce that contains asset action source transactions.

LegalEntityId Type
reference

1070
Transaction Management Asset Lifecycle Standard Objects

Field Details

Properties
Filter, Group, Nillable, Sort
Description
The ID of the legal entity record associated with the asset action source transaction.
This field is a relationship field.
This field is available in API version 62.0 and later.
Relationship Name
LegalEntity
Relationship Type
Lookup
Refers To
LegalEntity

ListPrice Type
currency
Properties
Filter, Nillable, Sort
Description
List price for the order product. Value is inherited from the associated PriceBookEntry upon
order product creation.

NetUnitPrice Type
currency
Properties
Filter, Nillable, Sort
Description
The final adjusted unit price, inclusive of all adjustments, but exclusive of tax. The unit price
after all price adjustments are applied.

ObligatedAmount Type
currency
Properties
Filter, Nillable, Sort
Description
When a line amount is prorated, this amount shows the service amount that’s been consumed.

PeriodBoundary Type
picklist
Properties
Filter, Nillable, Sort

1071
Transaction Management Asset Lifecycle Standard Objects

Field Details

Description
Boundary delimiters for periods. It determines when a period starts and/or ends. Enum:
anniversary, align to calendar, end of period, day of period.

PeriodBoundaryDay Type
int
Properties
Filter, Nillable, Sort
Description
The number specifying the day number when Period Boundary is a specific day in a
week/month/year. It only applies when PeriodBoundary is set to "day of period.”

PeriodBoundaryStartMonth Type
picklist
Properties
Filter, Nillable, Sort
Description
Field is populated based on input in the StartDate, PeriodBoundary, and PeriodBoundaryDay
when BillingFrequency2 is Annual or by manual user entry. Possible values are:
1-January
2-February
3-March
4-April
5-May
6-June
7-July
8-August
9-September
10-October
11-November
12-December

PricebookEntryId Type
reference
Properties
Filter, Group, Nillable, Sort
Description
PricebookEntry is used as a lookup for price information in order to pre-populate OrderItem's
ListPrice and UnitPrice.

1072
Transaction Management Asset Lifecycle Standard Objects

Field Details
PricingTermCount Type
double
Properties
Filter, Nillable, Sort
Description
Number of pricing terms is this subscription product.

ProductAmount Type
currency
Properties
Filter, Nillable, Sort
Description
The product amount after the asset action source transaction.

ProductSellingModelId Type
reference
Properties
Filter, Group, Nillable, Sort
Description
Specifies the product selling model type. Foreignkey to ProductSellingModel entity.

ProrationPolicyId Type
reference
Properties
Filter, Group, Nillable, Sort
Description
The Id of the ProrationPolicy.

Quantity Type
double
Properties
Filter, Nillable, Sort
Description
The product quantity or the change in product quantity after the asset action source
transaction.

ReferenceEntityItemId Type
reference
Properties
Filter, Group, Nillable, Sort

1073
Transaction Management Asset Lifecycle Standard Objects

Field Details

Description
The ID of an asset action source transaction originating in Salesforce. The transaction can be
an order product or a work order line item.
This field is a polymorphic relationship field.
Relationship Name
ReferenceEntityItem
Relationship Type
Lookup
Refers To
OrderItem, WorkOrderLineItem

SegmentIdentifier Type
string
Properties
Filter, Group, Nillable, Sort
Description
The ID of the ramp segment associated with the asset action source transaction.
This field is available in API version 62.0 and later.

StartDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The start date of the service or change.

Subtotal Type
currency
Properties
Filter, Nillable, Sort
Description
The sum of the product amount and the adjustment amount.
This field is a calculated field.

TaxTreatmentId Type
reference
Properties
Filter, Group, Nillable, Sort
Description
Lookup to Tax Treatment entity. It's used to calculate tax.

1074
Transaction Management Asset Lifecycle Standard Objects

Field Details
TotalPrice Type
currency
Properties
Filter, Nillable, Sort
Description
Calculated by the pricing engine for ARC. Summation of TotalAdjustmentAmount plus
TotalLineAmount for this item.

TotalLineAmount Type
currency
Properties
Filter, Nillable, Sort
Description
The price of the line before any price adjustments were applied. SalesTransactionItem:
ProratedStartingTotal / StartingPriceTotal. Note: TotalPrice is computed using the UnitPrice,
which includes discounts (price adjustments), while TotalLineAmount doesn’t include price
adjustments.

TransactionDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The date of a source transaction, such as an order date.

UnitPrice Type
currency
Properties
Filter, Nillable, Sort
Description
The unit price of the item before any discounts or tax calculation.

AssetAttribute
Stores asset attributes to track and analyze asset conditions to improve their uptime. This object is available in API version 57.0 and later.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), query(), update(), upsert()

Special Access Rules


Field Service must be enabled.

1075
Transaction Management Asset Lifecycle Standard Objects

Fields

Field Details
AssetId Type
reference
Properties
Create, Filter, Group, Sort
Description
The ID of the asset.
This field is a relationship field.
Relationship Name
Asset
Relationship Type
Lookup
Refers To
Asset

AttributeDefinitionId Type
reference
Properties
Create, Filter, Group, Sort, Update
Description
The ID of the attribute definition for this asset attribute.
This field is a relationship field.
Relationship Name
AttributeDefinition
Relationship Type
Lookup
Refers To
AttributeDefinition

AttributeName Type
string
Properties
Filter, Group, Sort
Description
The name given to the asset attribute in the UI by the user.

AttributePicklistValueId Type
reference
Properties
Create, Filter, Group, Nillable, Sort, Update

1076
Transaction Management Asset Lifecycle Standard Objects

Field Details

Description
The ID of the attribute picklist value if the attribute is a picklist type.
This field is a relationship field.
Relationship Name
AttributePicklistValue
Relationship Type
Lookup
Refers To
AttributePicklistValue

AttributeValue Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
Stores the value of an asset attribute, for example 5-TB storage .

ExternalId Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
An auto-generated ID of the attribute record saved in an external system (for example an
HBase database).

Usage
Add asset descriptors to the AssetAttribute object instead of creating multiple custom attributes on an asset. This helps scale to a high
asset volume in the system.

AssetContractRelationship
Represents a relationship between an asset and a contract. This object is available in API version 60.0 and later.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), update(), upsert()

Special Access Rules


This object is available in Enterprise, Unlimited, and Developer Editions of Revenue Cloud.

1077
Transaction Management Asset Lifecycle Standard Objects

Fields

Field Details
AssetId Type
reference
Properties
Create, Filter, Group, Sort, Update
Description
The ID of the asset related to the contract.
This field is a relationship field.
Relationship Name
Asset
Relationship Type
Lookup
Refers To
Asset

ContractId Type
reference
Properties
Create, Filter, Group, Sort, Update
Description
The ID of the contract related to the asset.
This field is a relationship field.
Relationship Name
Contract
Relationship Type
Lookup
Refers To
Contract

EndDate Type
dateTime
Properties
Create, Filter, Sort, Update
Description
The end date and time of the relationship between contract and asset.

LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort

1078
Transaction Management Asset Lifecycle Standard Objects

Field Details

Description
The timestamp when the current user last accessed this record, a record related to this record,
or a list view. The associated UI label is Last Modified Date.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The timestamp when the current user last viewed this record or list view. If this value is null,
the user accessed this record or list view (LastReferencedDate) but didn’t view it.

Name Type
string
Properties
Autonumber, Defaulted on create, Filter, idLookup, Sort
Description
The auto-generated number assigned to AssetContractRelationship. (Read Only)

StartDate Type
dateTime
Properties
Create, Filter, Sort, Update
Description
The start date and time of the relationship between contract and asset.

Associated Objects
This object has the following associated objects. If the API version isn’t specified, they’re available in the same API versions as this object.
Otherwise, they’re available in the specified API version and later.
AssetContractRelationshipFeed
Feed tracking is available for the object.
AssetContractRelationshipHistory
History is available for tracked fields of the object.

AssetDowntimePeriod
Represents a period during which an asset is not able to perform as expected. Downtime periods include planned activities, such as
maintenance, and unplanned events, such as mechanical breakdown. This object is available in API version 49.0 and later.

1079
Transaction Management Asset Lifecycle Standard Objects

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), search(), undelete(), update(), upsert()

Fields

Field Details
AssetDowntimePeriodNumber Type
string
Properties
Autonumber, Defaulted on create, Filter, idLookup, Sort
Description
The unique number of this asset downtime period record.

AssetId Type
reference
Properties
Create, Filter, Group, Sort
Description
The ID of the asset this asset downtime period record is for.

Description Type
textarea
Properties
Create, Nillable, Update
Description
The description of this asset downtime period.

DowntimeType Type
picklist
Properties
Create, Defaulted on create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
The type of this asset downtime period. Possible values are:
• Planned
• Unplanned

EndTime Type
dateTime
Properties
Create, Filter, Sort, Update

1080
Transaction Management Asset Lifecycle Standard Objects

Field Details

Description
The time this asset downtime period ended.

IsExcluded Type
boolean
Properties
Defaulted on create, Filter, Group, Sort
Description
Whether this asset downtime period is excluded from the calculation of accumulated
downtime and accumulated unplanned downtime, and therefore not included in availability
and reliability calculations.

LastReferencedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The timestamp for when the current user last viewed a record related to this record.

LastViewedDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The timestamp for when the current user last viewed this record. If this value is null, this
record might only have been referenced (LastReferencedDate) and not viewed.

StartTime Type
dateTime
Properties
Create, Filter, Sort, Update
Description
The time this asset downtime period started.

AssetOwnerSharingRule
Represents the rules for sharing an Asset with users other than the owner. This object is available in API version 33.0 and later.

Note: To enable access to this object for your org, contact Salesforce customer support. However, we recommend that you
instead use Metadata API to programmatically update owner sharing rules because it triggers automatic sharing rule recalculation.
The SharingRules Metadata API type is enabled for all orgs.

1081
Transaction Management Asset Lifecycle Standard Objects

Supported Calls
create(), delete(), describeSObjects(), getDeleted(), getUpdated(), query(), retrieve(), update(),
upsert()

Special Access Rules


Customer Portal users can’t access this object.

Fields

Field Details
AssetAccessLevel Type
picklist
Properties
Create, Filter, Group, Restricted picklist, Sort, Update
Description
A value that represents the type of sharing being allowed. The possible values are:
• Read
• Edit

Description Type
textarea
Properties
Create, Filter, Nillable, Sort, Update
Description
A description of the sharing rule. Maximum size is 1000 characters.

DeveloperName Type
string
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
The unique name of the object in the API. This name can contain only underscores
and alphanumeric characters, and must be unique in your org. It must begin with a
letter, not include spaces, not end with an underscore, and not contain two
consecutive underscores. In managed packages, this field prevents naming conflicts
on package installations. With this field, a developer can change the object’s name
in a managed package and the changes are reflected in a subscriber’s organization.
Corresponds to Rule Name in the user interface.

Note: When creating large sets of data, always specify a unique


DeveloperName for each record. If no DeveloperName is specified,
performance may slow while Salesforce generates one for each record.

1082
Transaction Management Asset Lifecycle Standard Objects

Field Details
GroupId Type
reference
Properties
Create, Filter, Group, Sort
Description
The ID representing the source group. Cases owned by users in the source group
trigger the rule to give access.

Name Type
string
Properties
Create, Filter, Group, Sort, Update
Description
Label of the sharing rule as it appears in the user interface. Limited to 80 characters.
Corresponds to Label on the user interface.

UserOrGroupId Type
reference
Properties
Create, Filter, Group, Sort
Description
The ID representing the target user or group. Target users or groups are given access.

Usage
Use this object to manage the sharing rules for assets. General sharing uses this object.

AssetRelationship
Represents a non-hierarchical relationship between assets due to an asset modification; for example, a replacement, upgrade, or other
circumstance. In Subscription Management and Revenue Lifecycle Management, this object represents an asset or assets grouped in a
bundle or set. This object is available in API version 41.0 and later.
Asset relationships appear in the Primary Assets and Related Assets related lists on asset records in the UI.

Supported Calls
create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(),
retrieve(), search(), undelete(), update(), upsert()

Special Access Rules


Some fields are available only in Subscription Management and Revenue Cloud. Field availability is noted in the field detail column.

1083
Transaction Management Asset Lifecycle Standard Objects

Fields

Field Name Details


AssetId Type
reference
Properties
Create, Filter, Group, Sort
Description
The unique identifier of the new asset, which is the asset that is taking the place
of the existing asset.
This field is a relationship field.
Relationship Name
Asset
Relationship Type
Lookup
Refers To
Asset

AssetRelationshipNumber Type
string
Properties
Autonumber, Defaulted on create, Filter, idLookup, Sort
Description
An auto-generated number identifying the asset relationship.

AssetRole Type
picklist
Properties
Filter, Group, Nillable, Restricted picklist, Sort
Description
Describes the position of the main asset relative to the other assets in the
relationship.
This field is available in API version 58.0 and later. This field is available in orgs
with Subscription Management or Revenue Cloud.
Possible values are:
• Add-on—The main asset is an add-on.
• Bundle—The main asset is the bundle parent.
• Set—The asset is the main asset in the set.

CurrencyIsoCode Type
picklist

1084
Transaction Management Asset Lifecycle Standard Objects

Field Name Details

Properties
Create, Defaulted on create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
Three-letter ISO 4217 currency code associated with the asset. The default value
is USD.

FromDate Type
dateTime
Properties
Create, Filter, Nillable, Sort, Update
Description
The date when the new asset was installed.

GroupingKey Type
string
Properties
Filter, Group, idLookup, Nillable, Sort
Description
Read-only field used to indicate the bundle that an asset belongs to. For example,
if two assets have the same GroupingKey value, then it means that the assets are
bundled together.
This field is available in API v.60.0 and later. This field is available in orgs with
Subscription Management or Revenue Cloud.

ProductRelationshipTypeId Type
reference
Properties
Filter, Group, Nillable, Sort
Description
The unique identifier of the record that describes the relationship between the
main and associated assets.
This field is available in API version 58.0 and later. This field is available in orgs
with Subscription Management.
This field is a relationship field.
Relationship Name
ProductRelationshipType
Relationship Type
Lookup
Refers To
ProductRelationshipType

1085
Transaction Management Asset Lifecycle Standard Objects

Field Name Details


ProductRelatedComponent Type
reference
Properties
Filter, Group, Nillable, Sort
Description
The product related component that’s associated with the asset relationship.
This field is a relationship field.
This field is available in API 60.0 and later in Revenue Cloud.
Relationship Name
ProductRelatedComponent
Relationship Type
Lookup
Refers To
ProductRelatedComponent

RelatedAssetId Type
reference
Properties
Create, Filter, Group, Sort, Update
Description
The existing asset that is being modified.
This field is a relationship field.
Relationship Name
RelatedAsset
Relationship Type
Lookup
Refers To
Asset

RelatedAssetPricing Type
picklist
Properties
Filter, Group, Nillable, Restricted picklist, Sort
Description
Specifies whether the price of the related asset is included in the bundle price.
Valid values are:
• IncludedInBundlePrice
• NotIncludedInBundlePrice
This field is available in API version 59.0 and later in Revenue Cloud.

1086
Transaction Management Asset Lifecycle Standard Objects

Field Name Details


RelatedAssetQtyScaleMethod Type
picklist
Properties
Filter, Group, Nillable, Restricted picklist, Sort
Description
Specifies how the quantity of the related asset changes relative to the quantity
of the parent asset. Valid values are:
• Constant
• Proportional
This field is available in API version 59.0 and later in Revenue Cloud.

RelatedAssetRole Type
picklist
Properties
Filter, Group, Nillable, Restricted picklist, Sort
Description
Describes the position of the associated asset relative to other assets in the
relationship.
This field is available in API version 58.0 and later. This field is available in orgs
with Subscription Management or Revenue Cloud.
Valid values are:
• Add-on—The main asset is an add-on.
• Bundle—The main asset is the bundle parent.
• Set—The asset is the main asset in the set.
• Simple—The asset is purchased individually and isn’t associated with
variations.
• Variation Parent——The main asset is the variation parent.

RelationshipType Type
picklist
Properties
Create, Defaulted on create, Filter, Group, Nillable, Sort, Update
Description
The type of relationship between the existing asset and the new asset. This field
comes with three values—Replacement, Upgrade, and Crossgrade—, but you
can create more values in Setup.
Possible values are:
• Crossgrade—The new asset is a crossgrade of an existing asset. For
example, changing a subscription to a plan with the same service, but that
runs for a longer amount of time.

1087
Transaction Management Asset Lifecycle Standard Objects

Field Name Details


• Replacement—The new asset is replacing an existing asset. For example,
a customer’s faulty widget that was under warranty is being replaced with
a new one.
• Upgrade—The new asset is an upgrade of an existing asset. For example,
upgrading a customer’s existing subscription plan to a new plan with more
services.
The default value is Replacement.

ToDate Type
dateTime
Properties
Create, Filter, Nillable, Sort, Update
Description
The date when the modified asset is uninstalled.

Associated Objects
This object has the following associated objects. If the API version isn’t specified, they’re available in the same API versions as this object.
Otherwise, they’re available in the specified API version and later.
AssetRelationshipChangeEvent (Available in API version 58.0)
Change events are available for the object.
AssetRelationshipFeed
Feed tracking is available for the object.
AssetRelationshipHistory
History is available for tracked fields of the object.
AssetRelationshipOwnerSharingRule (Available in API version 58.0)
Sharing rules are available for the object.
AssetRelationshipShare (Available in API version 58.0)
Sharing is available for the object.

AssetShare
Represents a sharing entry on an Asset. This object is available in API version 33.0 and later.
You can only create, edit, and delete sharing entries for standard objects whose RowCause field is set to Manual. Sharing entries
for standard objects with different RowCause values are created as a result of your Salesforce org’s sharing configuration and are
read-only. For some sharing mechanisms, such as sharing sets, sharing entries aren’t stored at all.

Note: While Salesforce currently maintains read-only sharing entries for multiple sharing mechanisms, it’s possible that we’ll stop
storing certain share records to improve performance. As a best practice, don’t create customizations that rely on the availability
of these sharing entries. Any changes to sharing behavior will be communicated before they occur.

1088
Transaction Management Asset Lifecycle Standard Objects

Supported Calls
describeSObjects(), query(), retrieve()

Special Access Rules


Customer Portal users can’t access this object.

Fields
The properties available for some fields depend on the default organization-wide sharing settings. The properties listed are true for the
default settings of such fields.

Field Details
AssetAccessLevel Type
picklist
Properties
Filter, Group, Restricted picklist, Sort
Description
Level of access that the User or Group has to the Asset. The possible values are:
• Read
• Edit
• All This value is not valid for creating or deleting records.
This field must be set to an access level that is higher than the organization’s default access
level for cases.

AssetId Type
reference
Properties
Filter, Group, Sort
Description
ID of the Asset associated with this sharing entry. This field can't be updated.
This is a relationship field.
Relationship Name
Asset
Relationship Type
Lookup
Refers To
Asset

IsDeleted Type
boolean
Properties
Defaulted on create, Filter

1089
Transaction Management Asset Lifecycle Standard Objects

Field Details

Description
Indicates whether the object has been moved to the Recycle Bin (true) or not (false).
Label is Deleted.

RowCause Type
picklist
Properties
Filter, Group, Nillable, Restricted picklist, Sort
Description
Reason that this sharing entry exists. If you’re creating a sharing entry, the only permitted
value is Manual. If no value is specified, the field defaults to Manual. All other RowCause
values are read-only. After the sharing entry is created, this field can’t be edited.
Valid values include:
• Manual—The User or Group has access because a user with “All” access manually
shared the Asset with them.
• Owner—The User is the owner of the Asset.
• Rule—The User or Group has access via an Asset sharing rule.
• GuestRule—The User or Group has access via an Asset guest user sharing rule.
• LpuImplicit—The User has access to records owned by high-volume Experience
Cloud site users via a share group.

UserOrGroupId Type
reference
Properties
Filter, Group, Sort
Description
ID of the User or Group that has been given access to the Asset. This field can't be updated.
This is a polymorphic relationship field.
Relationship Name
UserOrGroup
Relationship Type
Lookup
Refers To
Group, User

Usage
This object allows you to determine which users and groups can view and edit Asset records owned by other users.
If you attempt to create a new record that matches an existing record, request updates any modified fields and returns the existing
record.

1090
Transaction Management Asset Lifecycle Standard Objects

AssetStatePeriod
Represents a time span when an asset has the same quantity, amount, and monthly recurring revenue (MRR). An asset has as many asset
state periods as there are changes to it (asset actions) during its lifecycle. The dashboard and related pages show the current asset state
period. The fields can’t be edited. This object is available in API version 50.0 and later.

Supported Calls
describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(), retrieve(), search()

Special Access Rules


To use Customer Asset Lifecycle Management APIs, you must have the Access Customer Asset Lifecycle Management APIs permission
and Read access to the Asset, Asset Action, Asset Action Source, and Asset State Period objects.

Fields

Field Details
Amount Type
currency
Properties
Filter, Sort
Description
An asset’s total amount during an asset state period.

AssetId Type
reference
Properties
Filter, Group, Sort
Description
The asset related to an asset state period. Label is Asset.
This field is a relationship field.
Relationship Name
Asset
Relationship Type
Lookup
Refers To
Asset

AssetStatePeriodNumber Type
string
Properties
Autonumber, Defaulted on create, Filter, idLookup, Sort

1091
Transaction Management Asset Lifecycle Standard Objects

Field Details

Description
The ID of the asset state period. Label is Name.

EndDate Type
dateTime
Properties
Filter, Nillable, Sort
Description
The end date and time of an asset state period. On an asset that is an evergreen subscription,
the last asset state period has no end date.

Mrr Type
currency
Properties
Filter, Sort
Description
An asset’s monthly recurring revenue during an asset state period.

Quantity Type
double
Properties
Filter, Sort
Description
The total quantity of an asset during an asset state period.

RampIdentifier Type
string
Properties
Filter, Group, Nillable, Sort
Description
The ramp record used to group order item segments for this asset state period.
This field is available in orgs that have Revenue Cloud when the Ramp Deals setting is enabled.
This field is available in API version 62.0 and later.

SegmentIdentifier Type
string
Properties
Filter, Group, Nillable, Sort
Description
The order item segment for this asset state period.
This field is available in orgs that have Revenue Cloud when the Ramp Deals setting is enabled.

1092
Transaction Management Asset Lifecycle Standard Objects

Field Details
This field is available in API version 62.0 and later.

SegmentName Type
string
Properties
Filter, Group, Nillable, Sort
Description
The name of the order item segment for this asset state period.
This field is available in orgs that have Revenue Cloud when the Ramp Deals setting is enabled.
This field is available in API version 62.0 and later.

SegmentType Type
picklist
Properties
Defaulted on create, Filter, Group, Nillable, Restricted picklist, Sort
Description
The period for the order item segment for this asset state period. Valid values are:
• Custom
• Free Trial
• Yearly
The default value is Yearly.
This field is available in orgs that have Revenue Cloud when the Ramp Deals setting is enabled.
This field is available in API version 62.0 and later.

StartDate Type
dateTime
Properties

You might also like