Update 28.4 for Microsoft Dynamics 365 Business Central 2026 Release Wave 1 (Application Build 28.4.53241, Platform Build 28.0.53152)

Applies To
Dynamics 365 Business Central (on-premises)

Overview

This update replaces previously released updates. You should always install the latest update.

After you install this hotfix, you might have to update your license to gain access to new objects that are included in this or a previous update. (This applies only to customer licenses.)

For a list of updates that were released for Microsoft Dynamics 365 Business Central 2026 Release Wave 1, see released updates for Microsoft Dynamics 365 Business Central 2026 Release Wave 1. Updates are intended for new and existing customers who are running Microsoft Dynamics Released Updates for Microsoft Dynamics 365 Business Central 2026 Release Wave 1. 

Important

We recommend that you contact your Microsoft Dynamics Partner before you install hotfixes or updates. It is important to verify that your environment is compatible with the hotfixes or updates that will be installed. A hotfix or update may cause interoperability issues with customizations and third-party products that work together with your Microsoft Dynamics 365 Business Central solution.

Problems that are resolved in this update

The following problems are resolved in this update.

Platform hotfixes

ID Title
640245 Silent client crash caused by missing SQL JOIN on table extensions when CopyFilters transfers an extension field filter across data items.
640916 Implicit app dependencies ignore the control-plane binding manifest and bind to the highest published version.
643373 Online: Intermittent 'Something went wrong' error on Android app - 2606291420002278.
643983 Enforce path rules for report attachments.
644286 Agent action fails with 500 client session communication error.
644728 Fix conditional table relation evaluated incorrectly in lookups.

Application hotfixes

