---
title: "Codeunit 550 VAT Rate Change Conversion"
author: "Jonas Paprotka"
url: https://jonas-paprotka.de/ref/codeunit/550-vat-rate-change-conversion/
type: codeunit
id: 550
name: "VAT Rate Change Conversion"
app: "Base Application"
namespace: Microsoft.Finance.VAT.RateChange
versions: "17-28"
build: 28.5.54151.54365
source: "https://jonas-paprotka.de/ref/codeunit/550-vat-rate-change-conversion/source/29/"
checked: 2026-09-20
subject: "Microsoft Dynamics 365 Business Central"
license: "Content © 2026 Jonas Paprotka. Quote freely with attribution and a link."
---

# Codeunit 550 VAT Rate Change Conversion

Jonas Paprotka, https://jonas-paprotka.de/ref/codeunit/550-vat-rate-change-conversion/

| | |
| --- | --- |
| App | Base Application |
| Namespace | Microsoft.Finance.VAT.RateChange |
| Versions | 17-28 |
| Source file | Finance/VAT/RateChange/VATRateChangeConversion.Codeunit.al |

## Procedures

| Name | Parameters | Returns | Access | Versions | Obsolete | Reason |
| --- | --- | --- | --- | --- | --- | --- |
| GetNextPurchaseLineNo | (Record Purchase Line, var Integer) | Boolean | public | 17-28 | - | - |
| GetNextSalesLineNo | (Record Sales Line, var Integer) | Boolean | public | 17-28 | - | - |
| GetNextServiceLineNo | (Record Service Line, var Integer) | Boolean | public | 17-27 | Pending 25.0 | Replaced by same procedure in codeunit "Serv. VAT Rate Change Conv." |
| ConvertVATProdPostGrp | (Option) | Boolean | public | 18-28 | - | - |
| ConvertGenProdPostGrp | (Option) | Boolean | public | 18-28 | - | - |
| UpdateTable | (Integer, Boolean, Boolean) | - | public | 18-28 | - | - |
| UpdateRec | (var RecordRef, Boolean, Boolean) | - | public | 21-28 | - | - |
| WriteLogEntry | (Record VAT Rate Change Log Entry) | - | public | 21-28 | - | - |
| AddNewSalesLine | (Record Sales Line, Code[20], Code[20]) | - | public | 21-28 | - | - |
| UpdatePurchase | () | - | public | 21-28 | - | - |
| UpdateUnitPriceInclVAT | (Enum Sales Line Type) | Boolean | public | 21-28 | - | - |
| LineInScope | (Code[20], Code[20], Boolean, Boolean) | Boolean | public | 21-28 | - | - |
| GetRoundingPrecision | (Code[10]) | Decimal | public | 21-28 | - | - |
| IncludeLine | (Option, Code[20]) | Boolean | public | 21-24 | Pending 22.0 | Replaced by procedures IncludeSalesLine() and IncludePurchLine() |
| IncludeSalesLine | (Enum Sales Line Type, Code[20]) | Boolean | public | 21-28 | - | - |
| IncludePurchLine | (Enum Purchase Line Type, Code[20]) | Boolean | public | 21-28 | - | - |
| InitVATRateChangeLogEntry | (var Record VAT Rate Change Log Entry, RecordRef, Decimal, Integer) | - | public | 21-28 | - | - |
| RunOnAddNewServiceLineOnBeforeOldServiceLineModify | (var Record Service Line, var Record Service Line, Code[20], Code[20]) | - | internal | 25-27 | - | - |
| RunOnBeforeUpdateServPriceAdjDetail | (var Record VAT Rate Change Setup, var Boolean) | - | internal | 25-27 | - | - |
| RunOnBeforeUpdateService | (var Record VAT Rate Change Setup, var Boolean) | - | internal | 25-27 | - | - |

## Events

