API Usage Explained
End-to-End Run-Time Rest APIs
The following diagram shows a Postman collection that:
- Queries a promotion id from name.
- Get Promotion Details by providing Id.
- GetObjGroupItems and GetObjDefaultGroupItems (optional steps).
- GetObjStructure provides ids for the relationships, products and attributes.
- Create account (existing REST API).
- ApplyPromotion (existing API).
- ShoppingCartConfiguratorService (New REST API)
- Auto Order
- Query Order
- ProductOrderConfiguratorService (New REST API)

Mapping of REST API sections to Configurator UI
The following image shows the Siebel configurator UI and mapping of various entities in the REST API:

- GetObjStructure provides information from the product definition.
- Run-Time Product Data response section of ShoppingCartConfiguratorService or ProductOrderConfiguratorService provides information about products or attributes that are excluded or if product has generics.
- Line item information comes from the Instance section of ShoppingCartConfiguratorService or ProductOrderConfiguratorService.
- Messages are in the response from Status section of ShoppingCartConfiguratorService or ProductOrderConfiguratorService.
GetObjStructure
Corresponding data on UI

Sample Request
Request contains the template.
{
"SiebelMessage": {
"MessageType": "Integration Object",
"IntObjectName": "WebChannelObjStructure",
"IntObjectFormat": "Siebel Hierarchical",
"ListOfWebChannelObjStructure": {
"Object": {
"Id": "1SIA-7P09",
"Name": "California Wireless 600",
"Parent Class Id": "",
"Object Type": "Product",
"ListOfRelationship": {
"Relationship": {
"Id": "",
"Name": "",
"Maximum Cardinality": "",
"Minimum Cardinality": "",
"ListOfRelationship Decoration": {
"Relationship Decoration": {
"Name": "",
"Value": ""
}
},
"ListOfRelationship Domain": {
"Relationship Domain": {
"Name": "",
"Id": ""
}
}
}
} ,
"ListOfAttribute": {
"Attribute": {
"Name": "",
"Internal Type": "",
"Display Name": "",
"Unit Of Measure": "",
"ListOfAttribute Domain": {
"Attribute Domain": {
"Internal Value": ""
}
},
"ListOfAttribute Decoration": {
"Attribute Decoration": {
"Name": "",
"Value": ""
}
},
"ListOfAttribute Default Value": {
"Attribute Default Value": {
"Display Value": ""
}
}
}
},
"ListOfConstraint": {
"Constraint": {
"Name": "",
"Rule Spec": "",
"Nat Lang Spec": "",
"Explanation": "",
"Active": "",
"Id": ""
}
},
"ListOfObject Decoration": {
"Object Decoration": {
"Name": "",
"Value": ""
}
},
"ListOfLinked Item": {
"Linked Item": {
"Name": "",
"Id": ""
}
},
"ListOfResource": {
"Resource": {
"Name": "",
"Id": ""
}
}
}
}
}
}
Sample Response
Response gives the contents.
{
"OutputIntObjectName": "WebChannelObjStructure",
"Response": {
"IntObjectFormat": "Siebel Hierarchical",
"MessageId": "123",
"IntObjectName": "WebChannelObjStructure",
"MessageType": "Integration Object",
"ListOfWebChannelObjStructure": {
"Object": [
{
"Name": "California Wireless 600",
"Id": "1SIA-7P09",
"Parent Class Id": "",
"Object Type": "Product",
"ListOfRelationship": {
"Relationship": [
{
"Name": "Accessories",
"Id": "1SIA-F1D9",
"Maximum Cardinality": "10",
"Minimum Cardinality": "0",
"ListOfRelationship Domain": {
"Relationship Domain": [
{
"Name": "Nokia Long-Life Lithium Battery",
"Id": "1SIA-F0MQ"
},
{
"Name": "Nokia Global Battery",
"Id": "1SIA-F0MZ"
},
{
"Name": "Nokia HandsFree Device",
"Id": "1SIA-F1DF"
},
{
"Name": "Nokia World TravelCharger",
"Id": "1SIA-F1DO"
}
]
}
},
{
"Name": "Additional Minutes",
"Id": "1SIA-7P65",
"Maximum Cardinality": "1",
"Minimum Cardinality": "0",
"ListOfRelationship Domain": {
"Relationship Domain": [
{
"Name": "Nites & Weekends Free",
"Id": "1SIA-7P13"
},
{
"Name": "Weekends Free",
"Id": "1SIA-F1E0"
}
]
}
},
{
"Name": "Cellular Phones",
"Id": "1SIA-7P63",
"Maximum Cardinality": "1",
"Minimum Cardinality": "0",
"ListOfRelationship Decoration": {
"Relationship Decoration": [
{
"Name": "LearnMore",
"Value": "www.nokia.com"
}
]
},
"ListOfRelationship Domain": {
"Relationship Domain": [
{
"Name": "Nokia 8909",
"Id": "1SIA-7P0T"
},
{
"Name": "Nokia 9000",
"Id": "1SIA-F0L6"
},
{
"Name": "Nokia 7500",
"Id": "1SIA-F0LH"
}
]
}
},
{
"Name": "SIM Card",
"Id": "88-15HMH",
"Maximum Cardinality": "1",
"Minimum Cardinality": "1",
"ListOfRelationship Domain": {
"Relationship Domain": [
{
"Name": "SIM Card",
"Id": "88-14SIX"
}
]
}
},
{
"Name": "Service Activation",
"Id": "1SIA-7P5V",
"Maximum Cardinality": "1",
"Minimum Cardinality": "0",
"ListOfRelationship Domain": {
"Relationship Domain": [
{
"Name": "Wireless Activation",
"Id": "1SIA-7P0E"
}
]
}
},
{
"Name": "Service Features",
"Id": "1SIA-7P5X",
"Maximum Cardinality": "3",
"Minimum Cardinality": "0",
"ListOfRelationship Decoration": {
"Relationship Decoration": [
{
"Name": "Description",
"Value": "You may select 2 out of the 3 features"
}
]
},
"ListOfRelationship Domain": {
"Relationship Domain": [
{
"Name": "Call Waiting",
"Id": "1SIA-7P0J"
},
{
"Name": "Voice-Mail",
"Id": "1SIA-7P0O"
},
{
"Name": "Extra RingTones",
"Id": "1SIA-F0NV"
}
]
}
}
]
},
"ListOfConstraint": {
"Constraint": [
{
"Name": "",
"Id": "88-2P93G",
"Active": "Y",
"Explanation": "",
"Nat Lang Spec": "Selection of Nokia World TravelCharger from Accessories requires selection of Nokia HandsFree Device from Accessories",
"Rule Spec": "req(@.[1SIA-F1D9]([1SIA-F1DO]),@.[1SIA-F1D9]([1SIA-F1DF]))"
},
{
"Name": "",
"Id": "88-2P93O",
"Active": "Y",
"Explanation": "",
"Nat Lang Spec": "Selection of Nokia Long-Life Lithium Battery from Accessories excludes selection of Nokia Global Battery from Accessories",
"Rule Spec": "excl(@.[1SIA-F1D9]([1SIA-F0MQ]),@.[1SIA-F1D9]([1SIA-F0MZ]))"
}
]
}
}
]
}
}
}
ShoppingCartConfiguratorService and ProductOrderConfiguratorService
InitInstanceOperation
- LOAD: Loads an existing instance from the database using HeaderId and
RootId.
- Reconfigure an existing quote/order line item.
- HeaderId and RootId must exist in the database.
- SET: Loads the hierarchy from a provided input Instance (PDS Order
Integration Object).
- Reconfigure an existing quote or sales order line item.
- RootId is required input and it must exist in the input instance section of the payload.
- DEFAULT
- Creates a new line item and adds the product with its default selection.
- Header record must exist in the database.
- ProductId & HeaderId are required parameters.
- ADD
- Creates a new line item and adds the product with its default selection.
- Header record does not have to exist in the database. Used when adding line items to external quotes or shopping cart.
- ProductId & Instance are required.
- HeaderId is not required - Useful for headless configuration.
GetProductData section
Corresponding Data On UI
GetProductData give key product date data information during configuration, such as generics or excluded.

