---
id: object/table/325
type: object
title: Table 325 "VAT Posting Setup"
summary: Table 325 "VAT Posting Setup" in Base Application (Microsoft.Finance.VAT.Setup). 24 fields, 7 public procedures, 3 events. Present since at least BC23, still in BC30, changed in BC24, BC28-29.
tier: official
language: en
tags:
  - table
  - base application
versions:
  introduced: null
  last_changed: "29"
  deprecated: null
review:
  state: derived
  by: null
  at: null
  flags: []
generated:
  at: "2026-10-11T00:31:51.816Z"
  pipeline: 0.2.0
  prompts: {}
  input_hash: 194d1c3279335e5f98cf1c6541503a4b6e468a0d84c3e46ecdfeb8fba7f83b75
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Finance/VAT/Setup/VATPostingSetup.Table.al
    title: src/Layers/W1/BaseApp/Finance/VAT/Setup/VATPostingSetup.Table.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn:
    - https://learn.microsoft.com/dynamics365/business-central/finance-manage-vat
    - https://learn.microsoft.com/dynamics365/business-central/finance-setup-nondeductible-vat
    - https://learn.microsoft.com/dynamics365/business-central/finance-setup-unrealized-vat
    - https://learn.microsoft.com/dynamics365/business-central/finance-setup-vat
    - https://learn.microsoft.com/dynamics365/business-central/LocalFunctionality/Norway/how-to-calculate-proportional-vat
    - https://learn.microsoft.com/dynamics365/business-central/LocalFunctionality/Norway/how-to-print-a-vat-reconciliation-report
    - https://learn.microsoft.com/dynamics365/business-central/LocalFunctionality/Spain/sii-setup
  objects: []
  features: []
  topics:
    - topic/business-central/business-functionality/finance/working-with-value-added-tax-vat
    - topic/business-central/business-functionality/finance/working-with-value-added-tax-vat/set-up-vat
    - topic/business-central/business-functionality/local-functionality/norway/vat
    - topic/business-central/business-functionality/local-functionality/spain/vat
    - topic/business-central/business-functionality/set-up-business-central/set-up-finance
  localizations:
    - localization/at
    - localization/ca
    - localization/ch
    - localization/cz
    - localization/de
    - localization/es
    - localization/it
    - localization/mx
    - localization/no
    - localization/ru
    - localization/us
  videos: []
  posts: []
  guidelines: []
object_type: table
object_id: 325
name: VAT Posting Setup
namespace: Microsoft.Finance.VAT.Setup
app: Base Application
extends: null
first_version: "23"
last_version: "30"
present_in:
  - "23"
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
changed_in:
  - "24"
  - "28"
  - "29"
source_major: "29"
obsolete: null
countries:
  - at
  - ca
  - ch
  - cz
  - de
  - es
  - it
  - mx
  - "no"
  - ru
  - us
ms_search_form_ids: []
counts:
  fields: 24
  procedures: 16
  events: 3
  subscribers: 0
relations:
  out: 14
  referenced_by: 0
  pages: 3
  extended_by: 1
  event_subscribers: 0
  calls: 1
  called_by: 0
  implements: 0
---

# Table 325 "VAT Posting Setup"

> Table 325 "VAT Posting Setup" in Base Application (Microsoft.Finance.VAT.Setup). 24 fields, 7 public procedures, 3 events. Present since at least BC23, still in BC30, changed in BC24, BC28-29.

Base Application · Microsoft.Finance.VAT.Setup · BC23-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Finance/VAT/Setup/VATPostingSetup.Table.al) · facts from BC29

Learn documents this table through its pages: [Page 472 "VAT Posting Setup"](../page/472.md) (7 Learn pages), [Page 473 "VAT Posting Setup Card"](../page/473.md) (4).

## Properties

| Property | Value |
|---|---|
| Caption | VAT Posting Setup |
| DataClassification | CustomerContent |

## Fields

Explanation: the field's ToolTip in the code; without one, the ToolTip of a page control bound to the field (marked via the page); without that, its Caption (marked caption) when that differs from the name.

