Release 10.8.5

This release introduces significant enhancements to pricing flexibility and contract lifecycle management, along with a few important breaking changes. The Price Change API has been updated to support more advanced tiered pricing capabilities, including a new percentage-based tier charge type. As part of this, tiered pricing updates now require explicit TierChargeType values, and the pricing field has shifted from “Amount” to “tierAmount” for tier-level changes, with “Amount” now reserved for base price adjustments. Additionally, contract cancellation behavior has been standardized, preventing direct status updates via patch and instead requiring early termination workflows, with billing responsible for executing cancellations based on configured dates.

Beyond these changes, the release includes multiple fixes to improve API stability and data consistency, such as resolving issues with duplicate pricing results, invalid updates, and usage identifier conflicts. Existing APIs have been enhanced to support the new tiered pricing model across packages, invoices, and price plans, along with improved handling of counting rules and backward compatibility. A broad set of new APIs has also been introduced, including early contract termination management, data export tracking and retrieval, billing simulation, payment gateway configuration, and tier charge type discovery. Together, these updates provide greater control over pricing strategies, improved operational transparency, and more robust tools for managing billing and integrations.

⚠️

Notice Breaking Change: The Price Change API has been altered to support new features:

  • When changing an existing tiered price (which is now Fixed Amount Tiers), the TierChargeType (Name or ID) must now be specified. This is for both the ‘Set Price’ and ‘Fixed Amount Change / Percentage Change’ Change Types
  • When changing a price on an existing tiered price, fixed or percentage, the price field has been changed from ‘Amount’ to ‘tierAmount’
  • Amount is now reserved for changing the base price in the ‘Percentage off of Base Price’ scenario
⚠️

Notice Breaking Change: Patch updates to account-contracts to change the account-contract to a cancelled status will no longer work

  • To set a cancellation date API users will need to use the Patch Account/Contract/[id] API or the new Put Account/Contract/[id]/EarlyTermination API
  • Once an early termination date has been set the account-contact will be cancelled during billing when the cancellation date has been reached

API Enhancements

  • Account/Contract/[id] (Patch): Fixed an issue where it was possible to update an account-contract to Cancelled status (billing handles this task when evaluating contract cancellation dates)
  • Account/Package/FromCatalog (Post): fixed an issue that allowed the same usage identifiers to be added to multiple account-services
  • Package/Service/PricePlan/[id] (Patch): fixed an issue where attempting to update a service tax category ID would fail and return the error ‘Object Reference not set to an instance of an object’
  • PaymentMethod (Put): fixed an issue where the request would fail if deactivationReasonTypeName was passed as an update request filter
  • PriceChange/[id]/Pricing/Paged/Detail (Get): fixed an issue which caused duplicate items to be returned in the response
  • PriceChange/[id]/Pricing/Paged/Detail (Get): fixed incorrect response provided when no matches were found

Updated APIs

  • v10/AccountSharePlan/[id]/AddOn (Get, Post, Patch): Added support to retrieve, update and add the new percentage based tier charge type
  • v10/Account/Package (Get, Post, Patch): Added support to retrieve, update and add the new percentage based tier charge type
  • v10/Invoice/Item (Get): Added support to retrieve the percentage discount value of the new percentage based tier charge type
  • v10/Invoice/Item/TaxSummary (Get): Added support to retrieve the percentage discount value of the new percentage based tier charge type
  • v10/Invoice (Get): Added support to retrieve the percentage discount value of the new percentage based tier charge type
  • v10/Account/Package/FromCatalog (Post): If the new TierChargeTypeId is not provided in the request, the catalog value will be is used
  • v10/Package/Frequency (Post): Added support to add the new percentage based tier charge type
  • v10/Package/Frequency/[id]/Pricebook/[id]/Currency/[id]/Pricing (Get): Added support to retrieve the new percentage based tier charge type and added counting rule configuration as it is no longer set on the package-frequency
  • v10/Account/PricePlan (Post, Patch): Added support to retrieve the new percentage based tier charge type and added counting rule configuration as it is no longer set on the package-frequency
  • v10/Account/PricePlan/[id]/PackageServicePricePlan/[id]/Pricing (Get): Added support to retrieve the new percentage based tier charge type and added counting rule configuration as it is no longer set on the package-frequency
  • v10/PackageFrequency/[id] (Get, Post, Patch): Added DefaultCountingRule settings on package-frequencies for backward compatibility. If DefaultCountingRule values are set on the package-frequency then those values will be copied over to the new counting rule configuration location under PackageServiceTieredPricing
  • v10/Package/[id]/Detail (Get): Added DefaultCountingRule settings on package-frequencies for backward compatibility. If DefaultCountingRule values are set on the package-frequency then those values will be copied over to the new counting rule configuration location under PackageServiceTieredPricing
  • v10/PriceChange (Get, Post, Patch): The Tier Type or Counting Rule of a package-frequency can now be changed as of a specified date, even when the package-frequency is already in use (account-packages exist). Note: switching package-frequencies to progressive pricing is not supported at this time

New APIs

  • v10/Account/Contract/[id]/EarlyTermination (Put, Delete): Put allows an EarlyTermination date to be set with the options to add an EarlyTerminationComment and or a Termination_AccountContractStatusTypeID. Delete clears the EarlyTermination date and EarlyTerminationComment fields on the AccountContract
  • v10/DataExport/History/[id] (Get): Returns data export history details for the specified ID
  • v10/DataExport/History/Paged (Get): Returns data export history details in a paged list
  • v10/DataExport/History/[dataExportHistoryID]/Download (Get): Takes a dataExportHistoryID representing a specific generated export file and returns data for the file from the DataExportHistory table, including the AWS S3 location. DataExport/Trigger returns the DataExportHistoryID so that should be used when fetching the download. The user (API or integration) can then use the returned S3 link to download the file and save it in the required location
  • v10/BillRun/History/[id]/DataExport (Get): Takes a dataExportHistoryID representing a specific generated export file and returns data for the file from the DataExportHistory table, including the AWS S3 location. DataExport/Trigger returns the DataExportHistoryID so that should be used when fetching the download. The user (API or integration) can then use the returned S3 link to download the file and save it in the required location
  • v10/TierChargeType (Get): Allows the charge types configured on pricing tiers to be retrieved (‘Fixed Amount’ or ‘Percentage Off of Base Price’). As of 10.8.5.0 a new percentage based tier type has been introduced which allows a base price to be defined along with percentage discounts per each tier
  • v10/Account/SimulatePackageBilling (Post): Simulates billing charges that would be created on an account if a limited number of account-packages were cancelled or added (maximum of ten). The API response will contain the invoice items that would be created for the account-packages in the next bill run as well as the total amount
  • v10/PaymentGateway (Get): Retrieve all of the PaymentGateway objects
  • v10/PaymentGateway/Paged (Get): Retrieve all of the PaymentGateway objects in a paged fashion
  • v10/PaymentGateway/[id] (Get): Retrieve an instance of the PaymentGateway object by its ID
  • v10/PaymentGateway/[id]/Detail (Get): Retrieve deep detail of the PaymentGateway object by its ID
  • v10/Adyen/MerchantAccount/PaymentGateway/[paymentGatewayId] (Get): Retrieve all of the AdyenMerchantAccount objects
  • v10/Adyen/MerchantAccount/PaymentGateway/[paymentGatewayId]/Sync (Post): Create a new instance of the AdyenMerchantAccount object