TMF622 v5 Resource Mappings

Constraints and Limitations

  • TMF622 v5 API needs to create, configure, and submit an order within a single synchronous transaction. However, tax calculation for the order, which is handled through the placeOrder API, is an asynchronous process. As a result, the order cannot be activated until the tax calculation is complete. On the other hand, the submitOrder API requires the order to be in an "activated" status in order to proceed.
  • TMF622 v5 API submits the order only if tax calculation is disabled. If tax calculation is enabled, it will bypass the submit API.

Assumptions

  • The order received through the TMF622 Product Ordering Management API is initially processed in an external system. This incoming order is then transferred to Salesforce through RLM's placeOrder API and submitted to DFO for fulfillment using the submitOrder API.
    • Tax calculation operation of placeOrder API is asynchronous, activating and submitting an order to orchestration cannot happen synchronously in one single transaction.
    • Submitting an order for provisioning when tax calculation is enabled can only be done as a PATCH operation. However, this cannot be implemented, as RLM APIs do not support the PATCH operation.
  • Orders injected as "Draft" through the placeOrder API are automatically transitioned to "Activated" status. This is required because the DFO submitOrder API expects the order to be in "Activated" status in order to begin the provisioning process.
  • The necessary licenses and permissions for the placeOrder and submitOrder APIs apply to TMF622, as these are the two APIs invoked internally.

These default mappings are supported for the TMF622 v5 resources.

ProductOrdering

TMF Field<div style="width:120px"></div> Field Type<div style="width:120px"></div> TMF Description<div style="width:120px"></div> Is Mandatory as per TMForum?<div style="width:120px"></div> Supported Methods<div style="width:120px"></div> Salesforce Mapping<div style="width:120px"></div> Salesforce Description<div style="width:120px"></div>
description Long Text Area A String. Description of the product order. No GET, POST Description Description of an order
externalId Text An ExternalIdentifier. An identification of an entity that is owned by or originates in a software system different from the current system, for example a ProductOrder handed off from a commerce platform into an order handling system. The structure identifies the system itself, the nature of the entity within the system (e.g. class name) and the unique ID of the entity within the system. It is anticipated that multiple external IDs can be held for a single entity, e.g. if the entity passed through multiple systems on the way to the current system. In this case the consumer is expected to sequence the IDs in the array in reverse order of provenance, i.e. most recent system first in the list. No GET, POST externalId subresource A purchase order number or an order reference number to uniquely identify the order through the process
productOrderItem Array A ProductOrderItem. An identified part of the order. A product order is decomposed into one or more order items. Yes GET, POST productOrderItem subresource Order product details of an order
relatedParty subresource Array A RelatedPartyRefOrPartyRoleRef. RelatedParty reference. A related party defines party or party role or its reference, linked to a specific entity No GET, POST relatedParty subresource related account details of an order
@type Text A String. When sub-classing, this defines the sub-class Extensible name Yes GET, POST NA Type of the resource
state Text A ProductOrderStateType. Possible values for the state of the order No GET, POST Status Status of an order
creationDate Date A DateTime. Date and time when the ProductOrder was created No GET, POST OrderedDate Purchase order date
id Number A String. Unique identifier. No GET OrderNumber Order number
requestedStartDate Date A DateTime. Order fulfillment start date wished by the requestor. This is used when, for any reason, requestor cannot allow seller to begin to operationally begin the fulfillment before a date. No GET, POST EffectiveDate order start date
expectedCompletionDate Date A DateTime. Expected delivery date amended by the provider. No GET OrderDeliveryGroup.PromisedDeliveryDate promised delivery date of an order
completionDate NA A DateTime. Date when the ProductOrder was completed. No NA NA NA
priority NA A String. A way that can be used by consumers to prioritize orders in OM system (from 0 to 4 : 0 is the highest priority, and 4 the lowest). No NA NA NA
requestedCompletionDate NA A DateTime. Requested delivery date from the requestor perspective. No NA NA NA
channel NA A RelatedChannel. Related channel to another entity. May be online web, mobile app, social ,etc. No NA NA NA
note NA A Note. Extra information about a given entity. No NA NA NA
category NA A String. Used to categorize the order from a business perspective that can be useful for the OM system (e.g. "enterprise", "residential", …). No NA NA NA

Sub-resources

externalId