| No. | Name | Type | Explanation | Notes |
|---|---|---|---|---|
| 1 | VAT Bus. Posting Group | Code[20] | Specifies the VAT specification of the involved customer or vendor to link transactions made for this record with the appropriate general ledger account according to the VAT posting setup. | TableRelation [Table 323 "VAT Business Posting Group"](../table/323.md) (VAT Business Posting Group) |
| 2 | VAT Prod. Posting Group | Code[20] | Specifies the VAT specification of the involved item or resource to link transactions made for this record with the appropriate general ledger account according to the VAT posting setup. | TableRelation [Table 324 "VAT Product Posting Group"](../table/324.md) (VAT Product Posting Group) |
| 3 | VAT Calculation Type | Enum "Tax Calculation Type" | Specifies how VAT will be calculated for purchases or sales of items with this particular combination of VAT business posting group and VAT product posting group. | enum [Enum 254 "Tax Calculation Type"](../enum/254.md) |
| 4 | VAT % | Decimal | Specifies the relevant VAT rate for the particular combination of VAT business posting group and VAT product posting group. Do not enter the percent sign, only the number. For example, if the VAT rate is 25 %, enter 25 in this field. |  |
| 5 | Unrealized VAT Type | Option | Specifies how to handle unrealized VAT, which is VAT that is calculated but not due until the invoice is paid. | OptionCaption: ,Percentage,First,Last,First (Fully Paid),Last (Fully Paid) |
| 6 | Adjust for Payment Discount | Boolean | Specifies whether to recalculate VAT amounts when you post payments that trigger payment discounts. |  |
| 7 | Sales VAT Account | Code[20] | Specifies the general ledger account number to which to post sales VAT for the particular combination of VAT business posting group and VAT product posting group. | TableRelation [Table 15 "G/L Account"](../table/15.md) (G/L Account) |
| 8 | Sales VAT Unreal. Account | Code[20] | Specifies the general ledger account number to which to post unrealized sales VAT (as calculated when you post sales invoices) using this particular combination of VAT business posting group and VAT product posting group. | TableRelation [Table 15 "G/L Account"](../table/15.md) (G/L Account) |
| 9 | Purchase VAT Account | Code[20] | Specifies the general ledger account number to which to post purchase VAT for the particular combination of business group and product group. | TableRelation [Table 15 "G/L Account"](../table/15.md) (G/L Account) |
| 10 | Purch. VAT Unreal. Account | Code[20] | Specifies the general ledger account number to which to post unrealized purchase VAT (as calculated when you post purchase invoices) using this particular combination of VAT business posting group and VAT product posting group. | TableRelation [Table 15 "G/L Account"](../table/15.md) (G/L Account) |
| 11 | Reverse Chrg. VAT Acc. | Code[20] | Specifies the general ledger account number to which you want to post reverse charge VAT (purchase VAT) for this combination of VAT business posting group and VAT product posting group, if you have selected the Reverse Charge VAT option in the VAT Calculation Type field. | TableRelation [Table 15 "G/L Account"](../table/15.md) (G/L Account) |
| 12 | Reverse Chrg. VAT Unreal. Acc. | Code[20] | Specifies the number of the general ledger account to post amounts for unrealized reverse charge VAT to. | TableRelation [Table 15 "G/L Account"](../table/15.md) (G/L Account) |
| 13 | VAT Identifier | Code[20] | Specifies a code to group various VAT posting setups with similar attributes, for example VAT percentage. |  |
| 14 | EU Service | Boolean | Specifies if this combination of VAT business posting group and VAT product posting group are to be reported as services in the periodic VAT reports. |  |
| 15 | VAT Clause Code | Code[20] | Specifies the VAT Clause Code that is associated with the VAT Posting Setup. | TableRelation [Table 560 "VAT Clause"](../table/560.md) (VAT Clause) |
| 16 | Certificate of Supply Required | Boolean | Specifies if documents that use this combination of VAT business posting group and VAT product posting group require a certificate of supply. |  |
| 17 | Tax Category | Code[10] | Specifies the VAT category in connection with electronic document sending. For example, when you send sales documents through the PEPPOL service, the value in this field is used to populate the TaxApplied element in the Supplier group. The number is based on the UNCL5305 standard. |  |
| 20 | Description | Text[100] | Specifies a description of the VAT posting setup |  |
| 21 | Blocked | Boolean | Specifies if this particular combination of VAT business posting group and VAT product posting group is blocked. |  |
| 25 | Sale VAT Reporting Code | Code[20] | Specifies the code of the VAT posting setup that will be used for the StandardTaxCode XML node in the SAF-T file for the sales VAT entries. <small>via [Page 5283 "VAT Posting Setup SAF-T"](../page/5283.md)</small> | TableRelation [Table 344 "VAT Reporting Code"](../table/344.md) (VAT Reporting Code) |
| 26 | Purch. VAT Reporting Code | Code[20] | Specifies the code of the VAT posting setup that will be used for the StandardTaxCode XML node in the SAF-T file for the purchase VAT entries. <small>via [Page 5283 "VAT Posting Setup SAF-T"](../page/5283.md)</small> | TableRelation [Table 344 "VAT Reporting Code"](../table/344.md) (VAT Reporting Code) |
| 6200 | Non-Deductible VAT % | Decimal | Specifies the percentage of the transaction amount to which VAT is not applied. |  |
| 6202 | Non-Ded. Purchase VAT Account | Code[20] | Specifies the account associated with the VAT amount that is not deducted due to the type of goods or services purchased. | TableRelation [Table 15 "G/L Account"](../table/15.md) (G/L Account) |
| 6203 | Allow Non-Deductible VAT | Enum "Allow Non-Deductible VAT Type" | Specifies whether the Non-Deductible VAT is considered for this particular combination of VAT business posting group and VAT product posting group. | enum [Enum 6200 "Allow Non-Deductible VAT Type"](../enum/6200.md) |