ID Title Functional Area
592931 Fix to prevent posted output from Released production orders from incorrectly affecting Firm Planned production orders with the same ID. Manufacturing
630738 Contact email is not validated during Sales Order creation. Sales
630791 Address inconsistent source type references in Warehouse Reservation Entries for Job Planning Lines. Jobs
631991 Resolve access issues in a multi-tenant environment. Administration
636676 Prevent extended text from being reloaded and overwriting user modifications when the parent line description is updated. Sales
637042 Prevent infinite loop in CalculateBillingPeriod when HarmonizeNextBillingTo caps at a stale "Next Billing To" date. Finance
637385 Fix "Base Qty. to Receive must be 0" error when receiving a Transfer Order after a Production Order has been partially posted. Manufacturing
637463 Update report caption to clearly indicate that the output is generated in Excel format. Administration
637495 Planning Worksheet does not generate planning lines for items without SKU when "Missing SKU Planning Policy" is set to "Item Card". Inventory
637506 Add a "VAT Amount Type" option to the report to allow users to choose between including Non-Deductible VAT or reporting deductible VAT only. Finance
637511 Fix incorrect "Qty. to Handle (Base)" validation error during Invt. Receipt posting when Serial Number Specific Tracking is enabled and an alternate Unit of Measure is used. Inventory
637755 Fix duplicate rows in Financial Report Excel export after adding G/L Budget Dimension. Finance
638005 Fix material consumption double-counting in the "Inventory Valuation - WIP" report when non-WIP value entries follow consumption entries. Manufacturing
638100 Correct the test setup for Intrastat IT quarterly period validation. Administration
638136 Trail Balance by Period doesn't show the balance for some of the G/L Accounts in the PDF version. Finance
638146 When issuing a prepayment invoice with an invoice discount applied, the prepayment amount does not take into account the total amount including tax. Sales
638298 Address incorrect pick header flag assignment when creating Warehouse Picks from the Pick Worksheet. Warehouse
638381 Remove redundant item tracking code and consolidate usage to the standard SNALL tracking code from the Inventory module. Manufacturing
638433 Add missing UI actions and report filter fields for Work Center and Machine Center calendar calculation functionality. Manufacturing
638473 Service Item does not populate Ship-to Country/Region Code when Ship-to Code is blank. Finance
638490 Address missing purchaser name in the "Confirm With" field on Purchase Orders introduced in v28.0. Purchase
638667 Address rounding precision issues in Planning Worksheet calculations for fractional Assembly BOM component quantities. Inventory
638798 Address Shopify bulk price update revert failures for legacy queued operations after BC28 upgrade. Integration
638802 Address incorrect Source Currency Amount values in intercompany postings caused by G/L Revaluation in multicurrency scenarios. Finance
638835 Correct automatic reversion of Sales Order Line Descriptions after changes with invoice discount calculation enabled. Sales
638943 Prevent silent ignoring of Permission Set changes after importing previously exported Permission Sets due to metadata exceptions. Administration
639659 Fix unexpected invoice total changes when modifying Sales Order Line Description on a Sales Order. Sales
639666 Fix ML forecast endpoint failures by re-initializing the Time Series engine for each item instead of accumulating data across multiple items. Sales
639895 Address multiple error messages triggered when posting entries to a period with a Released VAT Return. VAT/Sales Tax/Intrastat
639903 Fix Quality Management error when entering Test Value in Quality Inspection due to invalid filter on the Allowable Values field. Inventory
639913 Ensure filters added through column header actions are recognized by the reset action and removed correctly. Administration
640038 Enhance extensibility by removing duplicate subcontracting report and adding an integration event to the BaseApp report for extension through subscription. Manufacturing
640043 Enforce Azure OpenAI privacy notice approval as a prerequisite for using the Expense Agent capability to ensure privacy policy compliance. Finance
640051 Fix Aged Accounts Receivable Excel report ignoring the user-specified "No. of Period" value. Finance
640107 Fix Payables Agent inability to finalize drafts in Italy. Finance
640108 Add localized demo data generation for Expense Management across multiple regions (AT, ES, CA, DE, NZ). Finance
640112 Address missing unit of measure information on subcontracting-related Purchase Order lines. Manufacturing
640237 Address missing WIP Transfer Line Description caused by Direct Transfer configuration on Transfer Orders. Manufacturing
640292 Correct per diem meal reduction calculation by changing from compound reduction to additive reduction. Finance
640318 Fix "Chance of Success %" validation issue when using the "Update" action type in Opportunity. Finance
640352 Add missing validation guards in SubcCalculateSubcontracts to match SubcPurchaseOrderCreator behavior for Gen. Prod. Posting Group and blocked items. Manufacturing
640353 Missing Permission/Entitlement for tabledata Return Shipment Header (6660). Service Management
640368 Fix Power Automate flows triggered from pages getting stuck on "Working on it". Integration
640404 Depreciation calculated on full asset value instead of adjusted 80% base. Finance
640406 Fix invalid reservation entries created during warehouse pick reshuffling after registering a FEFO pick with nonspecific item tracking reservations. Warehouse
640413 Enable the "Show Document" action to correctly open Finished Production Orders from the Prod. Order Line List page. Manufacturing
640419 Applying a foreign-currency payment to a bill that leads to gain-loss entry cannot be reversed. Finance
640433 Subcontracting actions on Purchase Order and Transfer Order lines are always visible (should be conditional like factbox). Manufacturing
640437 Ensure budget filters defined on column definitions are correctly applied to the drilldown page in Account Schedules. Finance
640440 Correctly update the "To" field in outgoing emails when using the "Use Another Contact Once" feature in Sales Order Agent. Sales
640446 Enhance external file deletion logic for Document Attachments. Integration
640447 Resolve an IndirectInsert permission error when using the "Use Another Contact Once" feature in SOA Task Contact Override. Sales
640455 Cannot delete Project Planning Line due to incorrect reservation entries. Jobs
640456 Incorrect Cost Amount (Actual) in Value Entries after posting assembly processes and calculating assembly standard costs. Inventory
640457 Exchange Rate Adjustment filter not working as expected. Finance
640459 Prevent duplicate sync date/time updates during the initial activation of the Sales Order Agent. Sales
640461 Update notification text for consistency between configuration dialog and setup page terminology. Finance
640464 Extend the OnBeforeFindCoupledToCRMField event to support field redirection for the removed "Coupled to Dataverse" field on Service Item. Integration
640468 Resolve G/L Entry consistency errors when posting foreign currency payment journals with Source Currency Consistency enabled. Finance
640469 "Filter by Attribute" action does not apply the filter under specific circumstances. Warehouse
640512 Bin Capacity Policy "Prohibit More Than Max. Cap." fails and allows more than the maximum Capacity, when you split lines on Inventory Movement. Warehouse
640596 Decimal formatting issue in PA. Purchase
640610 PEPPOL BIS 3 Document Type validation failure before releasing sales documents with 'Allocation Account' sales lines. Finance
640620 Remove filtering logic that was preventing Subcontracting Orders from being visible in purchase and transfer order lists. Manufacturing
640625 Fix General Journal line performance issue in BC-IN Online reported from June 17, 2026. Finance
640630 Incorrect amounts in "Trial Balance" Excel report. Administration
640643 Ensure object IDs (Report/XMLport) are correctly remapped from legacy to new app IDs during Feature Management data copy for Payment Management FR. Finance
640700 Ensure the email signature appears in outgoing emails from the Sales Order Agent. Sales
640701 Address rounding errors in Service Line quantity calculations for Item-type service lines with non-divisible durations in Field Service Integration. Integration
640766 Enforce Per Diem expense rules to allow only Daily Rate condition types and prevent orphaned records caused by cascade-delete issues. Finance
640804 Configuration change to remove deployment restrictions from published apps. Integration
640807 Resolve write transaction error when selecting "Use another contact always" in the Sales Order Agent contact link flow. Manufacturing
640811 Address incorrect application of negative adjustment value entries to Item Ledger Entries during partial invoicing of non-inventory items with project consumption. Finance
640819 Improve the error message displayed when users attempt to submit expense reports that contain rule violations. Finance
640862 Optimize report performance to prevent hangs and timeouts on databases with large Customer Ledger histories. Finance
640896 Corrects dimension set handling when adding billable information to expense report lines to prevent overwriting existing dimensions. Finance
640929 Italian Legacy Subcontracting features invisible on new environments with no supported way to enable. Manufacturing
640941 Replace notification-based duplicate detection with rule violation error reporting in Expense Agent. Finance
640983 Resolve issue preventing Inventory Pick posting for Assemble-to-Order items. Finance
640987 Overdue Balance (LCY) filters do not behave as expected if you open the Customer Card from a document or journal. Finance
641016 Ensure that the "Non-Refundable Amount" on expense and expense report lines is recalculated when itemization subcategory changes between refundable and non-refundable states. Finance
641065 Invalid SEPA export file format when SEPA Non-Euro Export is enabled. Finance
641210 Resolve issue where Applied Costs G/L Amount fields are not populated after Project WIP calculation and posting. Jobs
641219 Remove Access = Internal from E-Doc. Data Exchange Impl. codeunit to improve extensibility. Integration
641257 Optimizing setup validation for VAT Group management feature. VAT/Sales Tax/Intrastat
641277 Address Copy Company permission error caused by missing Codeunit 683 granule in 28.x licenses. Security
641291 New feature addition that integrates Sustainability Power BI reports into the Business Manager's Role Center. Finance
641363 Enable Report 11 to run in the background and commit changes while updating VAT Entries. Finance
641372 Address welcome email delivery failures, improve delivery status tracking, and enforce communication toggle functionality for the Expense Agent. Finance
641382 Refactor code to improve maintainability by extracting duplicate logic into a reusable procedure. Finance
641390 Adds a new integration event to allow customization of the freely transferable maximum amount validation logic in the BTL91 payment check process. Finance
641400 Fix to resolve inconsistent behavior when deleting Transfer Order headers with reserved quantities, aligning the deletion logic with other document types in Business Central. Manufacturing
641406 Resolve duplicate-key race conditions in cost adjustment when using Item-by-Item commit by resetting transaction-scoped state after each commit. Administration
641495 Quality Management: The Move Inventory action in quality management now works as expected when selecting Bin. Inventory
641526 Quality Management: Automatically calculate Pass Quantity and Fail Quantity fields when completing an inspection. Inventory
641527 Quality Management: Tooltip notes for actions limited to Quality Administrator/Supervisor role. Inventory
641576 Adds integration events to the Matrix Management codeunit to enable custom rounding and formatting behavior. Extensibility Enhancement
641577 Event signature modification to enable more flexible event handling by passing a parameter by reference instead of by value. Finance
641578 New feature addition that introduces an integration event to enable extensibility for sales document type string conversion. Extensibility Enhancement
641582 Add an integration event to enable filtering of currency exchange rate update setup records before synchronization. Extensibility Enhancement
641583 Adds an integration event to enable extensibility for VAT calculation date filtering in the Dutch localization. Extensibility Enhancement
641584 API change to add a new parameter to an integration event for enhanced extensibility. Extensibility Enhancement
641605 Adds a new API query to return expense per diem locations, addressing an error in the per diem functionality. Finance
641663 Relax Expense Report Line category-change validation by adding confirmation dialogs before deleting associated itemization, participant, and per diem records. Finance
641664 Add missing expense category and merchant name fields to the Expenses list page. Finance
641671 Contact No. Lookup on Sales Quote returns all customers instead of related contacts after upgrading to v28.2. Sales
641698 Replaces hard errors with inline app installation prompts when attempting to disable Legacy Subcontracting in the IT localization. Manufacturing
641703 Performance optimization to address slow export of large data files (30,000+ lines) in the data exchange export process. Inventory
641713 Address issues with the approver setup experience in the Expense Agent application. Finance
641726 Item Age Composition by Quantity and Value report (Report 5808) presented in Excel calculates incorrect Quantity on the Item Age Composition - Quantity worksheet within the exported Excel file. Finance
641727 Fix inconsistent Location Code assignment on subcontracting purchase orders between "Create Subcontracting Order" and Subcontracting Worksheet processes. Manufacturing
641731 Improve user interface visibility by making a key input field always visible on the copy location page. Inventory
641842 Ensure extended text lines remain correctly attached to their parent items when converting a blanket purchase order to a purchase order with multiple items. Purchase
641858 Ensure project journal lines use the correct task-level Bill-to Customer for pricing when multiple customers billing is enabled. Jobs
641862 Ensure the Cost Shares Breakdown report correctly filters by Item when running in WIP Inventory mode. Manufacturing
641863 Subcontracting Transfer Orders action is misplaced under Entries on Production Order pages. Manufacturing
641903 Redundant Subc. Prod. Order No./Line No. fields on Item Ledger Entry and other table extensions duplicate BaseApp fields. Manufacturing
642099 Resolve an error that prevented an agent's setup page from opening due to a field name casing mismatch. Administration
642133 Fix Project Task Billing Method field value not being persisted after validation when existing tasks are present. Finance
642138 API enhancement to extend an integration event with additional parameters for extensibility. Finance
642140 API change to add a new parameter to an integration event across multiple localization layers. Finance
642141 Add empty layout section to Finance Manager Role Center page across all localizations to support page 8901 change request. Finance
642142 Adds an integration event and IsHandled pattern to enable custom validation logic for the Additional Reporting Currency field in table 98 "General Ledger Setup". Extensibility Enhancement
642149 Add integration events to enable filtering of Dimension Perspective sections before rendering in financial reports. Extensibility Enhancement
642186 Ensure purchase invoices with deferral schedules correctly process Non-availment GST calculations. Finance
642197 Enable translations for the Withholding Tax feature. VAT/Sales Tax/Intrastat
642212 Prevent invalid NuGet package IDs when deploying to multiple countries/regions in private deployment. Administration
642230 Community reported Data Search - Show all records is missing an event call to make it consistent with the initial search. Integration
642356 Add approval and rejection action buttons in the Business Central UI for expense reports. Finance
642465 Payment Reconciliation Journal does not round imported bank fee amounts to the Amount Rounding Precision, causing posting to fail with a "needs to be rounded" error. Finance
642517 Addressing Expense Agent entitlements issue on Sales documents by modifying event subscriber parameters. Finance
642530 Event Request: Add two new integration events to the "Purch. Withh. Contribution" table to enable extensibility for INPS (social security) calculations and record creation. Finance
642532 Event Request Implementation: Add a New Integration Event to Enable Extensibility in the G/L Book - Print Report. Finance
642533 Add a new integration event to enable customization of withholding tax calculation logic before tax values are assigned. Finance
642534 Adds integration events to enable extensibility by allowing subscribers to hook into the prepayment sales order processing workflow before and after pending prepayment orders are updated. Finance
642624 Configuration change to disable the "Search Only Available Items" feature by default in the Sales Order Agent setup. Sales
642728 Legacy Subcontracting flag is incorrectly set to False during upgrade when the customer has no in-flight WIP data. Upgrade
643242 Shopify: Make codeunit 30272 "Shpfy Update Price Source" non-internal to enable price calculation extensibility. Integration
643243 Shopify Refund: Credit Memo balancing line incorrectly zeroes out the document when the refund transaction is still pending. Finance
643386 Add new actions to restore default shipped source configurations. Inventory
643965 Withholding Tax Entries are not generated during payment because the Withholding Tax Prod. Posting Group field is not transferred to the payment line. Finance
644139 Unable to retrieve VAT Return Periods due to RSU not being delegated (Error 4801). Finance
644638 Job queue reports result in locking of the JQE table. Administration

