---
title: "Codeunit 826 Purch. Post Invoice Events"
author: "Jonas Paprotka"
url: https://jonas-paprotka.de/ref/codeunit/826-purch-post-invoice-events/
type: codeunit
id: 826
name: "Purch. Post Invoice Events"
app: "Base Application"
namespace: Microsoft.Purchases.Posting
versions: "20-28"
build: 28.5.54151.54365
source: "https://jonas-paprotka.de/ref/codeunit/826-purch-post-invoice-events/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 826 Purch. Post Invoice Events

Jonas Paprotka, https://jonas-paprotka.de/ref/codeunit/826-purch-post-invoice-events/

| | |
| --- | --- |
| App | Base Application |
| Namespace | Microsoft.Purchases.Posting |
| Versions | 20-28 |
| Source file | Purchases/Posting/PurchPostInvoiceEvents.Codeunit.al |

## Procedures

| Name | Parameters | Returns | Access | Versions | Obsolete | Reason |
| --- | --- | --- | --- | --- | --- | --- |
| RunOnAfterCalcInvoiceDiscountPosting | (Record Purchase Header, Record Purchase Line, Record Purchase Line, var Record Invoice Posting Buffer) | - | public | 20-28 | - | - |
| RunOnAfterCalcLineDiscountPosting | (Record Purchase Header, Record Purchase Line, Record Purchase Line, var Record Invoice Posting Buffer) | - | public | 20-28 | - | - |
| RunOnAfterCreatePostedDeferralSchedule | (Record Purchase Line, var Record Posted Deferral Header) | - | public | 20-28 | - | - |
| RunOnAfterGetPurchAccount | (Record Purchase Line, Record General Posting Setup, var Code[20]) | - | public | 20-28 | - | - |
| RunOnAfterInitTotalAmounts | (Record Purchase Line, Record Purchase Line, var Decimal, var Decimal, var Decimal, var Decimal, var Decimal, var Decimal) | - | public | 20-28 | - | - |
| RunOnAfterPrepareGenJnlLine | (var Record Gen. Journal Line, Record Purchase Header, Record Invoice Posting Buffer) | - | public | 20-28 | - | - |
| RunOnAfterSetApplyToDocNo | (var Record Gen. Journal Line, Record Purchase Header) | - | public | 20-28 | - | - |
| RunOnAfterSetJobLineFilters | (var Record Purchase Line, Record Invoice Posting Buffer) | - | public | 20-28 | - | - |
| RunOnBeforeCalcInvoiceDiscountPosting | (Record Purchase Header, Record Purchase Line, Record Purchase Line, var Record Invoice Posting Buffer, var Boolean) | - | public | 20-28 | - | - |
| RunOnBeforeCalcLineDiscountPosting | (Record Purchase Header, Record Purchase Line, Record Purchase Line, var Record Invoice Posting Buffer, var Boolean) | - | public | 20-28 | - | - |
| RunOnBeforeInitGenJnlLine | (var Record Gen. Journal Line, Record Purchase Header, Record Invoice Posting Buffer, var Boolean) | - | public | 20-28 | - | - |
| RunOnBeforeInitGenJnlLineAmountFieldsFromTotalLines | (var Record Gen. Journal Line, var Record Purchase Header, var Record Purchase Line, var Record Purchase Line, var Boolean) | - | public | 20-28 | - | - |
| RunOnBeforeSetAmountsForBalancingEntry | (var Record Vendor Ledger Entry, var Record Gen. Journal Line, var Record Purchase Line, var Record Purchase Line, var Boolean) | - | public | 20-28 | - | - |
| RunOnBeforePostLines | (Record Purchase Header, var Record Invoice Posting Buffer) | - | public | 20-28 | - | - |
| RunOnBeforePostLedgerEntry | (var Record Purchase Header, var Record Purchase Line, var Record Purchase Line, Boolean, Boolean, Record Invoice Posting Parameters, var Codeunit Gen. Jnl.-Post Line, var Boolean) | - | public | 20-28 | - | - |
| RunOnBeforePrepareLine | (Record Purchase Header, Record Purchase Line, Record Purchase Line, var Boolean) | - | public | 20-28 | - | - |
| RunOnBeforeTempDeferralLineInsert | (var Record Deferral Line, Record Deferral Line, Record Purchase Line, var Integer, var Integer) | - | public | 20-28 | - | - |
| RunOnBeforePrepareLineFADiscount | (var Record Invoice Posting Buffer, Record General Posting Setup, var Boolean) | - | public | 20-28 | Pending 27.0 | Use the procedure with AccountNo parameter instead. |
| RunOnBeforeCalculateVATAmounts | (Record Purchase Header, var Record Invoice Posting Buffer, var Boolean) | - | public | 20-28 | - | - |
| RunOnCalculateVATAmountsOnAfterGetReverseChargeVATPostingSetup | (var Record VAT Posting Setup) | - | public | 20-28 | Pending 26.0 | Replaced by procedure that also receives PurchHeader and TempInvoicePostingBuffer |
| RunOnPostBalancingEntryOnBeforeFindVendLedgEntry | (Record Purchase Header, Record Purchase Line, Record Invoice Posting Parameters, var Record Vendor Ledger Entry, var Boolean, var Boolean) | - | public | 20-28 | - | - |
| RunOnPostBalancingEntryOnAfterGenJnlPostLine | (var Record Gen. Journal Line, var Record Purchase Header, var Record Purchase Line, var Record Purchase Line, Boolean, Boolean, var Codeunit Gen. Jnl.-Post Line) | - | public | 20-28 | - | - |
| RunOnPostBalancingEntryOnBeforeGenJnlPostLine | (var Record Gen. Journal Line, var Record Purchase Header, var Record Purchase Line, var Record Purchase Line, Boolean, Boolean, var Codeunit Gen. Jnl.-Post Line) | - | public | 20-28 | - | - |
| RunOnPostBalancingEntryOnAfterFindVendLedgEntry | (var Record Vendor Ledger Entry) | - | public | 20-28 | - | - |
| RunOnPostLedgerEntryOnAfterGenJnlPostLine | (var Record Gen. Journal Line, var Record Purchase Header, var Record Purchase Line, var Record Purchase Line, Boolean, Boolean, var Codeunit Gen. Jnl.-Post Line) | - | public | 20-28 | - | - |
| RunOnPostLedgerEntryOnBeforeGenJnlPostLine | (var Record Gen. Journal Line, var Record Purchase Header, var Record Purchase Line, var Record Purchase Line, Boolean, Boolean, var Codeunit Gen. Jnl.-Post Line) | - | public | 20-28 | - | - |
| RunOnPrepareLineOnAfterAssignAmounts | (Record Purchase Line, Record Purchase Line, var Decimal, var Decimal) | - | public | 20-28 | - | - |
| RunOnPrepareLineOnAfterSetAmounts | (var Record Invoice Posting Buffer, Record Purchase Line) | - | public | 20-28 | - | - |
| RunOnPrepareLineOnAfterFillInvoicePostingBuffer | (var Record Invoice Posting Buffer, Record Purchase Line) | - | public | 20-28 | Pending 26.0 | Replaced by procedure RunOnPrepareLineOnAfterFillInvoicePostingBuffer(var InvoicePostingBuffer: Record "Invoice Posting Buffer"; PurchLine: Record "Purchase Line"; var TempInvoicePostingBuffer: Record "Invoice Posting Buffer" temporary; var FALineNo: Integer; var InvDefLineNo: Integer; var DeferralLineNo: Integer; var IsHandled: Boolean) |
| RunOnPrepareLineOnBeforeAdjustTotalAmounts | (Record Purchase Line, var Decimal, var Decimal, Date) | - | public | 20-28 | - | - |
| RunOnPrepareLineOnBeforeSetAccount | (Record Purchase Header, Record Purchase Line, var Code[20]) | - | public | 20-28 | - | - |
| RunOnPrepareLineOnBeforeSetAmounts | (Record Purchase Line, Record Purchase Line, var Record Invoice Posting Buffer, var Decimal, var Decimal, var Decimal, var Decimal, var Decimal, var Decimal, var Boolean) | - | public | 20-28 | - | - |
| RunOnPrepareLineOnAfterSetInvoiceDiscAccount | (Record Purchase Line, Record General Posting Setup, var Record Invoice Posting Buffer, var Record Invoice Posting Buffer) | - | public | 20-28 | - | - |
| RunOnPrepareLineOnAfterSetLineDiscAccount | (Record Purchase Line, Record General Posting Setup, var Record Invoice Posting Buffer, var Record Invoice Posting Buffer) | - | public | 20-28 | - | - |
| RunOnPrepareLineOnBeforeCalcInvoiceDiscountPosting | (var Record Invoice Posting Buffer, var Record Invoice Posting Buffer, Record Purchase Header, Record Purchase Line, Decimal, Decimal, Decimal, Decimal, var Boolean) | - | public | 20-28 | - | - |
| RunOnPrepareLineOnBeforeCalcLineDiscountPosting | (var Record Invoice Posting Buffer, var Record Invoice Posting Buffer, Record Purchase Header, Record Purchase Line, Decimal, Decimal, Decimal, Decimal, var Boolean) | - | public | 20-28 | - | - |
| RunOnPostLinesOnAfterGenJnlLinePost | (var Record Gen. Journal Line, Record Purchase Header, Record Invoice Posting Buffer, var Codeunit Gen. Jnl.-Post Line, Boolean, Boolean, Integer) | - | public | 20-28 | - | - |
| RunOnPostLinesOnBeforeGenJnlLinePost | (var Record Gen. Journal Line, Record Purchase Header, Record Invoice Posting Buffer, var Codeunit Gen. Jnl.-Post Line, Boolean, Boolean) | - | public | 20-28 | - | - |
| RunOnPrepareGenJnlLineOnAfterCopyToGenJnlLine | (var Record Gen. Journal Line, Record Purchase Header, Record Invoice Posting Buffer) | - | public | 20-28 | - | - |
| RunOnPrepareLineOnAfterSetInvoiceDiscountPosting | (Record Purchase Header, Record Purchase Line, var Boolean) | - | public | 20-28 | - | - |
| RunOnPrepareLineOnAfterSetLineDiscountPosting | (Record Purchase Header, Record Purchase Line, var Boolean) | - | public | 20-28 | - | - |
| RunOnPrepareLineOnAfterPrepareDeferralLine | (Record Purchase Line, Record Invoice Posting Buffer, Date, Integer, Integer, Boolean) | - | public | 20-28 | - | - |
| RunOnPrepareLineOnAfterUpdateInvoicePostingBuffer | (Record Purchase Header, Record Purchase Line, Record Invoice Posting Buffer, var Record Invoice Posting Buffer) | - | public | 20-28 | - | - |
| RunOnPrepareLineOnBeforePrepareDeferralLine | (Record Purchase Line, Record Invoice Posting Buffer, Date, Integer, Integer, Boolean) | - | public | 20-28 | - | - |
| RunOnPrepareLineOnBeforePreparePurchase | (Record Purchase Header, Record Purchase Line) | - | public | 20-23 | Pending 21.0 | Replaced by RunOnPrepareLineOnBeforePreparePurchase() with extended parameters |
| RunOnPrepareLineOnBeforePreparePurchase | (Record Purchase Header, Record Purchase Line, var Record General Posting Setup) | - | public | 20-28 | - | - |
| RunOnPrepareLineOnBeforeSetInvoiceDiscAccount | (Record Purchase Line, Record General Posting Setup, var Code[20], var Boolean) | - | public | 20-28 | - | - |
| RunOnPrepareLineOnBeforeSetLineDiscAccount | (Record Purchase Line, Record General Posting Setup, var Code[20], var Boolean) | - | public | 20-28 | - | - |
| RunOnPrepareDeferralLineOnBeforePrepareInitialAmounts | (var Record Deferral Posting Buffer, Record Purchase Header, Record Purchase Line, Decimal, Decimal, Decimal, Decimal, Code[20], Code[20]) | - | public | 20-28 | - | - |
| RunOnPrepareDeferralLineOnAfterInitFromDeferralLine | (var Record Deferral Posting Buffer, Record Deferral Line, Record Purchase Line, Record Deferral Template) | - | public | 20-28 | - | - |
| RunOnCalcDeferralAmountsOnBeforeTempDeferralHeaderInsert | (var Record Deferral Header, Record Deferral Header, Record Purchase Line) | - | public | 20-28 | - | - |
| RunOnBeforeCreatePostedDeferralSchedule | (Record Purchase Line, var Boolean) | - | public | 21-28 | - | - |
| RunOnCalculateVATAmountsOnReverseChargeVATOnBeforeModify | (Record Purchase Header, Record Currency, Record VAT Posting Setup, var Record Invoice Posting Buffer) | - | public | 21-28 | - | - |
| RunOnBeforeRunGenJnlPostLine | (var Record Gen. Journal Line, var Codeunit Gen. Jnl.-Post Line) | - | public | 21-28 | - | - |
| RunOnPostBalancingEntryOnAfterInitNewLine | (var Record Gen. Journal Line, var Record Purchase Header) | - | public | 22-28 | - | - |
| RunOnBeforeCheckItemQuantityPurchCredit | (var Record Purchase Header, var Record Purchase Line, var Boolean) | - | public | 22-28 | - | - |
| RunOnCalculateVATAmountInBufferOnBeforeTempInvoicePostingBufferAssign | (var Decimal, var Decimal, var Record Invoice Posting Buffer) | - | public | 23-28 | - | - |
| RunOnCalculateVATAmountsOnAfterGetReverseChargeVATPostingSetup | (var Record VAT Posting Setup, Record Purchase Header) | - | public | 25-28 | Pending 26.0 | Replaced by procedure that also receives TempInvoicePostingBuffer |
| RunOnCalculateVATAmountsOnAfterGetReverseChargeVATPostingSetup | (var Record VAT Posting Setup, Record Purchase Header, var Record Invoice Posting Buffer) | - | public | 25-28 | - | - |
| RunOnPrepareLineOnAfterFillInvoicePostingBuffer | (var Record Invoice Posting Buffer, Record Purchase Line, var Record Invoice Posting Buffer, var Integer, var Integer, var Integer, var Boolean) | - | public | 25-28 | - | - |
| RunOnAfterPrepareInvoicePostingBuffer | (var Record Purchase Line, var Record Invoice Posting Buffer) | - | public | 25-28 | - | - |
| RunOnBeforePrepareInvoicePostingBuffer | (var Record Purchase Line, var Record Invoice Posting Buffer) | - | public | 25-28 | - | - |
| RunOnCalculateVATAmountsOnAfterVatCalculationType | (var Record Invoice Posting Buffer, var Record Purchase Header, Record VAT Posting Setup) | - | public | 25-28 | - | - |
| RunOnBeforePrepareDeferralLine | (var Record Deferral Header, var Record Deferral Line, var Record Purchase Header, var Record Purchase Line, Decimal, Decimal, Decimal, Decimal, Code[20], Code[20], Code[20], Integer, var Boolean) | - | public | 25-28 | - | - |
| RunOnBeforeGetAmountsForDeferral | (Record Purchase Line, var Decimal, var Decimal, var Code[20], var Boolean) | - | public | 26-28 | - | - |
| RunOnBeforePrepareLineFADiscount | (var Record Invoice Posting Buffer, Record General Posting Setup, Code[20], var Boolean) | - | public | 27-28 | - | - |
| RunOnCalcSplitFA | (Record Gen. Journal Line, Integer, var Boolean) | - | public | 27-28 | - | - |
| RunOnAfterInitGenJnlLineAmountFieldsFromTotalLines | (var Record Gen. Journal Line, var Record Purchase Header, var Record Purchase Line, var Record Purchase Line) | - | public | 28 | - | - |

