Skip to main content


All notable changes to this project will be documented in this file.


The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[] (2022-08-08)

  • Added additional fields to the contract lines list.

[] (2022-06-25)


  • Subscription Management to handle product activation


  • Changes to the Import from Excel to take advantage of new features in Excel Importer.



  • Resolved an issue with the Import from Excel feature where it displayed an error referring to the Import Type not being valid

Contract Change Entries

A new feature added to record contract quantity changes.

Issue: The import from Excel gave an error about the version number being a protected field when updating existing lines. This is because the field is added to the imported fields to find the existing record.

Resolution: The issue is resolved by removing the version number from the imported fields after the existing record is found.

Issue: There was permission issue on contract billing log when invoicing manually.

Resolution: The issue is resolved by changing how the insert was handled.

Issue: Contract Ledger Entries that were created for consolidated invoices (multiple contracts on one invoice) would have the wrong customer number assigned when the sell-to customer was different to the bill-to customer.

Resolution: The issue was resolved and the data is corrected when the extension is upgraded.

Resolved issues with Importing contracts from Excel:

  • There was an issue with files where the contract number was not specified.
  • It was not possible to import lines that did not have an item number specified.

When validating the effective date on locking the contract, the program was also checking lines that were previously cancelled. The validation is now changed to exclude lines that were previously cancelled and still are cancelled.

Release/Send Approval Request for recurring documents

It is now possible to automatically release or send Contract Invoices or Credit Memos for approval at the time of creation. You enable this feature on the Contract Setup - "Release/Send Approval Request".

The documents are still created if the release or send approval request fails. Any errors get logged in the new Contract Billing Log.

Note: Remember to disable the confirmation message if you do set up workflows. If you do not, you will receive multiple confirmation messages when running the billing manually.

Contract Billing Log

A new contract billing log records any errors that prevent billing, prevent the document from being sent for approval or released.

BC19 Breaking Change

Handled TempBlob breaking change.


Partial Billing in first and last period

If the first billing date is in the middle of the period it is now possible to generate a partial bill for the first billing period. The same is also applicable when the billing ends in the middle of a billing period. The partial billing is only possible if this is specified in the contract setup.

  • Added logic to retain the number of deferral periods calculated so that it is not replaced from setup when the posting date is changed on a sales invoice or sales credit memo

  • Recalculate the deferral schedule on a credit memo based on the effective date of change as well as the remaining number of periods. For example if an annual contract is cancelled after 3 months, the number of periods on the credit memo will be 9 instead of 12.
  • Resolved issue with Import from Excel - was not able to import new lines to existing contracts


  • Permission sets converted to permissionset objects
  • Filter out cancelled lines on contract card 19/04/2021

Handled a breaking change to make contract billing compatible with version 18. Recommend all clients install this version to ensure a smooth upgrade with no errors. 26/08/2020

  • Added an Import from Excel function to the contract list. This allows you to import new contracts or update existing contracts.

Note: This extends excel importer so it also means that Contract Billing is now dependent on Excel Importer. Therefore to install this application you must first install Excel Importer from AppSource. The contract billing extension can still function if Excel Importer is not activated but it is only possible to use the Import from Excel functionality if Excel Importer is activated.

  • Fixed an issue with contract deferrals 26/08/2020

  • Added an XML port to assist with the take-on of high volumes of contracts. The file format is tab-delimited. An example file can be found in the Theta Business Central channel of Theta D365 under Implementation Tools/Take-on Balance Templates. The import assumes the first row contains headers. |ContractNo|Customer No|Bill-to Customer No|ContractDesc|PricesIncludeGST|LineNo|ItemNo|VariantCode|Description|ContractGroupCode|ContractPriceItem|PriceVariant|ContractStartDate|ContractEndDate|LastInvoiceDate|NextInvoiceDate|Recurring Frequency|Quantity|UnitPrice|LineDiscountPercent|GlobDim1|GlobDim2|GlobDim23|GlobDim4|GlobDim5|GlobDim6|GlobDim7|GlobDim8|ContractStatus|

  • Fixed an issue with the posting of a credit note where the sign was incorrectly updated on quantities and amounts

  • Added Contract Posting Description to the contract setup to allow a custom posting description to be used. For example you can now change the posting description from contract invoice to subscription invoice.

  • Added last date modified to contract header
  • Added WSPublishing.xml file
  • Changed billing to raise invoices for zero lines. Also changed reverse billing to trigger if the next billing date is changed back to prevent double billing

  • Added setup option to allow zero value contract lines

  • Added an action to the contract sub form and contract lines list to show changes between the current version and the previous version. This can be used to review the changes made from one version to the next version.

  • Added a Contract Price Item. This is to handle scenarios on the contract lines where the price is not driven by the item selected on the line but rather some other criteria. By default, the Contract Price Item is not shown.
  • Added a contract line fact box.
  • Fixed the contract line price calculation so that it updates the unit price when the quantity is changed. This is to support quantity breaks in pricing.
  • Added tooltips to the contract page (header and sub page).

  • Added variant code to contract lines and related entries to support items with variants