Local application hotfixes

APAC - Asia-Pacific

ID Title Functional Area
641726 Item Age Composition by Quantity and Value report (Report 5808) presented in Excel calculates incorrect Quantity on the Item Age Composition - Quantity worksheet within the exported Excel file. Finance

AT - Austria

ID Title Functional Area
639547 Update Report ID 11110 for VAT Return to support the new reduced VAT rate of 4.9% effective from 1 July 2026. Finance

AU - Australia

ID Title Functional Area
639701 Vendor Order No. exceeds 20-character limit causing error in Intercompany Purchase Invoice. Sales
641037 Cannot assign Cost-plus % for Resources in Sales price list in the Australian version. Sales

BE - Belgium

ID Title Functional Area
637839 Fix "Take Payment Discounts" setting behavior in the Suggest Vendor Payments EB routine from the EB Payment Journal in the Belgian version. Finance
639688 Fix Payment XML file generation from EB Payment Journal to exclude currency text when "FCY Symbol" is selected. Finance
641722 "Document Check" factbox does not show updated and correct information on the e.g. Purchase Invoice page. Purchase

CZ - Czechia

ID Title Functional Area
640442 Add missing Word layout and email body support for Purchase Quote and Sales Shipment reports in the CZ localization. Finance
642748 Correct the "EU 3-Party Intermed. Role CZL" field validation trigger to properly synchronize the "EU 3-Party Trade" field state in sales and purchase documents. Finance
644006 Fix to prevent blocked customers and vendors from being used in advance payment letters by implementing validation checks similar to standard sales and purchase documents. Finance

