---
id: object/table/1877
type: object
title: Table 1877 "VAT Setup Posting Groups"
summary: Table 1877 "VAT Setup Posting Groups" in Base Application (Microsoft.Finance.VAT.Setup). 10 fields, 7 public procedures, 2 events. Present since at least BC23, still in BC30, changed in BC24-25, 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: 372a6c5d6b88ba273ca54df31f38c35036b65f993f98e3abdd3813c4e3c32c21
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Finance/VAT/Setup/VATSetupPostingGroups.Table.al
    title: src/Layers/W1/BaseApp/Finance/VAT/Setup/VATSetupPostingGroups.Table.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations: []
  videos: []
  posts: []
  guidelines: []
object_type: table
object_id: 1877
name: VAT Setup Posting Groups
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"
  - "25"
  - "28"
  - "29"
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
counts:
  fields: 10
  procedures: 10
  events: 2
  subscribers: 0
relations:
  out: 3
  referenced_by: 1
  pages: 1
  extended_by: 0
  event_subscribers: 1
  calls: 0
  called_by: 0
  implements: 0
---

# Table 1877 "VAT Setup Posting Groups"

> Table 1877 "VAT Setup Posting Groups" in Base Application (Microsoft.Finance.VAT.Setup). 10 fields, 7 public procedures, 2 events. Present since at least BC23, still in BC30, changed in BC24-25, 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/VATSetupPostingGroups.Table.al) · facts from BC29

## Properties

| Property | Value |
|---|---|
| Caption | VAT Setup Posting Groups |
| 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 |
|---|---|---|---|---|
| 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. | NotBlank |
| 4 | VAT % | Decimal | Specifies the VAT percentage used. |  |
| 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) |
| 9 | Purchase VAT Account | Code[20] | Specifies the general ledger account number to which to post purchase VAT. | 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) |
| 18 | VAT Prod. Posting Grp Desc. | Text[100] | Specifies a description of the VAT product posting group. |  |
| 19 | VAT Clause Desc | Text[250] | Specifies a description of the VAT clause. |  |
| 22 | Selected | Boolean | Specifies whether to include the VAT product posting group on the line. |  |
| 23 | Application Type | Option | Specifies how a cost recipient is linked to its cost source to provide cost forwarding according to the costing method. | OptionCaption: ,Items,Services |
| 24 | Default | Boolean | — |  |

## Keys

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

## Events published

- `OnInitWithStandardValues(var Handled: Boolean; VATSetupPostingGroups: Record "VAT Setup Posting Groups")` (integration): Integration event raised before initializing VAT setup posting groups with standard values. Enables extensions to provide custom default VAT configurations instead of system defaults.
- `OnBeforeCheckExistingItemAndServiceWithVAT(VATProdPostingGroupCode: Code[20]; var Result: Boolean)` (integration): Integration event raised before checking existing items and services with VAT product posting group. Enables extensions to provide custom validation logic for VAT group usage verification.
  - subscribers: [Codeunit 6487 "Serv. VAT Setup Mgt."](../codeunit/6487.md) OnBeforeCheckExistingItemAndServiceWithVAT

## Procedures

- `ValidateVATRates(): Boolean`: Validates that at least one non-default VAT setup posting group is selected for configuration. Used by VAT setup process to ensure user has made meaningful selections.
- `PopulateVATProdGroups()`: Populates working VAT product posting group records from default templates for setup configuration. Creates non-default copies of default templates for user modification during VAT setup process.
- `AddOrUpdateProdPostingGrp(ProdGrpCode: Code[20]; GrpDesc: Text[100]; VatRate: Decimal; SalesAccount: Code[20]; PurchAccount: Code[20]; IsService: Boolean; IsDefault: Boolean): Boolean`: Adds or updates a VAT product posting group template with specified configuration parameters. Creates new template or modifies existing one with VAT rate, account assignments, and classification.
- `CheckExistingItemAndServiceWithVAT(VATProdPostingGroupCode: Code[20]; IsService: Boolean): Boolean`: Checks whether existing items or services are already configured with the specified VAT product posting group. Validates impact of VAT configuration changes on existing master data.
- `ValidateGLAccountsExist(var ErrorMessage: Text): Boolean`: Validates that all selected VAT posting group templates have valid G/L account assignments. Ensures VAT setup completion by checking required account configurations for posting.
- `GetLabelTok(LabelName: Text): Code[20]`: Retrieves predefined label token codes used for standard VAT product posting group setup. Provides consistent codes for creating standardized VAT configurations across implementations.
- `GetLabelTxt(LabelName: Text): Text[100]`: Retrieves predefined label text descriptions used for standard VAT product posting group setup. Provides consistent descriptions for creating standardized VAT configurations across implementations.

Plus 1 local procedures.

## Relations

- 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)
- Sales VAT Account: TableRelation [Table 15 "G/L Account"](../table/15.md)

## Referenced by

1 fields in 1 objects relate to this table (TableRelation or CalcFormula).

- [Table 1878 "VAT Assisted Setup Templates"](../table/1878.md): Default VAT Prod. Posting Grp

## Pages and codeunits on this table

- [Page 1879 "VAT Product Posting Grp Part"](../page/1879.md) (source table)

## Across versions

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

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). 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 Setup Posting Groups")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
