A published statement is a permanent, locked copy of a financial statement. The Publish action computes the statement named in Statement Type Name for the record's company, fiscal year and optional scope (branch, business unit, consolidation group or GST registration) straight from the posted ledger, stores the result as text in Statement Json with a SHA-256 Content Hash, sets Status to Published and stamps Published Date Time. After that the record cannot be edited (except to set Status to Superseded), deleted or published again, and later postings or account reclassifications never change it. Supported types are BalanceSheet, ProfitAndLoss, TrialBalance, RiskReport, Aoc4Filing, Dpt3Return and Adt1AuditorAppointment. The AOC-4 pack needs a published Balance Sheet and Profit and Loss for the same company and year; the DPT-3 return needs a published Balance Sheet. No seeded app lists the entity, so an administrator adds it to an app first.
Fields
| Field | Label | Type | Required | What it does |
AsOfPeriodId | As Of Period | Lookup → FiscalPeriod | | Cuts a Balance Sheet, Profit and Loss or Trial Balance off at this period of the fiscal year instead of the whole year. Not on the seeded forms, so it stays empty unless an administrator adds it; empty means the whole year. |
BranchId | Branch | Lookup → Branch | | Optional scope: computes the statement for this branch only. Empty means the whole company. Not used by the AOC-4, DPT-3 or ADT-1 types. Hidden on tenants with a single location. |
BusinessUnitId | Business Unit | Lookup → BusinessUnit | | Optional scope: computes the statement for this business unit only. Empty means no business-unit filter. Not used by the AOC-4, DPT-3 or ADT-1 types. |
ConsolidationGroupId | Consolation Group | Lookup → ConsolidationGroup | | Optional scope, labelled Consolation Group on screen: computes the statement across the member business units of this consolidation group. Publishing fails with Consolidation group has no business units. if the group has no member with a business unit. Not used by the AOC-4, DPT-3 or ADT-1 types. |
ContentHash | Content Hash | Text | | The SHA-256 hash of Statement Json as 64 hexadecimal characters, set by Publish. Hashing the stored Statement Json again and comparing shows whether the stored copy has been altered. |
CreatedById | Created By | Lookup → UserAccount | Yes | |
CreatedDateTime | Created On | DateAndTime | Yes | |
FiscalYearId | Fiscal Year | Lookup → FiscalYear | | The fiscal year the statement covers. Required to publish: if it is empty, Publish does nothing and the record stays a draft. Ignored by the RiskReport type, which uses the company's latest fiscal year. |
GSTRegistrationId | GST Registration | Lookup → GSTRegistration | | Optional scope: computes the statement for this GST registration only. Not used by the AOC-4, DPT-3 or ADT-1 types. |
Id | Id | Guid | Yes | |
Label | Label | Text | | An optional second display name. Not on the seeded create form or record page. |
ModifiedById | Modified By | Lookup → UserAccount | Yes | |
Name | Name | Text, unique | Yes | The record's name, typed by the user; there is no automatic numbering. Required and unique across all Published Statement records, so include the year and statement type, for example FY 2026-27 Balance Sheet (audited). |
OwnerId | Owner | Lookup → UserAccount | Yes | |
PartnerAccountId | Partner Account | Lookup → Account | | The company whose ledger is published. Required to publish: if it is empty, Publish does nothing and the record stays a draft. Hidden on tenants that run a single company. |
PublishedById | Published By | Guid | | Intended to record who published the statement, but Publish does not fill it in, so it stays empty. Shown on the create form as a plain text box; leave it empty. |
PublishedDateTime | Published Date Time | Date | | The moment Publish froze the statement, stamped by the action. Empty on a draft. Shown on the create form but not meant to be typed. |
RecordTypeId | Record Type | Guid, hidden | | |
StatementJson | Statement Json | Text | | The computed statement stored by Publish, as structured text. It is never recalculated, which is what keeps it unchanged after later postings or reclassification. For the ADT-1 type it holds the computed notice, including the answers that were typed for it. No screen renders it as a formatted statement. |
StatementTypeName | Statement Type Name | Text | | Which statement Publish computes. Free text that must be exactly one of BalanceSheet, ProfitAndLoss, TrialBalance, RiskReport, Aoc4Filing, Dpt3Return or Adt1AuditorAppointment (case and spacing matter). Any other value, including an empty one, is refused when publishing with a message listing the supported codes. RiskReport always covers the company's latest fiscal year by start date, whatever Fiscal Year says. Aoc4Filing, Dpt3Return and Adt1AuditorAppointment always cover the whole company and ignore the scope fields. |
Status | Status | Text | | Draft, Published or Superseded. Publish sets Published. A Published record refuses every change except setting Status to Superseded, and refuses deletion. A Superseded record is unlocked and no longer counts as published for the AOC-4 and DPT-3 checks. Typing Published by hand skips the computation and locks an empty record, so always use Publish. |
UIProps | UI Props | Text | | |
UpdatedDateTime | Updated On | DateAndTime | Yes | |
Actions
| Action | Label | Type | What it does |
BulkDelete | Delete | Delete | Delete the selected records. |
Clone | Clone | ServerAction (Clone) | Create a copy of this record |
Delete | Delete | Delete | Delete |
DeleteInList | Delete | Delete | Delete in a list page |
Edit | Edit | Edit | Edit |
EditListRow | Edit | Edit | EditListRow |
New | New | New | New |
PublishStatement | Publish | ServerAction (PublishStatement) | Computes the statement named in Statement Type Name from the posted ledger for the record's company, fiscal year and scope, stores it in Statement Json with a SHA-256 Content Hash, sets Status to Published and stamps Published Date Time. Does nothing if the company or fiscal year is empty. Refuses unsupported types, refuses Aoc4Filing until both a Balance Sheet and a Profit and Loss for the same company and year are published, and refuses Dpt3Return until the Balance Sheet is published. Running it again on a published record is refused, because a published statement is immutable. |