| Kind | Name | Parameters | Versions | Obsolete | Reason |
| --- | --- | --- | --- | --- | --- |
| Integration event | OnAddNewPurchaseLineOnBeforeOldPurchaseLineModify | (var Record Purchase Line, var Record Purchase Line, Code[20], Code[20]) | 17-28 | - | - |
| Integration event | OnAddNewSalesLineOnBeforeOldSalesLineModify | (var Record Sales Line, var Record Sales Line, Code[20], Code[20]) | 17-28 | - | - |
| Integration event | OnAddNewServiceLineOnBeforeOldServiceLineModify | (var Record Service Line, var Record Service Line, Code[20], Code[20]) | 17-27 | Pending 25.0 | Replaced by same event in codeunit Serv. VAT Rate Change Conv. |
| Integration event | OnAfterUpdateTables | (var Record VAT Rate Change Setup) | 17-28 | - | - |
| Integration event | OnAfterConvert | (var Record VAT Rate Change Setup) | 17-28 | - | - |
| Integration event | OnBeforeConvert | (var Record VAT Rate Change Setup) | 17-28 | - | - |
| Integration event | OnBeforeFinishConvert | (var Record VAT Rate Change Setup) | 17-20 | - | - |
| Integration event | OnBeforeOnRun | (var Boolean) | 17-28 | - | - |
| Integration event | OnBeforeUpdateGLAccount | (var Record G/L Account, var Record VAT Rate Change Setup, var Boolean) | 17-28 | - | - |
| Integration event | OnBeforeUpdateItem | (var Record Item, var Record VAT Rate Change Setup, var Boolean) | 17-28 | - | - |
| Integration event | OnBeforeUpdateResource | (var Record Resource, var Record VAT Rate Change Setup, var Boolean) | 17-28 | - | - |
| Integration event | OnBeforeUpdateSales | (var Record VAT Rate Change Setup, var Boolean) | 17-20 | - | - |
| Integration event | OnBeforeUpdatePurchase | (var Record VAT Rate Change Setup, var Boolean) | 17-20 | - | - |
| Integration event | OnBeforeUpdateService | (var Record VAT Rate Change Setup, var Boolean) | 17-27 | Pending 25.0 | Replaced by same event in codeunit Serv. VAT Rate Change Conv. |
| Integration event | OnAfterAddNewSalesLine | (var Record Sales Line, var Record Sales Line) | 17-28 | - | - |
| Integration event | OnAfterAddNewPurchaseLine | (var Record Purchase Line, var Record Purchase Line) | 17-28 | - | - |
| Integration event | OnAfterAreTablesSelected | (var Record VAT Rate Change Setup, var Boolean) | 18-28 | - | - |
| Integration event | OnBeforeCheckPurchaseLinePartlyShipped | (var Record Purchase Line, var Text[250], var Boolean) | 18-28 | - | - |
| Integration event | OnBeforeCheckSalesLinePartlyShipped | (var Record Sales Line, var Text[250], var Boolean) | 18-28 | - | - |
| Integration event | OnBeforeUpdateTable | (Integer, Boolean, Boolean, var Boolean) | 18-28 | - | - |
| Integration event | OnBeforeUpdateServPriceAdjDetail | (var Record VAT Rate Change Setup, var Boolean) | 18-27 | Pending 25.0 | Replaced by same event in codeunit Serv. VAT Rate Change Conv. |
| Integration event | OnConvertOnBeforeStartConvert | (var Record VAT Rate Change Setup) | 19-28 | - | - |
| Integration event | OnBeforeUpdateRec | (var RecordRef, Boolean, Boolean, var Boolean) | 20-28 | - | - |
| Integration event | OnUpdatePurchaseOnAfterPurchaseHeaderSetFilters | (var Record Purchase Header) | 20-28 | - | - |
| Integration event | OnUpdateRecOnBeforeRecRefModify | (var RecordRef, Boolean, Boolean) | 20-28 | - | - |
| Integration event | OnUpdateRecOnAfterRecRefModify | (var RecordRef, Boolean, Boolean) | 20-28 | - | - |
| Integration event | OnUpdateSalesOnAfterSalesHeaderSetFilters | (Record VAT Rate Change Setup, var Record Sales Header) | 20-28 | - | - |
| Integration event | OnUpdateSalesOnAfterSalesLineSetFilters | (Record VAT Rate Change Setup, Record Sales Header, var Record Sales Line) | 20-28 | - | - |
| Integration event | OnUpdateSalesOnAfterUpdateSalesLines | (Record VAT Rate Change Setup, var Record Sales Header, Boolean, Boolean) | 20-28 | - | - |
| Integration event | OnUpdatePurchaseOnAfterResetPurchaseHeaderStatus | (var Record Purchase Header) | 20-28 | - | - |
| Integration event | OnUpdateSalesOnAfterResetSalesHeaderStatus | (var Record Sales Header) | 20-28 | - | - |
| Integration event | OnUpdateSalesOnBeforeModifySalesLine | (var Record Sales Line, var Boolean) | 20-28 | - | - |
| Integration event | OnUpdatePurchaseOnBeforeModifyPurchaseLine | (var Record Purchase Line, var Boolean) | 20-28 | - | - |
| Integration event | OnAddNewPurchaseLineOnAfterInsertNewLine | (var Record Purchase Line, var Record Purchase Line) | 20-28 | - | - |
| Integration event | OnAddNewSalesLineOnAfterInsertNewLine | (var Record Sales Line, var Record Sales Line) | 20-28 | - | - |
| Integration event | OnUpdateSalesOnBeforeChangeSalesLine | (var Record Sales Line) | 20-28 | - | - |
| Integration event | OnUpdatePurchaseOnBeforeChangePurchaseLine | (var Record Purchase Line) | 20-28 | - | - |
| Integration event | OnUpdatePurchaseBlanketOrderOnBeforeChangeBlanketOrder | (var Record Purchase Line, var Boolean) | 20-28 | - | - |
| Integration event | OnUpdateSalesBlanketOrderOnBeforeChangeBlanketOrder | (var Record Sales Line, var Boolean) | 20-28 | - | - |
| Integration event | OnUpdatePurchaseOnAfterOpenPurchaseHeader | (var Record Purchase Header) | 20-28 | - | - |
| Integration event | OnUpdateSalesOnAfterOpenSalesHeader | (var Record Sales Header) | 20-28 | - | - |
| Integration event | OnUpdatePurchaseOnAfterUpdatePurchaseLines | (Record VAT Rate Change Setup, var Record Purchase Header, Boolean, Boolean) | 20-28 | - | - |
| Integration event | OnTestVATPostingSetupOnAfterVATPostingSetupOldSetFilters | (var Record VAT Posting Setup, Record VAT Rate Change Setup) | 20-28 | - | - |
| Integration event | OnUpdateRecOnBeforeValidateGenProdPostingGroup | (var RecordRef, FieldRef, Record VAT Rate Change Conversion, Boolean) | 20 | - | - |
| Integration event | OnAfterInitNewSalesLineFromSalesLine | (var Record Sales Line, Record Sales Line) | 21-28 | - | - |
| Integration event | OnAfterLineInScope | (Code[20], Code[20], Boolean, Boolean, var Boolean) | 21-28 | - | - |
| Integration event | OnBeforeFinishConvert | (var Record VAT Rate Change Setup, var Dialog) | 21-28 | - | - |
| Integration event | OnBeforeUpdateSales | (var Record VAT Rate Change Setup, var Boolean, var Record Sales Header) | 21-28 | - | - |
| Integration event | OnBeforeUpdatePurchase | (var Record VAT Rate Change Setup, var Boolean, var Record Purchase Header) | 21-28 | - | - |
| Integration event | OnUpdatePurchaseOnAfterPurchaseLineSetFilters | (var Record Purchase Line, Record Purchase Header) | 21-28 | - | - |
| Integration event | OnUpdateSalesOnAfterModifySalesLine | (var Record Sales Line, Boolean, Record VAT Rate Change Setup, Record Sales Header, Record Sales Line) | 21-28 | - | - |
| Integration event | OnUpdatePurchaseOnAfterCalcShouldProcessLine | (var Record Purchase Line, var Boolean) | 21-28 | - | - |
| Integration event | OnAddNewPurchaseLineOnBeforeInsertNewLine | (var Record Purchase Line, var Record Purchase Line) | 21-28 | - | - |
| Integration event | OnUpdateRecOnBeforeValidateGenProdPostingGroup | (var RecordRef, FieldRef, Record VAT Rate Change Conversion, var Boolean) | 21-28 | - | - |
| Integration event | OnAddNewPurchaseLineOnAfterNewPurchaseLineInit | (var Record Purchase Line, var Record Purchase Line) | 21-28 | - | - |
| Integration event | OnUpdatePurchaseOnAfterPurchaseLineModify | (Record VAT Rate Change Setup, Record Purchase Header, var Record Purchase Line, Record Purchase Line) | 21-28 | - | - |
| Integration event | OnIncludePurchLineOnTypeElse | (Enum Purchase Line Type, var Boolean, var Boolean) | 21-28 | - | - |
| Integration event | OnIncludeSalesLineOnTypeElse | (Enum Sales Line Type, var Boolean, var Boolean) | 21-28 | - | - |
| Integration event | OnCanUpdatePurchaseOnAfterLoopIteration | (var Text[250], Record Purchase Line) | 21-28 | - | - |
| Integration event | OnCanUpdatePurchaseOnAfterPurchaseLineSetFilters | (var Record Purchase Line) | 21-28 | - | - |
| Integration event | OnCanUpdateSalesOnAfterLoopIteration | (var Text[250], Record Sales Line) | 21-28 | - | - |
| Integration event | OnCanUpdateSalesOnAfterSalesLineSetFilters | (var Record Sales Line) | 21-28 | - | - |
| Integration event | OnBeforeDoUpdatePurchaseLine | (Record Purchase Line, var Boolean, var Boolean) | 23-28 | - | - |
| Integration event | OnBeforeDoUpdateSalesLine | (Record Sales Line, var Boolean, var Boolean) | 23-28 | - | - |
| Integration event | OnBeforeCanUpdateSales | (Record Sales Header, Boolean, Boolean, var Boolean, var Boolean) | 23-28 | - | - |
| Integration event | OnBeforeCanUpdatePurchase | (Record Purchase Header, Boolean, Boolean, var Boolean, var Boolean) | 23-28 | - | - |
| Integration event | OnBeforeAddNewSalesLine | (Record Sales Line, Code[20], Code[20], var Boolean) | 23-28 | - | - |
| Integration event | OnBeforeAddNewPurchaseLine | (Record Purchase Line, Code[20], Code[20], var Boolean) | 23-28 | - | - |

## Source

Symbols: Microsoft.BaseApplication.symbols.437dbf0e-84ff-417a-965d-ed2bb9650972, https://dynamicssmb2.pkgs.visualstudio.com/DynamicsBCPublicFeeds/_packaging/MSSymbols/nuget/v3/index.json, highest build per major on 2026-09-20.
AL source 29: https://github.com/microsoft/BCApps, MIT, releases/29.x at a66254c3b8b5bb1cea290dc8f9d097aec4381153.

Jonas Paprotka, 2026-09-20.