## Keys

- Key1: VAT Bus. Posting Group, VAT Prod. Posting Group (clustered)
- Key2: VAT Prod. Posting Group, VAT Bus. Posting Group

## Events published

- `OnBeforeGetPurchAccount(var VATPostingSetup: Record "VAT Posting Setup"; Unrealized: Boolean; var PurchVATAccountNo: Code[20]; var IsHandled: Boolean)` (integration): Integration event raised before retrieving purchase VAT account to allow custom account selection logic. Enables extensions to override standard purchase VAT account determination based on custom business rules.
- `OnBeforeGetSalesAccount(var VATPostingSetup: Record "VAT Posting Setup"; Unrealized: Boolean; var SalesVATAccountNo: Code[20]; var IsHandled: Boolean)` (integration): Integration event raised before retrieving sales VAT account to allow custom account selection logic. Enables extensions to override standard sales VAT account determination based on custom business rules.
- `OnBeforeCheckSetupUsage(var VATPostingSetup: Record "VAT Posting Setup"; var IsHandled: Boolean; VATBusPostingGroup: Code[20]; VATProdPostingGroup: Code[20])` (integration): Integration event raised before checking VAT posting setup usage to allow custom validation logic. Enables extensions to perform additional validation or override standard setup usage checks.

## Procedures

- `CheckGLAcc(AccNo: Code[20])`: Validates that the specified G/L account exists and is properly configured for VAT posting.
- `TestNotSalesTax(FromFieldName: Text[100])`: Validates that the specified field is not used when VAT Calculation Type is Sales Tax. Prevents configuration of VAT fields that are incompatible with Sales Tax calculation method.
- `GetSalesAccount(Unrealized: Boolean): Code[20]`: Returns the appropriate sales VAT G/L account based on whether unrealized VAT is being processed. Retrieves either realized or unrealized sales VAT account with validation for required account setup.
- `GetPurchAccount(Unrealized: Boolean): Code[20]`: Returns the appropriate purchase VAT G/L account based on whether unrealized VAT is being processed. Retrieves either realized or unrealized purchase VAT account with validation for required account setup.
- `GetRevChargeAccount(Unrealized: Boolean): Code[20]`: Returns the appropriate reverse charge VAT G/L account based on whether unrealized VAT is being processed. Retrieves either realized or unrealized reverse charge VAT account for EU and domestic reverse charge transactions.
- `SetAccountsVisibility(var UnrealizedVATVisible: Boolean; var AdjustForPmtDiscVisible: Boolean)`: Sets visibility flags for unrealized VAT and payment discount adjustment based on General Ledger Setup configuration. Controls UI field visibility for VAT posting setup pages based on system-wide VAT settings.
- `SuggestSetupAccounts()`: Suggests G/L account assignments for VAT posting setup based on existing similar setups and account patterns. Provides automated account suggestion functionality to streamline VAT posting setup configuration.

