Table 254 "VAT Entry"
Base Application · Microsoft.Finance.VAT.Ledger
- 75fields
- 21procedures
- 4events
- 9Learn pages
- 15countries replace it
- 12fields reference it
- 2event subscribers
- 3objects it calls
Across versions
- BC23present
- BC244 fields added, 1 procedures changed
- BC25declaration changed
- BC2639 fields changed, 1 procedures changed
- BC273 procedures added, 1 procedures removed
- BC2821 fields changed
- BC291 fields changed, 1 fields added
- BC30unchanged
Neighbourhood 40 connected objects and pages
Base Application · Microsoft.Finance.VAT.Ledger · BC23-30 · source at ea08af5e · facts from BC29
Learn documents this table through its pages: Page 315 “VAT Entries” (9 Learn pages).
Properties
| Property | Value |
|---|---|
| Caption | VAT Entry |
| DataClassification | CustomerContent |
| Permissions | TableData “Sales Invoice Header” = rm, TableData “Sales Cr.Memo Header” = rm, #if not CLEAN28 TableData Microsoft.Service.History.“Service Invoice Header” = rm, TableData Microsoft.Service.History.“Service Cr.Memo Header” = rm, #endif TableData “Issued Reminder Header” = rm, TableData “Issued Fin. C… |
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 | Entry No. Δ BC26 | Integer | Specifies the number of the entry, as assigned from the specified number series when the entry was created. | not editable |
| 2 | Gen. Bus. Posting Group Δ BC26 | Code[20] | Specifies the vendor’s or customer’s trade type to link transactions made for this business partner with the appropriate general ledger account according to the general posting setup. | TableRelation Table 250 “Gen. Business Posting Group” (Gen. Business Posting Group); not editable |
| 3 | Gen. Prod. Posting Group Δ BC26 | Code[20] | Specifies the item’s product type to link transactions made for this item with the appropriate general ledger account according to the general posting setup. | TableRelation Table 251 “Gen. Product Posting Group” (Gen. Product Posting Group); not editable |
| 4 | Posting Date Δ BC26 | Date | Specifies the VAT entry’s posting date. | not editable |
| 5 | Document No. Δ BC26 | Code[20] | Specifies the document number on the VAT entry. | not editable |
| 6 | Document Type Δ BC26 | Enum “Gen. Journal Document Type” | Specifies the document type that the VAT entry belongs to. | enum Enum 6 “Gen. Journal Document Type”; not editable |
| 7 | Type Δ BC26 | Enum “General Posting Type” | Specifies the type of the VAT entry. | enum Enum 57 “General Posting Type”; not editable |
| 8 | Base Δ BC26 Δ BC28 | Decimal | Specifies the amount that the VAT amount (the amount shown in the Amount field) is calculated from. | not editable |
| 9 | Amount Δ BC26 Δ BC28 | Decimal | Specifies the amount of the VAT entry in LCY. | not editable |
| 10 | VAT Calculation Type Δ BC26 | 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”; not editable |
| 12 | Bill-to/Pay-to No. Δ BC26 | Code[20] | Specifies the number of the bill-to customer or pay-to vendor that the entry is linked to. | TableRelation Table 18 “Customer”, Table 23 “Vendor” (if (Type = const(Purchase)) Vendor else if (Type = const(Sale)) Customer) |
| 13 | EU 3-Party Trade Δ BC26 | Boolean | Specifies if the transaction is related to trade with a third party within the EU. | |
| 14 | User ID | Code[50] | — | TableRelation User.“User Name”; not editable; DataClassification EndUserIdentifiableInformation |
| 15 | Source Code | Code[10] | — | TableRelation Table 230 “Source Code” (Source Code); not editable |
| 16 | Reason Code | Code[10] | — | TableRelation Table 231 “Reason Code” (Reason Code); not editable |
| 17 | Closed by Entry No. Δ BC26 | Integer | Specifies the number of the VAT entry that has closed the entry, if the VAT entry was closed with the Calc. and Post VAT Settlement batch job. | TableRelation Table 254 “VAT Entry” (VAT Entry); not editable |
| 18 | Closed Δ BC26 | Boolean | Specifies whether the VAT entry has been closed by the Calc. and Post VAT Settlement batch job. | not editable |
| 19 | Country/Region Code Δ BC26 | Code[10] | Specifies the country/region of the address. | TableRelation Table 9 “Country/Region” (Country/Region) |
| 20 | Internal Ref. No. Δ BC26 | Text[30] | Specifies the internal reference number for the line. | not editable |
| 21 | Transaction No. Δ BC29 | Integer | Specifies the transaction number that groups related G/L entries from the same posting. | TableRelation Table 57 “G/L Transaction” (G/L Transaction); not editable |
| 22 | Unrealized Amount Δ BC26 Δ BC28 | Decimal | Specifies the unrealized VAT amount for this line if you use unrealized VAT. | not editable |
| 23 | Unrealized Base Δ BC26 Δ BC28 | Decimal | Specifies the unrealized base amount if you use unrealized VAT. | not editable |
| 24 | Remaining Unrealized Amount Δ BC26 Δ BC28 | Decimal | Specifies the amount that remains unrealized in the VAT entry. | not editable |
| 25 | Remaining Unrealized Base Δ BC26 Δ BC28 | Decimal | Specifies the amount of base that remains unrealized in the VAT entry. | not editable |
| 26 | External Document No. | Code[35] | — | not editable |
| 28 | No. Series | Code[20] | — | TableRelation Table 308 “No. Series” (No. Series); not editable |
| 29 | Tax Area Code | Code[20] | — | TableRelation Table 318 “Tax Area” (Tax Area); not editable |
| 30 | Tax Liable | Boolean | — | not editable |
| 31 | Tax Group Code | Code[20] | — | TableRelation Table 321 “Tax Group” (Tax Group); not editable |
| 32 | Use Tax | Boolean | — | not editable |
| 33 | Tax Jurisdiction Code | Code[10] | — | TableRelation Table 320 “Tax Jurisdiction” (Tax Jurisdiction); not editable |
| 34 | Tax Group Used | Code[20] | — | TableRelation Table 321 “Tax Group” (Tax Group); not editable |
| 35 | Tax Type | Option | — | OptionCaption: Sales Tax,Excise Tax; not editable |
| 36 | Tax on Tax | Boolean | — | not editable |
| 37 | Sales Tax Connection No. | Integer | — | not editable |
| 38 | Unrealized VAT Entry No. | Integer | — | TableRelation Table 254 “VAT Entry” (VAT Entry); not editable |
| 39 | VAT Bus. Posting Group Δ BC26 | 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” (VAT Business Posting Group); not editable |
| 40 | VAT Prod. Posting Group Δ BC26 | 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” (VAT Product Posting Group); not editable |
| 43 | Additional-Currency Amount Δ BC26 | Decimal | Specifies the amount of the VAT entry. The amount is in the additional reporting currency. | not editable |
| 44 | Additional-Currency Base Δ BC26 | Decimal | Specifies the amount that the VAT amount is calculated from if you post in an additional reporting currency. | not editable |
| 45 | Add.-Currency Unrealized Amt. | Decimal | — | not editable |
| 46 | Add.-Currency Unrealized Base | Decimal | — | not editable |
| 48 | VAT Base Discount % Δ BC28 | Decimal | — | not editable |
| 49 | Add.-Curr. Rem. Unreal. Amount | Decimal | — | not editable |
| 50 | Add.-Curr. Rem. Unreal. Base | Decimal | — | not editable |
| 51 | VAT Difference Δ BC26 Δ BC28 | Decimal | Specifies the difference between the calculated VAT amount and a VAT amount that you have entered manually. | not editable |
| 52 | Add.-Curr. VAT Difference Δ BC26 | Decimal | Specifies, in the additional reporting currency, the VAT difference that arises when you make a correction to a VAT amount on a sales or purchase document. | not editable |
| 53 | Ship-to/Order Address Code Δ BC26 | Code[10] | Specifies the address code of the ship-to customer or order-from vendor that the entry is linked to. | TableRelation Table 222 “Ship-to Address”, Table 224 “Order Address” (if (Type = const(Purchase)) “Order Address”.Code where(“Vendor No.” = field(“Bill-to/Pay-to No.”)) else if (Type = const(Sale)) “Ship-to Address”.Code where(“Customer No.” = field(“Bill-to/Pay-to No.”))) |
| 54 | Document Date Δ BC26 | Date | Specifies the date when the related document was created. | not editable |
| 55 | VAT Registration No. Δ BC26 | Text[20] | Specifies the VAT registration number of the customer or vendor that the entry is linked to. | |
| 56 | Reversed Δ BC26 | Boolean | Specifies if the entry has been part of a reverse transaction. | |
| 57 | Reversed by Entry No. Δ BC26 | Integer | Specifies the number of the correcting entry. If the field Specifies a number, the entry cannot be reversed again. | TableRelation Table 254 “VAT Entry” (VAT Entry) |
| 58 | Reversed Entry No. Δ BC26 | Integer | Specifies the number of the original entry that was undone by the reverse transaction. | TableRelation Table 254 “VAT Entry” (VAT Entry) |
| 59 | EU Service Δ BC26 | Boolean | Specifies if this VAT entry is to be reported as a service in the periodic VAT reports. | not editable |
| 60 | Base Before Pmt. Disc. Δ BC28 | Decimal | — | not editable |
| 70 | Source Currency VAT Amount + BC24 | Decimal | — | not editable |
| 71 | Source Currency VAT Base + BC24 | Decimal | — | not editable |
| 74 | Source Currency Code + BC24 | Code[10] | — | TableRelation Table 4 “Currency”; DataClassification SystemMetadata |
| 75 | Source Currency Factor + BC24 Δ BC28 | Decimal | — | DataClassification SystemMetadata |
| 78 | Journal Templ. Name | Code[10] | Journal Template Name caption | |
| 79 | Journal Batch Name | Code[10] | — | |
| 81 | Realized Amount Δ BC28 | Decimal | — | not editable |
| 82 | Realized Base Δ BC28 | Decimal | — | not editable |
| 83 | Add.-Curr. Realized Amount Δ BC28 | Decimal | — | not editable |
| 84 | Add.-Curr. Realized Base Δ BC28 | Decimal | — | not editable |
| 85 | G/L Acc. No. | Code[20] | G/L Account No. caption | TableRelation Table 15 “G/L Account” (G/L Account) |
| 86 | VAT Reporting Date Δ BC26 | Date | Specifies the VAT date on the VAT entry. This is either the date that the document was created or posted, depending on your setting on the General Ledger Setup page. | |
| 95 | G/L Register No. + BC29 | Integer | Specifies the G/L register number that groups related G/L entries from the same posting. | TableRelation Table 45 “G/L Register” (G/L Register); not editable |
| 6200 | Non-Deductible VAT % Δ BC28 | Decimal | — | not editable |
| 6201 | Non-Deductible VAT Base Δ BC26 Δ BC28 | Decimal | Specifies the amount of VAT that is not deducted due to the type of goods or services purchased. | not editable |
| 6202 | Non-Deductible VAT Amount Δ BC26 Δ BC28 | Decimal | Specifies the amount of the transaction for which VAT is not applied, due to the type of goods or services purchased. | not editable |
| 6203 | Non-Deductible VAT Base ACY Δ BC26 Δ BC28 | Decimal | Specifies the amount of VAT that is not deducted due to the type of goods or services purchased. The amount is in the additional reporting currency. | not editable |
| 6204 | Non-Deductible VAT Amount ACY Δ BC26 Δ BC28 | Decimal | Specifies the amount of the transaction for which VAT is not applied, due to the type of goods or services purchased. The amount is in the additional reporting currency. | not editable |
| 6205 | Non-Deductible VAT Diff. Δ BC26 Δ BC28 | Decimal | Specifies the difference between the calculated Non-Deductible VAT amount and a Non-Deductible VAT amount that you have entered manually. | not editable |
| 6206 | Non-Deductible VAT Diff. ACY Δ BC28 | Decimal | Non-Deductible VAT Difference ACY caption | not editable |
Keys
- Key1: Entry No. (clustered)
- Key2: Type, Closed, VAT Bus. Posting Group, VAT Prod. Posting Group, Posting Date, G/L Acc. No., VAT Reporting Date
- Key3: Type, Closed, Tax Jurisdiction Code, Use Tax, Posting Date
- Key4: Type, Country/Region Code, VAT Registration No., VAT Bus. Posting Group, VAT Prod. Posting Group, Posting Date
- Key5: Document No., Posting Date
- Key6: Transaction No.
- Key7: Tax Jurisdiction Code, Tax Group Used, Tax Type, Use Tax, Posting Date
- Key8: Type, Bill-to/Pay-to No., Transaction No.
- Key9: Type, Closed, VAT Bus. Posting Group, VAT Prod. Posting Group, Tax Jurisdiction Code, Use Tax, Posting Date, G/L Acc. No.
- Key10: Posting Date, Type, Closed, VAT Bus. Posting Group, VAT Prod. Posting Group, Reversed, G/L Acc. No., VAT Reporting Date
- Key11: Document Date
- Key12: G/L Acc. No.
- Key13: Type, Closed, VAT Bus. Posting Group, VAT Prod. Posting Group, Reversed, Posting Date, G/L Acc. No., VAT Reporting Date
Events published
OnAfterCopyFromGenJnlLine(var VATEntry: Record "VAT Entry"; GenJournalLine: Record "Gen. Journal Line")(integration): Integration event raised after copying data from General Journal Line to VAT Entry.OnAfterOnCopyAmountsFromVATEntry(var VATEntry: Record "VAT Entry"; WithOppositeSign: Boolean; var RecVATEntry: Record "VAT Entry")(integration): Integration event raised after copying amounts from another VAT entry.OnBeforeSetGLAccountNo(var VATEntry: Record "VAT Entry"; var IsHandled: Boolean; var Response: Boolean; WithUI: Boolean; ShowConfirm: Boolean)(integration): Integration event raised before setting G/L Account No. on VAT entry.OnAfterSetGLAccountNo(var VATEntry: Record "VAT Entry"; var IsHandled: Boolean; WithUI: Boolean)(integration): Integration event raised after setting G/L Account No. on VAT entry.
Trigger event subscribers
- OnAfterInsertEvent: Codeunit 20 “Posting Preview Event Handler” OnInsertVATEntry
- OnAfterModifyEvent: Codeunit 20 “Posting Preview Event Handler” OnModifyVATEntry
Procedures
SetVATDateFromGenJnlLine(GenJnlLine: Record "Gen. Journal Line")(internal)GetLastEntryNo(): IntegerΔ BC26: Retrieves the highest entry number from the VAT Entry table.GetUnrealizedVATPart(SettledAmount: Decimal; Paid: Decimal; Full: Decimal; TotalUnrealVATAmountFirst: Decimal; TotalUnrealVATAmountLast: Decimal): Decimal: Calculates the unrealized VAT portion based on payment settlement and unrealized VAT configuration.GetUnrealizedVATType(): IntegerΔ BC24: Retrieves the unrealized VAT type configuration for this VAT entry.CopyFromGenJnlLine(GenJnlLine: Record "Gen. Journal Line"): Copies VAT-related data from a General Journal Line to populate this VAT entry.CopyPostingDataFromGenJnlLine(GenJnlLine: Record "Gen. Journal Line"): Copies posting-related data from a General Journal Line to this VAT entry.SetGLAccountNo(WithUI: Boolean): Sets the G/L Account No. field for this VAT entry by creating missing VAT Entry - G/L Entry links.SetGLAccountNoWithResponse(WithUI: Boolean; ShowConfirm: Boolean; var Response: Boolean): Sets the G/L Account No. field for this VAT entry with user response handling.CheckGLAccountNoFilled(): Validates that all VAT entries in the current filter have their G/L Account No. field populated.CopyAmountsFromVATEntry(VATEntry: Record "VAT Entry"; WithOppositeSign: Boolean): Copies amount fields from another VAT entry, optionally with opposite sign for reversals.SetUnrealAmountsToZero(): Resets all unrealized VAT amount fields to zero for this VAT entry.
Plus 6 local procedures.
Relations
- lookup page Page 315 “VAT Entries”
- G/L Acc. No.: TableRelation Table 15 “G/L Account”
- Bill-to/Pay-to No.: TableRelation Table 18 “Customer” (conditional)
- Ship-to/Order Address Code: TableRelation Table 222 “Ship-to Address” (conditional)
- Ship-to/Order Address Code: TableRelation Table 224 “Order Address” (conditional)
- Bill-to/Pay-to No.: TableRelation Table 23 “Vendor” (conditional)
- Source Code: TableRelation Table 230 “Source Code”
- Reason Code: TableRelation Table 231 “Reason Code”
- Gen. Bus. Posting Group: TableRelation Table 250 “Gen. Business Posting Group”
- Gen. Prod. Posting Group: TableRelation Table 251 “Gen. Product Posting Group”
- Closed by Entry No.: TableRelation Table 254 “VAT Entry”
- Reversed by Entry No.: TableRelation Table 254 “VAT Entry”
- Reversed Entry No.: TableRelation Table 254 “VAT Entry”
- Unrealized VAT Entry No.: TableRelation Table 254 “VAT Entry”
- No. Series: TableRelation Table 308 “No. Series”
- Tax Area Code: TableRelation Table 318 “Tax Area”
- Tax Jurisdiction Code: TableRelation Table 320 “Tax Jurisdiction”
- Tax Group Code: TableRelation Table 321 “Tax Group”
- Tax Group Used: TableRelation Table 321 “Tax Group”
- VAT Bus. Posting Group: TableRelation Table 323 “VAT Business Posting Group”
- VAT Prod. Posting Group: TableRelation Table 324 “VAT Product Posting Group”
- Source Currency Code: TableRelation Table 4 “Currency”
- G/L Register No.: TableRelation Table 45 “G/L Register”
- Transaction No.: TableRelation Table 57 “G/L Transaction”
- Country/Region Code: TableRelation Table 9 “Country/Region”
Referenced by
12 fields in 5 objects relate to this table (TableRelation or CalcFormula).
- Table 1571 “VAT Entry Posting Preview”: Closed by Entry No., Reversed by Entry No., Reversed Entry No., Unrealized VAT Entry No.
- Table 254 “VAT Entry”: Closed by Entry No., Reversed by Entry No., Reversed Entry No., Unrealized VAT Entry No.
- Table 45 “G/L Register”: From VAT Entry No., To VAT Entry No.
- Table 253 “G/L Entry - VAT Entry Link”: VAT Entry No.
- Table 57 “G/L Transaction”: No. of VAT Entries
Pages and codeunits on this table
- Page 123 “VAT Entries Preview” (source table)
- Page 1575 “VAT Entries Preview Flat Subf.” (source table)
- Page 315 “VAT Entries” (source table)
- Codeunit 338 “VAT Entry - Edit” (codeunit runs on it)
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 27 “Confirm Management” (1 call:
SetGLAccountNoWithResponse → GetResponseOrDefault) - Codeunit 6200 “Non-Deductible VAT” (1 call:
CopyFromGenJnlLine → Copy) - Codeunit 703 “Find Record Management” (1 call:
GetLastEntryNo → GetLastEntryIntFieldValue)
Recent changes
- 2026-10-01 #12119 Fixing an APAC-specific issue with applying a posted sales credit memo when using unrealized VAT (GST) (main, BC30, fix)
- 2026-08-12 #10135 [Master]-Performance issue when calculating the VAT advance return / VAT statement (Base Application, German environment) - Copy (main, BC30, performance)
- 2026-07-28 #9734 [Master]-Performance issue when calculating the VAT advance return / VAT statement (Base Application, German environment) - Copy (main, BC30, performance)
- 2026-07-17 #9485 [main]-Multiple error messages when posting to period with VAT Return already in status Released (main, BC30, fix)
Countries that replace it
AT, AU, BE, CA, CH, DE, ES, FR, IT, MX, NL, NO, NZ, RU, US
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 Entry"), then bcatlas_get_procedure_body or bcatlas_get_neighbors on the returned id.