---
id: object/table/55
type: object
title: Table 55 "Invoice Posting Buffer"
summary: Table 55 "Invoice Posting Buffer" in Base Application (Microsoft.Finance.ReceivablesPayables). 53 fields, 17 public procedures, 18 events. Present since at least BC23, still in BC30, changed in BC24-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: aac852843461a517ec1d04054ba54f38b7cd346a4f36a10606d618d7f277d5c3
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Finance/ReceivablesPayables/InvoicePostingBuffer.Table.al
    title: src/Layers/W1/BaseApp/Finance/ReceivablesPayables/InvoicePostingBuffer.Table.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations:
    - localization/au
    - localization/be
    - localization/fi
    - localization/it
    - localization/nz
    - localization/ru
    - localization/se
  videos: []
  posts: []
  guidelines: []
  changes:
    - change/bcapps/8959
object_type: table
object_id: 55
name: Invoice Posting Buffer
namespace: Microsoft.Finance.ReceivablesPayables
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"
  - "26"
  - "27"
  - "28"
  - "29"
source_major: "29"
obsolete: null
countries:
  - au
  - be
  - fi
  - it
  - nz
  - ru
  - se
ms_search_form_ids: []
counts:
  fields: 53
  procedures: 40
  events: 18
  subscribers: 0
relations:
  out: 17
  referenced_by: 0
  pages: 0
  extended_by: 3
  event_subscribers: 2
  calls: 1
  called_by: 0
  implements: 0
---

# Table 55 "Invoice Posting Buffer"

> Table 55 "Invoice Posting Buffer" in Base Application (Microsoft.Finance.ReceivablesPayables). 53 fields, 17 public procedures, 18 events. Present since at least BC23, still in BC30, changed in BC24-29.

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

## Properties