Plus 6 local procedures.

## Triggers

OnDelete, OnRename, OnInsert

## Relations

- drill-down page [Page 472 "VAT Posting Setup"](../page/472.md)
- lookup page [Page 472 "VAT Posting Setup"](../page/472.md)
- Non-Ded. Purchase VAT Account: TableRelation [Table 15 "G/L Account"](../table/15.md)
- Purch. VAT Unreal. Account: TableRelation [Table 15 "G/L Account"](../table/15.md)
- Purchase VAT Account: TableRelation [Table 15 "G/L Account"](../table/15.md)
- Reverse Chrg. VAT Acc.: TableRelation [Table 15 "G/L Account"](../table/15.md)
- Reverse Chrg. VAT Unreal. Acc.: TableRelation [Table 15 "G/L Account"](../table/15.md)
- Sales VAT Account: TableRelation [Table 15 "G/L Account"](../table/15.md)
- Sales VAT Unreal. Account: TableRelation [Table 15 "G/L Account"](../table/15.md)
- VAT Bus. Posting Group: TableRelation [Table 323 "VAT Business Posting Group"](../table/323.md)
- VAT Prod. Posting Group: TableRelation [Table 324 "VAT Product Posting Group"](../table/324.md)
- Purch. VAT Reporting Code: TableRelation [Table 344 "VAT Reporting Code"](../table/344.md)
- Sale VAT Reporting Code: TableRelation [Table 344 "VAT Reporting Code"](../table/344.md)
- VAT Clause Code: TableRelation [Table 560 "VAT Clause"](../table/560.md)

## Pages and codeunits on this table

- [Page 472 "VAT Posting Setup"](../page/472.md) (source table)
- [Page 473 "VAT Posting Setup Card"](../page/473.md) (source table)
- [Page 5283 "VAT Posting Setup SAF-T"](../page/5283.md) (source table)

## Extended by

- [Table extension 5285 "VAT Posting Setup SAF-T"](../tableextension/5285.md)

## Calls

From the extracted call graph of BC29 (graphify-al on the snapshot checkout): calls whose target is known from a declared type or an `Object::"Name"` argument. Interface dispatch and calls through events are not counted, so the list is not complete.

- [Codeunit 48 "PostingSetupManagement"](../codeunit/48.md) (3 calls: `GetPurchAccount → LogVATPostingSetupFieldError`, `GetRevChargeAccount → LogVATPostingSetupFieldError`, `GetSalesAccount → LogVATPostingSetupFieldError`)

## Across versions

- Present in: BC23-30
- Changed (declaration) in: BC24, BC28-29

## Countries that replace it

[AT](../../localizations/at.md), [CA](../../localizations/ca.md), [CH](../../localizations/ch.md), [CZ](../../localizations/cz.md), [DE](../../localizations/de.md), [ES](../../localizations/es.md), [IT](../../localizations/it.md), [MX](../../localizations/mx.md), [NO](../../localizations/no.md), [RU](../../localizations/ru.md), [US](../../localizations/us.md)

Source: AL metadata extracted from the code (names, ids, signatures, properties); no code bodies (D10).

## Ask your agent

Procedure bodies are not stored here (D10). The call sections above are our own, per object, from the BC29 call graph. For a procedure body or the calls of one procedure, ask bc-code-atlas (external, by Stefan Maron, MIT; default corpus w1-28), which the bc-observatory plugin connects: `bcatlas_resolve_node(object_type: "table", object_name: "VAT Posting Setup")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