TMF Field<div style="width:120px"></div> Field Type<div style="width:120px"></div> TMF Description<div style="width:120px"></div> Is Mandatory as per TMForum?<div style="width:120px"></div> Supported Methods<div style="width:120px"></div> Salesforce Mapping<div style="width:120px"></div> Salesforce Description<div style="width:120px"></div>
id Text A String. Identification of the entity within the external system. Yes GET, POST PoNumber / OrderReferenceNumber PO or order reference number
externalIdentifierType Text A String. Type of the identification, typically would be the type of the entity within the external system No GET, POST PoNumber / OrderReferenceNumber Derived value, if Po number is not null then the type will be 'Po Number' and if order reference number is present then the type will be 'Order Reference Number'
@type Text A String. When sub-classing, this defines the sub-class Extensible name. Yes GET, POST NA Type of the resource
owner NA A String. Name of the external system that owns the entity No NA NA NA

relatedParty

TMF Field Field Type TMF Description Is Mandatory as per TMForum? Supported Methods Salesforce Mapping Salesforce Description
role Text A String. Role played by the related party or party role in the context of the specific entity it is linked to. Such as 'initiator', 'customer', 'salesAgent', 'user' Yes GET, POST NA Customer type of accounts
partyOrPartyRole subresource Text A PartyOrPartyRole. Yes GET, POST partyOrPartyRole subresource Account details of the relatedParty sub resource
@type Text A String. When sub-classing, this defines the sub-class Extensible name Yes GET, POST NA Type of the resource

partyOrPartyRole

TMF Field<div style="width:120px"></div> Field Type<div style="width:120px"></div> TMF Description<div style="width:120px"></div> Is Mandatory as per TMForum?<div style="width:120px"></div> Supported Methods<div style="width:120px"></div> Salesforce Mapping<div style="width:120px"></div> Salesforce Description<div style="width:120px"></div>
id Text A String. Unique identifier. Yes GET, POST AccountNumber Account number to identify uniquely
name Text A PartyOrPartyRole. Yes GET, POST Name name of the account
@type Text A String. When sub-classing, this defines the sub-class Extensible name. Yes GET, POST NA Type of the resource
href NA A String. Hyperlink reference. No NA NA NA
@baseType NA A String. When sub-classing, this defines the super-class. No NA NA NA
@referredType NA A String. The actual type of the target instance when needed for disambiguation No NA NA NA
@schemaLocation NA A String. A URI to a JSON-Schema file that defines additional attributes and relationships No NA NA NA

productOrderItem

TMF Field<div style="width:120px"></div> Field Type<div style="width:120px"></div> TMF Description<div style="width:120px"></div> Is Mandatory as per TMForum?<div style="width:120px"></div> Supported Methods<div style="width:120px"></div> Salesforce Mapping<div style="width:120px"></div> Salesforce Description<div style="width:120px"></div>
@type Text A String. When sub-classing, this defines the sub-class Extensible name. Yes GET, POST NA Type of the resource
action Text An ItemActionType. Action to be performed on the entity managed by the item. Yes GET, POST Type Order Item action type
id Text A String. Identifier of the ProductOrder item (generally it is a sequence number 01, 02, 03, …) Yes GET, POST OrderItemNumber Order Product Number
quantity Integer An Integer. Quantity ordered. No GET, POST Quantity Quantity of an order product
itemPrice List An OrderPrice. An amount, usually of money, that represents the actual price paid by the Customer for this item or this order. No GET, POST itemPrice subresource Price details and discount details of an order item
product json A ProductRefOrValue. The polymorphic attributes @type, @schemaLocation & @referredType are related to the Product entity and not the ProductRefOrValue class itself. No GET, POST product subresource product details of an order product
productOffering json A ProductOfferingRef. ProductOffering reference. A product offering represents entities that are orderable from the provider of the catalog, this resource includes pricing information. No GET, POST productOffering subresource product offer details of an order product
quoteItem subresource Text A QuoteItemRef. A reference to Quote item that has been executed previously. No GET, POST QuoteLineItemId quote line item reference
productOrderItemRelationship list An OrderItemRelationship. Used to describe relationship between Order item. These relationship could have an impact on pricing and conditions. No GET, POST productOrderItemRelationship order product relationship details
periodBoundary Text The period boundary helps determine the start and end date of the billing periods. This field is available in API version 55.0 and later. This field is available with Subscription Management. No GET, POST periodBoundary The period boundary helps determine the start and end date of the billing periods. This field is available in API version 55.0 and later. This field is available with Subscription Management.
periodBoundaryDay int Required when PeriodBoundary is DayOfPeriod. Indicates day of the week or month that marks the period boundary. Must be an integer from 1 through 31. This field is available in API version 55.0 and later. This field is available with Subscription Management. No GET, POST periodBoundaryDay Required when PeriodBoundary is DayOfPeriod. Indicates day of the week or month that marks the period boundary. Must be an integer from 1 through 31. This field is available in API version 55.0 and later. This field is available with Subscription Management.
PeriodBoundaryStartMonth Text 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 No GET, POST PeriodBoundaryStartMonth 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
state NA A ProductOrderItemStateType. Possible values for the state of the product order item. No NA NA NA
appointment NA An AppointmentRef. Refers an appointment, such as a Customer presentation or internal meeting or site visit. No NA NA NA
billingAccount NA A BillingAccountRef. BillingAccount reference. A BillingAccount is a detailed description of a bill structure. No NA NA NA
itemTerm NA An OrderTerm. Description of a productTerm linked to this orderItem. This represent a commitment with a duration. No NA NA NA
itemTotalPrice NA An OrderPrice. An amount, usually of money, that represents the actual price paid by the Customer for this item or this order. No NA NA NA
note NA A Note. Extra information about a given entity. No NA NA NA
payment NA A PaymentRef. If an immediate payment has been done at the product order submission, the payment information are captured and stored (as a reference) in the order. No NA NA NA
productOfferingQualificationItem NA A ProductOfferingQualificationItemRef. It's a productOfferingQualification item that has been executed previously. No NA NA NA
productOrderItem NA A ProductOrderItem. An identified part of the order. A product order is decomposed into one or more order items. No NA NA NA
qualification NA A ProductOfferingQualificationRef. A productOfferingQualification that has been executed previously. No NA NA NA
@baseType NA A String. When sub-classing, this defines the super-class. No NA NA NA
@schemaLocation NA A String. A URI to a JSON-Schema file that defines additional attributes and relationships. No NA NA NA