| Property | Value |
|---|---|
| Caption | Invoice Posting Buffer |
| TableType | Temporary |
| 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 | Group ID | Text[1000] | Primary Key <small>caption</small> | DataClassification SystemMetadata |
| 2 | Type | Enum "Invoice Posting Line Type" | — | enum [Enum 49 "Invoice Posting Line Type"](../enum/49.md); DataClassification SystemMetadata |
| 3 | G/L Account | Code[20] | — | TableRelation [Table 15 "G/L Account"](../table/15.md) (G/L Account); DataClassification SystemMetadata |
| 4 | Global Dimension 1 Code | Code[20] | — | TableRelation [Table 349 "Dimension Value"](../table/349.md) ("Dimension Value".Code where("Global Dimension No." = const(1))); DataClassification SystemMetadata |
| 5 | Global Dimension 2 Code | Code[20] | — | TableRelation [Table 349 "Dimension Value"](../table/349.md) ("Dimension Value".Code where("Global Dimension No." = const(2))); DataClassification SystemMetadata |
| 6 | Job No. | Code[20] | Project No. <small>caption</small> | TableRelation [Table 167 "Job"](../table/167.md); DataClassification SystemMetadata |
| 7 | Amount | Decimal | — | DataClassification SystemMetadata |
| 8 | VAT Amount | Decimal | — | DataClassification SystemMetadata |
| 10 | Gen. Bus. Posting Group | Code[20] | — | TableRelation [Table 250 "Gen. Business Posting Group"](../table/250.md) (Gen. Business Posting Group); DataClassification SystemMetadata |
| 11 | Gen. Prod. Posting Group | Code[20] | — | TableRelation [Table 251 "Gen. Product Posting Group"](../table/251.md) (Gen. Product Posting Group); DataClassification SystemMetadata |
| 12 | VAT Calculation Type | Enum "Tax Calculation Type" | — | enum [Enum 254 "Tax Calculation Type"](../enum/254.md); DataClassification SystemMetadata |
| 14 | VAT Base Amount | Decimal | — | DataClassification SystemMetadata |
| 17 | System-Created Entry | Boolean | — | DataClassification SystemMetadata |
| 18 | Tax Area Code | Code[20] | — | TableRelation [Table 318 "Tax Area"](../table/318.md) (Tax Area); DataClassification SystemMetadata |
| 19 | Tax Liable | Boolean | — | DataClassification SystemMetadata |
| 20 | Tax Group Code | Code[20] | — | TableRelation [Table 321 "Tax Group"](../table/321.md) (Tax Group); DataClassification SystemMetadata |
| 21 | Quantity | Decimal | — | DataClassification SystemMetadata |
| 22 | Use Tax | Boolean | — | DataClassification SystemMetadata |
| 23 | VAT Bus. Posting Group | Code[20] | — | TableRelation [Table 323 "VAT Business Posting Group"](../table/323.md) (VAT Business Posting Group); DataClassification SystemMetadata |
| 24 | VAT Prod. Posting Group | Code[20] | — | TableRelation [Table 324 "VAT Product Posting Group"](../table/324.md) (VAT Product Posting Group); DataClassification SystemMetadata |
| 25 | Amount (ACY) | Decimal | — | DataClassification SystemMetadata |
| 26 | VAT Amount (ACY) | Decimal | — | DataClassification SystemMetadata |
| 29 | VAT Base Amount (ACY) | Decimal | — | DataClassification SystemMetadata |
| 31 | VAT Difference | Decimal | — | DataClassification SystemMetadata |
| 32 | VAT % | Decimal | — | DataClassification SystemMetadata |
| 35 | VAT Base Before Pmt. Disc. | Decimal | — | DataClassification SystemMetadata |
| 40 | Journal Templ. Name | Code[10] | Journal Template Name <small>caption</small> | DataClassification SystemMetadata |
| 147 | Spend Request No. | Code[20] | — |  |
| 148 | Spend Request Close | Boolean | — |  |
| 215 | Entry Description | Text[100] | — | DataClassification SystemMetadata |
| 480 | Dimension Set ID | Integer | — | TableRelation [Table 480 "Dimension Set Entry"](../table/480.md) (Dimension Set Entry); not editable; DataClassification SystemMetadata |
| 1000 | Additional Grouping Identifier | Code[20] | — | DataClassification SystemMetadata |
| 1700 | Deferral Code | Code[10] | — | TableRelation [Table 1700 "Deferral Template"](../table/1700.md) ("Deferral Template"."Deferral Code"); DataClassification SystemMetadata |
| 1701 | Deferral Line No. | Integer | — | DataClassification SystemMetadata |
| 5600 | FA Posting Date | Date | — | DataClassification SystemMetadata |
| 5601 | FA Posting Type | Enum "Purchase FA Posting Type" | — | enum [Enum 5607 "Purchase FA Posting Type"](../enum/5607.md); DataClassification SystemMetadata |
| 5602 | Depreciation Book Code | Code[10] | — | TableRelation [Table 5611 "Depreciation Book"](../table/5611.md) (Depreciation Book); DataClassification SystemMetadata |
| 5603 | Salvage Value | Decimal | — | DataClassification SystemMetadata |
| 5605 | Depr. until FA Posting Date | Boolean | — | DataClassification SystemMetadata |
| 5606 | Depr. Acquisition Cost | Boolean | — | DataClassification SystemMetadata |
| 5609 | Maintenance Code | Code[10] | — | TableRelation [Table 5626 "Maintenance"](../table/5626.md); DataClassification SystemMetadata |
| 5610 | Insurance No. | Code[20] | — | TableRelation [Table 5628 "Insurance"](../table/5628.md); DataClassification SystemMetadata |
| 5611 | Budgeted FA No. | Code[20] | — | TableRelation [Table 5600 "Fixed Asset"](../table/5600.md) (Fixed Asset); DataClassification SystemMetadata |
| 5612 | Duplicate in Depreciation Book | Code[10] | — | TableRelation [Table 5611 "Depreciation Book"](../table/5611.md) (Depreciation Book); DataClassification SystemMetadata |
| 5613 | Use Duplication List | Boolean | — | DataClassification SystemMetadata |
| 5614 | Fixed Asset Line No. | Integer | — | DataClassification SystemMetadata |
| 6200 | Non-Deductible VAT % | Decimal | — | DataClassification SystemMetadata |
| 6201 | Non-Deductible VAT Base | Decimal | — | DataClassification SystemMetadata |
| 6202 | Non-Deductible VAT Amount | Decimal | — | DataClassification SystemMetadata |
| 6203 | Non-Deductible VAT Base ACY | Decimal | — | DataClassification SystemMetadata |
| 6204 | Non-Deductible VAT Amount ACY | Decimal | — | DataClassification SystemMetadata |
| 6205 | Non-Deductible VAT Diff. | Decimal | Non-Deductible VAT Difference <small>caption</small> | not editable |
| 12102 | No. of Fixed Asset Cards | Integer | — | DataClassification SystemMetadata |

