Support Multiple Charges, Tiers and Ad hoc Customer Pricing in Sales Agreements
To support ad hoc customer pricing, the Sales Agreement REST service now supports a new SkipPDFFlag attribute at the header level for both the Create Contracts REST and createContract SOAP web services. If the SkipPDFFlag attribute is set to true, then all the pricing terms must be passed in the payload. If the attribute is set to false, then no pricing terms must be passed in the payload and the items are priced based on the price list setup as per the existing behavior.
Here are a few scenarios of using the SkipPDPFlag attribute:
Set SkipPDPFlag attribute value to |
Pass pricing terms in the payload | Pricing term applied on the contract line |
---|---|---|
true | Yes | Pricing term in the payload is applied |
true | No | No pricing term is created |
false | Yes | Error message 'You must set the SkipPDPFlag attribute to true if you pass pricing terms in the payload.' is displayed |
false | No | Pricing as per the price list is applied |
attribute is blank | Yes | Error message 'You must set the SkipPDPFlag attribute to true if you pass pricing terms in the payload.' is displayed |
attribute is blank | No | Pricing as per the price list is applied |
The sales agreement REST service is enhanced to support the following:
- Single charge with tiers
- Multiple charges with tiers
- Multiple charges without tiers
Sample Payload with Pricing Term, Tiers and SkipPDPFlag
{
"OrgId": 204,
"LegalEntityId": 204,
"InvOrganizationId": 204,
"ContractTypeId": 300100128959121,
"ContractNumber": "IF/SAQP/0826-4",
"PartyId": 1006,
"StartDate": "2022-01-01",
"EndDate": "2024-12-31",
"CurrencyCode": "USD",
"SkipPDPFlag": true,
"ContractLine": [
{
"ItemName": "zOKC_AUTO_SAITEM_AllMultCharge",
"PriceList": "Corporate Segment Price List",
"UOMCode": "Ea",
"AllowPricelistOverrideYn": "Y",
"AdjustmentType": "Price override",
"AllowCustomAdjustmentsFlag": true,
"AdjustmentAmount": "5",
"AgreedQuantity": "10000",
"AgreedAmount": "50000",
"PricingTerm": [
{
"PriceTypeCode": "ONE_TIME",
"ChargeTypeCode": "ORA_SERVICE",
"ChargeSubtypeCode": "ORA_PRICE",
"AdjustmentTypeCode": "DISCOUNT_AMOUNT",
"Name": "Service Price",
"PricingTermTierHeader": [
{
"AdjustmentTypeCode": "MARKUP_AMOUNT",
"AggregationMethodCode": "ORA_ON_DOCUMENT",
"GraduatedCode": "ALL_APPLICABLE_TIERS",
"TierBasisTypeCode": "ORA_ITEM_QUANTITY",
"ApplicationMethodCode": "PER_UNIT",
"PricingTermTierLine": [
{
"MinimumValue": 0,
"MaximumValue": 5,
"Adjustment": 30
},
{
"MaximumValue": 10,
"MinimumValue": 5,
"Adjustment": 50
}
]
}
]
},
{
"PriceTypeCode": "ONE_TIME",
"ChargeTypeCode": "ORA_SALE",
"ChargeSubtypeCode": "ORA_PRICE",
"AdjustmentTypeCode": "PRICE_OVERRIDE",
"AdjustmentAmount": 15.00,
"Name": "Sale Price",
"ListPrice": 1200
}
]
}
]
}
You can create the entire sales agreement using the REST services. Pre-priced sales agreements can be created using both REST and SOAP services.
Steps to Enable
You don't need to do anything to enable this feature.
Key Resources
See the contracts section of the REST API for Sales and Fusion Service in Oracle Fusion Cloud Customer Experience guide for more information about Sales Agreement attributes. https://docs.oracle.com/en/cloud/saas/sales/faaps/api-contracts.html