productOrderItemRelationship

TMF Field<div style="width:120px"></div> Field Type<div style="width:120px"></div> TMF Description<div style="width:120px"></div> Is Mandatory as per TMForum?<div style="width:120px"></div> Supported Methods<div style="width:120px"></div> Salesforce Mapping Salesforce Description<div style="width:120px"></div>
@type Text A String. When sub-classing, this defines the sub-class Extensible name. Yes GET, POST Na type of a resource
id Text A String. Identifier for this contact medium. Yes GET, POST AssociatedOrderItem → OrderItemNumber related item id
relationshipType Text A String. The type of relationship. Yes GET, POST ProductRelationshipTypeId → Name relationship of the main order item with related item

itemPrice

TMF Field<div style="width:120px"></div> Field Type<div style="width:120px"></div> TMF Description<div style="width:120px"></div> Is Mandatory as per TMForum?<div style="width:120px"></div> Supported Methods<div style="width:120px"></div> Salesforce Mapping<div style="width:120px"></div> Salesforce Description<div style="width:120px"></div>
@type Text A String. When sub-classing, this defines the sub-class Extensible name. Yes GET, POST NA Type of a resource
priceType Text A String. Indicate if the price is for recurrent or no-recurrent charge. Yes GET, POST SellingModelType Selling model type
recurringChargePeriod Text A String. Used for recurring charge to indicate period (month, week, etc..). No GET, POST PricingTermUnit Yearly/Monthly pricing
itemPrice.price subresource json A Price. Provides all amounts (tax included, duty free, tax rate), used currency and percentage to apply for Price and Price Alteration. No GET, POST itemPrice.price subresource Price override details
priceAlteration subresource list A PriceAlteration. Is an amount, usually of money, that modifies the price charged for an order item. No GET, POST priceAlteration subresource Adjustment details

itemPrice.price

TMF Field<div style="width:120px"></div> Field Type<div style="width:120px"></div> TMF Description<div style="width:120px"></div> Is Mandatory as per TMForum?<div style="width:120px"></div> Supported Methods<div style="width:120px"></div> Salesforce Mapping<div style="width:120px"></div> Salesforce Description<div style="width:120px"></div>
@type Text A String. When sub-classing, this defines the sub-class Extensible name Yes GET, POST NA type of a resource
taxRate Integer/float A Float. Tax rate. No GET, POST Rate tax rate
taxIncludedAmount Integer/float A Money. A base / value business entity used to represent money. No GET, POST Amount amount without tax
dutyFreeAmount NA A Money. A base / value business entity used to represent money. No NA NA NA

priceAlteration

TMF Field<div style="width:120px"></div> Field Type<div style="width:120px"></div> TMF Description<div style="width:120px"></div> Is Mandatory as per TMForum?<div style="width:120px"></div> Supported Methods<div style="width:120px"></div> Salesforce Mapping<div style="width:120px"></div> Salesforce Description<div style="width:120px"></div>
@type Text A String. When sub-classing, this defines the sub-class Extensible name Yes GET, POST NA Type of a resource
priceType Text A String. Indicate if the price is for recurrent or no-recurrent charge Yes GET, POST SellingModelType one time adjustment or recurring adjustment
priceAlteration.price subresource json A PriceAlteration. A strucuture used to describe a price alteration. Yes GET, POST priceAlteration.price subresource adjustment details
applicationDuration NA An Integer. Duration during which the alteration applies on the order item price (for instance 2 months free of charge for the recurring charge). No NA NA NA
description NA A String. A narrative that explains in detail the semantics of this order item price alteration. No NA NA NA
name NA A String. Name of the order item price alteration. No NA NA NA
priority NA An Integer. Priority level for applying this alteration among all the defined alterations on the order item price. No NA NA NA