## Keys

- key1: Group ID (clustered)

## Events published

- `OnAfterBuildPrimaryKey(var InvoicePostingBuffer: Record "Invoice Posting Buffer")` (integration)
- `OnUpdateOnAfterModify(var InvoicePostingBuffer: Record "Invoice Posting Buffer"; FromInvoicePostingBuffer: Record "Invoice Posting Buffer")` (integration)
- `OnAfterUpdate(var InvoicePostingBuffer: Record "Invoice Posting Buffer"; var FromInvoicePostingBuffer: Record "Invoice Posting Buffer")` (integration)
- `OnBeforeCalcDiscount(var InvoicePostingBuffer: Record "Invoice Posting Buffer"; var IsHandled: Boolean)` (integration)
- `OnBeforeCalcDiscountNoVAT(var InvoicePostingBuffer: Record "Invoice Posting Buffer"; var IsHandled: Boolean)` (integration)
- `OnBeforeUpdate(var InvoicePostingBuffer: Record "Invoice Posting Buffer"; var FromInvoicePostingBuffer: Record "Invoice Posting Buffer")` (integration)
- `OnUpdateOnBeforeModify(var InvoicePostingBuffer: Record "Invoice Posting Buffer"; FromInvoicePostingBuffer: Record "Invoice Posting Buffer")` (integration)
- `OnFillPrepmtAdjBufferOnBeforeAssignInvoicePostingBuffer(var PrepmtAdjInvoicePostingBuffer: Record "Invoice Posting Buffer"; InvoicePostingBuffer: Record "Invoice Posting Buffer")` (integration)
- `OnAfterCopyToGenJnlLine(var GenJnlLine: Record "Gen. Journal Line"; InvoicePostingBuffer: Record "Invoice Posting Buffer")` (integration)
  - subscribers: [Codeunit 4850 "AA Codes Posting Helper"](../codeunit/4850.md) OnAfterCopyToGenJnlLine
- `OnAfterCopyToGenJnlLineFA(var GenJnlLine: Record "Gen. Journal Line"; InvoicePostingBuffer: Record "Invoice Posting Buffer")` (integration)
- `OnAfterAdjustRoundingForUpdate(var InvoicePostingBuffer: Record "Invoice Posting Buffer"; TempInvoicePostingBufferRounding: Record "Invoice Posting Buffer" temporary)` (integration)
- `OnAfterApplyRoundingForFinalPosting(var InvoicePostingBuffer: Record "Invoice Posting Buffer"; TempInvoicePostingBufferRounding: Record "Invoice Posting Buffer" temporary)` (integration)
- `OnBuildPrimaryKeyAfterDeferralCode(var GroupID: Text; InvoicePostingBuffer: Record "Invoice Posting Buffer")` (integration)
  - subscribers: [Codeunit 4850 "AA Codes Posting Helper"](../codeunit/4850.md) OnBuildPrimaryKeyAfterDeferralCode
- `OnCalcDiscountOnAfterUpdateVATAmount(var InvoicePostingBuffer: Record "Invoice Posting Buffer"; PricesInclVAT: Boolean; DiscountAmount: Decimal; DiscountAmountACY: Decimal)` (integration)
- `OnBeforeClearVATFields(var InvoicePostingBuffer: Record "Invoice Posting Buffer"; var IsHandled: Boolean)` (integration)
- `OnAfterSetAccount(var InvoicePostingBuffer: Record "Invoice Posting Buffer"; AccountNo: Code[20])` (integration)
- `OnAfterReverseAmounts(var InvoicePostingBuffer: Record "Invoice Posting Buffer")` (integration)
- `OnBeforeUpdateEntryDescription(var InvoicePostingBuffer: Record "Invoice Posting Buffer"; var HeaderDescription: Text[100]; var LineDescription: Text[100]; var IsHandled: Boolean)` (integration)

## Procedures

