Accounts
28 operations in the Tolvi API, version 1. Paths are relative to https://api.tolvi.co.uk. Every amount is integer pence.
List accounts
GET/api/v1/accounts
- Scopes
accounts:read
Every client’s accounts, latest period first. Filter by client or status. Part of the accounts product: the firm must have it and you must have access to it.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
status | query | string | One of: |
clientId | query | string (uuid) |
Responses
200 OK, application/json
Body: object (AccountsSetList).
| Field | Type | Description |
|---|---|---|
itemsrequired | array of AccountsSetSummary | |
items[].idrequired | string (uuid) | |
items[].clientIdrequired | string (uuid) | |
items[].clientNamerequired | string | |
items[].dueDate | string (date) | When they’re due at Companies House (CA 2006 s442, for an LLP as applied by SI 2008/1911). Non-statutory accounts have no such date: this is the self assessment date they work towards. example "2026-03-31" |
items[].periodStartrequired | string (date) | example "2026-03-31" |
items[].periodEndrequired | string (date) | example "2026-03-31" |
items[].frameworkrequired | string (AccountsFramework) | One of: |
items[].entityrequired | string (AccountsEntity) | One of: |
items[].sourcerequired | string (AccountsSource) | One of: |
items[].statusrequired | string (AccountsStatus) | One of: |
items[].approvedOnrequired | string (date)nullable | example "2026-03-31" |
items[].updatedAtrequired | string (date-time) | |
items[].revisionNumber | integer | 0 for the original accounts, 1 for the first revision. |
items[].supersededBySetId | string (uuid)nullable | Set once approved revised accounts have replaced these. |
items[].nextStep | stringnullable | In the list: the first thing stopping approval. Null when nothing is. A linked file isn’t read for the list, so open the set to see whether it has changed. |
items[].blockingProblems | integer | In the list: how many problems stop approval. |
Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 429 Too many requests, as problem details (application/problem+json).
Start accounts
POST/api/v1/accounts
- Scopes
accounts:write- Role
- Preparer or above
- Retries
- Send an
Idempotency-Keyto make retries safe.
Preparers and above. One set per client and period end, for a company, LLP, sole trader or partnership. No engagement is needed.
Needs the Preparer role or above. Part of the accounts product: the firm must have it and you must have access to it.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
Idempotency-Key | header | string | A unique key (1-255 visible characters) to make retries safe. Replayed for 24 hours. 1 to 255 characters |
Request body
Required. application/json: object (CreateAccountsSetRequest).
One set per client and period end. The client’s entity type decides what’s allowed: a company or LLP takes FRS 105, FRS 102 Section 1A or full FRS 102; a sole trader or partnership takes NON_STATUTORY.
| Field | Type | Description |
|---|---|---|
clientIdrequired | string (uuid) | |
periodStartrequired | string (date) | example "2026-03-31" |
periodEndrequired | string (date) | example "2026-03-31" |
priorStart | string (date) | With example "2026-03-31" |
priorEnd | string (date) | example "2026-03-31" |
frameworkrequired | string (AccountsFramework) | One of: |
company | object (AccountsCompany) | Left out: name, number and registered office come from the client record. |
company.namerequired | string | |
company.registeredNumberrequired | string | |
company.registeredOfficerequired | string | |
company.jurisdiction | string (AccountsJurisdiction) | One of: |
company.form | string (AccountsCompanyForm) | One of: |
company.directorsrequired | array of AccountsDirector | |
company.directors[].namerequired | string | |
company.directors[].appointedOn | string (date) | example "2026-03-31" |
company.directors[].resignedOn | string (date) | example "2026-03-31" |
company.directors[].designated | boolean | An LLP’s designated member. |
company.secretary | stringnullable | |
company.principalActivity | string | |
company.beingWoundUp | boolean |
Responses
201 Created, application/json
Body: object (AccountsSet).
A company’s accounts for one period end. Draft until people record the directors’ approval.
| Field | Type | Description |
|---|---|---|
idrequired | string (uuid) | |
clientIdrequired | string (uuid) | |
clientNamerequired | string | |
dueDate | string (date) | When they’re due at Companies House (CA 2006 s442, for an LLP as applied by SI 2008/1911). Non-statutory accounts have no such date: this is the self assessment date they work towards. example "2026-03-31" |
periodStartrequired | string (date) | example "2026-03-31" |
periodEndrequired | string (date) | example "2026-03-31" |
frameworkrequired | string (AccountsFramework) | One of: |
entityrequired | string (AccountsEntity) | One of: |
sourcerequired | string (AccountsSource) | One of: |
statusrequired | string (AccountsStatus) | One of: |
approvedOnrequired | string (date)nullable | example "2026-03-31" |
updatedAtrequired | string (date-time) | |
revisionNumber | integer | 0 for the original accounts, 1 for the first revision. |
supersededBySetId | string (uuid)nullable | Set once approved revised accounts have replaced these. |
nextStep | stringnullable | In the list: the first thing stopping approval. Null when nothing is. A linked file isn’t read for the list, so open the set to see whether it has changed. |
blockingProblems | integer | In the list: how many problems stop approval. |
corporationTaxReturnIdsrequired | array of string | Company Tax Returns these accounts go with. Ids only. |
recordFacts | object (CompanyFacts) | What the client’s record says now, to compare with what these accounts state. |
recordFacts.namerequired | stringnullable | The client’s name on the record. |
recordFacts.companyNumberrequired | stringnullable | Companies House number on the record. |
recordFacts.registeredOfficerequired | stringnullable | |
recordFacts.principalActivityrequired | stringnullable | |
recordFacts.signatoryNamerequired | stringnullable | The record’s, or the only serving director. |
recordFacts.directorsrequired | array of RecordDirector | Contacts whose role says director. |
recordFacts.directors[].namerequired | string | |
recordFacts.directors[].appointedOn | string (date) | example "2026-03-31" |
recordFacts.directors[].resignedOn | string (date) | example "2026-03-31" |
priorStartrequired | string (date)nullable | example "2026-03-31" |
priorEndrequired | string (date)nullable | example "2026-03-31" |
engagementIdrequired | string (uuid)nullable | |
sourceChangedrequired | boolean | The Working Papers file’s figures differ from this set’s. Always false for a direct set. |
sourceStaterequired | object (AccountsSourceState) | Where the figures came from and whether that has moved on. |
sourceState.sourcerequired | string (AccountsSource) | One of: |
sourceState.engagementIdrequired | string (uuid)nullable | |
sourceState.sourceChangedrequired | boolean | The Working Papers file’s figures differ from this set’s. The set’s figures have not moved: refresh to bring them in. |
sourceState.fileApprovedrequired | booleannullable | Whether the file is approved. Null for a direct set. |
sourceState.messagerequired | stringnullable | In plain words, for the screen. |
companyrequired | object (AccountsCompany) | The company, LLP or business as the accounts state it. |
company.namerequired | string | |
company.registeredNumberrequired | string | |
company.registeredOfficerequired | string | |
company.jurisdiction | string (AccountsJurisdiction) | One of: |
company.form | string (AccountsCompanyForm) | One of: |
company.directorsrequired | array of AccountsDirector | |
company.directors[].namerequired | string | |
company.directors[].appointedOn | string (date) | example "2026-03-31" |
company.directors[].resignedOn | string (date) | example "2026-03-31" |
company.directors[].designated | boolean | An LLP’s designated member. |
company.secretary | stringnullable | |
company.principalActivity | string | |
company.beingWoundUp | boolean | |
inputsrequired | object (AccountsInputs) | Facts for the notes and statements. Left out means not answered, so a problem asks for it where it is needed. Null means answered, nothing to disclose: the note drops out and later notes renumber. |
inputs.averageEmployees | object (AccountsEmployees) | Average persons employed (CA 2006 s411). |
inputs.averageEmployees.thisYearrequired | integer | at least 0 |
inputs.averageEmployees.lastYearrequired | integernullable | at least 0 |
inputs.offBalanceSheetArrangements | stringnullable | |
inputs.commitments | object (AccountsCommitments)nullable | |
inputs.commitments.totalrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.commitments.descriptionrequired | string | |
inputs.commitments.pensions | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.commitments.groupUndertakings | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.commitments.participatingInterests | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.commitments.securityGiven | string | |
inputs.directorAdvances | array of AccountsDirectorAdvancenullable | |
inputs.directorAdvances[].directorrequired | string | |
inputs.directorAdvances[].interestRaterequired | string | |
inputs.directorAdvances[].mainConditionsrequired | string | |
inputs.directorAdvances[].openingrequired | integer | Integer pence (GBP). |
inputs.directorAdvances[].advancedrequired | integer | Integer pence (GBP). |
inputs.directorAdvances[].repaidrequired | integer | Integer pence (GBP). |
inputs.directorAdvances[].writtenOffrequired | integer | Integer pence (GBP). |
inputs.directorAdvances[].waivedrequired | integer | Integer pence (GBP). |
inputs.directorAdvances[].closingrequired | integer | Integer pence (GBP). |
inputs.directorGuarantees | array of AccountsDirectorGuaranteenullable | |
inputs.directorGuarantees[].directorrequired | string | |
inputs.directorGuarantees[].mainTermsrequired | string | |
inputs.directorGuarantees[].maximumLiabilityrequired | integer | Integer pence (GBP). |
inputs.directorGuarantees[].amountPaidOrIncurredrequired | integer | Integer pence (GBP). |
inputs.relatedParties | stringnullable | |
inputs.parentUndertaking | object (AccountsParentUndertaking)nullable | |
inputs.parentUndertaking.namerequired | string | |
inputs.parentUndertaking.registeredOfficerequired | string | |
inputs.postBalanceSheetEvents | stringnullable | |
inputs.goingConcern | object (AccountsGoingConcern) | |
inputs.goingConcern.basisrequired | string (AccountsGoingConcernBasis) | One of: |
inputs.goingConcern.disclosure | string | |
inputs.dividends | array of integernullable | [this year, last year], integer pence. 2 to 2 items |
inputs.shareCapital | object (AccountsShareCapital)nullable | |
inputs.shareCapital.descriptionrequired | string | |
inputs.shareCapital.rows | array of AccountsAnalysisRow | |
inputs.shareCapital.rows[].labelrequired | string | |
inputs.shareCapital.rows[].valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.exceptionalItems | array of AccountsExceptionalItemnullable | |
inputs.exceptionalItems[].descriptionrequired | string | |
inputs.exceptionalItems[].valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.transitionExplanation | stringnullable | |
inputs.depreciationPolicy | string | |
inputs.politicalGiving | object (AccountsPoliticalGiving)nullable | |
inputs.politicalGiving.donations | array of AccountsPoliticalDonation | |
inputs.politicalGiving.donations[].recipientrequired | string | |
inputs.politicalGiving.donations[].amountrequired | integer | Integer pence (GBP). |
inputs.politicalGiving.expenditure | integer | Integer pence (GBP). |
inputs.politicalGiving.nonUkContributions | integer | Integer pence (GBP). |
inputs.politicalGiving.whollyOwnedSubsidiaryOfUkCompany | boolean | |
inputs.auditExemption | object (AccountsAuditExemption) | |
inputs.auditExemption.section477Takenrequired | boolean | |
inputs.auditExemption.section476NoticeGivenrequired | boolean | |
inputs.approval | object (AccountsProposedSignatory) | Who is expected to sign. The approval itself is recorded through |
inputs.approval.signatoryName | string | |
inputs.approval.directorsReportSignatoryName | string | |
inputs.exclusions | object (AccountsExclusions) | Facts that take a company out of the regimes (CA 2006 ss384, 384B, 478). |
inputs.exclusions.publicCompany | boolean | |
inputs.exclusions.regulatedBusiness | boolean | |
inputs.exclusions.memberOfIneligibleGroup | boolean | |
inputs.exclusions.investmentOrFinancialHoldingOrCharity | boolean | |
inputs.exclusions.includedInGroupAccounts | boolean | |
inputs.exclusions.parentCompany | boolean | |
inputs.revaluedFixedAssets | boolean | |
inputs.fairValueItems | boolean | |
inputs.deferredTaxInFigures | boolean | |
inputs.expectedFilingDate | string (date) | When the accounts are expected to reach Companies House, for dated warnings. Tolvi does not file them. example "2026-03-31" |
inputs.auditorsReport | object (AccountsAuditorsReport) | Needed where the s477 exemption isn’t taken. |
inputs.auditorsReport.textrequired | string | Word for word. Paragraphs separated by a blank line. |
inputs.auditorsReport.opinionrequired | string (AccountsAuditOpinion) | One of: |
inputs.auditorsReport.auditorNamerequired | string | The auditor’s name, or the firm’s. |
inputs.auditorsReport.seniorStatutoryAuditor | string | Who signs for a firm (s503(3)). |
inputs.auditorsReport.reportDaterequired | string (date) | example "2026-03-31" |
inputs.auditorsReport.addressrequired | string | Where the auditor is established (s495(4)(d)). |
inputs.full | object (AccountsFullFacts) | FRS102_FULL only. |
inputs.full.presentation | object (AccountsFullPresentation) | How the statements are laid out. SI 2008/410 Sch 1 para 1; FRS 102 paras 3.18, 3.22, 5.2. |
inputs.full.presentation.plFormatrequired | string (AccountsPlFormat) | One of: |
inputs.full.presentation.comprehensiveIncomerequired | string (AccountsComprehensiveIncomeLayout) | One of: |
inputs.full.presentation.combinedRetainedEarnings | boolean | |
inputs.full.presentation.wordingrequired | string (AccountsStatementWording) | One of: |
inputs.full.presentation.formatChangeReason | string | |
inputs.full.qualifiedLastYear | string (AccountsCompanySize)nullable | How it qualified last year (CA 2006 s465(2)). Null for a first financial year. One of: |
inputs.full.groupFigures | object (AccountsGroupFigures)nullable | A parent’s size test (CA 2006 ss383, 466). |
inputs.full.groupFigures.basisrequired | string (AccountsGroupBasis) | One of: |
inputs.full.groupFigures.turnoverrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.groupFigures.balanceSheetTotalrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.groupFigures.employeesrequired | array of integer | [this year, last year], whole numbers. 2 to 2 items |
inputs.full.groupAccountsExemption | string | |
inputs.full.strategicReport | object (AccountsStrategicReport)nullable | CA 2006 ss414A to 414D. A person’s words. |
inputs.full.strategicReport.fairReview | string | |
inputs.full.strategicReport.principalRisks | string | |
inputs.full.strategicReport.financialKpis | stringnullable | |
inputs.full.strategicReport.nonFinancialInformation | stringnullable | |
inputs.full.strategicReport.section172Statement | string | |
inputs.full.strategicReport.nonFinancialSustainabilityStatement | stringnullable | |
inputs.full.recommendedDividend | stringnullable | |
inputs.full.movedToStrategicReport | stringnullable | |
inputs.full.energyAndCarbon | stringnullable | |
inputs.full.corporateGovernance | stringnullable | |
inputs.full.paymentPractices | stringnullable | |
inputs.full.earlierDirectorsReportMatters | stringnullable | |
inputs.full.judgements | stringnullable | |
inputs.full.estimationUncertainty | stringnullable | |
inputs.full.furtherPolicies | stringnullable | |
inputs.full.auditorRemuneration | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.employeeCategories | array of AccountsEmployeeCategory | |
inputs.full.employeeCategories[].labelrequired | string | |
inputs.full.employeeCategories[].valuesrequired | array of integer | [this year, last year], whole numbers. 2 to 2 items |
inputs.full.staffCosts | object (AccountsStaffCosts) | CA 2006 s411(5). |
inputs.full.staffCosts.wagesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.staffCosts.socialSecurityrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.staffCosts.pensionrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.directorsRemuneration | object (AccountsDirectorsRemuneration) | SI 2008/410 Sch 5. |
inputs.full.directorsRemuneration.remunerationrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.directorsRemuneration.longTermIncentivesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.directorsRemuneration.pensionContributionsrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.directorsRemuneration.moneyPurchaseDirectorsrequired | array of integer | [this year, last year], whole numbers. 2 to 2 items |
inputs.full.directorsRemuneration.definedBenefitDirectorsrequired | array of integer | [this year, last year], whole numbers. 2 to 2 items |
inputs.full.directorsRemuneration.exercisedOptionsDirectors | array of integer | [this year, last year], whole numbers. 2 to 2 items |
inputs.full.directorsRemuneration.longTermSharesDirectors | array of integer | [this year, last year], whole numbers. 2 to 2 items |
inputs.full.directorsRemuneration.highestPaid | object (AccountsHighestPaidDirector) | SI 2008/410 Sch 5 para 2. |
inputs.full.directorsRemuneration.highestPaid.remunerationrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.directorsRemuneration.highestPaid.pensionContributionsrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.directorsRemuneration.highestPaid.accruedPension | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.directorsRemuneration.highestPaid.accruedLumpSum | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.directorsRemuneration.highestPaid.exercisedOptions | boolean | |
inputs.full.directorsRemuneration.highestPaid.receivedLongTermShares | boolean | |
inputs.full.directorsRemuneration.excessRetirementBenefits | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.directorsRemuneration.lossOfOffice | object (AccountsAmountWithNature) | |
inputs.full.directorsRemuneration.lossOfOffice.valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.directorsRemuneration.lossOfOffice.naturerequired | string | |
inputs.full.directorsRemuneration.thirdParties | object (AccountsAmountWithNature) | |
inputs.full.directorsRemuneration.thirdParties.valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.directorsRemuneration.thirdParties.naturerequired | string | |
inputs.full.keyManagementCompensation | array of integernullable | [this year, last year], integer pence. 2 to 2 items |
inputs.full.taxReconciliation | object (AccountsTaxReconciliation) | FRS 102 para 29.27(b). The rate is in basis points: 25% is 2500. |
inputs.full.taxReconciliation.rateBasisPointsrequired | array of integer | Basis points, [this year, last year]. 2 to 2 items |
inputs.full.taxReconciliation.rateChangeExplanation | stringnullable | |
inputs.full.taxReconciliation.itemsrequired | array of AccountsAnalysisRow | |
inputs.full.taxReconciliation.items[].labelrequired | string | |
inputs.full.taxReconciliation.items[].valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.taxSpecialCircumstances | stringnullable | |
inputs.full.deferredTaxExpectedReversal | stringnullable | |
inputs.full.deferredTaxOther | stringnullable | |
inputs.full.dividendsProposed | array of integernullable | [this year, last year], integer pence. 2 to 2 items |
inputs.full.valuations | stringnullable | |
inputs.full.materialIntangibles | stringnullable | |
inputs.full.researchAndDevelopment | array of integernullable | [this year, last year], integer pence. 2 to 2 items |
inputs.full.capitalCommitments | array of integernullable | [this year, last year], integer pence. 2 to 2 items |
inputs.full.assetsPledged | stringnullable | |
inputs.full.stocksInformation | stringnullable | |
inputs.full.debtorsAfterOneYear | array of integernullable | [this year, last year], integer pence. 2 to 2 items |
inputs.full.longTermDebtTerms | stringnullable | |
inputs.full.financialInstruments | stringnullable | |
inputs.full.shareRights | string | |
inputs.full.landAndBuildings | object (AccountsLandAndBuildings)nullable | SI 2008/410 Sch 1 para 53. |
inputs.full.landAndBuildings.freeholdrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.landAndBuildings.longLeaseholdrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.landAndBuildings.shortLeaseholdrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.listedInvestments | object (AccountsListedInvestments)nullable | SI 2008/410 Sch 1 para 54. |
inputs.full.listedInvestments.carryingrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.listedInvestments.marketValuerequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.leases | object (AccountsLeases)nullable | FRS 102 paras 20.76 to 20.82. |
inputs.full.leases.descriptionrequired | string | |
inputs.full.leases.shortTermExpense | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.leases.lowValueExpense | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.leases.variableExpense | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.leases.interestExpense | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.leases.subleaseIncome | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.leases.totalCashOutflow | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.leases.commitmentsWithinOneYear | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.leases.commitmentsOneToFiveYears | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.leases.commitmentsAfterFiveYears | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.pensions | object (AccountsPensions)nullable | FRS 102 paras 28.40, 28.41. |
inputs.full.pensions.definedContributionExpenserequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.pensions.definedBenefit | string | |
inputs.full.contingencies | stringnullable | |
inputs.full.controllingParty | object (AccountsControllingParty)nullable | FRS 102 para 33.5; SI 2008/410 Sch 4 paras 8, 9. |
inputs.full.controllingParty.immediateParent | string | |
inputs.full.controllingParty.ultimateParent | string | |
inputs.full.controllingParty.ultimateControllingParty | string | |
inputs.full.controllingParty.nextSeniorParent | string | |
inputs.full.controllingParty.largestGroup | string | |
inputs.full.controllingParty.smallestGroup | string | |
inputs.full.relatedUndertakings | array of AccountsRelatedUndertakingnullable | |
inputs.full.relatedUndertakings[].namerequired | string | |
inputs.full.relatedUndertakings[].registeredOfficerequired | string | |
inputs.full.relatedUndertakings[].relationshiprequired | string (AccountsUndertakingRelationship) | One of: |
inputs.full.relatedUndertakings[].shareClassrequired | string | |
inputs.full.relatedUndertakings[].proportionHeldrequired | string | |
inputs.full.relatedUndertakings[].capitalAndReserves | integer | Integer pence (GBP). |
inputs.full.relatedUndertakings[].profitOrLoss | integer | Integer pence (GBP). |
inputs.full.reducedDisclosure | object (AccountsReducedDisclosure)nullable | FRS 102 paras 1.8 to 1.12. |
inputs.full.reducedDisclosure.parentNamerequired | string | |
inputs.full.reducedDisclosure.whereObtainablerequired | string | |
inputs.full.reducedDisclosure.cashFlowExemptrequired | boolean | |
inputs.full.reducedDisclosure.financialInstrumentsExempt | boolean | |
inputs.full.reducedDisclosure.keyManagementExempt | boolean | |
inputs.full.reducedDisclosure.financialInstitution | boolean | |
inputs.full.reducedDisclosure.summary | string | |
inputs.full.sorp | stringnullable | |
inputs.llp | object (AccountsLlpFacts) | An LLP only. |
inputs.llp.remunerationPolicy | string | |
inputs.llp.drawingsPolicy | string | |
inputs.llp.rankingAndRestrictions | string | |
inputs.llp.movements | array of AccountsMembersMovementnullable | |
inputs.llp.movements[].labelrequired | string | |
inputs.llp.movements[].kindrequired | string (AccountsMembersMovementKind) | One of: |
inputs.llp.movements[].componentrequired | string (AccountsMembersInterest) | One of: |
inputs.llp.movements[].valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.llp.debtsDueAfterOneYear | array of integernullable | [this year, last year], integer pence. 2 to 2 items |
inputs.llp.averageMembers | object (AccountsEmployees) | SI 2008/1913 Sch 1 para 66(1), (2). |
inputs.llp.averageMembers.thisYearrequired | integer | at least 0 |
inputs.llp.averageMembers.lastYearrequired | integernullable | at least 0 |
inputs.llp.largestEntitlement | array of integernullable | [this year, last year], integer pence. 2 to 2 items |
inputs.llp.largestEntitlementPolicy | string | |
inputs.nonStatutory | object (AccountsNonStatutoryFacts) | A sole trader or partnership only. |
inputs.nonStatutory.accountantsReport | object (AccountsAccountantsReport)nullable | The firm’s own words, as supplied. Tolvi prints them and has none of its own. |
inputs.nonStatutory.accountantsReport.textrequired | string | |
inputs.nonStatutory.accountantsReport.firmNamerequired | string | |
inputs.nonStatutory.accountantsReport.address | string | |
inputs.nonStatutory.accountantsReport.reportDate | string (date) | example "2026-03-31" |
inputs.nonStatutory.capitalIntroduced | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.nonStatutory.partners | array of AccountsPartner | |
inputs.nonStatutory.partners[].namerequired | string | |
inputs.nonStatutory.partners[].shareWeightrequired | integer | Profit-sharing weight, such as 50, 30, 20. at least 0 |
inputs.nonStatutory.partners[].salary | integer | Integer pence (GBP). |
inputs.nonStatutory.partners[].interestOnCapital | integer | Integer pence (GBP). |
inputs.nonStatutory.partners[].capitalOpeningrequired | integer | Integer pence (GBP). |
inputs.nonStatutory.partners[].capitalIntroduced | integer | Integer pence (GBP). |
inputs.nonStatutory.partners[].capitalWithdrawn | integer | Integer pence (GBP). |
inputs.nonStatutory.partners[].currentOpeningrequired | integer | Integer pence (GBP). |
inputs.nonStatutory.partners[].drawingsrequired | integer | Integer pence (GBP). |
inputs.nonStatutory.qualifyingPartnership | boolean | SI 2008/569. A blocker: that form isn’t built. |
inputs.charity | object (AccountsCharityFacts) | A charity only. |
inputs.charity.form | string (AccountsCharityForm) | One of: |
inputs.charity.jurisdiction | string (AccountsCharityJurisdiction) | One of: |
inputs.charity.alsoRegisteredIn | array of string | A cross-border charity’s other regulators. |
inputs.charity.charityNumber | stringnullable | |
inputs.charity.otherCharityNumbers | string | |
inputs.charity.report | object | Answers for the trustees’ annual report, by the question ids in |
inputs.charity.presentation | string (AccountsCharityPresentation) | Natural classification is for tier 1 only (SORP para 4.2). One of: |
inputs.charity.funds | array of AccountsCharityFund | |
inputs.charity.funds[].fundClassrequired | string (AccountsFundClass) | One of: |
inputs.charity.funds[].namerequired | string | |
inputs.charity.funds[].purpose | string | |
inputs.charity.funds[].endowmentKind | string (AccountsEndowmentKind) | One of: |
inputs.charity.funds[].legalPower | string | |
inputs.charity.lineMap | array of AccountsCharityLineMapping | |
inputs.charity.lineMap[].accountrequired | string | |
inputs.charity.lineMap[].statementLine | string | |
inputs.charity.lineMap[].fundClass | string (AccountsFundClass) | One of: |
inputs.charity.lineMap[].fundName | string | |
inputs.charity.auditRequiredOtherwise | boolean | |
inputs.charity.scrutinyDispensation | stringnullable | |
inputs.charity.examinersReport | object (AccountsExaminersReport) | The examiner’s own report, as supplied, with what the regulations say it states. Tolvi doesn’t write it. |
inputs.charity.examinersReport.textrequired | string | |
inputs.charity.examinersReport.examinerNamerequired | string | |
inputs.charity.examinersReport.addressrequired | string | |
inputs.charity.examinersReport.qualification | string | |
inputs.charity.examinersReport.qualifyingBasis | string | |
inputs.charity.examinersReport.reportDaterequired | string (date) | example "2026-03-31" |
inputs.charity.isParent | boolean | |
inputs.charity.groupGrossIncome | integer | Integer pence (GBP). |
inputs.charity.averageHeadcount | object (AccountsEmployees) | Average persons employed (CA 2006 s411). |
inputs.charity.averageHeadcount.thisYearrequired | integer | at least 0 |
inputs.charity.averageHeadcount.lastYearrequired | integernullable | at least 0 |
inputs.charity.staffCosts | object (AccountsCharityStaffCosts) | SORP para 9.28. |
inputs.charity.staffCosts.wagesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.charity.staffCosts.socialSecurityrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.charity.staffCosts.definedContributionrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.charity.staffCosts.definedBenefit | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.charity.staffCosts.otherBenefits | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.charity.redundancy | object (AccountsCharityRedundancy)nullable | SORP para 9.31. |
inputs.charity.redundancy.totalrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.charity.redundancy.naturerequired | string | |
inputs.charity.redundancy.policyrequired | string | |
inputs.charity.redundancy.liabilityrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.charity.highPaidBands | array of AccountsCharityPayBandnullable | |
inputs.charity.highPaidBands[].labelrequired | string | |
inputs.charity.highPaidBands[].valuesrequired | array of number | |
inputs.charity.trusteeRemuneration | array of AccountsTrusteeRemunerationnullable | |
inputs.charity.trusteeRemuneration[].namerequired | string | |
inputs.charity.trusteeRemuneration[].rolerequired | string | |
inputs.charity.trusteeRemuneration[].authorityrequired | string | |
inputs.charity.trusteeRemuneration[].reasonrequired | string | |
inputs.charity.trusteeRemuneration[].remunerationrequired | integer | Integer pence (GBP). |
inputs.charity.trusteeRemuneration[].pensionrequired | integer | Integer pence (GBP). |
inputs.charity.trusteeRemuneration[].otherBenefitsrequired | integer | Integer pence (GBP). |
inputs.charity.trusteeRemuneration[].periodCovered | string | |
inputs.charity.trusteeExpenses | object (AccountsCharityTrusteeExpenses)nullable | SORP paras 9.11, 9.12. |
inputs.charity.trusteeExpenses.totalrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.charity.trusteeExpenses.naturerequired | string | |
inputs.charity.trusteeExpenses.trusteesrequired | array of number | |
inputs.charity.keyManagementBenefits | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.charity.relatedPartyDonations | array of integernullable | [this year, last year], integer pence. 2 to 2 items |
inputs.charity.scrutinyFees | object (AccountsCharityScrutinyFees) | SORP para 9.25. |
inputs.charity.scrutinyFees.scrutinyrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.charity.scrutinyFees.assurance | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.charity.scrutinyFees.tax | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.charity.scrutinyFees.other | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.charity.exGratia | stringnullable | |
inputs.charity.grants | object (AccountsCharityGrants)nullable | SORP paras 16.14 to 16.16. |
inputs.charity.grants.individualsrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.charity.grants.institutionsrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.charity.grants.supportCosts | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.charity.grants.byActivity | array of AccountsAnalysisRow | |
inputs.charity.grants.byActivity[].labelrequired | string | |
inputs.charity.grants.byActivity[].valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.charity.grants.recipients | string | |
inputs.charity.judgements | stringnullable | |
inputs.charity.furtherPolicies | stringnullable | |
inputs.charity.reservesNotFree | array of AccountsAnalysisRownullable | |
inputs.charity.reservesNotFree[].labelrequired | string | |
inputs.charity.reservesNotFree[].valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.charity.revaluationReserve | array of integernullable | [this year, last year], integer pence. 2 to 2 items |
inputs.charity.receiptsAndPayments | object (AccountsReceiptsPaymentsFacts) | What a cash account can’t say: SSI 2006/218 Sch 3, and the Commission’s guidance for CIOs. Null: none. |
inputs.charity.receiptsAndPayments.otherMonetaryAssets | array of AccountsAnalysisRownullable | |
inputs.charity.receiptsAndPayments.otherMonetaryAssets[].labelrequired | string | |
inputs.charity.receiptsAndPayments.otherMonetaryAssets[].valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.charity.receiptsAndPayments.investments | array of AccountsAnalysisRownullable | |
inputs.charity.receiptsAndPayments.investments[].labelrequired | string | |
inputs.charity.receiptsAndPayments.investments[].valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.charity.receiptsAndPayments.ownUseAssets | array of AccountsAnalysisRownullable | |
inputs.charity.receiptsAndPayments.ownUseAssets[].labelrequired | string | |
inputs.charity.receiptsAndPayments.ownUseAssets[].valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.charity.receiptsAndPayments.liabilities | array of AccountsAnalysisRownullable | |
inputs.charity.receiptsAndPayments.liabilities[].labelrequired | string | |
inputs.charity.receiptsAndPayments.liabilities[].valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.charity.receiptsAndPayments.contingentLiabilities | stringnullable | |
inputs.charity.receiptsAndPayments.guarantees | stringnullable | |
inputs.charity.receiptsAndPayments.chargedDebts | stringnullable | |
inputs.charity.receiptsAndPayments.donatedFacilities | stringnullable | |
inputs.charity.receiptsAndPayments.grantsPaid | stringnullable | |
analysesrequired | object (AccountsAnalyses) | What supports the balance sheet lines, for FRS 102 1A notes. FRS 105 has no such notes, so they are ignored there. On a linked set with a fixed asset register, the movements come from the file. |
analyses.fixedAssets | array of AccountsFixedAssetClassnullable | |
analyses.fixedAssets[].namerequired | string | |
analyses.fixedAssets[].kind | string (AccountsFixedAssetKind) | One of: |
analyses.fixedAssets[].costOpeningrequired | integer | Integer pence (GBP). |
analyses.fixedAssets[].additionsrequired | integer | Integer pence (GBP). |
analyses.fixedAssets[].disposalsrequired | integer | Integer pence (GBP). |
analyses.fixedAssets[].revaluation | integer | Integer pence (GBP). |
analyses.fixedAssets[].transfers | integer | Integer pence (GBP). |
analyses.fixedAssets[].costClosingrequired | integer | Integer pence (GBP). |
analyses.fixedAssets[].depreciationOpeningrequired | integer | Integer pence (GBP). |
analyses.fixedAssets[].chargeForYearrequired | integer | Integer pence (GBP). |
analyses.fixedAssets[].onDisposalsrequired | integer | Integer pence (GBP). |
analyses.fixedAssets[].otherAdjustments | integer | Integer pence (GBP). |
analyses.fixedAssets[].depreciationClosingrequired | integer | Integer pence (GBP). |
analyses.debtors | array of AccountsAnalysisRownullable | |
analyses.debtors[].labelrequired | string | |
analyses.debtors[].valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
analyses.creditorsWithinOneYear | array of AccountsAnalysisRownullable | |
analyses.creditorsWithinOneYear[].labelrequired | string | |
analyses.creditorsWithinOneYear[].valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
analyses.creditorsAfterOneYear | array of AccountsAnalysisRownullable | |
analyses.creditorsAfterOneYear[].labelrequired | string | |
analyses.creditorsAfterOneYear[].valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
analyses.amountsAfterFiveYears | array of integernullable | [this year, last year], integer pence. 2 to 2 items |
analyses.securedCreditors | array of AccountsSecuredCreditorsnullable | |
analyses.securedCreditors[].itemrequired | string (AccountsSecuredItem) | One of: |
analyses.securedCreditors[].valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
analyses.securedCreditors[].securityrequired | string | |
analyses.full | object (AccountsFullAnalyses) | FRS102_FULL only. |
analyses.full.reclassifications | array of AccountsReclassificationnullable | |
analyses.full.reclassifications[].labelrequired | string | |
analyses.full.reclassifications[].fromrequired | string | A statement line id. |
analyses.full.reclassifications[].torequired | string | A statement line id. |
analyses.full.reclassifications[].valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
analyses.full.equityMovements | array of AccountsEquityMovementnullable | |
analyses.full.equityMovements[].labelrequired | string | |
analyses.full.equityMovements[].kindrequired | string (AccountsEquityMovementKind) | One of: |
analyses.full.equityMovements[].componentrequired | string (AccountsEquityComponent) | One of: |
analyses.full.equityMovements[].valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
analyses.full.cashFlow | object (AccountsCashFlowFacts) | What two balance sheets can’t say (FRS 102 Section 7). Closing balances are positive, whether they sit in creditors or debtors. |
analyses.full.cashFlow.overdraftsAreCash | boolean | |
analyses.full.cashFlow.cashEquivalents | array of integernullable | [this year, last year], integer pence. 2 to 2 items |
analyses.full.cashFlow.interestPaid | string (AccountsInterestPaidClass) | One of: |
analyses.full.cashFlow.interestReceived | string (AccountsInterestReceivedClass) | One of: |
analyses.full.cashFlow.dividendsPaid | string (AccountsDividendsPaidClass) | One of: |
analyses.full.cashFlow.capitalCreditors | array of integer | [this year, last year], integer pence. 2 to 2 items |
analyses.full.cashFlow.dividendsPayable | array of integer | [this year, last year], integer pence. 2 to 2 items |
analyses.full.cashFlow.interestPayable | array of integer | [this year, last year], integer pence. 2 to 2 items |
analyses.full.cashFlow.interestReceivable | array of integer | [this year, last year], integer pence. 2 to 2 items |
analyses.full.cashFlow.newLeases | integer | Integer pence (GBP). |
analyses.full.cashFlow.borrowingsDrawn | integer | Integer pence (GBP). |
analyses.full.cashFlow.borrowingsRepaid | integer | Integer pence (GBP). |
analyses.full.cashFlow.exchangeOnCash | integer | Integer pence (GBP). |
analyses.full.cashFlow.debtNonCash | integer | Integer pence (GBP). |
analyses.full.cashFlow.debtMarketAndExchange | integer | Integer pence (GBP). |
analyses.full.cashFlow.restrictedCash | object (AccountsRestrictedCash)nullable | FRS 102 para 7.21. |
analyses.full.cashFlow.restrictedCash.amountrequired | integer | Integer pence (GBP). |
analyses.full.cashFlow.restrictedCash.commentaryrequired | string | |
analyses.full.cashFlow.nonCashTransactions | stringnullable | |
analyses.full.cashFlow.comparatives | object | Last year’s statement of cash flows, by row key, integer pence. Rolls from last year’s set. |
analyses.full.cashFlow.priorOpeningCash | integer | Integer pence (GBP). |
analyses.full.turnoverByClass | array of AccountsAnalysisRownullable | |
analyses.full.turnoverByClass[].labelrequired | string | |
analyses.full.turnoverByClass[].valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
analyses.full.turnoverByMarket | array of AccountsAnalysisRownullable | |
analyses.full.turnoverByMarket[].labelrequired | string | |
analyses.full.turnoverByMarket[].valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
analyses.full.turnoverAnalysisWithheld | boolean | |
analyses.full.priorCharges | object (AccountsPriorCharges) | Last year’s amortisation and depreciation, for the comparative in the operating profit note. |
analyses.full.priorCharges.amortisationrequired | integer | Integer pence (GBP). |
analyses.full.priorCharges.depreciationrequired | integer | Integer pence (GBP). |
analyses.full.operatingProfitItems | array of AccountsAnalysisRownullable | |
analyses.full.operatingProfitItems[].labelrequired | string | |
analyses.full.operatingProfitItems[].valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
analyses.full.interestReceivable | array of AccountsAnalysisRownullable | |
analyses.full.interestReceivable[].labelrequired | string | |
analyses.full.interestReceivable[].valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
analyses.full.interestPayable | array of AccountsAnalysisRownullable | |
analyses.full.interestPayable[].labelrequired | string | |
analyses.full.interestPayable[].valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
analyses.full.taxCharge | array of AccountsAnalysisRownullable | |
analyses.full.taxCharge[].labelrequired | string | |
analyses.full.taxCharge[].valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
analyses.full.stocks | array of AccountsAnalysisRownullable | |
analyses.full.stocks[].labelrequired | string | |
analyses.full.stocks[].valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
analyses.full.fairValueInstruments | array of AccountsAnalysisRownullable | |
analyses.full.fairValueInstruments[].labelrequired | string | |
analyses.full.fairValueInstruments[].valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
analyses.full.instrumentGainsAndLosses | array of AccountsAnalysisRownullable | |
analyses.full.instrumentGainsAndLosses[].labelrequired | string | |
analyses.full.instrumentGainsAndLosses[].valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
analyses.full.provisions | array of AccountsProvisionMovementnullable | |
analyses.full.provisions[].namerequired | string | |
analyses.full.provisions[].naturerequired | string | |
analyses.full.provisions[].openingrequired | integer | Integer pence (GBP). |
analyses.full.provisions[].additionsrequired | integer | Integer pence (GBP). |
analyses.full.provisions[].chargedrequired | integer | Integer pence (GBP). |
analyses.full.provisions[].reversedrequired | integer | Integer pence (GBP). |
analyses.full.provisions[].closingrequired | integer | Integer pence (GBP). |
analyses.full.deferredTax | array of AccountsAnalysisRownullable | |
analyses.full.deferredTax[].labelrequired | string | |
analyses.full.deferredTax[].valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
analyses.charity | object (AccountsCharityAnalyses) | A charity only. |
analyses.charity.fundMoves | array of AccountsCharityFundMovenullable | |
analyses.charity.fundMoves[].labelrequired | string | |
analyses.charity.fundMoves[].accountrequired | string | |
analyses.charity.fundMoves[].fromrequired | object (AccountsCharityFundRef) | |
analyses.charity.fundMoves[].from.fundClassrequired | string (AccountsFundClass) | One of: |
analyses.charity.fundMoves[].from.fundName | string | |
analyses.charity.fundMoves[].torequired | object (AccountsCharityFundRef) | |
analyses.charity.fundMoves[].to.fundClassrequired | string (AccountsFundClass) | One of: |
analyses.charity.fundMoves[].to.fundName | string | |
analyses.charity.fundMoves[].valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
analyses.charity.supportCosts | array of AccountsCharitySupportCostnullable | |
analyses.charity.supportCosts[].labelrequired | string | |
analyses.charity.supportCosts[].governance | boolean | |
analyses.charity.supportCosts[].basis | string | |
analyses.charity.supportCosts[].valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
analyses.charity.cashFlow | object (AccountsCharityCashFlow) | What two balance sheets can’t say. SORP Table 11. Positive amounts, this year. |
analyses.charity.cashFlow.depreciation | integer | Integer pence (GBP). |
analyses.charity.cashFlow.purchasesOfFixedAssets | integer | Integer pence (GBP). |
analyses.charity.cashFlow.proceedsOfFixedAssets | integer | Integer pence (GBP). |
analyses.charity.cashFlow.profitOnSaleOfFixedAssets | integer | Integer pence (GBP). |
analyses.charity.cashFlow.purchasesOfInvestments | integer | Integer pence (GBP). |
analyses.charity.cashFlow.proceedsOfInvestments | integer | Integer pence (GBP). |
analyses.charity.cashFlow.newBorrowing | integer | Integer pence (GBP). |
analyses.charity.cashFlow.borrowingRepaid | integer | Integer pence (GBP). |
analyses.charity.cashFlow.comparatives | object | Last year’s statement, by row key. |
noteOverridesrequired | object | Replacement wording by note id; paragraphs separated by a blank line. Tables always come from the figures. |
currentVersionrequired | object (AccountsTbVersion)nullable | Null until a trial balance is entered or a file is linked. |
currentVersion.idrequired | string (uuid) | |
currentVersion.versionrequired | integer | |
currentVersion.sourcerequired | string (AccountsSource) | One of: |
currentVersion.sourceLabelrequired | stringnullable | |
currentVersion.createdByNamerequired | stringnullable | |
currentVersion.createdAtrequired | string (date-time) | |
currentVersion.linesrequired | array of AccountsTbLine | |
currentVersion.lines[].lineIdrequired | stringnullable | |
currentVersion.lines[].namerequired | string | |
currentVersion.lines[].finalPencerequired | integer | This year, final. Integer pence, debit positive. |
currentVersion.lines[].pyPencerequired | integer | Last year. Integer pence, debit positive. |
currentVersion.lines[].fundClass | string (AccountsFundClass) | One of: |
currentVersion.lines[].fundName | string | |
currentVersion.fixedAssetMovementsrequired | array of AccountsFixedAssetClassnullable | The file’s fixed asset movements as read. Null for a direct version. |
currentVersion.fixedAssetMovements[].namerequired | string | |
currentVersion.fixedAssetMovements[].kind | string (AccountsFixedAssetKind) | One of: |
currentVersion.fixedAssetMovements[].costOpeningrequired | integer | Integer pence (GBP). |
currentVersion.fixedAssetMovements[].additionsrequired | integer | Integer pence (GBP). |
currentVersion.fixedAssetMovements[].disposalsrequired | integer | Integer pence (GBP). |
currentVersion.fixedAssetMovements[].revaluation | integer | Integer pence (GBP). |
currentVersion.fixedAssetMovements[].transfers | integer | Integer pence (GBP). |
currentVersion.fixedAssetMovements[].costClosingrequired | integer | Integer pence (GBP). |
currentVersion.fixedAssetMovements[].depreciationOpeningrequired | integer | Integer pence (GBP). |
currentVersion.fixedAssetMovements[].chargeForYearrequired | integer | Integer pence (GBP). |
currentVersion.fixedAssetMovements[].onDisposalsrequired | integer | Integer pence (GBP). |
currentVersion.fixedAssetMovements[].otherAdjustments | integer | Integer pence (GBP). |
currentVersion.fixedAssetMovements[].depreciationClosingrequired | integer | Integer pence (GBP). |
currentVersion.sourceEngagementIdrequired | string (uuid)nullable | |
versionsrequired | array of AccountsTbVersionSummary | |
versions[].idrequired | string (uuid) | |
versions[].versionrequired | integer | |
versions[].sourcerequired | string (AccountsSource) | One of: |
versions[].sourceLabelrequired | stringnullable | |
versions[].createdByNamerequired | stringnullable | |
versions[].createdAtrequired | string (date-time) | |
figuresHashrequired | string | Fingerprint of everything on the accounts. Any change moves it. Send it back to approve. |
signatoryNamerequired | stringnullable | |
approvedByNamerequired | stringnullable | |
approvedAtrequired | string (date-time)nullable | |
rolledFromSetIdrequired | string (uuid)nullable | |
problemsrequired | array of AccountsProblem | Everything that stops the accounts being finished. |
problems[].coderequired | string | Stable code. |
problems[].messagerequired | string | |
problems[].severityrequired | string (AccountsProblemSeverity) | A blocker stops approval. A warning needs a person to look. One of: |
problems[].noteId | string (AccountsNoteId) | One of: |
sizerequired | object (AccountsSize)nullable | FRS102_FULL only. |
size.sizerequired | string (AccountsCompanySize) | How it qualified last year (CA 2006 s465(2)). Null for a first financial year. One of: |
size.needsLastYearrequired | boolean | It turns on how the company qualified last year, and nobody has said. |
size.excludedrequired | boolean | CA 2006 ss384, 467 take it out, whatever the figures say. |
size.reasonsrequired | array of string | |
size.sourcerequired | string | Which law’s limits were used. |
charityrequired | object (AccountsCharityReporting)nullable | A charity only. |
charity.jurisdictionrequired | string (AccountsCharityJurisdiction) | One of: |
charity.tierrequired | numbernullable | SORP para 35. Null on receipts and payments. |
charity.grossIncomePencerequired | integer | Integer pence (GBP). |
charity.grossAssetsPencerequired | integer | Integer pence (GBP). |
charity.scrutinyrequired | string (AccountsCharityScrutiny) | One of: |
charity.scrutinyLabelrequired | string | |
charity.scrutinyBasisrequired | array of string | |
charity.mayUseReceiptsAndPaymentsrequired | boolean | |
charity.mustUseAccrualsrequired | boolean | |
charity.companySmallrequired | booleannullable | A charitable company only, on this year’s figures. |
charity.cashFlowRequiredrequired | boolean | |
charity.sorp2026Appliesrequired | boolean | |
charity.filingrequired | array of AccountsCharityFiling | |
charity.filing[].jurisdictionrequired | string (AccountsCharityJurisdiction) | One of: |
charity.filing[].regulatorrequired | string | |
charity.filing[].duerequired | string (date) | example "2026-03-31" |
charity.filing[].whatrequired | string | |
charity.filing[].sourcerequired | string | |
charity.noRegulatorFilingrequired | string | |
charity.questionsrequired | array of AccountsCharityQuestion | |
charity.questions[].idrequired | string | |
charity.questions[].grouprequired | string | |
charity.questions[].askrequired | string | |
charity.questions[].referencerequired | string | |
charity.questions[].forcerequired | string (AccountsCharityQuestionForce) | One of: |
charity.questions[].orNonerequired | boolean | “None” is a fair answer. |
canApproverequired | boolean | |
cannotApproveReasonrequired | stringnullable | |
documentsrequired | object (AccountsDocuments) | Both variants, or the one asked for. |
documents.full | object (AccountsDocument) | The accounts, ordered and ready to render. |
documents.full.entity | string (AccountsEntity) | Left out: a company. One of: |
documents.full.frameworkrequired | string (AccountsFramework) | One of: |
documents.full.variantrequired | string (AccountsVariant) |
One of: |
documents.full.periodrequired | object (AccountsPeriod) | |
documents.full.period.startrequired | string (date) | example "2026-03-31" |
documents.full.period.endrequired | string (date) | example "2026-03-31" |
documents.full.period.priorStart | string (date) | example "2026-03-31" |
documents.full.period.priorEnd | string (date) | example "2026-03-31" |
documents.full.sectionsrequired | array of AccountsSection | |
documents.full.sections[].kindrequired | string (AccountsSectionKind) | One of: |
documents.full.sections[].titlerequired | string | |
documents.full.sections[].companyName | string | front_matter. |
documents.full.sections[].registeredNumber | string | front_matter. |
documents.full.sections[].subtitle | string | front_matter. |
documents.full.sections[].contents | array of string | front_matter: the titles of the sections that follow. |
documents.full.sections[].entries | array of AccountsInformationEntry | company_information. |
documents.full.sections[].entries[].labelrequired | string | |
documents.full.sections[].entries[].valuerequired | string | |
documents.full.sections[].paragraphs | array of string | directors_report, revision_statement and auditors_report. |
documents.full.sections[].strategicParagraphs | array of AccountsStrategicParagraph | strategic_report: a person’s words, under headings. |
documents.full.sections[].strategicParagraphs[].headingrequired | string | |
documents.full.sections[].strategicParagraphs[].textrequired | string | |
documents.full.sections[].strategicParagraphs[].conceptrequired | string (AccountsStrategicConcept) | One of: |
documents.full.sections[].opinion | string (AccountsAuditOpinion)nullable | auditors_report. One of: |
documents.full.sections[].auditorName | stringnullable | auditors_report. |
documents.full.sections[].seniorStatutoryAuditor | stringnullable | auditors_report. |
documents.full.sections[].reportDate | string (date)nullable | auditors_report. example "2026-03-31" |
documents.full.sections[].address | stringnullable | auditors_report and accountants_report. |
documents.full.sections[].firmName | stringnullable | accountants_report. |
documents.full.sections[].groups | array of AccountsTrusteesReportGroup | trustees_report: a person’s answers, under the SORP’s headings. |
documents.full.sections[].groups[].headingrequired | string | |
documents.full.sections[].groups[].paragraphsrequired | array of string | |
documents.full.sections[].declarations | array of string | trustees_report: fixed company law statements. |
documents.full.sections[].examinerName | stringnullable | examiners_report. |
documents.full.sections[].qualification | stringnullable | examiners_report. |
documents.full.sections[].qualifyingBasis | stringnullable | examiners_report. |
documents.full.sections[].tables | array of AccountsTable | changes_in_equity: one table a year, a column for each component. table_statement: the SoFA, a receipts and payments account or a statement of assets and liabilities, a column for each class of fund. |
documents.full.sections[].tables[].idrequired | string | |
documents.full.sections[].tables[].unitrequired | string (AccountsTableUnit) | One of: |
documents.full.sections[].tables[].columnsrequired | array of AccountsColumn | |
documents.full.sections[].tables[].columns[].labelrequired | string | |
documents.full.sections[].tables[].rowsrequired | array of AccountsTableRow | |
documents.full.sections[].tables[].rows[].labelrequired | string | |
documents.full.sections[].tables[].rows[].valuesrequired | array of integer | One cell per column. Whole pounds in pence for |
documents.full.sections[].tables[].rows[].kind | string (AccountsRowKind) | One of: |
documents.full.sections[].keys | array of string | cash_flow: a stable key for each row. |
documents.full.sections[].originalApprovedOn | string (date) | revision_statement. example "2026-03-31" |
documents.full.sections[].revisionApprovedOn | string (date)nullable | revision_statement: null until recorded. example "2026-03-31" |
documents.full.sections[].references | array of string | revision_statement: the authority for it. |
documents.full.sections[].smallCompaniesStatement | string | directors_report: the s419(2) statement. |
documents.full.sections[].signature | object (AccountsSignature) | directors_report and balance_sheet. |
documents.full.sections[].signature.namerequired | stringnullable | |
documents.full.sections[].signature.capacityrequired | string | |
documents.full.sections[].signature.daterequired | string (date)nullable | Blank until a person records the approval. example "2026-03-31" |
documents.full.sections[].columns | array of AccountsColumn | profit_and_loss, comprehensive_income, balance_sheet and cash_flow. |
documents.full.sections[].columns[].labelrequired | string | |
documents.full.sections[].rows | array of AccountsStatementLine | profit_and_loss, comprehensive_income, balance_sheet and cash_flow. |
documents.full.sections[].rows[].labelrequired | string | |
documents.full.sections[].rows[].valuesrequired | array of integer | [this year, last year]: whole pounds, in pence. Null is blank. Signed: income, assets and equity positive; costs and liabilities negative. |
documents.full.sections[].rows[].kindrequired | string (AccountsRowKind) | One of: |
documents.full.sections[].rows[].indent | boolean | |
documents.full.sections[].rows[].note | integer | The number of the note that supports this line. |
documents.full.sections[].statements | array of AccountsStatutoryStatement | balance_sheet: directly above the signature, in this order. |
documents.full.sections[].statements[].idrequired | string | |
documents.full.sections[].statements[].textrequired | string | |
documents.full.sections[].statements[].referencerequired | string | |
documents.full.sections[].roundingNote | string | balance_sheet. |
documents.full.sections[].atFootOfBalanceSheet | boolean | notes: FRS 105 para 6.2, the notes sit at the foot of the balance sheet. |
documents.full.sections[].notes | array of AccountsNote | notes. |
documents.full.sections[].notes[].idrequired | string (AccountsNoteId) | One of: |
documents.full.sections[].notes[].numberrequired | integer | 1-based, in order of appearance. |
documents.full.sections[].notes[].titlerequired | string | |
documents.full.sections[].notes[].paragraphsrequired | array of string | |
documents.full.sections[].notes[].tablesrequired | array of AccountsTable | |
documents.full.sections[].notes[].tables[].idrequired | string | |
documents.full.sections[].notes[].tables[].unitrequired | string (AccountsTableUnit) | One of: |
documents.full.sections[].notes[].tables[].columnsrequired | array of AccountsColumn | |
documents.full.sections[].notes[].tables[].columns[].labelrequired | string | |
documents.full.sections[].notes[].tables[].rowsrequired | array of AccountsTableRow | |
documents.full.sections[].notes[].tables[].rows[].labelrequired | string | |
documents.full.sections[].notes[].tables[].rows[].valuesrequired | array of integer | One cell per column. Whole pounds in pence for |
documents.full.sections[].notes[].tables[].rows[].kind | string (AccountsRowKind) | One of: |
documents.full.sections[].notes[].overriddenrequired | boolean | Edited wording replaced the default. |
documents.full.sections[].notes[].referencesrequired | array of string | Authority for the note. |
documents.filleted | object (AccountsDocument) | The accounts, ordered and ready to render. |
documents.filleted.entity | string (AccountsEntity) | Left out: a company. One of: |
documents.filleted.frameworkrequired | string (AccountsFramework) | One of: |
documents.filleted.variantrequired | string (AccountsVariant) |
One of: |
documents.filleted.periodrequired | object (AccountsPeriod) | |
documents.filleted.period.startrequired | string (date) | example "2026-03-31" |
documents.filleted.period.endrequired | string (date) | example "2026-03-31" |
documents.filleted.period.priorStart | string (date) | example "2026-03-31" |
documents.filleted.period.priorEnd | string (date) | example "2026-03-31" |
documents.filleted.sectionsrequired | array of AccountsSection | |
documents.filleted.sections[].kindrequired | string (AccountsSectionKind) | One of: |
documents.filleted.sections[].titlerequired | string | |
documents.filleted.sections[].companyName | string | front_matter. |
documents.filleted.sections[].registeredNumber | string | front_matter. |
documents.filleted.sections[].subtitle | string | front_matter. |
documents.filleted.sections[].contents | array of string | front_matter: the titles of the sections that follow. |
documents.filleted.sections[].entries | array of AccountsInformationEntry | company_information. |
documents.filleted.sections[].entries[].labelrequired | string | |
documents.filleted.sections[].entries[].valuerequired | string | |
documents.filleted.sections[].paragraphs | array of string | directors_report, revision_statement and auditors_report. |
documents.filleted.sections[].strategicParagraphs | array of AccountsStrategicParagraph | strategic_report: a person’s words, under headings. |
documents.filleted.sections[].strategicParagraphs[].headingrequired | string | |
documents.filleted.sections[].strategicParagraphs[].textrequired | string | |
documents.filleted.sections[].strategicParagraphs[].conceptrequired | string (AccountsStrategicConcept) | One of: |
documents.filleted.sections[].opinion | string (AccountsAuditOpinion)nullable | auditors_report. One of: |
documents.filleted.sections[].auditorName | stringnullable | auditors_report. |
documents.filleted.sections[].seniorStatutoryAuditor | stringnullable | auditors_report. |
documents.filleted.sections[].reportDate | string (date)nullable | auditors_report. example "2026-03-31" |
documents.filleted.sections[].address | stringnullable | auditors_report and accountants_report. |
documents.filleted.sections[].firmName | stringnullable | accountants_report. |
documents.filleted.sections[].groups | array of AccountsTrusteesReportGroup | trustees_report: a person’s answers, under the SORP’s headings. |
documents.filleted.sections[].groups[].headingrequired | string | |
documents.filleted.sections[].groups[].paragraphsrequired | array of string | |
documents.filleted.sections[].declarations | array of string | trustees_report: fixed company law statements. |
documents.filleted.sections[].examinerName | stringnullable | examiners_report. |
documents.filleted.sections[].qualification | stringnullable | examiners_report. |
documents.filleted.sections[].qualifyingBasis | stringnullable | examiners_report. |
documents.filleted.sections[].tables | array of AccountsTable | changes_in_equity: one table a year, a column for each component. table_statement: the SoFA, a receipts and payments account or a statement of assets and liabilities, a column for each class of fund. |
documents.filleted.sections[].tables[].idrequired | string | |
documents.filleted.sections[].tables[].unitrequired | string (AccountsTableUnit) | One of: |
documents.filleted.sections[].tables[].columnsrequired | array of AccountsColumn | |
documents.filleted.sections[].tables[].columns[].labelrequired | string | |
documents.filleted.sections[].tables[].rowsrequired | array of AccountsTableRow | |
documents.filleted.sections[].tables[].rows[].labelrequired | string | |
documents.filleted.sections[].tables[].rows[].valuesrequired | array of integer | One cell per column. Whole pounds in pence for |
documents.filleted.sections[].tables[].rows[].kind | string (AccountsRowKind) | One of: |
documents.filleted.sections[].keys | array of string | cash_flow: a stable key for each row. |
documents.filleted.sections[].originalApprovedOn | string (date) | revision_statement. example "2026-03-31" |
documents.filleted.sections[].revisionApprovedOn | string (date)nullable | revision_statement: null until recorded. example "2026-03-31" |
documents.filleted.sections[].references | array of string | revision_statement: the authority for it. |
documents.filleted.sections[].smallCompaniesStatement | string | directors_report: the s419(2) statement. |
documents.filleted.sections[].signature | object (AccountsSignature) | directors_report and balance_sheet. |
documents.filleted.sections[].signature.namerequired | stringnullable | |
documents.filleted.sections[].signature.capacityrequired | string | |
documents.filleted.sections[].signature.daterequired | string (date)nullable | Blank until a person records the approval. example "2026-03-31" |
documents.filleted.sections[].columns | array of AccountsColumn | profit_and_loss, comprehensive_income, balance_sheet and cash_flow. |
documents.filleted.sections[].columns[].labelrequired | string | |
documents.filleted.sections[].rows | array of AccountsStatementLine | profit_and_loss, comprehensive_income, balance_sheet and cash_flow. |
documents.filleted.sections[].rows[].labelrequired | string | |
documents.filleted.sections[].rows[].valuesrequired | array of integer | [this year, last year]: whole pounds, in pence. Null is blank. Signed: income, assets and equity positive; costs and liabilities negative. |
documents.filleted.sections[].rows[].kindrequired | string (AccountsRowKind) | One of: |
documents.filleted.sections[].rows[].indent | boolean | |
documents.filleted.sections[].rows[].note | integer | The number of the note that supports this line. |
documents.filleted.sections[].statements | array of AccountsStatutoryStatement | balance_sheet: directly above the signature, in this order. |
documents.filleted.sections[].statements[].idrequired | string | |
documents.filleted.sections[].statements[].textrequired | string | |
documents.filleted.sections[].statements[].referencerequired | string | |
documents.filleted.sections[].roundingNote | string | balance_sheet. |
documents.filleted.sections[].atFootOfBalanceSheet | boolean | notes: FRS 105 para 6.2, the notes sit at the foot of the balance sheet. |
documents.filleted.sections[].notes | array of AccountsNote | notes. |
documents.filleted.sections[].notes[].idrequired | string (AccountsNoteId) | One of: |
documents.filleted.sections[].notes[].numberrequired | integer | 1-based, in order of appearance. |
documents.filleted.sections[].notes[].titlerequired | string | |
documents.filleted.sections[].notes[].paragraphsrequired | array of string | |
documents.filleted.sections[].notes[].tablesrequired | array of AccountsTable | |
documents.filleted.sections[].notes[].tables[].idrequired | string | |
documents.filleted.sections[].notes[].tables[].unitrequired | string (AccountsTableUnit) | One of: |
documents.filleted.sections[].notes[].tables[].columnsrequired | array of AccountsColumn | |
documents.filleted.sections[].notes[].tables[].columns[].labelrequired | string | |
documents.filleted.sections[].notes[].tables[].rowsrequired | array of AccountsTableRow | |
documents.filleted.sections[].notes[].tables[].rows[].labelrequired | string | |
documents.filleted.sections[].notes[].tables[].rows[].valuesrequired | array of integer | One cell per column. Whole pounds in pence for |
documents.filleted.sections[].notes[].tables[].rows[].kind | string (AccountsRowKind) | One of: |
documents.filleted.sections[].notes[].overriddenrequired | boolean | Edited wording replaced the default. |
documents.filleted.sections[].notes[].referencesrequired | array of string | Authority for the note. |
approverRolerequired | string (ApproverRole) | Who may approve in this firm: partners only, or managers and partners. One of: |
reviewPointsrequired | array of AccountsReviewPoint | Open points stop the approval. |
reviewPoints[].idrequired | string (uuid) | |
reviewPoints[].arearequired | stringnullable | |
reviewPoints[].textrequired | string | |
reviewPoints[].statusrequired | string (AccountsReviewPointStatus) | One of: |
reviewPoints[].raisedByNamerequired | stringnullable | |
reviewPoints[].clearedByNamerequired | stringnullable | |
reviewPoints[].clearedAtrequired | string (date-time)nullable | |
reviewPoints[].createdAtrequired | string (date-time) | |
reviewerNamesrequired | array of string | Who sending for review goes to, by name: the client’s partner, or every partner where the record names none, and its manager. |
ixbrlrequired | object (AccountsIxbrlSummary) | What stops each tagged file being filed. Download it from |
ixbrl.fullrequired | object (AccountsIxbrlVersion) | |
ixbrl.full.readyToFilerequired | boolean | Whether anything Tolvi can check stops this file being filed. It doesn’t mean Companies House or HMRC would accept it. |
ixbrl.full.problemsrequired | array of AccountsIxbrlProblem | |
ixbrl.full.problems[].coderequired | string | |
ixbrl.full.problems[].severityrequired | string (AccountsIxbrlProblemSeverity) | One of: |
ixbrl.full.problems[].messagerequired | string | |
ixbrl.filletedrequired | object (AccountsIxbrlVersion) | |
ixbrl.filleted.readyToFilerequired | boolean | Whether anything Tolvi can check stops this file being filed. It doesn’t mean Companies House or HMRC would accept it. |
ixbrl.filleted.problemsrequired | array of AccountsIxbrlProblem | |
ixbrl.filleted.problems[].coderequired | string | |
ixbrl.filleted.problems[].severityrequired | string (AccountsIxbrlProblemSeverity) | One of: |
ixbrl.filleted.problems[].messagerequired | string | |
companiesHouserequired | object (ChFilingState) | Delivering these accounts to Companies House. Switched off until Companies House’s test service has been passed. |
companiesHouse.filingEnabledrequired | boolean | |
companiesHouse.cannotFileReasonrequired | stringnullable | Why filing can’t be started now, in plain words. Null when it can. |
companiesHouse.submissionsrequired | array of ChSubmission | |
companiesHouse.submissions[].idrequired | string (uuid) | |
companiesHouse.submissions[].variantrequired | string (AccountsVariant) |
One of: |
companiesHouse.submissions[].moderequired | string (ChSubmissionMode) | One of: |
companiesHouse.submissions[].statusrequired | string (ChSubmissionStatus) | One of: |
companiesHouse.submissions[].statusTextrequired | string | In plain words, for the screen. |
companiesHouse.submissions[].submissionNumberrequired | string | Quote this to Companies House. |
companiesHouse.submissions[].reasonsrequired | array of string | Why it was refused, in plain words. |
companiesHouse.submissions[].examinerCommentrequired | stringnullable | |
companiesHouse.submissions[].receivedAtrequired | stringnullable | The gateway’s timestamp, when it gave one. |
companiesHouse.submissions[].submittedByNamerequired | stringnullable | |
companiesHouse.submissions[].createdAtrequired | string (date-time) | |
revisionOfSetIdrequired | string (uuid)nullable | The approved set these revised accounts replace. |
revisionrequired | object (AccountsRevisionFacts)nullable | Revised accounts only. |
revision.originalApprovedOnrequired | string (date) | The date the board approved the accounts these replace. example "2026-03-31" |
revision.nonCompliance | string | The respects in which the original accounts did not comply with the Companies Act 2006. |
revision.consequentialAmendments | stringnullable | Significant amendments made as a consequence. Null is none. |
revisedBySetIdrequired | string (uuid)nullable | Revised accounts started from this set, approved or not. |
revisionDeliverByrequired | string (date)nullable | Approved revised accounts: 28 days from the date of revision (SI 2008/373 regs 12, 14). example "2026-03-31" |
Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 409 Conflict, 422 Unprocessable content, 429 Too many requests, as problem details (application/problem+json).
List statement lines
GET/api/v1/accounts/statement-lines
- Scopes
accounts:read
The lines a trial balance account can go to, in accounts order. framework=FRS102_FULL adds intangibles, investments, Format 2 and other comprehensive income. Part of the accounts product: the firm must have it and you must have access to it.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
entity | query | string |
One of: |
framework | query | string | One of: |
Responses
200 OK, application/json
Body: object (AccountsStatementLines).
| Field | Type | Description |
|---|---|---|
itemsrequired | array of AccountsStatementLineOption | |
items[].idrequired | string | |
items[].labelrequired | string | |
items[].statementrequired | string (AccountsStatement) | One of: |
items[].normalBalancerequired | string (AccountsNormalBalance) | The side a balance usually sits on. One of: |
items[].notUnderFrs105 | boolean | Not allowed under FRS 105 para 24.7. |
items[].format | string (AccountsPlFormat) | Full FRS 102: the profit and loss format this line belongs to. One of: |
items[].oci | boolean | Full FRS 102: other comprehensive income. |
Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 429 Too many requests, as problem details (application/problem+json).
Get accounts
GET/api/v1/accounts/{id}
- Scopes
accounts:read
The set, the full version for members and the filleted version prepared for Companies House (or the one asked for), every problem, and whether a linked Working Papers file has changed (sourceChanged). A change to the file never moves the figures here. This doesn’t file anything. Part of the accounts product: the firm must have it and you must have access to it.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string (uuid) | |
variant | query | string | Left out: both versions. One of: |
Responses
200 OK, application/json
Body: object (AccountsSet).
A company’s accounts for one period end. Draft until people record the directors’ approval.
The fields are as shown above.
Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 404 Not found, 429 Too many requests, as problem details (application/problem+json).
Change accounts
PATCH/api/v1/accounts/{id}
- Scopes
accounts:write- Role
- Preparer or above
Preparers and above: the company, facts, analyses and note wording. Any real change to approved accounts returns them to draft and loses the approval.
Needs the Preparer role or above. Part of the accounts product: the firm must have it and you must have access to it.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string (uuid) |
Request body
Required. application/json: object (UpdateAccountsSetRequest).
Each part given replaces that part whole, so a fact can be taken back to not answered by leaving it out. Any real change to an approved set returns it to draft and loses the approval.
| Field | Type | Description |
|---|---|---|
framework | string (AccountsFramework) | One of: |
company | object (AccountsCompany) | The company, LLP or business as the accounts state it. |
company.namerequired | string | |
company.registeredNumberrequired | string | |
company.registeredOfficerequired | string | |
company.jurisdiction | string (AccountsJurisdiction) | One of: |
company.form | string (AccountsCompanyForm) | One of: |
company.directorsrequired | array of AccountsDirector | |
company.directors[].namerequired | string | |
company.directors[].appointedOn | string (date) | example "2026-03-31" |
company.directors[].resignedOn | string (date) | example "2026-03-31" |
company.directors[].designated | boolean | An LLP’s designated member. |
company.secretary | stringnullable | |
company.principalActivity | string | |
company.beingWoundUp | boolean | |
inputs | object (AccountsInputs) | Facts for the notes and statements. Left out means not answered, so a problem asks for it where it is needed. Null means answered, nothing to disclose: the note drops out and later notes renumber. |
inputs.averageEmployees | object (AccountsEmployees) | Average persons employed (CA 2006 s411). |
inputs.averageEmployees.thisYearrequired | integer | at least 0 |
inputs.averageEmployees.lastYearrequired | integernullable | at least 0 |
inputs.offBalanceSheetArrangements | stringnullable | |
inputs.commitments | object (AccountsCommitments)nullable | |
inputs.commitments.totalrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.commitments.descriptionrequired | string | |
inputs.commitments.pensions | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.commitments.groupUndertakings | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.commitments.participatingInterests | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.commitments.securityGiven | string | |
inputs.directorAdvances | array of AccountsDirectorAdvancenullable | |
inputs.directorAdvances[].directorrequired | string | |
inputs.directorAdvances[].interestRaterequired | string | |
inputs.directorAdvances[].mainConditionsrequired | string | |
inputs.directorAdvances[].openingrequired | integer | Integer pence (GBP). |
inputs.directorAdvances[].advancedrequired | integer | Integer pence (GBP). |
inputs.directorAdvances[].repaidrequired | integer | Integer pence (GBP). |
inputs.directorAdvances[].writtenOffrequired | integer | Integer pence (GBP). |
inputs.directorAdvances[].waivedrequired | integer | Integer pence (GBP). |
inputs.directorAdvances[].closingrequired | integer | Integer pence (GBP). |
inputs.directorGuarantees | array of AccountsDirectorGuaranteenullable | |
inputs.directorGuarantees[].directorrequired | string | |
inputs.directorGuarantees[].mainTermsrequired | string | |
inputs.directorGuarantees[].maximumLiabilityrequired | integer | Integer pence (GBP). |
inputs.directorGuarantees[].amountPaidOrIncurredrequired | integer | Integer pence (GBP). |
inputs.relatedParties | stringnullable | |
inputs.parentUndertaking | object (AccountsParentUndertaking)nullable | |
inputs.parentUndertaking.namerequired | string | |
inputs.parentUndertaking.registeredOfficerequired | string | |
inputs.postBalanceSheetEvents | stringnullable | |
inputs.goingConcern | object (AccountsGoingConcern) | |
inputs.goingConcern.basisrequired | string (AccountsGoingConcernBasis) | One of: |
inputs.goingConcern.disclosure | string | |
inputs.dividends | array of integernullable | [this year, last year], integer pence. 2 to 2 items |
inputs.shareCapital | object (AccountsShareCapital)nullable | |
inputs.shareCapital.descriptionrequired | string | |
inputs.shareCapital.rows | array of AccountsAnalysisRow | |
inputs.shareCapital.rows[].labelrequired | string | |
inputs.shareCapital.rows[].valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.exceptionalItems | array of AccountsExceptionalItemnullable | |
inputs.exceptionalItems[].descriptionrequired | string | |
inputs.exceptionalItems[].valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.transitionExplanation | stringnullable | |
inputs.depreciationPolicy | string | |
inputs.politicalGiving | object (AccountsPoliticalGiving)nullable | |
inputs.politicalGiving.donations | array of AccountsPoliticalDonation | |
inputs.politicalGiving.donations[].recipientrequired | string | |
inputs.politicalGiving.donations[].amountrequired | integer | Integer pence (GBP). |
inputs.politicalGiving.expenditure | integer | Integer pence (GBP). |
inputs.politicalGiving.nonUkContributions | integer | Integer pence (GBP). |
inputs.politicalGiving.whollyOwnedSubsidiaryOfUkCompany | boolean | |
inputs.auditExemption | object (AccountsAuditExemption) | |
inputs.auditExemption.section477Takenrequired | boolean | |
inputs.auditExemption.section476NoticeGivenrequired | boolean | |
inputs.approval | object (AccountsProposedSignatory) | Who is expected to sign. The approval itself is recorded through |
inputs.approval.signatoryName | string | |
inputs.approval.directorsReportSignatoryName | string | |
inputs.exclusions | object (AccountsExclusions) | Facts that take a company out of the regimes (CA 2006 ss384, 384B, 478). |
inputs.exclusions.publicCompany | boolean | |
inputs.exclusions.regulatedBusiness | boolean | |
inputs.exclusions.memberOfIneligibleGroup | boolean | |
inputs.exclusions.investmentOrFinancialHoldingOrCharity | boolean | |
inputs.exclusions.includedInGroupAccounts | boolean | |
inputs.exclusions.parentCompany | boolean | |
inputs.revaluedFixedAssets | boolean | |
inputs.fairValueItems | boolean | |
inputs.deferredTaxInFigures | boolean | |
inputs.expectedFilingDate | string (date) | When the accounts are expected to reach Companies House, for dated warnings. Tolvi does not file them. example "2026-03-31" |
inputs.auditorsReport | object (AccountsAuditorsReport) | Needed where the s477 exemption isn’t taken. |
inputs.auditorsReport.textrequired | string | Word for word. Paragraphs separated by a blank line. |
inputs.auditorsReport.opinionrequired | string (AccountsAuditOpinion) | One of: |
inputs.auditorsReport.auditorNamerequired | string | The auditor’s name, or the firm’s. |
inputs.auditorsReport.seniorStatutoryAuditor | string | Who signs for a firm (s503(3)). |
inputs.auditorsReport.reportDaterequired | string (date) | example "2026-03-31" |
inputs.auditorsReport.addressrequired | string | Where the auditor is established (s495(4)(d)). |
inputs.full | object (AccountsFullFacts) | FRS102_FULL only. |
inputs.full.presentation | object (AccountsFullPresentation) | How the statements are laid out. SI 2008/410 Sch 1 para 1; FRS 102 paras 3.18, 3.22, 5.2. |
inputs.full.presentation.plFormatrequired | string (AccountsPlFormat) | One of: |
inputs.full.presentation.comprehensiveIncomerequired | string (AccountsComprehensiveIncomeLayout) | One of: |
inputs.full.presentation.combinedRetainedEarnings | boolean | |
inputs.full.presentation.wordingrequired | string (AccountsStatementWording) | One of: |
inputs.full.presentation.formatChangeReason | string | |
inputs.full.qualifiedLastYear | string (AccountsCompanySize)nullable | How it qualified last year (CA 2006 s465(2)). Null for a first financial year. One of: |
inputs.full.groupFigures | object (AccountsGroupFigures)nullable | A parent’s size test (CA 2006 ss383, 466). |
inputs.full.groupFigures.basisrequired | string (AccountsGroupBasis) | One of: |
inputs.full.groupFigures.turnoverrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.groupFigures.balanceSheetTotalrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.groupFigures.employeesrequired | array of integer | [this year, last year], whole numbers. 2 to 2 items |
inputs.full.groupAccountsExemption | string | |
inputs.full.strategicReport | object (AccountsStrategicReport)nullable | CA 2006 ss414A to 414D. A person’s words. |
inputs.full.strategicReport.fairReview | string | |
inputs.full.strategicReport.principalRisks | string | |
inputs.full.strategicReport.financialKpis | stringnullable | |
inputs.full.strategicReport.nonFinancialInformation | stringnullable | |
inputs.full.strategicReport.section172Statement | string | |
inputs.full.strategicReport.nonFinancialSustainabilityStatement | stringnullable | |
inputs.full.recommendedDividend | stringnullable | |
inputs.full.movedToStrategicReport | stringnullable | |
inputs.full.energyAndCarbon | stringnullable | |
inputs.full.corporateGovernance | stringnullable | |
inputs.full.paymentPractices | stringnullable | |
inputs.full.earlierDirectorsReportMatters | stringnullable | |
inputs.full.judgements | stringnullable | |
inputs.full.estimationUncertainty | stringnullable | |
inputs.full.furtherPolicies | stringnullable | |
inputs.full.auditorRemuneration | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.employeeCategories | array of AccountsEmployeeCategory | |
inputs.full.employeeCategories[].labelrequired | string | |
inputs.full.employeeCategories[].valuesrequired | array of integer | [this year, last year], whole numbers. 2 to 2 items |
inputs.full.staffCosts | object (AccountsStaffCosts) | CA 2006 s411(5). |
inputs.full.staffCosts.wagesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.staffCosts.socialSecurityrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.staffCosts.pensionrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.directorsRemuneration | object (AccountsDirectorsRemuneration) | SI 2008/410 Sch 5. |
inputs.full.directorsRemuneration.remunerationrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.directorsRemuneration.longTermIncentivesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.directorsRemuneration.pensionContributionsrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.directorsRemuneration.moneyPurchaseDirectorsrequired | array of integer | [this year, last year], whole numbers. 2 to 2 items |
inputs.full.directorsRemuneration.definedBenefitDirectorsrequired | array of integer | [this year, last year], whole numbers. 2 to 2 items |
inputs.full.directorsRemuneration.exercisedOptionsDirectors | array of integer | [this year, last year], whole numbers. 2 to 2 items |
inputs.full.directorsRemuneration.longTermSharesDirectors | array of integer | [this year, last year], whole numbers. 2 to 2 items |
inputs.full.directorsRemuneration.highestPaid | object (AccountsHighestPaidDirector) | SI 2008/410 Sch 5 para 2. |
inputs.full.directorsRemuneration.highestPaid.remunerationrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.directorsRemuneration.highestPaid.pensionContributionsrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.directorsRemuneration.highestPaid.accruedPension | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.directorsRemuneration.highestPaid.accruedLumpSum | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.directorsRemuneration.highestPaid.exercisedOptions | boolean | |
inputs.full.directorsRemuneration.highestPaid.receivedLongTermShares | boolean | |
inputs.full.directorsRemuneration.excessRetirementBenefits | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.directorsRemuneration.lossOfOffice | object (AccountsAmountWithNature) | |
inputs.full.directorsRemuneration.lossOfOffice.valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.directorsRemuneration.lossOfOffice.naturerequired | string | |
inputs.full.directorsRemuneration.thirdParties | object (AccountsAmountWithNature) | |
inputs.full.directorsRemuneration.thirdParties.valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.directorsRemuneration.thirdParties.naturerequired | string | |
inputs.full.keyManagementCompensation | array of integernullable | [this year, last year], integer pence. 2 to 2 items |
inputs.full.taxReconciliation | object (AccountsTaxReconciliation) | FRS 102 para 29.27(b). The rate is in basis points: 25% is 2500. |
inputs.full.taxReconciliation.rateBasisPointsrequired | array of integer | Basis points, [this year, last year]. 2 to 2 items |
inputs.full.taxReconciliation.rateChangeExplanation | stringnullable | |
inputs.full.taxReconciliation.itemsrequired | array of AccountsAnalysisRow | |
inputs.full.taxReconciliation.items[].labelrequired | string | |
inputs.full.taxReconciliation.items[].valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.taxSpecialCircumstances | stringnullable | |
inputs.full.deferredTaxExpectedReversal | stringnullable | |
inputs.full.deferredTaxOther | stringnullable | |
inputs.full.dividendsProposed | array of integernullable | [this year, last year], integer pence. 2 to 2 items |
inputs.full.valuations | stringnullable | |
inputs.full.materialIntangibles | stringnullable | |
inputs.full.researchAndDevelopment | array of integernullable | [this year, last year], integer pence. 2 to 2 items |
inputs.full.capitalCommitments | array of integernullable | [this year, last year], integer pence. 2 to 2 items |
inputs.full.assetsPledged | stringnullable | |
inputs.full.stocksInformation | stringnullable | |
inputs.full.debtorsAfterOneYear | array of integernullable | [this year, last year], integer pence. 2 to 2 items |
inputs.full.longTermDebtTerms | stringnullable | |
inputs.full.financialInstruments | stringnullable | |
inputs.full.shareRights | string | |
inputs.full.landAndBuildings | object (AccountsLandAndBuildings)nullable | SI 2008/410 Sch 1 para 53. |
inputs.full.landAndBuildings.freeholdrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.landAndBuildings.longLeaseholdrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.landAndBuildings.shortLeaseholdrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.listedInvestments | object (AccountsListedInvestments)nullable | SI 2008/410 Sch 1 para 54. |
inputs.full.listedInvestments.carryingrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.listedInvestments.marketValuerequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.leases | object (AccountsLeases)nullable | FRS 102 paras 20.76 to 20.82. |
inputs.full.leases.descriptionrequired | string | |
inputs.full.leases.shortTermExpense | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.leases.lowValueExpense | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.leases.variableExpense | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.leases.interestExpense | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.leases.subleaseIncome | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.leases.totalCashOutflow | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.leases.commitmentsWithinOneYear | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.leases.commitmentsOneToFiveYears | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.leases.commitmentsAfterFiveYears | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.pensions | object (AccountsPensions)nullable | FRS 102 paras 28.40, 28.41. |
inputs.full.pensions.definedContributionExpenserequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.full.pensions.definedBenefit | string | |
inputs.full.contingencies | stringnullable | |
inputs.full.controllingParty | object (AccountsControllingParty)nullable | FRS 102 para 33.5; SI 2008/410 Sch 4 paras 8, 9. |
inputs.full.controllingParty.immediateParent | string | |
inputs.full.controllingParty.ultimateParent | string | |
inputs.full.controllingParty.ultimateControllingParty | string | |
inputs.full.controllingParty.nextSeniorParent | string | |
inputs.full.controllingParty.largestGroup | string | |
inputs.full.controllingParty.smallestGroup | string | |
inputs.full.relatedUndertakings | array of AccountsRelatedUndertakingnullable | |
inputs.full.relatedUndertakings[].namerequired | string | |
inputs.full.relatedUndertakings[].registeredOfficerequired | string | |
inputs.full.relatedUndertakings[].relationshiprequired | string (AccountsUndertakingRelationship) | One of: |
inputs.full.relatedUndertakings[].shareClassrequired | string | |
inputs.full.relatedUndertakings[].proportionHeldrequired | string | |
inputs.full.relatedUndertakings[].capitalAndReserves | integer | Integer pence (GBP). |
inputs.full.relatedUndertakings[].profitOrLoss | integer | Integer pence (GBP). |
inputs.full.reducedDisclosure | object (AccountsReducedDisclosure)nullable | FRS 102 paras 1.8 to 1.12. |
inputs.full.reducedDisclosure.parentNamerequired | string | |
inputs.full.reducedDisclosure.whereObtainablerequired | string | |
inputs.full.reducedDisclosure.cashFlowExemptrequired | boolean | |
inputs.full.reducedDisclosure.financialInstrumentsExempt | boolean | |
inputs.full.reducedDisclosure.keyManagementExempt | boolean | |
inputs.full.reducedDisclosure.financialInstitution | boolean | |
inputs.full.reducedDisclosure.summary | string | |
inputs.full.sorp | stringnullable | |
inputs.llp | object (AccountsLlpFacts) | An LLP only. |
inputs.llp.remunerationPolicy | string | |
inputs.llp.drawingsPolicy | string | |
inputs.llp.rankingAndRestrictions | string | |
inputs.llp.movements | array of AccountsMembersMovementnullable | |
inputs.llp.movements[].labelrequired | string | |
inputs.llp.movements[].kindrequired | string (AccountsMembersMovementKind) | One of: |
inputs.llp.movements[].componentrequired | string (AccountsMembersInterest) | One of: |
inputs.llp.movements[].valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.llp.debtsDueAfterOneYear | array of integernullable | [this year, last year], integer pence. 2 to 2 items |
inputs.llp.averageMembers | object (AccountsEmployees) | SI 2008/1913 Sch 1 para 66(1), (2). |
inputs.llp.averageMembers.thisYearrequired | integer | at least 0 |
inputs.llp.averageMembers.lastYearrequired | integernullable | at least 0 |
inputs.llp.largestEntitlement | array of integernullable | [this year, last year], integer pence. 2 to 2 items |
inputs.llp.largestEntitlementPolicy | string | |
inputs.nonStatutory | object (AccountsNonStatutoryFacts) | A sole trader or partnership only. |
inputs.nonStatutory.accountantsReport | object (AccountsAccountantsReport)nullable | The firm’s own words, as supplied. Tolvi prints them and has none of its own. |
inputs.nonStatutory.accountantsReport.textrequired | string | |
inputs.nonStatutory.accountantsReport.firmNamerequired | string | |
inputs.nonStatutory.accountantsReport.address | string | |
inputs.nonStatutory.accountantsReport.reportDate | string (date) | example "2026-03-31" |
inputs.nonStatutory.capitalIntroduced | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.nonStatutory.partners | array of AccountsPartner | |
inputs.nonStatutory.partners[].namerequired | string | |
inputs.nonStatutory.partners[].shareWeightrequired | integer | Profit-sharing weight, such as 50, 30, 20. at least 0 |
inputs.nonStatutory.partners[].salary | integer | Integer pence (GBP). |
inputs.nonStatutory.partners[].interestOnCapital | integer | Integer pence (GBP). |
inputs.nonStatutory.partners[].capitalOpeningrequired | integer | Integer pence (GBP). |
inputs.nonStatutory.partners[].capitalIntroduced | integer | Integer pence (GBP). |
inputs.nonStatutory.partners[].capitalWithdrawn | integer | Integer pence (GBP). |
inputs.nonStatutory.partners[].currentOpeningrequired | integer | Integer pence (GBP). |
inputs.nonStatutory.partners[].drawingsrequired | integer | Integer pence (GBP). |
inputs.nonStatutory.qualifyingPartnership | boolean | SI 2008/569. A blocker: that form isn’t built. |
inputs.charity | object (AccountsCharityFacts) | A charity only. |
inputs.charity.form | string (AccountsCharityForm) | One of: |
inputs.charity.jurisdiction | string (AccountsCharityJurisdiction) | One of: |
inputs.charity.alsoRegisteredIn | array of string | A cross-border charity’s other regulators. |
inputs.charity.charityNumber | stringnullable | |
inputs.charity.otherCharityNumbers | string | |
inputs.charity.report | object | Answers for the trustees’ annual report, by the question ids in |
inputs.charity.presentation | string (AccountsCharityPresentation) | Natural classification is for tier 1 only (SORP para 4.2). One of: |
inputs.charity.funds | array of AccountsCharityFund | |
inputs.charity.funds[].fundClassrequired | string (AccountsFundClass) | One of: |
inputs.charity.funds[].namerequired | string | |
inputs.charity.funds[].purpose | string | |
inputs.charity.funds[].endowmentKind | string (AccountsEndowmentKind) | One of: |
inputs.charity.funds[].legalPower | string | |
inputs.charity.lineMap | array of AccountsCharityLineMapping | |
inputs.charity.lineMap[].accountrequired | string | |
inputs.charity.lineMap[].statementLine | string | |
inputs.charity.lineMap[].fundClass | string (AccountsFundClass) | One of: |
inputs.charity.lineMap[].fundName | string | |
inputs.charity.auditRequiredOtherwise | boolean | |
inputs.charity.scrutinyDispensation | stringnullable | |
inputs.charity.examinersReport | object (AccountsExaminersReport) | The examiner’s own report, as supplied, with what the regulations say it states. Tolvi doesn’t write it. |
inputs.charity.examinersReport.textrequired | string | |
inputs.charity.examinersReport.examinerNamerequired | string | |
inputs.charity.examinersReport.addressrequired | string | |
inputs.charity.examinersReport.qualification | string | |
inputs.charity.examinersReport.qualifyingBasis | string | |
inputs.charity.examinersReport.reportDaterequired | string (date) | example "2026-03-31" |
inputs.charity.isParent | boolean | |
inputs.charity.groupGrossIncome | integer | Integer pence (GBP). |
inputs.charity.averageHeadcount | object (AccountsEmployees) | Average persons employed (CA 2006 s411). |
inputs.charity.averageHeadcount.thisYearrequired | integer | at least 0 |
inputs.charity.averageHeadcount.lastYearrequired | integernullable | at least 0 |
inputs.charity.staffCosts | object (AccountsCharityStaffCosts) | SORP para 9.28. |
inputs.charity.staffCosts.wagesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.charity.staffCosts.socialSecurityrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.charity.staffCosts.definedContributionrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.charity.staffCosts.definedBenefit | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.charity.staffCosts.otherBenefits | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.charity.redundancy | object (AccountsCharityRedundancy)nullable | SORP para 9.31. |
inputs.charity.redundancy.totalrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.charity.redundancy.naturerequired | string | |
inputs.charity.redundancy.policyrequired | string | |
inputs.charity.redundancy.liabilityrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.charity.highPaidBands | array of AccountsCharityPayBandnullable | |
inputs.charity.highPaidBands[].labelrequired | string | |
inputs.charity.highPaidBands[].valuesrequired | array of number | |
inputs.charity.trusteeRemuneration | array of AccountsTrusteeRemunerationnullable | |
inputs.charity.trusteeRemuneration[].namerequired | string | |
inputs.charity.trusteeRemuneration[].rolerequired | string | |
inputs.charity.trusteeRemuneration[].authorityrequired | string | |
inputs.charity.trusteeRemuneration[].reasonrequired | string | |
inputs.charity.trusteeRemuneration[].remunerationrequired | integer | Integer pence (GBP). |
inputs.charity.trusteeRemuneration[].pensionrequired | integer | Integer pence (GBP). |
inputs.charity.trusteeRemuneration[].otherBenefitsrequired | integer | Integer pence (GBP). |
inputs.charity.trusteeRemuneration[].periodCovered | string | |
inputs.charity.trusteeExpenses | object (AccountsCharityTrusteeExpenses)nullable | SORP paras 9.11, 9.12. |
inputs.charity.trusteeExpenses.totalrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.charity.trusteeExpenses.naturerequired | string | |
inputs.charity.trusteeExpenses.trusteesrequired | array of number | |
inputs.charity.keyManagementBenefits | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.charity.relatedPartyDonations | array of integernullable | [this year, last year], integer pence. 2 to 2 items |
inputs.charity.scrutinyFees | object (AccountsCharityScrutinyFees) | SORP para 9.25. |
inputs.charity.scrutinyFees.scrutinyrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.charity.scrutinyFees.assurance | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.charity.scrutinyFees.tax | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.charity.scrutinyFees.other | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.charity.exGratia | stringnullable | |
inputs.charity.grants | object (AccountsCharityGrants)nullable | SORP paras 16.14 to 16.16. |
inputs.charity.grants.individualsrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.charity.grants.institutionsrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.charity.grants.supportCosts | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.charity.grants.byActivity | array of AccountsAnalysisRow | |
inputs.charity.grants.byActivity[].labelrequired | string | |
inputs.charity.grants.byActivity[].valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.charity.grants.recipients | string | |
inputs.charity.judgements | stringnullable | |
inputs.charity.furtherPolicies | stringnullable | |
inputs.charity.reservesNotFree | array of AccountsAnalysisRownullable | |
inputs.charity.reservesNotFree[].labelrequired | string | |
inputs.charity.reservesNotFree[].valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.charity.revaluationReserve | array of integernullable | [this year, last year], integer pence. 2 to 2 items |
inputs.charity.receiptsAndPayments | object (AccountsReceiptsPaymentsFacts) | What a cash account can’t say: SSI 2006/218 Sch 3, and the Commission’s guidance for CIOs. Null: none. |
inputs.charity.receiptsAndPayments.otherMonetaryAssets | array of AccountsAnalysisRownullable | |
inputs.charity.receiptsAndPayments.otherMonetaryAssets[].labelrequired | string | |
inputs.charity.receiptsAndPayments.otherMonetaryAssets[].valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.charity.receiptsAndPayments.investments | array of AccountsAnalysisRownullable | |
inputs.charity.receiptsAndPayments.investments[].labelrequired | string | |
inputs.charity.receiptsAndPayments.investments[].valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.charity.receiptsAndPayments.ownUseAssets | array of AccountsAnalysisRownullable | |
inputs.charity.receiptsAndPayments.ownUseAssets[].labelrequired | string | |
inputs.charity.receiptsAndPayments.ownUseAssets[].valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.charity.receiptsAndPayments.liabilities | array of AccountsAnalysisRownullable | |
inputs.charity.receiptsAndPayments.liabilities[].labelrequired | string | |
inputs.charity.receiptsAndPayments.liabilities[].valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
inputs.charity.receiptsAndPayments.contingentLiabilities | stringnullable | |
inputs.charity.receiptsAndPayments.guarantees | stringnullable | |
inputs.charity.receiptsAndPayments.chargedDebts | stringnullable | |
inputs.charity.receiptsAndPayments.donatedFacilities | stringnullable | |
inputs.charity.receiptsAndPayments.grantsPaid | stringnullable | |
analyses | object (AccountsAnalyses) | What supports the balance sheet lines, for FRS 102 1A notes. FRS 105 has no such notes, so they are ignored there. On a linked set with a fixed asset register, the movements come from the file. |
analyses.fixedAssets | array of AccountsFixedAssetClassnullable | |
analyses.fixedAssets[].namerequired | string | |
analyses.fixedAssets[].kind | string (AccountsFixedAssetKind) | One of: |
analyses.fixedAssets[].costOpeningrequired | integer | Integer pence (GBP). |
analyses.fixedAssets[].additionsrequired | integer | Integer pence (GBP). |
analyses.fixedAssets[].disposalsrequired | integer | Integer pence (GBP). |
analyses.fixedAssets[].revaluation | integer | Integer pence (GBP). |
analyses.fixedAssets[].transfers | integer | Integer pence (GBP). |
analyses.fixedAssets[].costClosingrequired | integer | Integer pence (GBP). |
analyses.fixedAssets[].depreciationOpeningrequired | integer | Integer pence (GBP). |
analyses.fixedAssets[].chargeForYearrequired | integer | Integer pence (GBP). |
analyses.fixedAssets[].onDisposalsrequired | integer | Integer pence (GBP). |
analyses.fixedAssets[].otherAdjustments | integer | Integer pence (GBP). |
analyses.fixedAssets[].depreciationClosingrequired | integer | Integer pence (GBP). |
analyses.debtors | array of AccountsAnalysisRownullable | |
analyses.debtors[].labelrequired | string | |
analyses.debtors[].valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
analyses.creditorsWithinOneYear | array of AccountsAnalysisRownullable | |
analyses.creditorsWithinOneYear[].labelrequired | string | |
analyses.creditorsWithinOneYear[].valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
analyses.creditorsAfterOneYear | array of AccountsAnalysisRownullable | |
analyses.creditorsAfterOneYear[].labelrequired | string | |
analyses.creditorsAfterOneYear[].valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
analyses.amountsAfterFiveYears | array of integernullable | [this year, last year], integer pence. 2 to 2 items |
analyses.securedCreditors | array of AccountsSecuredCreditorsnullable | |
analyses.securedCreditors[].itemrequired | string (AccountsSecuredItem) | One of: |
analyses.securedCreditors[].valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
analyses.securedCreditors[].securityrequired | string | |
analyses.full | object (AccountsFullAnalyses) | FRS102_FULL only. |
analyses.full.reclassifications | array of AccountsReclassificationnullable | |
analyses.full.reclassifications[].labelrequired | string | |
analyses.full.reclassifications[].fromrequired | string | A statement line id. |
analyses.full.reclassifications[].torequired | string | A statement line id. |
analyses.full.reclassifications[].valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
analyses.full.equityMovements | array of AccountsEquityMovementnullable | |
analyses.full.equityMovements[].labelrequired | string | |
analyses.full.equityMovements[].kindrequired | string (AccountsEquityMovementKind) | One of: |
analyses.full.equityMovements[].componentrequired | string (AccountsEquityComponent) | One of: |
analyses.full.equityMovements[].valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
analyses.full.cashFlow | object (AccountsCashFlowFacts) | What two balance sheets can’t say (FRS 102 Section 7). Closing balances are positive, whether they sit in creditors or debtors. |
analyses.full.cashFlow.overdraftsAreCash | boolean | |
analyses.full.cashFlow.cashEquivalents | array of integernullable | [this year, last year], integer pence. 2 to 2 items |
analyses.full.cashFlow.interestPaid | string (AccountsInterestPaidClass) | One of: |
analyses.full.cashFlow.interestReceived | string (AccountsInterestReceivedClass) | One of: |
analyses.full.cashFlow.dividendsPaid | string (AccountsDividendsPaidClass) | One of: |
analyses.full.cashFlow.capitalCreditors | array of integer | [this year, last year], integer pence. 2 to 2 items |
analyses.full.cashFlow.dividendsPayable | array of integer | [this year, last year], integer pence. 2 to 2 items |
analyses.full.cashFlow.interestPayable | array of integer | [this year, last year], integer pence. 2 to 2 items |
analyses.full.cashFlow.interestReceivable | array of integer | [this year, last year], integer pence. 2 to 2 items |
analyses.full.cashFlow.newLeases | integer | Integer pence (GBP). |
analyses.full.cashFlow.borrowingsDrawn | integer | Integer pence (GBP). |
analyses.full.cashFlow.borrowingsRepaid | integer | Integer pence (GBP). |
analyses.full.cashFlow.exchangeOnCash | integer | Integer pence (GBP). |
analyses.full.cashFlow.debtNonCash | integer | Integer pence (GBP). |
analyses.full.cashFlow.debtMarketAndExchange | integer | Integer pence (GBP). |
analyses.full.cashFlow.restrictedCash | object (AccountsRestrictedCash)nullable | FRS 102 para 7.21. |
analyses.full.cashFlow.restrictedCash.amountrequired | integer | Integer pence (GBP). |
analyses.full.cashFlow.restrictedCash.commentaryrequired | string | |
analyses.full.cashFlow.nonCashTransactions | stringnullable | |
analyses.full.cashFlow.comparatives | object | Last year’s statement of cash flows, by row key, integer pence. Rolls from last year’s set. |
analyses.full.cashFlow.priorOpeningCash | integer | Integer pence (GBP). |
analyses.full.turnoverByClass | array of AccountsAnalysisRownullable | |
analyses.full.turnoverByClass[].labelrequired | string | |
analyses.full.turnoverByClass[].valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
analyses.full.turnoverByMarket | array of AccountsAnalysisRownullable | |
analyses.full.turnoverByMarket[].labelrequired | string | |
analyses.full.turnoverByMarket[].valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
analyses.full.turnoverAnalysisWithheld | boolean | |
analyses.full.priorCharges | object (AccountsPriorCharges) | Last year’s amortisation and depreciation, for the comparative in the operating profit note. |
analyses.full.priorCharges.amortisationrequired | integer | Integer pence (GBP). |
analyses.full.priorCharges.depreciationrequired | integer | Integer pence (GBP). |
analyses.full.operatingProfitItems | array of AccountsAnalysisRownullable | |
analyses.full.operatingProfitItems[].labelrequired | string | |
analyses.full.operatingProfitItems[].valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
analyses.full.interestReceivable | array of AccountsAnalysisRownullable | |
analyses.full.interestReceivable[].labelrequired | string | |
analyses.full.interestReceivable[].valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
analyses.full.interestPayable | array of AccountsAnalysisRownullable | |
analyses.full.interestPayable[].labelrequired | string | |
analyses.full.interestPayable[].valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
analyses.full.taxCharge | array of AccountsAnalysisRownullable | |
analyses.full.taxCharge[].labelrequired | string | |
analyses.full.taxCharge[].valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
analyses.full.stocks | array of AccountsAnalysisRownullable | |
analyses.full.stocks[].labelrequired | string | |
analyses.full.stocks[].valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
analyses.full.fairValueInstruments | array of AccountsAnalysisRownullable | |
analyses.full.fairValueInstruments[].labelrequired | string | |
analyses.full.fairValueInstruments[].valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
analyses.full.instrumentGainsAndLosses | array of AccountsAnalysisRownullable | |
analyses.full.instrumentGainsAndLosses[].labelrequired | string | |
analyses.full.instrumentGainsAndLosses[].valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
analyses.full.provisions | array of AccountsProvisionMovementnullable | |
analyses.full.provisions[].namerequired | string | |
analyses.full.provisions[].naturerequired | string | |
analyses.full.provisions[].openingrequired | integer | Integer pence (GBP). |
analyses.full.provisions[].additionsrequired | integer | Integer pence (GBP). |
analyses.full.provisions[].chargedrequired | integer | Integer pence (GBP). |
analyses.full.provisions[].reversedrequired | integer | Integer pence (GBP). |
analyses.full.provisions[].closingrequired | integer | Integer pence (GBP). |
analyses.full.deferredTax | array of AccountsAnalysisRownullable | |
analyses.full.deferredTax[].labelrequired | string | |
analyses.full.deferredTax[].valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
analyses.charity | object (AccountsCharityAnalyses) | A charity only. |
analyses.charity.fundMoves | array of AccountsCharityFundMovenullable | |
analyses.charity.fundMoves[].labelrequired | string | |
analyses.charity.fundMoves[].accountrequired | string | |
analyses.charity.fundMoves[].fromrequired | object (AccountsCharityFundRef) | |
analyses.charity.fundMoves[].from.fundClassrequired | string (AccountsFundClass) | One of: |
analyses.charity.fundMoves[].from.fundName | string | |
analyses.charity.fundMoves[].torequired | object (AccountsCharityFundRef) | |
analyses.charity.fundMoves[].to.fundClassrequired | string (AccountsFundClass) | One of: |
analyses.charity.fundMoves[].to.fundName | string | |
analyses.charity.fundMoves[].valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
analyses.charity.supportCosts | array of AccountsCharitySupportCostnullable | |
analyses.charity.supportCosts[].labelrequired | string | |
analyses.charity.supportCosts[].governance | boolean | |
analyses.charity.supportCosts[].basis | string | |
analyses.charity.supportCosts[].valuesrequired | array of integer | [this year, last year], integer pence. 2 to 2 items |
analyses.charity.cashFlow | object (AccountsCharityCashFlow) | What two balance sheets can’t say. SORP Table 11. Positive amounts, this year. |
analyses.charity.cashFlow.depreciation | integer | Integer pence (GBP). |
analyses.charity.cashFlow.purchasesOfFixedAssets | integer | Integer pence (GBP). |
analyses.charity.cashFlow.proceedsOfFixedAssets | integer | Integer pence (GBP). |
analyses.charity.cashFlow.profitOnSaleOfFixedAssets | integer | Integer pence (GBP). |
analyses.charity.cashFlow.purchasesOfInvestments | integer | Integer pence (GBP). |
analyses.charity.cashFlow.proceedsOfInvestments | integer | Integer pence (GBP). |
analyses.charity.cashFlow.newBorrowing | integer | Integer pence (GBP). |
analyses.charity.cashFlow.borrowingRepaid | integer | Integer pence (GBP). |
analyses.charity.cashFlow.comparatives | object | Last year’s statement, by row key. |
noteOverrides | object | Replacement wording by note id; paragraphs separated by a blank line. Tables always come from the figures. |
expectedFiguresHash | string | The |
revision | object (AccountsRevisionInput) | Revised accounts only. |
revision.nonCompliance | string | The respects in which the original accounts did not comply with the Companies Act 2006. up to 4000 characters |
revision.consequentialAmendments | stringnullable | Significant amendments made as a consequence. Null is none. up to 4000 characters |
Responses
200 OK, application/json
Body: object (AccountsSet).
A company’s accounts for one period end. Draft until people record the directors’ approval.
The fields are as shown above.
Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 404 Not found, 429 Too many requests, as problem details (application/problem+json).
List trial balance versions
GET/api/v1/accounts/{id}/trial-balance/versions
- Scopes
accounts:read
Every version, latest first. Versions never change. Part of the accounts product: the firm must have it and you must have access to it.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string (uuid) |
Responses
200 OK, application/json
Body: array of AccountsTbVersion.
A trial balance as it was. Versions never change.
| Field | Type | Description |
|---|---|---|
[].idrequired | string (uuid) | |
[].versionrequired | integer | |
[].sourcerequired | string (AccountsSource) | One of: |
[].sourceLabelrequired | stringnullable | |
[].createdByNamerequired | stringnullable | |
[].createdAtrequired | string (date-time) | |
[].linesrequired | array of AccountsTbLine | |
[].lines[].lineIdrequired | stringnullable | |
[].lines[].namerequired | string | |
[].lines[].finalPencerequired | integer | This year, final. Integer pence, debit positive. |
[].lines[].pyPencerequired | integer | Last year. Integer pence, debit positive. |
[].lines[].fundClass | string (AccountsFundClass) | One of: |
[].lines[].fundName | string | |
[].fixedAssetMovementsrequired | array of AccountsFixedAssetClassnullable | The file’s fixed asset movements as read. Null for a direct version. |
[].fixedAssetMovements[].namerequired | string | |
[].fixedAssetMovements[].kind | string (AccountsFixedAssetKind) | One of: |
[].fixedAssetMovements[].costOpeningrequired | integer | Integer pence (GBP). |
[].fixedAssetMovements[].additionsrequired | integer | Integer pence (GBP). |
[].fixedAssetMovements[].disposalsrequired | integer | Integer pence (GBP). |
[].fixedAssetMovements[].revaluation | integer | Integer pence (GBP). |
[].fixedAssetMovements[].transfers | integer | Integer pence (GBP). |
[].fixedAssetMovements[].costClosingrequired | integer | Integer pence (GBP). |
[].fixedAssetMovements[].depreciationOpeningrequired | integer | Integer pence (GBP). |
[].fixedAssetMovements[].chargeForYearrequired | integer | Integer pence (GBP). |
[].fixedAssetMovements[].onDisposalsrequired | integer | Integer pence (GBP). |
[].fixedAssetMovements[].otherAdjustments | integer | Integer pence (GBP). |
[].fixedAssetMovements[].depreciationClosingrequired | integer | Integer pence (GBP). |
[].sourceEngagementIdrequired | string (uuid)nullable |
Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 404 Not found, 429 Too many requests, as problem details (application/problem+json).
Add a trial balance version
POST/api/v1/accounts/{id}/trial-balance/versions
- Scopes
accounts:write- Role
- Preparer or above
A typed or imported trial balance becomes a new version, with the balance and statement line checks reported as problems. Refused on accounts linked to a Working Papers file.
Needs the Preparer role or above. Part of the accounts product: the firm must have it and you must have access to it.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string (uuid) |
Request body
Required. application/json: object (AccountsTbNewVersionRequest).
| Field | Type | Description |
|---|---|---|
linesrequired | array of AccountsTbLineInput | |
lines[].namerequired | string | |
lines[].statementLinerequired | string | A statement line id from |
lines[].thisYearPencerequired | integer | Integer pence. Debit positive, credit negative. |
lines[].lastYearPence | integer | Integer pence. Debit positive, credit negative. |
lines[].fundClass | string (AccountsFundClass) | Charities only (SORP module 2). Left out: the general fund. One of: |
lines[].fundName | string | The individual fund within its class. |
sourceLabel | string |
Responses
201 Created, application/json
Body: object (AccountsSet).
A company’s accounts for one period end. Draft until people record the directors’ approval.
The fields are as shown above.
Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 404 Not found, 429 Too many requests, as problem details (application/problem+json).
Read a trial balance file
POST/api/v1/accounts/{id}/trial-balance/preview
- Scopes
accounts:write- Role
- Preparer or above
Reads a CSV or spreadsheet the way Working Papers does and suggests a statement line for each account. Nothing is stored.
Needs the Preparer role or above. Part of the accounts product: the firm must have it and you must have access to it.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string (uuid) |
Request body
Required. application/json: object (AccountsTbPreviewRequest).
A spreadsheet or CSV to read. Nothing is stored.
| Field | Type | Description |
|---|---|---|
formatrequired | string (TbImportFormat) | One of: |
content | string | up to 2000000 characters |
sheet | object (TbSheet) | One worksheet read from a workbook (.xlsx/.xls) by the caller, e.g. SheetJS |
sheet.name | string | Worksheet name, used as the source label when there is no file name. up to 100 characters |
sheet.firstRow | integer | Spreadsheet row number of rows[0], for messages. Default 1. at least 1 |
sheet.rowsrequired | array of array of one of: string, number, boolean, null | The worksheet’s cells, row by row. up to 20000 items |
asAt | string (date) | example "2026-03-31" |
sourceLabel | string | |
columns | object (TbColumns) | Read these columns instead of detecting them. |
columns.headerRowrequired | integernullable | 1 to 1000000 |
columns.code | integer | 0 to 49 |
columns.name | integer | 0 to 49 |
columns.type | integer | Account type (asset, liability…), when the file has one. 0 to 49 |
columns.debit | integer | 0 to 49 |
columns.credit | integer | 0 to 49 |
columns.balance | integer | 0 to 49 |
columns.pyDebit | integer | 0 to 49 |
columns.pyCredit | integer | 0 to 49 |
columns.pyBalance | integer | 0 to 49 |
Responses
200 OK, application/json
Body: object (AccountsTbPreview).
What a file holds. Nothing is stored: choose the statement lines, then post the new version.
| Field | Type | Description |
|---|---|---|
linesrequired | array of AccountsTbPreviewLine | |
lines[].coderequired | string | |
lines[].namerequired | string | |
lines[].thisYearPencerequired | integer | Integer pence (GBP). |
lines[].lastYearPencerequired | integer | Integer pence (GBP). |
lines[].statementLinerequired | stringnullable | The statement line Tolvi suggests, from the client’s and the firm’s mappings. Null when nothing fits: a person chooses. |
warningsrequired | array of TbWarning | |
warnings[].coderequired | string | |
warnings[].messagerequired | string | |
problemsrequired | array of AccountsProblem | |
problems[].coderequired | string | Stable code. |
problems[].messagerequired | string | |
problems[].severityrequired | string (AccountsProblemSeverity) | A blocker stops approval. A warning needs a person to look. One of: |
problems[].noteId | string (AccountsNoteId) | One of: |
layoutrequired | object (TbColumns)nullable | Which row holds the column headings and which column holds each part of the trial balance. Columns are numbered from 0; headerRow is the 1-based line (CSV) or row (worksheet) number, null when there is no header row. This year needs Debit and Credit, or one signed Balance column (debit positive); the prior year is optional and read the same way. |
layout.headerRowrequired | integernullable | 1 to 1000000 |
layout.code | integer | 0 to 49 |
layout.name | integer | 0 to 49 |
layout.type | integer | Account type (asset, liability…), when the file has one. 0 to 49 |
layout.debit | integer | 0 to 49 |
layout.credit | integer | 0 to 49 |
layout.balance | integer | 0 to 49 |
layout.pyDebit | integer | 0 to 49 |
layout.pyCredit | integer | 0 to 49 |
layout.pyBalance | integer | 0 to 49 |
Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 404 Not found, 429 Too many requests, as problem details (application/problem+json).
Link to a Working Papers file
POST/api/v1/accounts/{id}/link
- Scopes
accounts:write- Role
- Preparer or above
Takes the final trial balance and fixed asset movements of an engagement of the same client and year end as a new version. The file need not be approved yet: if it isn’t, problems says so. Needs Working Papers and engagements:read.
Needs the Preparer role or above. Part of the accounts product: the firm must have it and you must have access to it.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string (uuid) |
Request body
Required. application/json: object (LinkAccountsSetRequest).
| Field | Type | Description |
|---|---|---|
engagementIdrequired | string (uuid) | A Working Papers engagement of the same client, with the same year end. |
Responses
200 OK, application/json
Body: object (AccountsSet).
A company’s accounts for one period end. Draft until people record the directors’ approval.
The fields are as shown above.
Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 404 Not found, 429 Too many requests, as problem details (application/problem+json).
Bring in the file’s latest figures
POST/api/v1/accounts/{id}/refresh
- Scopes
accounts:write- Role
- Preparer or above
A new version from the linked Working Papers file. Figures that change take approved accounts back to draft. Nothing happens if they already match.
Needs the Preparer role or above. Part of the accounts product: the firm must have it and you must have access to it.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string (uuid) |
Responses
200 OK, application/json
Body: object (AccountsSet).
A company’s accounts for one period end. Draft until people record the directors’ approval.
The fields are as shown above.
Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 404 Not found, 429 Too many requests, as problem details (application/problem+json).
Start next year’s accounts
POST/api/v1/accounts/{id}/roll-forward
- Scopes
accounts:write- Role
- Preparer or above
A new set with the company, facts and note wording carried over, this year’s closing figures as comparatives, and the dates moved on. Link it to next year’s file, or enter its trial balance.
Needs the Preparer role or above. Part of the accounts product: the firm must have it and you must have access to it.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string (uuid) |
Request body
Required. application/json: object (RollForwardAccountsSetRequest).
| Field | Type | Description |
|---|---|---|
periodEnd | string (date) | Left out: twelve months on. example "2026-03-31" |
Responses
201 Created, application/json
Body: object (AccountsSet).
A company’s accounts for one period end. Draft until people record the directors’ approval.
The fields are as shown above.
Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 404 Not found, 429 Too many requests, as problem details (application/problem+json).
Send for review
POST/api/v1/accounts/{id}/send-for-review
- Scopes
accounts:write- Role
- Preparer or above
Preparers and above, from draft. Accounts are approved from here, and any real change takes them back to draft.
Needs the Preparer role or above. Part of the accounts product: the firm must have it and you must have access to it.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string (uuid) |
Request body
Required. application/json: object (SendAccountsForReviewRequest).
| Field | Type | Description |
|---|---|---|
note | string |
Responses
200 OK, application/json
Body: object (AccountsSet).
A company’s accounts for one period end. Draft until people record the directors’ approval.
The fields are as shown above.
Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 404 Not found, 429 Too many requests, as problem details (application/problem+json).
Record the directors’ approval
POST/api/v1/accounts/{id}/approve
- Scopes
accounts:write- Role
- Manager or above
- Access
- A signed-in Tolvi session only, never an API token.
Partners, signed in, or managers where the firm allows it (403 otherwise). Accounts must have been sent for review, and open review points refuse it with 409. Records the date the board approved the accounts and the director signing, for exactly the figures reviewed (figuresHash). Blocking problems refuse it with 409 and the list. Never available to API keys or connected assistants. This doesn’t file anything.
Needs the Manager role or above. Part of the accounts product: the firm must have it and you must have access to it.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string (uuid) |
Request body
Required. application/json: object (ApproveAccountsSetRequest).
| Field | Type | Description |
|---|---|---|
figuresHashrequired | string | The |
approvedOnrequired | string (date) | The date the board approved the accounts. example "2026-03-31" |
signatoryNamerequired | string | The director signing the balance sheet. |
Responses
200 OK, application/json
Body: object (AccountsSet).
A company’s accounts for one period end. Draft until people record the directors’ approval.
The fields are as shown above.
Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 404 Not found, 429 Too many requests, as problem details (application/problem+json).
Reopen accounts
POST/api/v1/accounts/{id}/reopen
- Scopes
accounts:write- Role
- Manager or above
- Access
- A signed-in Tolvi session only, never an API token.
Managers and partners, signed in, from review or approved. Back to draft, and any approval is gone. Never available to API keys or connected assistants.
Needs the Manager role or above. Part of the accounts product: the firm must have it and you must have access to it.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string (uuid) |
Request body
Required. application/json: object (ReopenAccountsSetRequest).
| Field | Type | Description |
|---|---|---|
note | string |
Responses
200 OK, application/json
Body: object (AccountsSet).
A company’s accounts for one period end. Draft until people record the directors’ approval.
The fields are as shown above.
Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 404 Not found, 429 Too many requests, as problem details (application/problem+json).
Start revised accounts
POST/api/v1/accounts/{id}/revise
- Scopes
accounts:write- Role
- Manager or above
- Retries
- Send an
Idempotency-Keyto make retries safe.
Managers and partners. A new set for the same year from approved accounts, for correcting what didn’t comply with the Companies Act 2006 (s454). The original is kept unchanged, and stays the statutory accounts until the revised accounts are approved. Refused with 409 for accounts not yet approved, or if a revision has already been started.
Needs the Manager role or above. Part of the accounts product: the firm must have it and you must have access to it.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string (uuid) | |
Idempotency-Key | header | string | A unique key (1-255 visible characters) to make retries safe. Replayed for 24 hours. 1 to 255 characters |
Request body
Required. application/json: object (ReviseAccountsSetRequest).
| Field | Type | Description |
|---|---|---|
nonCompliance | string | The respects in which the original accounts did not comply with the Companies Act 2006. up to 4000 characters |
consequentialAmendments | stringnullable | Significant amendments made as a consequence. Null is none. up to 4000 characters |
Responses
201 Created, application/json
Body: object (AccountsSet).
A company’s accounts for one period end. Draft until people record the directors’ approval.
The fields are as shown above.
Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 404 Not found, 409 Conflict, 422 Unprocessable content, 429 Too many requests, as problem details (application/problem+json).
Raise a review point
POST/api/v1/accounts/{id}/review-points
- Scopes
review:write- Role
- Reviewer or above
Reviewers and above. Open points stop the approval. Refused with 409 on approved accounts.
Needs the Reviewer role or above. Part of the accounts product: the firm must have it and you must have access to it.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string (uuid) |
Request body
Required. application/json: object (RaiseAccountsReviewPointRequest).
| Field | Type | Description |
|---|---|---|
textrequired | string | 1 to 2000 characters |
area | string | Which part of the accounts it’s about. up to 200 characters |
Responses
201 Created, application/json
Body: object (AccountsSet).
A company’s accounts for one period end. Draft until people record the directors’ approval.
The fields are as shown above.
Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 404 Not found, 429 Too many requests, as problem details (application/problem+json).
Clear a review point
POST/api/v1/accounts/{id}/review-points/{pointId}/clear
- Scopes
review:write- Role
- Reviewer or above
Reviewers and above.
Needs the Reviewer role or above. Part of the accounts product: the firm must have it and you must have access to it.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string (uuid) | |
pointIdrequired | path | string (uuid) |
Responses
200 OK, application/json
Body: object (AccountsSet).
A company’s accounts for one period end. Draft until people record the directors’ approval.
The fields are as shown above.
Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 404 Not found, 429 Too many requests, as problem details (application/problem+json).
Draft a note’s wording with Tolvi AI
POST/api/v1/accounts/{id}/draft-note
- Scopes
accounts:write- Role
- Preparer or above
- Access
- A signed-in Tolvi session only, never an API token.
Preparers and above, signed in. Spends the firm’s Tolvi AI tokens, and the firm’s AI switch applies. Works only from the facts, without figures or names. It returns text for a person to check: nothing is stored or applied, and no figure can change. To accept it, save it through noteOverrides.
Needs the Preparer role or above. Part of the accounts product: the firm must have it and you must have access to it.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string (uuid) |
Request body
Required. application/json: object (DraftAccountsNoteRequest).
| Field | Type | Description |
|---|---|---|
noteIdrequired | string (AccountsNoteId) | One of: |
instructions | string | |
estimateOnly | boolean | Only say what it would cost. |
Responses
200 OK, application/json
Body: object (AccountsNoteDraft).
Wording for a person to check. Nothing is stored or applied: to accept it, save it through noteOverrides.
| Field | Type | Description |
|---|---|---|
noteIdrequired | string (AccountsNoteId) | One of: |
wordingrequired | stringnullable | Null with |
assumptionsrequired | array of string | |
warningsrequired | array of string | Things to fix before accepting it, such as an amount of money in the wording. |
tokensrequired | integer | |
affordablerequired | boolean | False when the estimate is more than the balance or the person’s limit allows. |
reasonrequired | stringnullable | |
modelrequired | stringnullable | |
promptVersionrequired | stringnullable |
Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 404 Not found, 429 Too many requests, as problem details (application/problem+json).
Download the accounts
GET/api/v1/accounts/{id}/pdf
- Scopes
accounts:read
The full version for members, or the filleted version prepared for Companies House, as a PDF. Every page says "Draft, not approved" until people have recorded the directors’ approval. This doesn’t file anything. Part of the accounts product: the firm must have it and you must have access to it.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string (uuid) | |
variant | query | string | Left out: full. One of: |
Responses
200 OK
A PDF.
Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 404 Not found, 429 Too many requests, as problem details (application/problem+json).
Export the accounts to Word
GET/api/v1/accounts/{id}/word
- Scopes
accounts:read
The accounts as a Word document, to read or send on. Every page says "Draft, not approved" until the directors’ approval is recorded. A change made in Word doesn’t come back to Tolvi, and Word isn’t a format to file. This doesn’t file anything. Part of the accounts product: the firm must have it and you must have access to it.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string (uuid) | |
variant | query | string | Left out: full. One of: |
Responses
200 OK
A Word document.
Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 404 Not found, 429 Too many requests, as problem details (application/problem+json).
Download the iXBRL accounts
GET/api/v1/accounts/{id}/ixbrl
- Scopes
accounts:read
The accounts tagged to the FRC taxonomy. A draft still downloads, to see what would be tagged, and its file name says draft. What stops a file being filed is in ixbrl on the set. Neither Companies House nor HMRC has checked these files. This doesn’t file anything. Part of the accounts product: the firm must have it and you must have access to it.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string (uuid) | |
variant | query | string | Left out: full. One of: |
Responses
200 OK
iXBRL.
Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 404 Not found, 429 Too many requests, as problem details (application/problem+json).
File with Companies House
POST/api/v1/accounts/{id}/companies-house/submit
- Scopes
accounts:write- Role
- Manager or above
- Access
- A signed-in Tolvi session only, never an API token.
- Retries
- Send an
Idempotency-Keyto make retries safe.
A manager or partner, signed in with a second factor, once the accounts are approved and nothing Tolvi can check stops the tagged file. Answers 503 while filing is switched off, which it is until Companies House’s test service has been passed. Companies House has not reviewed or accepted this route. Never available to API keys or connected assistants.
Needs the Manager role or above. Part of the accounts product: the firm must have it and you must have access to it.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string (uuid) | |
Idempotency-Key | header | string | A unique key (1-255 visible characters) to make retries safe. Replayed for 24 hours. 1 to 255 characters |
Request body
Required. application/json: object (SubmitAccountsToCompaniesHouseRequest).
| Field | Type | Description |
|---|---|---|
figuresHashrequired | string | The |
variantrequired | string (AccountsVariant) |
One of: |
presenterAccountIdrequired | string (uuid) | |
companyAuthenticationCoderequired | string | The company’s authentication code. Used for this message only and not stored. 6 to 8 characters |
Responses
200 OK, application/json
Body: object (AccountsSet).
A company’s accounts for one period end. Draft until people record the directors’ approval.
The fields are as shown above.
Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 404 Not found, 409 Conflict, 422 Unprocessable content, 429 Too many requests, as problem details (application/problem+json).
Ask Companies House for its answer
POST/api/v1/accounts/{id}/companies-house/submissions/{submissionId}/poll
- Scopes
accounts:read
While Companies House is checking accounts. Tolvi also asks by itself. Part of the accounts product: the firm must have it and you must have access to it.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string (uuid) | |
submissionIdrequired | path | string (uuid) |
Responses
200 OK, application/json
Body: object (AccountsSet).
A company’s accounts for one period end. Draft until people record the directors’ approval.
The fields are as shown above.
Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 404 Not found, 429 Too many requests, as problem details (application/problem+json).
List Companies House presenters
GET/api/v1/companies-house/presenters
- Scopes
accounts:read
Names and status only: saved details are never returned. Part of the accounts product: the firm must have it and you must have access to it.
Responses
200 OK, application/json
Body: object (ChPresenterList).
| Field | Type | Description |
|---|---|---|
itemsrequired | array of ChPresenter | |
items[].idrequired | string (uuid) | |
items[].namerequired | string | |
items[].credentialStatusrequired | string (ChCredentialStatus) | One of: |
items[].presenterHintrequired | stringnullable | |
items[].lastUsedAtrequired | string (date-time)nullable | |
canStoreCredentialsrequired | boolean | Whether presenter details can be stored on this Tolvi. |
Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 429 Too many requests, as problem details (application/problem+json).
Add a Companies House presenter
POST/api/v1/companies-house/presenters
- Scopes
settings:admin- Access
- A signed-in Tolvi session only, never an API token.
Firm admins, signed in. Name it so people can tell them apart. Part of the accounts product: the firm must have it and you must have access to it.
Request body
Required. application/json: object (CreateChPresenterRequest).
| Field | Type | Description |
|---|---|---|
namerequired | string | 1 to 80 characters; example "Leeds office" |
Responses
201 Created, application/json
Body: object (ChPresenter).
| Field | Type | Description |
|---|---|---|
idrequired | string (uuid) | |
namerequired | string | |
credentialStatusrequired | string (ChCredentialStatus) | One of: |
presenterHintrequired | stringnullable | |
lastUsedAtrequired | string (date-time)nullable |
Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 429 Too many requests, as problem details (application/problem+json).
Remove a Companies House presenter
DELETE/api/v1/companies-house/presenters/{presenterId}
- Scopes
settings:admin- Access
- A signed-in Tolvi session only, never an API token.
Firm admins, signed in. Its details are deleted at once. Part of the accounts product: the firm must have it and you must have access to it.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
presenterIdrequired | path | string (uuid) |
Responses
204 No content
Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 404 Not found, 429 Too many requests, as problem details (application/problem+json).
Save the presenter details
PUT/api/v1/companies-house/presenters/{presenterId}/credentials
- Scopes
settings:admin- Access
- A signed-in Tolvi session only, never an API token.
Firm admins, signed in. Encrypted, used only when someone allowed to file files accounts, and never shown again. Part of the accounts product: the firm must have it and you must have access to it.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
presenterIdrequired | path | string (uuid) |
Request body
Required. application/json: object (SaveChCredentialsRequest).
| Field | Type | Description |
|---|---|---|
presenterIdrequired | string | 1 to 100 characters |
authenticationCoderequired | string | 1 to 200 characters |
Responses
200 OK, application/json
Body: object (ChPresenter).
| Field | Type | Description |
|---|---|---|
idrequired | string (uuid) | |
namerequired | string | |
credentialStatusrequired | string (ChCredentialStatus) | One of: |
presenterHintrequired | stringnullable | |
lastUsedAtrequired | string (date-time)nullable |
Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 404 Not found, 429 Too many requests, as problem details (application/problem+json).
Delete the saved details
DELETE/api/v1/companies-house/presenters/{presenterId}/credentials
- Scopes
settings:admin- Access
- A signed-in Tolvi session only, never an API token.
Firm admins, signed in. Part of the accounts product: the firm must have it and you must have access to it.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
presenterIdrequired | path | string (uuid) |
Responses
200 OK, application/json
Body: object (ChPresenter).
| Field | Type | Description |
|---|---|---|
idrequired | string (uuid) | |
namerequired | string | |
credentialStatusrequired | string (ChCredentialStatus) | One of: |
presenterHintrequired | stringnullable | |
lastUsedAtrequired | string (date-time)nullable |
Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 404 Not found, 429 Too many requests, as problem details (application/problem+json).