---
title: "Codeunit 1720 Deferral Utilities"
author: "Jonas Paprotka"
url: https://jonas-paprotka.de/ref/codeunit/1720-deferral-utilities/
type: codeunit
id: 1720
name: "Deferral Utilities"
app: "Base Application"
namespace: Microsoft.Finance.Deferral
versions: "17-28"
build: 28.5.54151.54365
source: "https://jonas-paprotka.de/ref/codeunit/1720-deferral-utilities/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 1720 Deferral Utilities

Jonas Paprotka, https://jonas-paprotka.de/ref/codeunit/1720-deferral-utilities/

| | |
| --- | --- |
| App | Base Application |
| Namespace | Microsoft.Finance.Deferral |
| Versions | 17-28 |
| Source file | Finance/Deferral/DeferralUtilities.Codeunit.al |

## Procedures

| Name | Parameters | Returns | Access | Versions | Obsolete | Reason |
| --- | --- | --- | --- | --- | --- | --- |
| CreateRecurringDescription | (Date, Text[100]) | Text[100] | public | 17-28 | - | - |
| CreateDeferralSchedule | (Code[10], Integer, Code[10], Code[10], Integer, Code[20], Integer, Decimal, Enum Deferral Calculation Method, Date, Integer, Boolean, Text[100], Boolean, Code[10]) | - | public | 17-28 | - | - |
| CalcDeferralNoOfPeriods | (Enum Deferral Calculation Method, Integer, Date) | Integer | public | 17-28 | - | - |
| FilterDeferralLines | (var Record Deferral Line, Option, Code[10], Code[10], Integer, Code[20], Integer) | - | public | 17-28 | - | - |
| SetDeferralRecords | (var Record Deferral Header, Integer, Code[10], Code[10], Integer, Code[20], Integer, Enum Deferral Calculation Method, Integer, Decimal, Date, Code[10], Text[100], Decimal, Boolean, Code[10]) | - | public | 17-28 | - | - |
| RemoveOrSetDeferralSchedule | (Code[10], Integer, Code[10], Code[10], Integer, Code[20], Integer, Decimal, Date, Text[100], Code[10], Boolean) | - | public | 17-28 | - | - |
| CreateScheduleFromGL | (Record Gen. Journal Line, Integer) | - | public | 17-28 | - | - |
| DeferralCodeOnValidate | (Code[10], Integer, Code[10], Code[10], Integer, Code[20], Integer, Decimal, Date, Text[100], Code[10]) | - | public | 17-28 | - | - |
| DeferralCodeOnDelete | (Integer, Code[10], Code[10], Integer, Code[20], Integer) | - | public | 17-28 | - | - |
| OpenLineScheduleEdit | (Code[10], Integer, Code[10], Code[10], Integer, Code[20], Integer, Decimal, Date, Text[100], Code[10]) | Boolean | public | 17-28 | - | - |
| OpenLineScheduleView | (Code[10], Integer, Code[10], Code[10], Integer, Code[20], Integer) | - | public | 17-28 | - | - |
| OpenLineScheduleArchive | (Code[10], Integer, Integer, Code[20], Integer, Integer, Integer) | - | public | 17-28 | - | - |
| RoundDeferralAmount | (var Record Deferral Header, Code[10], Decimal, Date, var Decimal, var Decimal) | - | public | 17-28 | - | - |
| GetSalesDeferralDocType | () | Integer | public | 17-19 | Pending 17.0 | Replace by enum "Deferral Document Type value." |
| GetPurchDeferralDocType | () | Integer | public | 17-19 | Pending 17.0 | Replace by enum "Deferral Document Type value." |
| GetGLDeferralDocType | () | Integer | public | 17-19 | Pending 17.0 | Replace by enum "Deferral Document Type value." |
| GetDeferralStartDate | (Integer, Integer, Code[20], Integer, Code[10], Date) | Date | public | 17-28 | - | - |
| AdjustTotalAmountForDeferrals | (Code[10], var Decimal, var Decimal, var Decimal, var Decimal, var Decimal, var Decimal) | - | public | 17-28 | - | - |
| AdjustTotalAmountForDeferralsNoBase | (Code[10], var Decimal, var Decimal, var Decimal, var Decimal) | - | public | 17-28 | - | - |
| InitializeDeferralHeaderAndSetPostDate | (var Record Deferral Line, Record Deferral Header, Integer, var Date) | - | public | 18-28 | - | - |
| IsDateNotAllowed | (Date) | Boolean | public | 20-28 | - | - |
| AdjustTotalAmountForDeferrals | (Code[10], var Decimal, var Decimal, var Decimal, var Decimal, var Decimal, var Decimal, Decimal, Decimal) | - | public | 24-28 | - | - |
| AdjustTotalAmountForDeferralsNoBase | (Code[10], var Decimal, var Decimal, var Decimal, var Decimal, Decimal, Decimal) | - | public | 24-28 | - | - |
| CheckDeferralConditionForGenJournal | (var Record Gen. Journal Line) | - | public | 24-28 | - | - |
| ShowGenJournalTemplate | (ErrorInfo) | - | public | 24-28 | - | - |
| ShowSourceCodeSetup | (ErrorInfo) | - | public | 24-28 | - | - |
| CreateCopyOfDeferralSchedule | (Record Deferral Header, Integer) | - | public | 25-28 | - | - |