## Events

| Kind | Name | Parameters | Versions | Obsolete | Reason |
| --- | --- | --- | --- | --- | --- |
| Integration event | OnAfterCalcInvoiceDiscountPosting | (Record Purchase Header, Record Purchase Line, Record Purchase Line, var Record Invoice Posting Buffer) | 20-28 | - | - |
| Integration event | OnAfterCalcLineDiscountPosting | (Record Purchase Header, Record Purchase Line, Record Purchase Line, var Record Invoice Posting Buffer) | 20-28 | - | - |
| Integration event | OnAfterCreatePostedDeferralSchedule | (var Record Purchase Line, var Record Posted Deferral Header) | 20-28 | - | - |
| Integration event | OnAfterGetPurchAccount | (Record Purchase Line, Record General Posting Setup, var Code[20]) | 20-28 | - | - |
| Integration event | OnAfterInitTotalAmounts | (Record Purchase Line, Record Purchase Line, var Decimal, var Decimal, var Decimal, var Decimal, var Decimal, var Decimal) | 20-28 | - | - |
| Integration event | OnAfterPrepareGenJnlLine | (var Record Gen. Journal Line, Record Purchase Header, Record Invoice Posting Buffer) | 20-28 | - | - |
| Integration event | OnAfterSetApplyToDocNo | (var Record Gen. Journal Line, Record Purchase Header) | 20-28 | - | - |
| Integration event | OnAfterSetJobLineFilters | (var Record Purchase Line, Record Invoice Posting Buffer) | 20-28 | - | - |
| Integration event | OnBeforeCalcInvoiceDiscountPosting | (Record Purchase Header, Record Purchase Line, Record Purchase Line, var Record Invoice Posting Buffer, var Boolean) | 20-28 | - | - |
| Integration event | OnBeforeCalcLineDiscountPosting | (Record Purchase Header, Record Purchase Line, Record Purchase Line, var Record Invoice Posting Buffer, var Boolean) | 20-28 | - | - |
| Integration event | OnBeforeInitGenJnlLine | (var Record Gen. Journal Line, Record Purchase Header, Record Invoice Posting Buffer, var Boolean) | 20-28 | - | - |
| Integration event | OnBeforeInitGenJnlLineAmountFieldsFromTotalLines | (var Record Gen. Journal Line, var Record Purchase Header, var Record Purchase Line, var Record Purchase Line, var Boolean) | 20-28 | - | - |
| Integration event | OnBeforeSetAmountsForBalancingEntry | (var Record Vendor Ledger Entry, var Record Gen. Journal Line, var Record Purchase Line, var Record Purchase Line, var Boolean) | 20-28 | - | - |
| Integration event | OnBeforePostLines | (Record Purchase Header, var Record Invoice Posting Buffer) | 20-28 | - | - |
| Integration event | OnBeforePostLedgerEntry | (var Record Purchase Header, var Record Purchase Line, var Record Purchase Line, Boolean, Boolean, Record Invoice Posting Parameters, var Codeunit Gen. Jnl.-Post Line, var Boolean) | 20-28 | - | - |
| Integration event | OnBeforePrepareLine | (Record Purchase Header, Record Purchase Line, Record Purchase Line, var Boolean) | 20-28 | - | - |
| Integration event | OnBeforeTempDeferralLineInsert | (var Record Deferral Line, Record Deferral Line, Record Purchase Line, var Integer, var Integer) | 20-28 | - | - |
| Integration event | OnBeforePrepareLineFADiscount | (var Record Invoice Posting Buffer, Record General Posting Setup, var Boolean) | 20-26 | - | - |
| Integration event | OnBeforeCalculateVATAmounts | (Record Purchase Header, var Record Invoice Posting Buffer, var Boolean) | 20-28 | - | - |
| Integration event | OnCalculateVATAmountsOnAfterGetReverseChargeVATPostingSetup | (var Record VAT Posting Setup) | 20-24 | - | - |
| Integration event | OnPostBalancingEntryOnBeforeFindVendLedgEntry | (Record Purchase Header, Record Purchase Line, Record Invoice Posting Parameters, var Record Vendor Ledger Entry, var Boolean, var Boolean) | 20-28 | - | - |
| Integration event | OnPostBalancingEntryOnAfterGenJnlPostLine | (var Record Gen. Journal Line, var Record Purchase Header, var Record Purchase Line, var Record Purchase Line, Boolean, Boolean, var Codeunit Gen. Jnl.-Post Line) | 20-28 | - | - |
| Integration event | OnPostBalancingEntryOnBeforeGenJnlPostLine | (var Record Gen. Journal Line, var Record Purchase Header, var Record Purchase Line, var Record Purchase Line, Boolean, Boolean, var Codeunit Gen. Jnl.-Post Line) | 20-28 | - | - |
| Integration event | OnPostBalancingEntryOnAfterFindVendLedgEntry | (var Record Vendor Ledger Entry) | 20-28 | - | - |
| Integration event | OnPostLedgerEntryOnAfterGenJnlPostLine | (var Record Gen. Journal Line, var Record Purchase Header, var Record Purchase Line, var Record Purchase Line, Boolean, Boolean, var Codeunit Gen. Jnl.-Post Line) | 20-28 | - | - |
| Integration event | OnPostLedgerEntryOnBeforeGenJnlPostLine | (var Record Gen. Journal Line, var Record Purchase Header, var Record Purchase Line, var Record Purchase Line, Boolean, Boolean, var Codeunit Gen. Jnl.-Post Line) | 20-28 | - | - |
| Integration event | OnPrepareLineOnAfterAssignAmounts | (Record Purchase Line, Record Purchase Line, var Decimal, var Decimal) | 20-28 | - | - |
| Integration event | OnPrepareLineOnAfterSetAmounts | (var Record Invoice Posting Buffer, Record Purchase Line) | 20-28 | - | - |
| Integration event | OnPrepareLineOnAfterFillInvoicePostingBuffer | (var Record Invoice Posting Buffer, Record Purchase Line) | 20-24 | - | - |
| Integration event | OnPrepareLineOnBeforeAdjustTotalAmounts | (Record Purchase Line, var Decimal, var Decimal, Date) | 20-28 | - | - |
| Integration event | OnPrepareLineOnBeforeSetAccount | (Record Purchase Header, Record Purchase Line, var Code[20]) | 20-28 | - | - |
| Integration event | OnPrepareLineOnBeforeSetAmounts | (Record Purchase Line, Record Purchase Line, var Record Invoice Posting Buffer, var Decimal, var Decimal, var Decimal, var Decimal, var Decimal, var Decimal, var Boolean) | 20-28 | - | - |
| Integration event | OnPrepareLineOnAfterSetInvoiceDiscAccount | (Record Purchase Line, Record General Posting Setup, var Record Invoice Posting Buffer, var Record Invoice Posting Buffer) | 20-28 | - | - |
| Integration event | OnPrepareLineOnAfterSetLineDiscAccount | (Record Purchase Line, Record General Posting Setup, var Record Invoice Posting Buffer, var Record Invoice Posting Buffer) | 20-28 | - | - |
| Integration event | OnPrepareLineOnBeforeCalcInvoiceDiscountPosting | (var Record Invoice Posting Buffer, var Record Invoice Posting Buffer, Record Purchase Header, Record Purchase Line, Decimal, Decimal, Decimal, Decimal, var Boolean) | 20-28 | - | - |
| Integration event | OnPrepareLineOnBeforeCalcLineDiscountPosting | (var Record Invoice Posting Buffer, var Record Invoice Posting Buffer, Record Purchase Header, Record Purchase Line, Decimal, Decimal, Decimal, Decimal, var Boolean) | 20-28 | - | - |
| Integration event | OnPostLinesOnAfterGenJnlLinePost | (var Record Gen. Journal Line, Record Purchase Header, Record Invoice Posting Buffer, var Codeunit Gen. Jnl.-Post Line, Boolean, Boolean, Integer) | 20-28 | - | - |
| Integration event | OnPostLinesOnBeforeGenJnlLinePost | (var Record Gen. Journal Line, Record Purchase Header, Record Invoice Posting Buffer, var Codeunit Gen. Jnl.-Post Line, Boolean, Boolean) | 20-28 | - | - |
| Integration event | OnPrepareGenJnlLineOnAfterCopyToGenJnlLine | (var Record Gen. Journal Line, Record Purchase Header, Record Invoice Posting Buffer) | 20-28 | - | - |
| Integration event | OnPrepareLineOnAfterSetInvoiceDiscountPosting | (Record Purchase Header, Record Purchase Line, var Boolean) | 20-28 | - | - |
| Integration event | OnPrepareLineOnAfterSetLineDiscountPosting | (Record Purchase Header, Record Purchase Line, var Boolean) | 20-28 | - | - |
| Integration event | OnPrepareLineOnAfterPrepareDeferralLine | (Record Purchase Line, Record Invoice Posting Buffer, Date, Integer, Integer, Boolean) | 20-28 | - | - |
| Integration event | OnPrepareLineOnAfterUpdateInvoicePostingBuffer | (Record Purchase Header, Record Purchase Line, Record Invoice Posting Buffer, var Record Invoice Posting Buffer) | 20-23 | - | - |
| Integration event | OnPrepareLineOnBeforePrepareDeferralLine | (Record Purchase Line, Record Invoice Posting Buffer, Date, Integer, Integer, Boolean) | 20-28 | - | - |
| Integration event | OnPrepareLineOnBeforePreparePurchase | (Record Purchase Header, Record Purchase Line, var Record General Posting Setup) | 20-28 | - | - |
| Integration event | OnPrepareLineOnBeforeSetInvoiceDiscAccount | (Record Purchase Line, Record General Posting Setup, var Code[20], var Boolean) | 20-28 | - | - |
| Integration event | OnPrepareLineOnBeforeSetLineDiscAccount | (Record Purchase Line, Record General Posting Setup, var Code[20], var Boolean) | 20-28 | - | - |
| Integration event | OnPrepareDeferralLineOnBeforePrepareInitialAmounts | (var Record Deferral Posting Buffer, Record Purchase Header, Record Purchase Line, Decimal, Decimal, Decimal, Decimal, Code[20], Code[20]) | 20-28 | - | - |
| Integration event | OnPrepareDeferralLineOnAfterInitFromDeferralLine | (var Record Deferral Posting Buffer, Record Deferral Line, Record Purchase Line, Record Deferral Template) | 20-28 | - | - |
| Integration event | OnCalcDeferralAmountsOnBeforeTempDeferralHeaderInsert | (var Record Deferral Header, Record Deferral Header, Record Purchase Line) | 20-28 | - | - |
| Integration event | OnBeforeCreatePostedDeferralSchedule | (var Record Purchase Line, var Boolean) | 21-28 | - | - |
| Integration event | OnCalculateVATAmountsOnReverseChargeVATOnBeforeModify | (Record Purchase Header, Record Currency, Record VAT Posting Setup, var Record Invoice Posting Buffer) | 21-28 | - | - |
| Integration event | OnBeforeRunGenJnlPostLine | (var Record Gen. Journal Line, var Codeunit Gen. Jnl.-Post Line) | 21-28 | - | - |
| Integration event | OnPostBalancingEntryOnAfterInitNewLine | (var Record Gen. Journal Line, var Record Purchase Header) | 22-28 | - | - |
| Integration event | OnBeforeCheckItemQuantityPurchCredit | (var Record Purchase Header, var Record Purchase Line, var Boolean) | 22-28 | - | - |
| Integration event | OnCalculateVATAmountInBufferOnBeforeTempInvoicePostingBufferAssign | (var Decimal, var Decimal, var Record Invoice Posting Buffer) | 23-28 | - | - |
| Integration event | OnPrepareLineOnAfterUpdateInvoicePostingBuffer | (Record Purchase Header, Record Purchase Line, var Record Invoice Posting Buffer, var Record Invoice Posting Buffer) | 24-28 | - | - |
| Integration event | OnCalculateVATAmountsOnAfterGetReverseChargeVATPostingSetup | (var Record VAT Posting Setup, Record Purchase Header, var Record Invoice Posting Buffer) | 25-28 | - | - |
| Integration event | OnPrepareLineOnAfterFillInvoicePostingBuffer | (var Record Invoice Posting Buffer, Record Purchase Line, var Record Invoice Posting Buffer, var Integer, var Integer, var Integer, var Boolean) | 25-28 | - | - |
| Integration event | OnAfterPrepareInvoicePostingBuffer | (var Record Purchase Line, var Record Invoice Posting Buffer) | 25-28 | - | - |
| Integration event | OnBeforePrepareInvoicePostingBuffer | (var Record Purchase Line, var Record Invoice Posting Buffer) | 25-28 | - | - |
| Integration event | OnCalculateVATAmountsOnAfterVatCalculationType | (var Record Invoice Posting Buffer, var Record Purchase Header, Record VAT Posting Setup) | 25-28 | - | - |
| Integration event | OnBeforePrepareDeferralLine | (var Record Deferral Header, var Record Deferral Line, var Record Purchase Header, var Record Purchase Line, Decimal, Decimal, Decimal, Decimal, Code[20], Code[20], Code[20], Integer, var Boolean) | 25-28 | - | - |
| Integration event | OnBeforeGetAmountsForDeferral | (Record Purchase Line, var Decimal, var Decimal, var Code[20], var Boolean) | 26-28 | - | - |
| Integration event | OnBeforePrepareLineFADiscount | (var Record Invoice Posting Buffer, Record General Posting Setup, Code[20], var Boolean) | 27-28 | - | - |
| Integration event | OnCalcSplitFA | (Record Gen. Journal Line, Integer, var Boolean) | 27-28 | - | - |
| Integration event | OnAfterInitGenJnlLineAmountFieldsFromTotalLines | (var Record Gen. Journal Line, var Record Purchase Header, var Record Purchase Line, var Record Purchase Line) | 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.