priceAlteration.price

TMF Field<div style="width:120px"></div> Field Type<div style="width:120px"></div> TMF Description<div style="width:120px"></div> Is Mandatory as per TMForum?<div style="width:120px"></div> Supported Methods<div style="width:120px"></div> Salesforce Mapping<div style="width:120px"></div> Salesforce Description<div style="width:120px"></div>
@type Text A String. When sub-classing, this defines the sub-class Extensible name Yes GET, POST NA Type of resource
percentage / amount OrderItem price alternation percentage or amount No GET, POST Discount/DiscountAmount number
taxRate NA A Float. Tax rate. No NA NA NA

productOffering

TMF Field Type<div style="width:120px"></div> TMF Description<div style="width:120px"></div> Is Mandatory as per TMForum? Supported Methods<div style="width:120px"></div> Salesforce Mapping<div style="width:120px"></div> Salesforce Description<div style="width:120px"></div>
Text A String. When sub-classing, this defines the sub-class Extensible name Yes GET, POST NA type of resource
Text A String. Unique identifier Yes GET, POST ProductCode a unique product code
Text A String. Name of the referred entity No GET, POST Name Name of the product offer
NA A String. Hyperlink reference No NA NA NA

product

TMF Field<div style="width:120px"></div> Field Type<div style="width:120px"></div> TMF Description<div style="width:120px"></div> Is Mandatory as per TMForum?<div style="width:120px"></div> Supported Methods<div style="width:120px"></div> Salesforce Mapping<div style="width:120px"></div> Salesforce Description <div style="width:120px"></div>
@type Text A String. When sub-classing, this defines the sub-class Extensible name. Yes GET, POST NA type of resource
productCharacteristic List A Characteristic. Describes a given characteristic of an object or entity through a name/value pair. No GET, POST productCharacteristic subresource attribute details of an order product
productSpecification NA A ProductSpecificationRef. ProductSpecification reference. A product Specification represents entities that are orderable from the provider of the catalog. No NA NA NA
isBundle NA A Boolean. IsBundle determines whether an intent represents a single intent (false), or a bundle of intents(true). No NA NA NA

productCharacteristic

TMF Field<div style="width:120px"></div> Field Type<div style="width:120px"></div> Description<div style="width:120px"></div> Is Mandatory as per TMForum?<div style="width:120px"></div> Supported Methods<div style="width:120px"></div> Salesforce Mapping<div style="width:120px"></div> Salesforce Description<div style="width:120px"></div>
@type Text A String. When sub-classing, this defines the sub-class Extensible name. Yes GET, POST attributetype+'characteristic' For the number and string attribute value types the dervied value will be 'stringCharacteristic' for object types it will be 'objectCharacteristic'
name Text name of the characteristic Yes GET, POST AttributeName Name of the attribute
id Text id of the characteristic No GET, POST AttributeDefinition.APIName unique name/code of an attribute
valueType Text type of the value like string, slice 5G JSON descriptor No GET, POST AttributeDefinition.DataType Data type of the attribute definition of order item.
value Text/object value of the characteristic a string or a json No GET, POST AttributeValue NA

quoteItem

TMF Field<div style="width:120px"></div> Field Type<div style="width:120px"></div> TMF Description<div style="width:120px"></div> Is Mandatory as per TMForum?<div style="width:120px"></div> Supported Methods<div style="width:120px"></div> Salesforce Mapping<div style="width:120px"></div> Salesforce Description<div style="width:120px"></div>
@type Text A String. When sub-classing, this defines the sub-class Extensible name. Yes GET, POST NA Type of the resource
quoteId Text A String. Unique identifier of a refered quote. Yes GET, POST Quote. QuoteNumber quote number
quoteItemId Text A String. Unique identifier of quote item. No GET, POST LineNumber quote line item number
quoteHref NA A String. Reference of the related quote NA NA NA NA
@baseType NA A String. When sub-classing, this defines the super-class. NA NA NA NA
@referredType NA A String. The actual type of the target instance when needed for disambiguation. NA NA NA NA
@schemaLocation NA A String. A URI to a JSON-Schema file that defines additional attributes and relationships. NA NA NA NA