---
title: "Codeunit 6200 Non-Deductible VAT"
author: "Jonas Paprotka"
url: https://jonas-paprotka.de/ref/codeunit/6200-non-deductible-vat/
type: codeunit
id: 6200
name: "Non-Deductible VAT"
app: "Base Application"
namespace: Microsoft.Finance.VAT.Calculation
versions: "22-28"
build: 28.5.54151.54365
source: "https://jonas-paprotka.de/ref/codeunit/6200-non-deductible-vat/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 6200 Non-Deductible VAT

Jonas Paprotka, https://jonas-paprotka.de/ref/codeunit/6200-non-deductible-vat/

| | |
| --- | --- |
| App | Base Application |
| Namespace | Microsoft.Finance.VAT.Calculation |
| Versions | 22-28 |
| Source file | Finance/VAT/Calculation/NonDeductibleVAT.Codeunit.al |

## Procedures

| Name | Parameters | Returns | Access | Versions | Obsolete | Reason |
| --- | --- | --- | --- | --- | --- | --- |
| IsNonDeductibleVATEnabled | () | Boolean | public | 22-28 | - | - |
| ShowNonDeductibleVATInLines | () | Boolean | public | 22-28 | - | - |
| GetNonDeductibleVATAmount | (Record Purchase Line) | Decimal | public | 22-28 | - | - |
| GetNonDeductibleVATPct | (Code[20], Code[20], Enum General Posting Type) | - | public | 22-28 | - | - |
| GetNonDeductibleVATPct | (Record VAT Posting Setup) | Decimal | public | 22-28 | - | - |
| GetNonDeductibleVATAmount | (Record Gen. Journal Line) | Decimal | public | 22-28 | - | - |
| GetNonDeductibleVATPct | (Code[20], Code[20], Enum Deferral Document Type) | Decimal | public | 22-28 | - | - |
| GetNonDeductibleVATAccForDeferrals | (Enum Deferral Document Type, Code[20], Record VAT Posting Setup) | Code[20] | public | 22-28 | - | - |
| GetNonDeductibleVATAmountForItemCost | (Record Purchase Line) | Decimal | public | 22-28 | - | - |
| GetNonDeductibleAmount | (Decimal, Decimal, Decimal, var Decimal) | Decimal | public | 22-28 | - | - |
| GetNonDeductibleVATBaseBothCurrencies | (var Decimal, var Decimal, Record VAT Entry) | - | public | 22-28 | - | - |
| SetNonDeductiblePct | (var Record Purchase Line) | - | public | 22-28 | - | - |
| SetNonDedVATAmountInPurchLine | (var Record Purchase Line, Decimal) | - | public | 22-28 | - | - |
| SetNonDedVATAmountDiffInPurchLine | (var Record Purchase Line, var Record VAT Amount Line, var Decimal, Record VAT Amount Line, Record Currency, Decimal, Decimal) | - | public | 22-28 | - | - |
| SetNonDeductibleVATAmount | (var Record VAT Entry, Decimal, Decimal) | - | public | 22-28 | - | - |
| SetNonDeductibleVATBase | (var Record VAT Entry, Decimal, Decimal) | - | public | 22-28 | - | - |
| SetNonDeductibleVAT | (var Record Invoice Posting Buffer, Decimal, Decimal, Decimal, Decimal, Decimal) | - | public | 22-28 | - | - |
| SetNonDeductibleVAT | (var Record Invoice Post. Buffer, Decimal, Decimal, Decimal, Decimal, Decimal) | - | public | 22-25 | Pending 23.0 | Replaced with SetNonDeductibleVAT |
| SetNonDedVATInVATEntry | (var Record VAT Entry, Decimal, Decimal, Decimal, Decimal, Decimal, Decimal) | - | public | 22-28 | - | - |
| Init | (var Decimal, var Decimal, var Decimal, var Decimal, var Decimal, Record Purchase Line, Record Purchase Line) | - | public | 22-28 | - | - |
| InitNonDeductibleVATDiff | (var Record Purchase Line) | - | public | 22-28 | - | - |
| Update | (var Record Purchase Line, var Record VAT Amount Line, Record Currency) | - | public | 22-28 | - | - |
| Update | (var Record Purchase Line, Record Currency) | - | public | 22-28 | - | - |
| Update | (var Record Purchase Line, Decimal, Decimal, Decimal) | - | public | 22-28 | - | - |
| Update | (var Decimal, var Decimal, var Decimal, var Decimal, var Decimal, Record Invoice Posting Buffer) | - | public | 22-28 | - | - |
| Update | (var Decimal, var Decimal, var Decimal, var Decimal, var Decimal, Record Invoice Post. Buffer) | - | public | 22-25 | Pending 23.0 | Replaced with UpdateNonDeductibleAmountsInInvoicePostingBuffer |
| Update | (var Record VAT Amount Line, Record Currency) | - | public | 22-28 | - | - |
| Update | (var Record Invoice Post. Buffer, var Record Invoice Post. Buffer, Decimal) | - | public | 22-25 | Pending 23.0 | Replaced with UpdateAmount |
| Update | (var Record Invoice Posting Buffer, var Record Invoice Posting Buffer, Decimal) | - | public | 22-28 | - | - |
| DivideNonDeductibleVATInPurchaseLine | (var Record Purchase Line, var Record VAT Amount Line, Record VAT Amount Line, Record Currency, Decimal, Decimal) | - | public | 22-28 | - | - |
| ValidateVATAmountInVATAmountLine | (var Record VAT Amount Line) | - | public | 22-28 | - | - |
| ValidateNonDeductibleVATInVATAmountLine | (var Record VAT Amount Line) | - | public | 22-28 | - | - |
| UpdateNonDeductibleAmountsWithDiffInVATAmountLine | (var Record VAT Amount Line, Record Currency) | - | public | 22-28 | - | - |
| GetNonDedVATAmountFromVATAmountLine | (var Record VAT Amount Line, Record VAT Amount Line, Record Currency, Decimal, Decimal) | Decimal | public | 22-28 | - | - |
| AddNonDedAmountsOfPurchLineToVATAmountLine | (var Record VAT Amount Line, var Record VAT Amount Line, Record Purchase Line, Record Currency, Decimal, Decimal) | - | public | 22-28 | - | - |
| CopyNonDedVATFromPurchInvLineToVATAmountLine | (var Record VAT Amount Line, Record Purch. Inv. Line) | - | public | 22-28 | - | - |
| CopyNonDedVATFromPurchCrMemoLineToVATAmountLine | (var Record VAT Amount Line, Record Purch. Cr. Memo Line) | - | public | 22-28 | - | - |
| CopyNonDedVATAmountFromGenJnlLineToGLEntry | (var Record G/L Entry, Record Gen. Journal Line) | - | public | 22-28 | - | - |
| CheckPrepmtWithNonDeductubleVATInPurchaseLine | (Record Purchase Line) | - | public | 22-28 | - | - |
| CheckPrepmtVATPostingSetup | (Record VAT Posting Setup) | - | public | 22-28 | - | - |
| CheckUnrealizedVATWithNonDeductibleVATInVATPostingSetup | (Record VAT Posting Setup) | - | public | 22-28 | - | - |
| CheckVATPostingSetupChangeIsAllowed | (Record VAT Posting Setup) | - | public | 22-28 | - | - |
| CheckNonDeductibleVATPctIsAllowed | (Record Purchase Line) | - | public | 22-28 | - | - |
| CheckNonDeductibleVATAmountDiff | (var Record VAT Amount Line, Record VAT Amount Line, Boolean, Record Currency) | - | public | 22-28 | - | - |
| DeductNonDedValuesFromVATAmountLine | (var Record VAT Amount Line, Record VAT Amount Line) | - | public | 22-28 | - | - |
| Reverse | (var Record Purchase Line) | - | public | 22-28 | - | - |
| Reverse | (var Record Invoice Posting Buffer) | - | public | 22-28 | - | - |
| Reverse | (var Record Invoice Post. Buffer) | - | public | 22-25 | Pending 23.0 | Replaced with Reverse |
| Reverse | (var Record G/L Entry, Record G/L Entry) | - | public | 22-28 | - | - |
| Reverse | (var Record VAT Entry) | - | public | 22-28 | - | - |
| Increment | (var Record VAT Amount Line, Record VAT Amount Line) | - | public | 22-28 | - | - |
| Increment | (var Record Purchase Line, Record Purchase Line) | - | public | 22-28 | - | - |
| Increment | (var Record Invoice Posting Buffer, Record Invoice Posting Buffer) | - | public | 22-28 | - | - |
| Increment | (var Record Invoice Post. Buffer, Record Invoice Post. Buffer) | - | public | 22-25 | Pending 23.0 | Replaced with Increment |
| RoundNonDeductibleVAT | (Record Purchase Header, var Record Purchase Line, Record Purchase Line, Record Purchase Line) | - | public | 22-28 | - | - |
| ClearNonDeductibleVAT | (var Record Purchase Line) | - | public | 22-28 | - | - |
| ClearNonDeductibleVAT | (var Record Invoice Posting Buffer) | - | public | 22-28 | - | - |
| ClearNonDeductibleVAT | (var Record Invoice Post. Buffer) | - | public | 22-25 | Pending 23.0 | Replaced with ClearNonDedVATInInvoicePostingBuffer |
| ClearNonDedVATACYInVATEntry | (var Record VAT Entry) | - | public | 22-28 | - | - |
| ValidateNonDedVATPctInGenJnlLine | (var Record Gen. Journal Line) | - | public | 22-28 | - | - |
| ValidateBalNonDedVATPctInGenJnlLine | (var Record Gen. Journal Line) | - | public | 22-28 | - | - |
| Calculate | (var Record Gen. Journal Line, Record Currency) | - | public | 22-28 | - | - |
| CalculateBalAcc | (var Record Gen. Journal Line, Record Currency) | - | public | 22-28 | - | - |
| Calculate | (var Record Invoice Posting Buffer) | - | public | 22-28 | - | - |
| Calculate | (var Record Invoice Post. Buffer) | - | public | 22-25 | Pending 23.0 | Replaced with Calculate |
| Calculate | (var Decimal, var Decimal, var Decimal, var Decimal, var Decimal, var Decimal, Record Purchase Header, Record Purchase Line) | - | public | 22-28 | - | - |
| Copy | (var Record Invoice Posting Buffer, Record Purchase Line) | - | public | 22-28 | - | - |
| Copy | (var Record Invoice Post. Buffer, Record Purchase Line) | - | public | 22-25 | Pending 23.0 | Replaced with Copy |
| Copy | (var Record VAT Entry, Record Gen. Journal Line) | - | public | 22-28 | - | - |
| Copy | (var Record Gen. Journal Line, Record Invoice Posting Buffer) | - | public | 22-28 | - | - |
| Copy | (var Record Gen. Journal Line, Record Invoice Post. Buffer) | - | public | 22-25 | Pending 23.0 | Replaced with Copy |
| ExchangeAccGLJournalLine | (var Record Gen. Journal Line, Record Gen. Journal Line) | - | public | 22-28 | - | - |
| AdjustVATAmountsFromGenJnlLine | (var Decimal, var Decimal, var Decimal, var Decimal, var Record Gen. Journal Line) | - | public | 22-28 | - | - |
| AdjustRoundingForInvoicePostingBufferUpdate | (var Record Invoice Posting Buffer, var Record Invoice Posting Buffer) | - | public | 22-28 | - | - |
| UseNonDeductibleVATAmountForFixedAssetCost | () | Boolean | public | 22-28 | - | - |
| UseNonDeductibleVATAmountForJobCost | () | Boolean | public | 22-28 | - | - |
| AdjustRoundingForInvoicePostBufferUpdate | (var Record Invoice Post. Buffer, var Record Invoice Post. Buffer) | - | public | 22-25 | Pending 23.0 | Replaced with AdjustRoundingForInvoicePostingBufferUpdate |
| ApplyRoundingForFinalPostingFromInvoicePostingBuffer | (var Record Invoice Posting Buffer, var Record Invoice Posting Buffer) | - | public | 22-28 | - | - |
| ApplyRoundingForFinalPostingFromInvoicePostBuffer | (var Record Invoice Post. Buffer, var Record Invoice Post. Buffer) | - | public | 22-25 | Pending 23.0 | Replaced with ApplyRoundingForFinalPostingFromInvoicePostingBuffer |
| CopyNonDedVATFromGenJnlLineToFALedgEntry | (var Record FA Ledger Entry, Record Gen. Journal Line) | - | public | 25-28 | - | - |
| IsNonDedFALedgEntryInFirstAcquisition | (Record FA Ledger Entry) | Boolean | public | 25-28 | - | - |
| CopyNonDedVATFromGenJnlLineToJobJnlLine | (var Record Job Journal Line, Record Gen. Journal Line) | - | public | 26-28 | - | - |