## Events

| Kind | Name | Parameters | Versions | Obsolete | Reason |
| --- | --- | --- | --- | --- | --- |
| Integration event | OnAfterCalculateDaysPerPeriod | (Record Deferral Header, var Record Deferral Line, Record Deferral Template) | 17-28 | - | - |
| Integration event | OnAfterCalculateEqualPerPeriod | (Record Deferral Header, var Record Deferral Line, Record Deferral Template) | 17-28 | - | - |
| Integration event | OnAfterCalculateStraightline | (Record Deferral Header, var Record Deferral Line, Record Deferral Template) | 17-28 | - | - |
| Integration event | OnAfterCalculateUserDefined | (Record Deferral Header, var Record Deferral Line, Record Deferral Template) | 17-28 | - | - |
| Integration event | OnAfterCreateDeferralSchedule | (Record Deferral Header, var Record Deferral Line, Record Deferral Template, Enum Deferral Calculation Method) | 17-28 | - | - |
| Integration event | OnAfterCreateScheduleFromGL | (var Record Gen. Journal Line, var Record Posted Deferral Header) | 17-28 | - | - |
| Integration event | OnAfterSetStartDate | (Record Deferral Template, var Date, var Date) | 17-28 | - | - |
| Integration event | OnBeforeCalculateDaysPerPeriod | (Record Deferral Header, var Record Deferral Line, Record Deferral Template) | 17-28 | - | - |
| Integration event | OnBeforeCalculateEqualPerPeriod | (Record Deferral Header, var Record Deferral Line, Record Deferral Template) | 17-28 | - | - |
| Integration event | OnBeforeCalculateStraightline | (Record Deferral Header, var Record Deferral Line, Record Deferral Template) | 17-28 | - | - |
| Integration event | OnBeforeCalculateUserDefined | (Record Deferral Header, var Record Deferral Line, Record Deferral Template) | 17-28 | - | - |
| Integration event | OnBeforeCreateDeferralSchedule | (Code[10], Integer, Code[10], Code[10], Integer, Code[20], Integer, Decimal, Enum Deferral Calculation Method, Date, Integer, Boolean, Text[100], Boolean, Code[10], var Boolean) | 17-21 | - | - |
| Integration event | OnBeforePostedDeferralHeaderInsert | (var Record Posted Deferral Header, Record Gen. Journal Line) | 17-28 | - | - |
| Integration event | OnBeforePostedDeferralLineInsert | (var Record Posted Deferral Line, Record Gen. Journal Line) | 17-28 | - | - |
| Integration event | OnAfterAdjustTotalAmountForDeferrals | (Code[10], var Decimal, var Decimal, var Decimal, var Decimal) | 17-23 | - | - |
| Integration event | OnBeforeCalcDeferralNoOfPeriods | (Enum Deferral Calculation Method, var Integer, Date, var Boolean) | 17-28 | - | - |
| Integration event | OnBeforeCheckPostingDate | (Record Deferral Header, var Record Deferral Line, var Boolean) | 17-28 | - | - |
| Integration event | OnBeforeGetDeferralDescription | (Code[10], Code[20], Text[100], var Text[100], var Boolean) | 17-28 | - | - |
| Integration event | OnCalculateEqualPerPeriodOnBeforeDeferralLineInsert | (Record Deferral Header, var Record Deferral Line) | 17-28 | - | - |
| Integration event | OnCalculateStraightlineOnBeforeDeferralLineInsert | (var Record Deferral Line, Record Deferral Header) | 17-28 | - | - |
| Integration event | OnSetDeferralRecordsOnBeforeDeferralHeaderModify | (var Record Deferral Header) | 17-28 | - | - |
| Integration event | OnCalculateStraightlineOnAfterCalcSecondPeriodDate | (Record Deferral Header, Date, var Date, var Date) | 19-28 | - | - |
| Integration event | OnCalculateStraightlineOnBeforeCalcPeriodicDeferralAmount | (var Record Deferral Header, var Decimal, Decimal, var Boolean) | 19-28 | - | - |
| Integration event | OnCalculateDaysPerPeriodOnAfterCalcEndDate | (var Record Deferral Header, var Record Deferral Line, Record Deferral Template, var Date) | 19-28 | - | - |
| Integration event | OnCalculateDaysPerPeriodOnBeforeDeferralLineInsert | (Record Deferral Header, var Record Deferral Line) | 19-28 | - | - |
| Integration event | OnCalculateUserDefinedOnBeforeDeferralLineInsert | (Record Deferral Header, var Record Deferral Line) | 19-28 | - | - |
| Integration event | OnBeforeUpdateDeferralLineDescription | (var Record Deferral Line, Record Deferral Header, Record Deferral Template, Date, var Boolean) | 19-28 | - | - |
| Integration event | OnBeforeDeferralCodeOnValidate | (Code[10], Integer, Code[10], Code[10], Integer, Code[20], Integer, Decimal, Date, Text[100], Code[10], var Boolean) | 20-28 | - | - |
| Integration event | OnBeforeIsDateNotAllowed | (Date, var Boolean, var Boolean) | 20-28 | - | - |
| Integration event | OnBeforeValidateDeferralTemplate | (Record Deferral Template, var Boolean) | 20-28 | - | - |
| Integration event | OnBeforeCreateDeferralSchedule | (Code[10], Integer, Code[10], Code[10], Integer, Code[20], Integer, Decimal, Enum Deferral Calculation Method, var Date, var Integer, Boolean, Text[100], var Boolean, Code[10], var Boolean) | 22-23 | - | - |
| Integration event | OnInitializeDeferralHeaderAndSetPostDateAfterInitDeferralLine | (var Record Deferral Line) | 22-28 | - | - |
| Integration event | OnOpenLineScheduleEditOnBeforeDeferralScheduleSetParameters | (var Page Deferral Schedule, Integer, Code[10], Code[10], Integer, Code[20], Record Deferral Header, var Boolean) | 22-28 | - | - |
| Integration event | OnBeforeRemoveOrSetDeferralSchedule | (Code[10], Integer, Code[10], Code[10], Integer, Code[20], Integer, Decimal, Date, Text[100], Code[10], Boolean, var Boolean) | 23-28 | - | - |
| Integration event | OnBeforeCreateDeferralSchedule | (Code[10], Integer, Code[10], Code[10], Integer, Code[20], Integer, Decimal, Enum Deferral Calculation Method, var Date, var Integer, Boolean, Text[100], var Boolean, Code[10], var Boolean, var Boolean) | 24-28 | - | - |
| Integration event | OnBeforeOpenLineScheduleEdit | (Code[10], Integer, Code[10], Code[10], Integer, Code[20], Integer, Decimal, Date, Text[100], Code[10]) | 24-28 | - | - |
| Integration event | OnAfterAdjustTotalAmountForDeferrals | (Code[10], var Decimal, var Decimal, var Decimal, var Decimal, Decimal, Decimal) | 24-28 | - | - |
| Integration event | OnBeforeCheckDeferralConditionForGenJournal | (var Record Gen. Journal Line, var Boolean) | 24-28 | - | - |
| Integration event | OnBeforeRoundDeferralAmount | (var Record Deferral Header, Code[10], Decimal, Date, var Boolean) | 26-28 | - | - |
| Integration event | OnCreateDeferralScheduleOnCalcMethodElse | (Enum Deferral Calculation Method, Record Deferral Header, var Record Deferral Line, Record Deferral Template) | 27-28 | - | - |
| Integration event | OnCalculateStraightlineOnAfterCalcPeriodicDeferralAmount | (var Record Deferral Header, var Integer) | 28 | - | - |
| Integration event | OnAfterInitializeDeferralHeaderAndSetPostDate | (var Record Deferral Line, Record Deferral Header, Integer, var Date) | 28 | - | - |
| Integration event | OnBeforeGetPeriodStartingDate | (Date, var Date, var Boolean) | 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.