DE - Germany

ID Title Functional Area
641728 Fix incorrect country/region of origin reporting for items in the Intrastat XML export in the German localization. Finance
642179 Fix DE Report 11015 Export Business Data failure when scheduled through Job Queue due to unsupported client callbacks. Finance
640469 "Filter by Attribute" action does not apply the filter under specific circumstances. Warehouse

ES - Spain

ID Title Functional Area
640409 Unbalanced G/L Entries if you apply a Payment and a Posted Purchase Invoice having both different Posting Groups and using the "Applies-to Document No." on the line instead of using Apply Entries in the Spanish version. Finance
640451 Interest Document issued with non-taxable VAT does not generate non-taxable VAT entries in the Spanish localization. VAT/Sales Tax/Intrastat
642237 Prevent SII duplicate invoice errors when the same vendor invoice number is used across different purchase document types (Invoice vs Credit Memo) for the same vendor in the Spanish version. Finance

GB - United Kingdom

ID Title Functional Area
638478 Address incorrect invoice amount calculation in Recurring Billing for month-end billing periods. Finance

IN - India

ID Title Functional Area
636140 Correct vendor order address in GST Ledger Entries for Indian GST compliance. Finance
642028 Wrong TDS amount is being reflected on the TDS entries page while posting a Purchase Invoice against a foreign (NRI) vendor. Finance
642167 GST Component code alignment issue in Pay GST Calculation details. Finance
642482 Issue in TDS calculation during payment application against invoices. Finance
643298 Stale Cheque action fails with "TableData 271 Bank Account Ledger Entry: Modify" permission error - 2607140040000858. Finance