## Events

| Kind | Name | Parameters | Versions | Obsolete | Reason |
| --- | --- | --- | --- | --- | --- |
| Integration event | OnBeforeGetNonDeductibleVATPctForPurchLine | (var Decimal, Record Purchase Line, var Boolean) | 22-28 | - | - |
| Integration event | OnBeforeGetNonDedVATPctForGenJnlLine | (var Decimal, Record Gen. Journal Line, var Boolean) | 22-28 | - | - |
| Integration event | OnBeforeGetBalNonDedVATPctForGenJnlLine | (var Decimal, Record Gen. Journal Line, var Boolean) | 22-28 | - | - |
| Integration event | OnBeforeGetNonDeductibleVATPctForDeferrals | (var Decimal, Code[20], Code[20], Enum Deferral Document Type, var Boolean) | 22-28 | - | - |
| Integration event | OnBeforeCalcNonDedAmountsInGenJnlLine | (var Record Gen. Journal Line, Record Currency, var Boolean) | 22-28 | - | - |
| Integration event | OnBeforeCalcBalNonDedAmountsInGenJnlLine | (var Record Gen. Journal Line, Record Currency, var Boolean) | 22-28 | - | - |
| Integration event | OnBeforeGetNonDeductibleVATPct | (var Decimal, Record VAT Posting Setup, Enum General Posting Type, var Boolean) | 22-28 | - | - |
| Integration event | OnBeforeUpdateNonDeductibleAmountsWithRoundingInPurchLine | (var Record Purchase Line, var Record VAT Amount Line, Record Currency, var Boolean) | 22-28 | - | - |
| Integration event | OnBeforeUpdateNonDeductibleAmountsInPurchLine | (var Record Purchase Line, Record Currency, var Boolean) | 22-28 | - | - |
| Integration event | OnBeforeUpdateNonDeductibleAmountsWithFactorInPurchLine | (var Record Purchase Line, Decimal, Decimal, Decimal, var Boolean) | 22-28 | - | - |
| Integration event | OnBeforeDivideNonDeductibleVATInPurchaseLine | (var Record Purchase Line, var Record VAT Amount Line, Record VAT Amount Line, Record Currency, Decimal, Decimal, var Boolean) | 22-28 | - | - |
| Integration event | OnBeforeValidateVATAmountInVATAmountLine | (var Record VAT Amount Line, var Boolean) | 22-28 | - | - |
| Integration event | OnBeforeValidateNonDeductibleVATInVATAmountLine | (var Record VAT Amount Line, var Boolean) | 22-28 | - | - |
| Integration event | OnBeforeUpdateNonDeductibleAmountsInVATAmountLine | (var Record VAT Amount Line, Record Currency, var Boolean) | 22-28 | - | - |
| Integration event | OnBeforeUpdateNonDeductibleAmountsWithDiffInVATAmountLine | (var Record VAT Amount Line, Record Currency, var Boolean) | 22-28 | - | - |
| Integration event | OnBeforeAdjustVATAmountsFromGenJnlLine | (var Decimal, var Decimal, var Decimal, var Decimal, var Record Gen. Journal Line, var Boolean) | 22-28 | - | - |
| Integration event | OnBeforeSetNonDedVATAmountInPurchLine | (var Record Purchase Line, Decimal, var Boolean) | 22-28 | - | - |
| Integration event | OnBeforeSetNonDedVATAmountDiffInPurchLine | (var Record Purchase Line, var Record VAT Amount Line, var Decimal, Record VAT Amount Line, Record Currency, Decimal, Decimal, var Boolean) | 22-28 | - | - |
| Integration event | OnBeforeGetNonDedVATAmountFromVATAmountLine | (var Decimal, var Record VAT Amount Line, Record VAT Amount Line, Record Currency, Decimal, Decimal, var Boolean) | 22-28 | - | - |
| Integration event | OnBeforeAddNonDedAmountsOfPurchLineToVATAmountLine | (var Record VAT Amount Line, var Record VAT Amount Line, Record Purchase Line, Record Currency, Decimal, Decimal, var Boolean) | 22-28 | - | - |
| Integration event | OnBeforeCopyNonDedVATFromPurchInvLineToVATAmountLine | (var Record VAT Amount Line, Record Purch. Inv. Line, var Boolean) | 22-28 | - | - |
| Integration event | OnBeforeCopyNonDedVATFromPurchCrMemoLineToVATAmountLine | (var Record VAT Amount Line, Record Purch. Cr. Memo Line, var Boolean) | 22-28 | - | - |
| Integration event | OnBeforeCheckVATPostingSetupChangeIsAllowed | (Record VAT Posting Setup, var Boolean) | 22-28 | - | - |
| Integration event | OnBeforeCheckNonDeductibleVATPctIsAllowed | (Record Purchase Line, var Boolean) | 22-28 | - | - |
| Integration event | OnAfterCalcRevChargeVATAmountInPurchLine | (Record Purchase Line, var Decimal) | 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.
