Skip to main content

Additional Sales Charges

Additional Sales Charges is an extension for Microsoft Dynamics 365 Business Central that enables automatic application of charges to documents based on configurable conditions. It allows users to define rules at both the header and line level of documents—such as Sales Orders, Sales Invoices, Sales Credit Memos, Sales Return Orders, and Sales Quotes—and apply charges dynamically when those conditions are met.

The Additional Sales Charges feature allows multiple charges to be evaluated and applied across configurable levels, with priority determining which rules take precedence within each level. The app is highly flexible, allowing you to define how many levels are required and to configure conditions for each set of charges so they are only applied when relevant. This enables a structured, real-world approach to pricing where charges are both additive and controlled.

For example, product-specific charges can be applied first, such as environmental levies or hazardous goods handling fees based on the item being sold. Freight and regional charges can then be layered on, including base delivery costs, fuel surcharges, or remote delivery fees depending on the customer's location. Finally, payment-related charges can be added, such as credit card surcharges or financing fees, ensuring the full cost to serve is accurately reflected.

By combining levels, conditions, and priority, the system ensures that relevant charges are applied together while still resolving conflicts where only one rule should apply.

If you want to try Additional Sales Charges, you can find it in AppSource. If you would like more information about Additional Sales Charges, then you can email us.

Usage Scenarios

  • Level 1 – Product charges: Apply environmental levies, hazardous goods fees, or duties based on item category or product type
  • Level 2 – Freight and delivery: Add base delivery costs, fuel surcharges, or remote delivery fees based on shipping method or customer region
  • Level 3 – Payment charges: Apply credit card surcharges, finance fees, or payment-method-specific handling charges
  • Apply promotional discounts or rebates based on quantity thresholds
  • Enforce minimum order fees for low-value transactions
  • Trigger document-level charges based on customer group or region

Levels and Priority

  • Conditions are organized into levels, and each level is evaluated independently.
  • Within a level, conditions are evaluated in priority order and the first matching condition wins.
  • After a winning condition is found within a level, lower-priority conditions in that level are not evaluated or applied.
  • Charges from different levels are additive—each level can contribute its own charge to the document.
  • This guarantees deterministic and predictable charge results while supporting layered, real-world pricing scenarios.

Calculation Types

Each charge line is configured with a calculation type that determines how its amount is derived.

Fixed Amount

The charge line is created with the Calculation Base Value as the unit price. The amount does not depend on other sales lines.

Sales Price

The charge line is created using the standard Business Central pricing logic for the item or resource. No unit price override is applied.

Percentage (of Order)

The charge amount is calculated as a percentage of the total order amount. The base for this calculation includes all sales lines (and charge lines from lower levels) that match the optional Line Filter. The full ordered quantity is used regardless of how much has been shipped or invoiced. As each level is applied, the resulting charge lines are added to the calculation base for higher levels, enabling progressive/compounding charges.

  • Base amount = Sum of (Quantity × Unit Price) for qualifying lines
  • Charge = Base amount × Calculation Base Value / 100

Percentage of Invoice Amount

The charge amount is calculated as a percentage of the remaining amount to invoice at the time of release. This is similar to Percentage, but uses the uninvoiced quantity instead of the full order quantity.

  • Base amount = Sum of ((Quantity − Quantity Invoiced) × Unit Price) for qualifying lines
  • Charge = Base amount × Calculation Base Value / 100

Immediately before posting, the unit price is adjusted to reflect the actual quantities being invoiced in that run. Like all charge types, this charge is applied once only.

Shipping and Invoicing of Charge Lines

All charge lines are automatically shipped and invoiced together with the sales document. They cannot be partially shipped or invoiced independently.

Posting behaviour

When you post a Sales Order, the app adjusts the charge lines immediately before posting to align with the posting action selected:

  • Ship — the Qty. to Ship on each unshipped charge line is set to the full remaining unshipped quantity.
  • Invoice — the Qty. to Invoice on each charge line is set to the full remaining uninvoiced quantity.
  • Ship and Invoice — both adjustments above are applied together.

This ensures charge lines always post in full alongside the rest of the document. You do not need to set quantities on charge lines manually.

Partial shipments and invoicing

When an order is shipped and invoiced in multiple runs, charge behaviour varies by calculation type:

Calculation typeBehaviour
Fixed AmountCreated once at release. Shipped with the first shipment, invoiced in full with the first invoice.
Sales PriceCreated once at release. Shipped with the first shipment, invoiced in full with the first invoice.
Percentage (of Order)Created once at release. Shipped with the first shipment, invoiced in full with the first invoice.
Percentage of Invoice AmountCreated once, then recreated for each separate invoice run. See below.