NA - Namibia

ID Title Functional Area
476612 Address daylight saving time handling in time zone offset calculations for G/L reports in Business Central. Integration

NL - Netherlands

ID Title Functional Area
642551 SEPA Direct Debit export (NL report 11000015) exports unstructured address instead of structured address. Finance

NO - Norway

ID Title Functional Area
639922 Fix Test Report (ID 2) rendering failure when run from the General Journal before posting. Finance

NZ - New Zealand

ID Title Functional Area
640404 Depreciation calculated on full asset value instead of adjusted 80% base. Finance

SG - Singapore

ID Title Functional Area
644109 PREMIER Analysis Mode changes are not retained on standard ListQuery pages after upgrading to Business Central v28. Inventory

US - United States

ID Title Functional Area
476612 Address daylight saving time handling in time zone offset calculations for G/L reports in Business Central. Integration
641544 Resolve a permission error in the Payables Agent when opening E-Documents by adding missing table data read permissions. Finance
641666 Fix to display the Expense User Name in the Expense Agent KPI Entries page. Finance
642637 IRS 1099 reporting fields are inconsistently stamped on Vendor Ledger Entries for non-1099 vendors between General Journal and Purchase Invoice postings. Finance

Resolution

Which hotfix package to download

This update has multiple hotfix packages. Select and download one of the following packages depending on the country/region version of your Microsoft Dynamics 365 Business Central 2026 database.

