A plastic bottle of sweetened soda is liable for two excise duties in several European markets, and until this release Business Central could only hold one of them on an item. Business Central 2026 release wave 2 (BC29) addresses that in public preview, where you can configure an item with multiple excise duty definitions and they're calculated during transactions (roadmap 573306).
The mechanics of the change are small and the consequence is not. In BC28, the excise settings lived on an Excise Tax tab on the Item Card, with one Excise Tax Type, one Excise Tax Unit of Measure Code and one Quantity for Excise Tax. In BC29 Microsoft removed that tab and replaced it with an Excise Taxes action on the item, where you assign as many excise duty configurations as the item actually attracts (Yun Zhu's walkthrough of the preview).
If you sell packaged food and drink, cosmetics, batteries, fuel or anything else that governments tax by weight, volume or content, you have almost certainly been working around that single-type limit. The workarounds were ugly. You might duplicate item records so one carries the plastic levy and another carries the sugar levy, write a custom extension that fans out the calculation, or keep a spreadsheet that finance reconciles at period end. Microsoft says the feature reduces the need for manual workarounds, customizations, or separate item records to represent different tax obligations.
What the excise framework actually is
The excise taxes feature was introduced in BC28 (2026 release wave 1), with public preview dated 1 October 2025 and general availability dated 8 May 2026. It is a calculation framework and not a compliance reporting pack. Microsoft is explicit that the initial release ships no statutory or compliance reports; what you get is a configurable calculation model you adapt to local rules (Calculate excise taxes, 2026 wave 1).
Setup runs in four steps. You define excise tax types, each with a tax basis chosen from Weight, Volume, Quantity, Sugar Content, Alcohol Volume (ABV) or Active Content. You configure excise entry types, naming which item ledger entry types count toward the excise-liable quantity, and the options are Purchase, Sale, Positive Adjustment, Negative Adjustment, Output or Assembly Output. You set up excise duty rates per type, which turn the accumulated liable quantity into an amount. Then you flag the items and fixed assets that participate.
That basis list is the part worth reading twice. Sugar Content and Alcohol Volume (ABV) are not generic quantity measures, they are the bases that real soft drinks levies and alcohol duties are written against, and they are why a single beverage item needs two rows where one used to do. A 500ml PET bottle of cola is liable on its packaging weight under one type and on its sugar content under another. One item, two bases, two rates, two amounts.
Registering the duty, and what the journal does
Calculation happens on transactions; registration happens in the Excise Journal. Search for Excise Journal, pick a batch, choose Generate Excise Tax Entries, fill Posting Date, Starting Date and Ending Date, optionally narrow with the Code field or the Item Filter and Fixed Asset Filter, then OK and Register (Register excise tax).
The multi-duty behaviour is defined in that same documentation, and it is the detail an implementer needs. When an item has multiple excise tax types, Business Central creates a separate journal line for each applicable tax type and item ledger entry. The tax type must be enabled and allowed for the entry type. If the batch carries an Excise Tax Type Filter, only that type is generated; if the filter is blank, every enabled type is. Regenerating doesn't duplicate a line for a tax type already in the journal or already registered against the same item ledger entry, so you can register types at different times, say when the plastic levy is filed monthly and the sugar levy quarterly. The item ledger entry is only marked Excise Tax Posted once all applicable types are registered.
That last rule is the one to design your period close around. A half-registered item ledger entry is a legitimate intermediate state and not an error, and your month-end checklist needs to distinguish "not registered yet" from "registered for one of two types". Review afterwards happens on the Excise Taxes Transaction Logs page, which drills through to the item ledger entry and FA ledger entry behind each amount.
One line from the docs should shape expectations before anyone promises finance a number in the trial balance, because registering excise taxes leaves general ledger entries untouched. It calculates amounts for reporting. The posting to the ledger is still your journal and your process.
The limits to plan around
It is in public preview, so treat it as preview-only for now. The roadmap entry gives a preview date of October CY2026 and general availability in January CY2027, and the update 29.0 feature list lists the feature as Public preview. Test it on a sandbox, well away from the environment that files your returns.
The feature description leans on purchasing, with all applicable duties calculated during purchasing and vendor-related transactions, plus accuracy improvements across purchasing, inventory valuation and financial reporting. The excise entry types do include Sale, so sales-side liability is configurable, but the stated design centre is the buy side. If your duty is triggered at the point of sale to a consumer, prove that path in a sandbox before you commit a go-live date.
And there is still no statutory reporting. If your obligation is a specific government XML or portal submission, BC29 gives you defensible numbers and an audit trail, and you build or buy the filing layer. Treat the gap as a scoping item, something you plan for instead of discovering in week six.
Getting the numbers out of Business Central
As soon as a product carries two or three duties, somebody in finance wants to know the landed duty cost per SKU per market, and somebody in planning wants to know what a rate change in one jurisdiction does to next year's margin. Business Central is the right place to calculate the duty and the wrong place to model it against six other datasets.
Business Central keeps its data in its own database, so getting it into a lakehouse means building a pipeline. Two routes work. The lighter one is the standard API pages read incrementally, where you query the API v2.0 company entities such as api/v2.0/companies({id})/items and page through by modification timestamp. The community has learned the hard way that lastModifiedDateTime can return records out of order while data changes under the query, so order and filter on systemModifiedAt with systemId as a tiebreaker, or overlap the window by a minute and deduplicate (forum thread on the ordering behaviour). Illustrative shape of the request:
GET /v2.0/{tenant}/{env}/api/v2.0/companies({companyId})/items
?$filter=systemModifiedAt gt 2026-10-01T00:00:00Z
&$orderby=systemModifiedAt,systemId
The second route is table-level export. The open-source bc2adls extension exports incremental data updates (adds, modifies and deletes) from Business Central tables to Azure Data Lake Storage in the CDM folder format, and Microsoft's own Extract data from Business Central page lists it as an unsupported code sample. The original repository is archived and development continues in forks. Two details matter if you pick it. BLOB, Flow and Filter fields (along with obsoleted, disabled or non-public fields) aren't supported, and the docs say the Report read-only data access feature introduced in version 21 should be enabled so exports read from the replica database and minimize the performance impact on normal ERP operations.
On the Databricks side, either route lands in a Lakeflow pipeline. Databricks recommends starting at the most managed layer and dropping down only when it doesn't meet your requirements, so managed connectors come first, then Lakeflow pipelines, then Structured Streaming (Ingest with SQL and Spark APIs). For bc2adls output in cloud object storage, Databricks documents Auto Loader with Lakeflow pipelines on a triggered schedule as the batch ingestion option. Note that the Lakeflow Connect Dynamics 365 connector reads what Azure Synapse Link exports from Dataverse, which is not where Business Central keeps its data, so it is not the shortcut it looks like. We cover the shape of that build on our data integration page.
Once excise entries sit next to purchase history and demand forecasts in Unity Catalog, the questions change character. What does a 20 percent sugar levy increase do to the contribution margin of our top fifty SKUs. Which supplier's packaging mix is costing us most in plastic duty. Those are forecasting questions, and they need the duty detail behind each amount, which the Excise Taxes Transaction Logs page lets you review and drill down from to the related item ledger and FA ledger entries.
Model your worst item first
Spin up a BC29 sandbox and configure the single item in your catalogue that attracts the most duties. Give it every excise tax type it genuinely needs, post a purchase order and a sales order, then generate and register in the Excise Journal and confirm you get one line per tax type per item ledger entry. If that item works, the rest of the catalogue is data entry. If it doesn't, you have found your gap before the January CY2027 general availability date.
Frequently asked questions
When is multiple excise duties per item generally available?
General availability is January CY2027, with the public preview dated October CY2026, per the roadmap entry 573306. The underlying excise taxes framework from 2026 release wave 1 reached general availability on 8 May 2026.
Does registering excise tax post to the general ledger?
No. Microsoft's documentation states that registering excise taxes doesn't create general ledger entries and only calculates the amounts for reporting purposes, so the ledger posting remains part of your own finance process.
What tax bases can an excise tax type use?
Weight, Volume, Quantity, Sugar Content, Alcohol Volume (ABV) and Active Content, each combined with excise entry types that decide which item ledger entry types contribute to the liable quantity (Calculate excise taxes).
Can I report on excise duty outside Business Central?
Yes, by building a pipeline. Read the standard API pages incrementally, or export tables with bc2adls to Azure Data Lake Storage and ingest them with a Lakeflow pipeline, which Databricks recommends over hand-rolled Structured Streaming unless you need the extra control (Databricks ingestion guidance).