Percentage of Invoice Amount — lifecycle across multiple invoices

Because the Percentage of Invoice Amount charge is based on the value being invoiced in a given run, it behaves differently across multiple invoice postings:

  1. First ship and invoice — a charge line is created at release (or posting) and is shipped and invoiced together with that run.
  2. Second ship and invoice — when the next invoice run begins, the app detects that the previous charge line is fully shipped and invoiced. Business Central allows fully shipped and invoiced lines to be deleted from an open order, and the app uses this behaviour to remove the completed charge line and create a fresh one reflecting the value of the new invoice. This prevents unnecessary clutter from accumulating on the order.
  3. Invoice without ship — if you attempt to post an invoice-only run after the order has been shipped in multiple stages, the app will have added a new charge line that has not yet been shipped. Because Business Central cannot invoice a line that has not been shipped, the app will raise an error asking you to post with Ship and Invoice together. Set Qty. to Ship to zero on any lines you do not want to ship in that run.

Deleting a sales line that has been fully shipped and invoiced is standard Business Central behaviour. The app relies on this to keep the order tidy across multiple invoice cycles rather than leaving a trail of zero-balance charge lines on the document.

Reopening a document

When a document is reopened:

  • Unshipped charge lines are deleted and will be recreated on the next release or posting run.
  • Charge lines that have already been shipped are preserved and will not be recreated. This ensures no charge is ever duplicated.

Invoicing using Get Shipment Lines

Business Central allows you to create a Sales Invoice manually and pull in shipment lines using the Get Shipment Lines function. When you do this, each invoice is an independent document — it has no direct relationship to the original Sales Order from the app's perspective.

The app treats each of these invoices as a standalone document and applies charges to it according to your conditions. The effect depends on the calculation type:

Calculation typeEffect per invoice
Percentage of Invoice AmountA charge is calculated as a percentage of the value on that invoice. Across all invoices the total charge is proportional to the total invoiced value — the same outcome as if the order were invoiced in a single run, just split across documents.
Percentage (of Order)A charge is calculated as a percentage of the lines on that invoice. The total charge across all invoices will match what would have been charged on the full order, assuming no lines are excluded. The amount is simply spread across multiple documents.
Fixed AmountA fixed charge is added to each invoice independently. If you create three invoices from the one order, the fixed charge appears three times and the customer is charged three times the intended amount.
Sales PriceThe same applies as Fixed Amount — the charge line is added to each invoice regardless of how many invoices exist for the original order.
caution

If you use Get Shipment Lines to invoice an order across multiple invoices, Fixed Amount and Sales Price charge types are not suitable. These charges are intended to be applied once per order. Using them in this invoicing method will result in the charge being applied once per invoice, which means the customer will be overcharged.

If your business regularly uses this invoicing method, consider using Percentage of Invoice Amount or Percentage (of Order) for your charge conditions, or enable Skip Adding Additional Sales Charges on invoices where the charge has already been applied.

Manual Override

Each sales document has a Skip Adding Additional Sales Charges field. When this is enabled, the app will not automatically add, update, or delete charge lines on that document. This is useful when you want to manage the charge lines yourself—for example, to post a credit of only the charges, adjust amounts manually, or handle a one-off exception without creating a new condition.

When you enable the field on a document that already has charge lines, you will be asked whether to delete them. If you choose to keep them, they remain exactly as they are and will not be touched again by the app until the field is cleared.

To resume automatic management of the charge lines, clear the field. The lines will be recreated the next time the document is released or posted (depending on your trigger setting).

Copy Document

When you use Business Central's Copy Document function to copy a sales document, the additional charge lines are included in the copy along with all other sales lines.

By default, the copied document is treated like any other new document — releasing it will cause the app to delete and recreate the charge lines based on the conditions that apply at that time. This is the expected behaviour for standard scenarios such as creating a new order from an existing one.

However, there are scenarios where you want to retain the copied charge lines exactly as they are without the app recalculating them:

  • Partial credit of charges — for example, crediting only a portion of a charge rather than the full calculated amount.
  • Credit of charges only — creating a credit memo that contains only the charge lines, with no product lines.
  • Manual adjustment — modifying the copied charge amounts before posting.

In these cases, enable the Skip Adding Additional Sales Charges field on the copied document. This prevents the app from adding, updating, or deleting charge lines automatically, allowing you to adjust the lines manually before posting. See Manual Override for details.

Why Additional Sales Charges?

Business Central allows manual entry of charges, but this extension automates the process based on business logic you define. This reduces errors, improves consistency, and saves time—especially in high-volume environments.

Supported Countries

This app is supported in all countries where Microsoft Dynamics 365 Business Central is available.

Supported Languages

The app is available in English (AU) and other languages upon request.

See Also