Sample Request
Request contains the template of interested section from integration object CfgInteractData.
"GetProductDataRequest": { // this section includes the runtime
product data
"MessageId": "",
"MessageType": "Integration Object",
"IntObjectName": "CfgInteractData",
"IntObjectFormat": "Siebel Hierarchical",
"ListOfCfgInteractData": {
"Product Data": {
"ListOfItem": {
"Item": {
"Root Integration Id": "",
"Product Id": "{Mobile_Service_ProdId}",
"Has Generics Flag": "",
"Port Item Id": "",
"Name": "",
"Integration Id": "{PSR_MobileService_AssetIntId}",
"ListOfRelationship": {
"Relationship": {}
}
}
}
}
}
}
Sample Response
The response contains data based on the request template.
"GetProductDataResponse": {
"IntegrationId": "SiebelHierarchical",
"IntObjectName": "CfgInteractData",
"MessageType": "Integration Object",
"ListOfCfgInteractData": {
"Product Data": [
{
"ListOfItem": {
"Item": [
{
"Name": "PSR_Mobile Service",
"Product Id": "88-3C0HYJ",
"Has Generics Flag": "true",
"Integration Id": "88-3W4YJ4",
"Root Integration Id": "88-3W4YJ4",
"ListOfRelationship": {
"Relationship": [
{
"Name": "PSR_Supremo_AT Mobile",
"Id": "88-3C1AWP",
"Has Generics Flag": "true"
}
]
}
}
]
}
}
]
}
}
InteractRequest Section
This section contains runtime actions, including AddItem, RemoveItem, SetAttribute, ReplaceItem, and SetItemQuantity, based on the integration object CfgInteractRequest.
Section Header and AddItem
"InteractRequests": {
"MessageId": "",
"MessageType": "Integration Object",
"IntObjectName": "CfgInteractRequest",
"IntObjectFormat": "Siebel Hierarchical",
"ListOfCfgInteractRequest": { "Requests": {
"ListOfRequest": {
"Request": [ //Excludes constraint Selection of Advanced ISD Service from Advanced Services excludes selection of Basic ISD Service from Advanced Services
{
"Type": "AddItem",
"ListOfItem": {
"Item": {
"Add Product Id": "{{PSR_BasicISDService_ProdId}}",
"Quantity": "1",
"Integration Id": "{{ATMobility_AssetIntId}}", "Relationship Id": "{{AdvancedServices_RelId}}"
}}},
RemoveItem and SetAttribute
"ListOfRequest": {
"Request": [{
"Type": "RemoveItem",
"ListOfItem": {
"Item": {
"Remove Product Id": "88-1-D3I1CX",
"Integration Id": "88-3W52KN"
}}},
{
"Type": "SetAttribute",
"ListOfItem": {
"Item": {
"Integration Id": "88-3W4YHV"
}},
"ListOfAttribute": { //needed for getting attribute price adjustment details
"Attribute": {
"Value Type": "Text",
"Name": "PSR_Rental",
"ListOfAttribute Value": {
"Attribute Value": {
"Display Value": "Legacy"
}}}}
SetItemQuantity And ReplaceItem
"ListOfRequest": {
"Request": [{
"Type": "RemoveItem",
"ListOfItem": {
"Item": {
"Remove Product Id": "88-1-D3I1CX",
"Integration Id": "88-3W52KN"
}}},
{
"Type": "SetAttribute",
"ListOfItem": {
"Item": {
"Integration Id": "88-3W4YHV"
}},
"ListOfAttribute": { //needed for getting attribute price adjustment details
"Attribute": {
"Value Type": "Text",
"Name": "PSR_Rental",
"ListOfAttribute Value": {
"Attribute Value": {
"Display Value": "Legacy"
}}}}
Instance Section
When the InitInstanceOperation is LOAD, the instance section should contain the header of integration object PDS Quote or PDS Order. When the InitInstatnceOperation is Set, this section should be the complete PDS Quote or PDS Order integration object.
Response Messages
Instance
Instance gives the configuration result in the format of integration object PDS Quote or PDS Order.
Constraint and E&C Conflict Messages and Explanation
Corresponding Data On UI

Sample Response
"Status": {
"IntObjectFormat": "Siebel Hierarchical",
"IntObjectName": "CfgInteractStatus",
"MessageType": "Integration Object",
"ListOfCfgInteractStatus": {
"Status": [{
"Status Code": "Warning",
"Source": "UpdateConfiguration",
"Conflict Resolution": "",
"ListOfMessages": {
"Messages": [{
"ListOfMessage Type": {
"Message Type": [ {
"Message Source": "Eligibility Compatibility",
"ListOfMessage": {
"Message": [{
"Message Text": "Based on the existing compatibility and eligibility rules PSR_International Roaming Offer is not eligible: This product is not sold to: [State] = OR, PSR_International Roaming Offer requires PSR_International Data Roaming (via rule PSR_International Roaming Offer requires PSR_International Data Roaming)."