- `CalcDiscount(PricesInclVAT: Boolean; DiscountAmount: Decimal; DiscountAmountACY: Decimal)`: Calculates and applies discount amounts to the invoice posting buffer.
- `SetAccount(AccountNo: Code[20]; var TotalVAT: Decimal; var TotalVATACY: Decimal; var TotalAmount: Decimal; var TotalAmountACY: Decimal)`: Sets the G/L account and updates total amounts for posting buffer entry.
- `SetAmounts(TotalVAT: Decimal; TotalVATACY: Decimal; TotalAmount: Decimal; TotalAmountACY: Decimal; VATDifference: Decimal; TotalVATBase: Decimal; TotalVATBaseACY: Decimal)`: Sets all amount fields in the invoice posting buffer from total calculations.
- `CalcDiscountNoVAT(DiscountAmount: Decimal; DiscountAmountACY: Decimal)`
- `ReverseAmounts()`
- `SetAmountsNoVAT(TotalAmount: Decimal; TotalAmountACY: Decimal; VATDifference: Decimal)`
- `PreparePrepmtAdjBuffer(InvoicePostingBuffer: Record "Invoice Posting Buffer"; GLAccountNo: Code[20]; AdjAmount: Decimal; RoundingEntry: Boolean)`
- `Update(InvoicePostingBuffer: Record "Invoice Posting Buffer")`
- `Update(InvoicePostingBuffer: Record "Invoice Posting Buffer"; var InvDefLineNo: Integer; var DeferralLineNo: Integer)`
- `BuildPrimaryKey()`
- `PadField(TextField: Text; MaxLength: Integer): Text`
- `UpdateVATBase(var TotalVATBase: Decimal; var TotalVATBaseACY: Decimal)`
- `UpdateEntryDescription(CopyLineDescrToGLEntry: Boolean; LineNo: Integer; LineDescription: text[100]; HeaderDescription: Text[100])`
- `ApplyRoundingForFinalPosting()`
- `ClearVATFields()`
- `CopyToGenJnlLine(var GenJnlLine: Record "Gen. Journal Line")`
- `CopyToGenJnlLineFA(var GenJnlLine: Record "Gen. Journal Line")`

Plus 5 local procedures.

## Relations

- G/L Account: TableRelation [Table 15 "G/L Account"](../table/15.md)
- Job No.: TableRelation [Table 167 "Job"](../table/167.md)
- Deferral Code: TableRelation [Table 1700 "Deferral Template"](../table/1700.md)
- Gen. Bus. Posting Group: TableRelation [Table 250 "Gen. Business Posting Group"](../table/250.md)
- Gen. Prod. Posting Group: TableRelation [Table 251 "Gen. Product Posting Group"](../table/251.md)
- Tax Area Code: TableRelation [Table 318 "Tax Area"](../table/318.md)
- Tax Group Code: TableRelation [Table 321 "Tax Group"](../table/321.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)
- Global Dimension 1 Code: TableRelation [Table 349 "Dimension Value"](../table/349.md)
- Global Dimension 2 Code: TableRelation [Table 349 "Dimension Value"](../table/349.md)
- Dimension Set ID: TableRelation [Table 480 "Dimension Set Entry"](../table/480.md)
- Budgeted FA No.: TableRelation [Table 5600 "Fixed Asset"](../table/5600.md)
- Depreciation Book Code: TableRelation [Table 5611 "Depreciation Book"](../table/5611.md)
- Duplicate in Depreciation Book: TableRelation [Table 5611 "Depreciation Book"](../table/5611.md)
- Maintenance Code: TableRelation [Table 5626 "Maintenance"](../table/5626.md)
- Insurance No.: TableRelation [Table 5628 "Insurance"](../table/5628.md)

## Extended by

- [Table extension 4854 "AutoAcc Invoice Posting Buffer"](../tableextension/4854.md)
- [Table extension 6281 "Sust. Invoice Posting Buffer"](../tableextension/6281.md)
- [Table extension 6802 "WHT Invoice Posting Buffer"](../tableextension/6802.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 6200 "Non-Deductible VAT"](../codeunit/6200.md) (6 calls: `AdjustRoundingForUpdate → AdjustRoundingForInvoicePostingBufferUpdate`, `ApplyRoundingForFinalPosting → ApplyRoundingForFinalPostingFromInvoicePostingBuffer`, `CalcDiscount → Calculate`, …)

## Recent changes

- 2026-07-31 [#8959 Deliverable 638799: Spend Requests in Base App](../../changes/bcapps/8959.md) (main, BC30, feature)

## Across versions

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

## Countries that replace it

[AU](../../localizations/au.md), [BE](../../localizations/be.md), [FI](../../localizations/fi.md), [IT](../../localizations/it.md), [NZ](../../localizations/nz.md), [RU](../../localizations/ru.md), [SE](../../localizations/se.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: "Invoice Posting Buffer")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