Country/Region Hotfix package
AT - Austria Download update 28.4 for Microsoft Dynamics 365 Business Central 2026 Release Wave 1 AT package
AU - Australia Download update 28.4 for Microsoft Dynamics 365 Business Central 2026 Release Wave 1 AU package
BE - Belgium Download update 28.4 for Microsoft Dynamics 365 Business Central 2026 Release Wave 1 BE package
CA - Canada Download update 28.4 for Microsoft Dynamics 365 Business Central 2026 Release Wave 1 CA package
CH - Switzerland Download update 28.4 for Microsoft Dynamics 365 Business Central 2026 Release Wave 1 CH package
CZ - Czechia Download update 28.4 for Microsoft Dynamics 365 Business Central 2026 Release Wave 1 CZ package
DE - Germany Download update 28.4 for Microsoft Dynamics 365 Business Central 2026 Release Wave 1 DE package
DK - Denmark Download update 28.4 for Microsoft Dynamics 365 Business Central 2026 Release Wave 1 DK package
ES - Spain Download update 28.4 for Microsoft Dynamics 365 Business Central 2026 Release Wave 1 ES package
FI - Finland Download update 28.4 for Microsoft Dynamics 365 Business Central 2026 Release Wave 1 FI package
FR - France Download update 28.4 for Microsoft Dynamics 365 Business Central 2026 Release Wave 1 FR package
GB - United Kingdom Download update 28.4 for Microsoft Dynamics 365 Business Central 2026 Release Wave 1 GB package
IN - India Download update 28.4 for Microsoft Dynamics 365 Business Central 2026 Release Wave 1 IN package
IS - Iceland Download update 28.4 for Microsoft Dynamics 365 Business Central 2026 Release Wave 1 IS package
IT - Italy Download update 28.4 for Microsoft Dynamics 365 Business Central 2026 Release Wave 1 IT package
MX - Mexico Download update 28.4 for Microsoft Dynamics 365 Business Central 2026 Release Wave 1 MX package
NL - Netherlands Download update 28.4 for Microsoft Dynamics 365 Business Central 2026 Release Wave 1 NL package
NO - Norway Download update 28.4 for Microsoft Dynamics 365 Business Central 2026 Release Wave 1 NO package
NZ - New Zealand Download update 28.4 for Microsoft Dynamics 365 Business Central 2026 Release Wave 1 NZ package
RU - Russia Download update 28.4 for Microsoft Dynamics 365 Business Central 2026 Release Wave 1 RU package
SE - Sweden Download update 28.4 for Microsoft Dynamics 365 Business Central 2026 Release Wave 1 SE package
US - United States Download update 28.4 for Microsoft Dynamics 365 Business Central 2026 Release Wave 1 US package
All other countries/regions Download update 28.4 for Microsoft Dynamics 365 Business Central 2026 Release Wave 1 W1 package

How to install a Microsoft Dynamics 365 Business Central on-premises 2026 Release Wave 1 update

See How to install a Microsoft Dynamics 365 Business Central 2026 Release Wave 1 update.

Prerequisites

You must have Microsoft Dynamics 365 Business Central 2026 Release Wave 1 installed to apply this hotfix.

More information

See more information about software update terminology and Microsoft Dynamics 365 Business Central 2026 Release Wave 1.

Status

Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.