Tax
6 operations in the Tolvi API, version 1. Paths are relative to https://api.tolvi.co.uk. Every amount is integer pence.
Get the corporation tax computation
GET/api/v1/engagements/{id}/tax
- Scopes
engagements:read
From the final TB via @tolvi/tax-engine, with deferred tax on fixed assets. Part of the working_papers product: the firm must have it and you must have access to it.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string (uuid) | Engagement id. |
Responses
200 OK, application/json
Body: object (TaxComputation).
| Field | Type | Description |
|---|---|---|
appliesrequired | boolean | Corporation tax applies (companies only). |
errorrequired | stringnullable | |
inputsrequired | object (TaxInputs) | Tax inputs the TB cannot give. Capital allowances are not among them: they come from the fixed asset register (C). |
inputs.associatedCompaniesrequired | integer | 0 to 1000 |
inputs.aiaPencerequired | integernullable | Integer pence (GBP). Deprecated: capital allowances come from the fixed asset register (section C, /fixed-assets). Echoes the register’s figure. AIA claimed. deprecated |
inputs.mainPoolBfPencerequired | integer | Integer pence (GBP). Deprecated: capital allowances come from the fixed asset register (section C, /fixed-assets). Echoes the register’s figure. Main pool WDV b/f. at least 0; deprecated |
inputs.specialRatePoolBfPencerequired | integer | Integer pence (GBP). Deprecated: capital allowances come from the fixed asset register (section C, /fixed-assets). Echoes the register’s figure. Special rate pool WDV b/f. at least 0; deprecated |
inputs.disposalProceedsPencerequired | integer | Integer pence (GBP). Deprecated: capital allowances come from the fixed asset register (section C, /fixed-assets). Echoes the register’s figure. Disposal values deducted from the pools. at least 0; deprecated |
inputs.otherAdjustmentsrequired | array of TaxAdjustmentInput | up to 100 items |
inputs.otherAdjustments[].descriptionrequired | string | up to 200 characters |
inputs.otherAdjustments[].amountPencerequired | integer | Integer pence (GBP). Positive adds back, negative deducts. |
inputs.lossesBroughtForward | object (LossesBroughtForward) | Last year’s losses carried forward (set by the roll forward). Absent: none. |
inputs.lossesBroughtForward.pre2017Pencerequired | integer | Integer pence (GBP). at least 0 |
inputs.lossesBroughtForward.post2017Pencerequired | integer | Integer pence (GBP). at least 0 |
profitBeforeTaxPencerequired | integer | Integer pence (GBP). |
adjustmentsrequired | array of TaxAdjustmentLine | |
adjustments[].descriptionrequired | string | |
adjustments[].amountPencerequired | integer | Integer pence (GBP). |
adjustments[].referencerequired | string | Legislation or HMRC manual reference. |
additionsPencerequired | integer | Integer pence (GBP). |
aiaPencerequired | integer | Integer pence (GBP). |
mainPoolPencerequired | integer | Integer pence (GBP). |
mainPoolWdaPencerequired | integer | Integer pence (GBP). |
specialRatePoolWdaPencerequired | integer | Integer pence (GBP). |
balancingChargePencerequired | integer | Integer pence (GBP). |
capitalAllowancesPencerequired | integer | Integer pence (GBP). Allowances before balancing charges, from the fixed asset register (C). |
fixedAssetRegisterrequired | boolean | Section C has a fixed asset register; without one no allowances are claimed. |
mainPoolBfPencerequired | integer | Integer pence (GBP). |
specialRatePoolBfPencerequired | integer | Integer pence (GBP). |
disposalValuesPencerequired | integer | Integer pence (GBP). |
firstYearAllowancesPencerequired | integer | Integer pence (GBP). Full expensing, special rate allowance and other first-year allowances. |
otherAllowancesPencerequired | integer | Integer pence (GBP). Single-asset pools, SBA and balancing allowances. |
mainPoolCfPencerequired | integer | Integer pence (GBP). |
specialRatePoolCfPencerequired | integer | Integer pence (GBP). |
lossesBfPencerequired | integer | Integer pence (GBP). Trading losses brought forward (both regimes). |
lossesUsedPencerequired | integer | Integer pence (GBP). Losses brought forward set against this year’s profits. |
lossesCfrequired | object (LossesBroughtForward) | Losses carried forward, including any trading loss of this year. |
lossesCf.pre2017Pencerequired | integer | Integer pence (GBP). at least 0 |
lossesCf.post2017Pencerequired | integer | Integer pence (GBP). at least 0 |
taxableProfitsPencerequired | integer | Whole pounds (floored), in pence. |
corporationTaxPencerequired | integer | Integer pence (GBP). |
marginalReliefPencerequired | integer | Integer pence (GBP). |
rateBandrequired | string | The rate band in plain words, e.g. "Main rate 25%" or "Marginal relief applies". |
chargeLabelrequired | string | The tax before marginal relief, e.g. "Corporation tax at 25% on £127,600". |
accountingPeriods | array of TaxAccountingPeriod | One per accounting period; the totals above add them up. |
accountingPeriods[].startrequired | string (date) | example "2026-03-31" |
accountingPeriods[].endrequired | string (date) | example "2026-03-31" |
accountingPeriods[].daysrequired | integer | |
accountingPeriods[].adjustedProfitPencerequired | integer | Integer pence (GBP). Adjusted trading profit before capital allowances, apportioned by days (CTA 2010 s1172). |
accountingPeriods[].capitalAllowancesPencerequired | integer | Integer pence (GBP). Capital allowances for this period, net of balancing charges (CAA 2001 s6). |
accountingPeriods[].lossesUsedPencerequired | integer | Integer pence (GBP). |
accountingPeriods[].taxableProfitsPencerequired | integer | Whole pounds (floored), in pence. |
accountingPeriods[].roundedDownPencerequired | integer | Integer pence (GBP). Taken off by rounding down to whole pounds in this period. |
accountingPeriods[].corporationTaxPencerequired | integer | Integer pence (GBP). |
accountingPeriods[].marginalReliefPencerequired | integer | Integer pence (GBP). |
accountingPeriods[].rateBandrequired | string | |
accountingPeriods[].chargeLabelrequired | string | |
accountingPeriods[].paymentDueDaterequired | string (date) | 9 months and 1 day after the accounting period ends (TMA 1970 s59D). example "2026-03-31" |
accountingPeriods[].ct600Referencerequired | string | Which CT600 this is, e.g. "CT600 1 of 2: 1 January 2025 to 31 December 2025". |
accountingPeriods[].ct600DueDaterequired | string (date) | FA 1998 Sch 18 para 14: set by the period of account, the same for each of its CT600s. example "2026-03-31" |
periodNote | stringnullable | Explains a period of account over 12 months: the split, the apportionment and the rounding per period. |
journalAccountsMappedrequired | boolean | A corporation tax charge and creditor are mapped in the TB, so the tax journal can be posted. |
chargePerTbPencerequired | integer | Integer pence (GBP). |
differencePencerequired | integer | Integer pence (GBP). Computation less TB: the tax journal to post. |
deferredrequired | object (DeferredTax) | |
deferred.appliesrequired | boolean | |
deferred.netBookValuePencerequired | integer | Integer pence (GBP). NBV of assets that attract allowances, per the register (C final per the TB when there is no register). |
deferred.taxWrittenDownValuePencerequired | integer | Integer pence (GBP). |
deferred.timingDifferencePencerequired | integer | Integer pence (GBP). |
deferred.permanentDifferencePencerequired | integer | Integer pence (GBP). NBV of assets that never attract allowances (FRS 102 s29.10): no deferred tax. |
deferred.linesrequired | array of DeferredTaxLine | NBV against tax WDV by pool, single-asset pool or SBA asset, from the register. |
deferred.lines[].descriptionrequired | string | |
deferred.lines[].netBookValuePencerequired | integer | Integer pence (GBP). |
deferred.lines[].taxWrittenDownValuePencerequired | integer | Integer pence (GBP). |
deferred.lines[].timingDifferencePencerequired | integer | Integer pence (GBP). |
deferred.rateBpsrequired | integer | |
deferred.provisionPencerequired | integer | Integer pence (GBP). Provision required (liability positive). |
deferred.openingPencerequired | integer | Integer pence (GBP). |
deferred.perTbPencerequired | integer | Integer pence (GBP). |
deferred.differencePencerequired | integer | Integer pence (GBP). Provision less TB: the deferred tax journal to post. |
deferred.journalAccountsMappedrequired | boolean | A deferred tax charge and provision are mapped in the TB, so the deferred tax journal can be posted. |
warningsrequired | array of string | |
lockedReasonrequired | stringnullable | Why a preparer cannot change the computation now (section T reviewed). |
inputsSetUp | boolean | The preparer has saved the inputs (PUT …/tax/inputs) at least once, so the computation is set up. |
Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 404 Not found, 429 Too many requests, as problem details (application/problem+json).
Set tax inputs (associated companies, other adjustments)
PUT/api/v1/engagements/{id}/tax/inputs
- Scopes
engagements:writeandengagements:read
Capital allowances and pools brought forward come from the fixed asset register (C); the old fields are ignored. Part of the working_papers product: the firm must have it and you must have access to it.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string (uuid) | Engagement id. |
Request body
Required. application/json: object (SetTaxInputs).
Capital allowances are set in the fixed asset register (C), not here.
| Field | Type | Description |
|---|---|---|
associatedCompaniesrequired | integer | 0 to 1000 |
otherAdjustmentsrequired | array of TaxAdjustmentInput | up to 100 items |
otherAdjustments[].descriptionrequired | string | up to 200 characters |
otherAdjustments[].amountPencerequired | integer | Integer pence (GBP). Positive adds back, negative deducts. |
lossesBroughtForward | object (LossesBroughtForward) | Trading losses brought forward. Omitted: unchanged (the roll forward sets them). |
lossesBroughtForward.pre2017Pencerequired | integer | Integer pence (GBP). at least 0 |
lossesBroughtForward.post2017Pencerequired | integer | Integer pence (GBP). at least 0 |
aiaPence | integernullable | Integer pence (GBP). Deprecated and ignored: set in the fixed asset register (C). deprecated |
mainPoolBfPence | integer | Integer pence (GBP). Deprecated and ignored: set in the fixed asset register settings (C). deprecated |
specialRatePoolBfPence | integer | Integer pence (GBP). Deprecated and ignored: set in the fixed asset register settings (C). deprecated |
disposalProceedsPence | integer | Integer pence (GBP). Deprecated and ignored: record disposals in the fixed asset register (C). deprecated |
Responses
Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 404 Not found, 429 Too many requests, as problem details (application/problem+json).
Preview the tax or deferred tax journal
POST/api/v1/engagements/{id}/tax/journals/preview
- Scopes
engagements:read
The journal that posting would make (lines, date and narrative), the earlier one it would replace, and what would change: sections whose content moves, sign-offs that go out of date and the headline figures. Nothing is saved. Read access is enough. Part of the working_papers product: the firm must have it and you must have access to it.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string (uuid) | Engagement id. |
Request body
Required. application/json: object (PreviewTaxJournal).
| Field | Type | Description |
|---|---|---|
kindrequired | string (TaxJournalKind) | One of: |
Responses
200 OK, application/json
Body: object (TaxJournalPreview).
The tax journal that posting would make, without posting it.
| Field | Type | Description |
|---|---|---|
kindrequired | string (TaxJournalKind) | One of: |
daterequired | string (date) | example "2026-03-31" |
narrativerequired | string | |
linesrequired | array of JournalLine | Empty when the TB already agrees with the computation. |
lines[].accountCoderequired | string | |
lines[].accountNamerequired | stringnullable | |
lines[].debitPencerequired | integer | Integer pence (GBP). |
lines[].creditPencerequired | integer | Integer pence (GBP). |
replacesRefrequired | stringnullable | The earlier journal of this kind that posting would replace. |
replacesAmountPencerequired | integernullable | Integer pence (GBP). The total debits of the journal replaced. |
impactrequired | object (JournalImpact) | What a journal change would do, worked out without saving anything. |
impact.sectionsrequired | array of SectionImpact | Sections whose content would change, in file order. |
impact.sections[].coderequired | string | |
impact.sections[].namerequired | string | |
impact.sections[].staleSignOffsrequired | array of StaleSignOff | Live sign-offs on the section that would go out of date. |
impact.sections[].staleSignOffs[].stageIdrequired | string | |
impact.sections[].staleSignOffs[].stageNamerequired | string | |
impact.sections[].staleSignOffs[].userIdrequired | string (uuid) | |
impact.figuresrequired | array of FigureChange | Headline figures that would move. |
impact.figures[].keyrequired | string (FigureKey) | One of: |
impact.figures[].labelrequired | string | |
impact.figures[].beforePencerequired | integer | Integer pence (GBP). |
impact.figures[].afterPencerequired | integer | Integer pence (GBP). |
blockedReasonrequired | stringnullable | Why the caller can’t post it now (T reviewed and the caller is a preparer); null when they can. |
Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 404 Not found, 429 Too many requests, as problem details (application/problem+json).
Post the tax or deferred tax journal
POST/api/v1/engagements/{id}/tax/journals
- Scopes
engagements:writeandengagements:read
Brings the TB into line with the computation. Preparers, reviewers, managers and partners can post it; the audit trail records who. Once T has a current review sign-off only a reviewer or above can (403 for a preparer). Part of the working_papers product: the firm must have it and you must have access to it.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string (uuid) | Engagement id. |
Request body
Required. application/json: object (PostTaxJournal).
| Field | Type | Description |
|---|---|---|
kindrequired | string (TaxJournalKind) | One of: |
replace | boolean | Replace an earlier tax journal of this kind (required when one exists). |
Responses
200 OK, application/json
Body: object (TaxJournalResult).
| Field | Type | Description |
|---|---|---|
journalrequired | object (Journal)nullable | Null when the TB already agrees. |
journal.idrequired | string (uuid) | |
journal.refrequired | string | example "JNL-03" |
journal.daterequired | string (date) | example "2026-03-31" |
journal.typerequired | string (JournalType) | One of: |
journal.statusrequired | string (JournalStatus) | One of: |
journal.narrativerequired | string | |
journal.autoKindrequired | string (JournalAutoKind)nullable | Posted by Tolvi from the tax computation (ct, deferred) or the fixed asset register (fixed_assets). One of: |
journal.linesrequired | array of JournalLine | |
journal.lines[].accountCoderequired | string | |
journal.lines[].accountNamerequired | stringnullable | |
journal.lines[].debitPencerequired | integer | Integer pence (GBP). |
journal.lines[].creditPencerequired | integer | Integer pence (GBP). |
journal.sectionCodesrequired | array of string | Lead sections the journal touches. |
journal.lockedBySectionsrequired | array of string | Reviewed sections that lock it: only a reviewer or above can unpost or delete it. |
journal.createdByrequired | string (uuid)nullable | |
journal.createdAtrequired | string (date-time) | |
journal.postedByrequired | string (uuid)nullable | |
journal.postedAtrequired | string (date-time)nullable | |
replacedRefrequired | stringnullable | |
computationrequired | object (TaxComputation) | |
computation.appliesrequired | boolean | Corporation tax applies (companies only). |
computation.errorrequired | stringnullable | |
computation.inputsrequired | object (TaxInputs) | Tax inputs the TB cannot give. Capital allowances are not among them: they come from the fixed asset register (C). |
computation.inputs.associatedCompaniesrequired | integer | 0 to 1000 |
computation.inputs.aiaPencerequired | integernullable | Integer pence (GBP). Deprecated: capital allowances come from the fixed asset register (section C, /fixed-assets). Echoes the register’s figure. AIA claimed. deprecated |
computation.inputs.mainPoolBfPencerequired | integer | Integer pence (GBP). Deprecated: capital allowances come from the fixed asset register (section C, /fixed-assets). Echoes the register’s figure. Main pool WDV b/f. at least 0; deprecated |
computation.inputs.specialRatePoolBfPencerequired | integer | Integer pence (GBP). Deprecated: capital allowances come from the fixed asset register (section C, /fixed-assets). Echoes the register’s figure. Special rate pool WDV b/f. at least 0; deprecated |
computation.inputs.disposalProceedsPencerequired | integer | Integer pence (GBP). Deprecated: capital allowances come from the fixed asset register (section C, /fixed-assets). Echoes the register’s figure. Disposal values deducted from the pools. at least 0; deprecated |
computation.inputs.otherAdjustmentsrequired | array of TaxAdjustmentInput | up to 100 items |
computation.inputs.otherAdjustments[].descriptionrequired | string | up to 200 characters |
computation.inputs.otherAdjustments[].amountPencerequired | integer | Integer pence (GBP). Positive adds back, negative deducts. |
computation.inputs.lossesBroughtForward | object (LossesBroughtForward) | Last year’s losses carried forward (set by the roll forward). Absent: none. |
computation.inputs.lossesBroughtForward.pre2017Pencerequired | integer | Integer pence (GBP). at least 0 |
computation.inputs.lossesBroughtForward.post2017Pencerequired | integer | Integer pence (GBP). at least 0 |
computation.profitBeforeTaxPencerequired | integer | Integer pence (GBP). |
computation.adjustmentsrequired | array of TaxAdjustmentLine | |
computation.adjustments[].descriptionrequired | string | |
computation.adjustments[].amountPencerequired | integer | Integer pence (GBP). |
computation.adjustments[].referencerequired | string | Legislation or HMRC manual reference. |
computation.additionsPencerequired | integer | Integer pence (GBP). |
computation.aiaPencerequired | integer | Integer pence (GBP). |
computation.mainPoolPencerequired | integer | Integer pence (GBP). |
computation.mainPoolWdaPencerequired | integer | Integer pence (GBP). |
computation.specialRatePoolWdaPencerequired | integer | Integer pence (GBP). |
computation.balancingChargePencerequired | integer | Integer pence (GBP). |
computation.capitalAllowancesPencerequired | integer | Integer pence (GBP). Allowances before balancing charges, from the fixed asset register (C). |
computation.fixedAssetRegisterrequired | boolean | Section C has a fixed asset register; without one no allowances are claimed. |
computation.mainPoolBfPencerequired | integer | Integer pence (GBP). |
computation.specialRatePoolBfPencerequired | integer | Integer pence (GBP). |
computation.disposalValuesPencerequired | integer | Integer pence (GBP). |
computation.firstYearAllowancesPencerequired | integer | Integer pence (GBP). Full expensing, special rate allowance and other first-year allowances. |
computation.otherAllowancesPencerequired | integer | Integer pence (GBP). Single-asset pools, SBA and balancing allowances. |
computation.mainPoolCfPencerequired | integer | Integer pence (GBP). |
computation.specialRatePoolCfPencerequired | integer | Integer pence (GBP). |
computation.lossesBfPencerequired | integer | Integer pence (GBP). Trading losses brought forward (both regimes). |
computation.lossesUsedPencerequired | integer | Integer pence (GBP). Losses brought forward set against this year’s profits. |
computation.lossesCfrequired | object (LossesBroughtForward) | Losses carried forward, including any trading loss of this year. |
computation.lossesCf.pre2017Pencerequired | integer | Integer pence (GBP). at least 0 |
computation.lossesCf.post2017Pencerequired | integer | Integer pence (GBP). at least 0 |
computation.taxableProfitsPencerequired | integer | Whole pounds (floored), in pence. |
computation.corporationTaxPencerequired | integer | Integer pence (GBP). |
computation.marginalReliefPencerequired | integer | Integer pence (GBP). |
computation.rateBandrequired | string | The rate band in plain words, e.g. "Main rate 25%" or "Marginal relief applies". |
computation.chargeLabelrequired | string | The tax before marginal relief, e.g. "Corporation tax at 25% on £127,600". |
computation.accountingPeriods | array of TaxAccountingPeriod | One per accounting period; the totals above add them up. |
computation.accountingPeriods[].startrequired | string (date) | example "2026-03-31" |
computation.accountingPeriods[].endrequired | string (date) | example "2026-03-31" |
computation.accountingPeriods[].daysrequired | integer | |
computation.accountingPeriods[].adjustedProfitPencerequired | integer | Integer pence (GBP). Adjusted trading profit before capital allowances, apportioned by days (CTA 2010 s1172). |
computation.accountingPeriods[].capitalAllowancesPencerequired | integer | Integer pence (GBP). Capital allowances for this period, net of balancing charges (CAA 2001 s6). |
computation.accountingPeriods[].lossesUsedPencerequired | integer | Integer pence (GBP). |
computation.accountingPeriods[].taxableProfitsPencerequired | integer | Whole pounds (floored), in pence. |
computation.accountingPeriods[].roundedDownPencerequired | integer | Integer pence (GBP). Taken off by rounding down to whole pounds in this period. |
computation.accountingPeriods[].corporationTaxPencerequired | integer | Integer pence (GBP). |
computation.accountingPeriods[].marginalReliefPencerequired | integer | Integer pence (GBP). |
computation.accountingPeriods[].rateBandrequired | string | |
computation.accountingPeriods[].chargeLabelrequired | string | |
computation.accountingPeriods[].paymentDueDaterequired | string (date) | 9 months and 1 day after the accounting period ends (TMA 1970 s59D). example "2026-03-31" |
computation.accountingPeriods[].ct600Referencerequired | string | Which CT600 this is, e.g. "CT600 1 of 2: 1 January 2025 to 31 December 2025". |
computation.accountingPeriods[].ct600DueDaterequired | string (date) | FA 1998 Sch 18 para 14: set by the period of account, the same for each of its CT600s. example "2026-03-31" |
computation.periodNote | stringnullable | Explains a period of account over 12 months: the split, the apportionment and the rounding per period. |
computation.journalAccountsMappedrequired | boolean | A corporation tax charge and creditor are mapped in the TB, so the tax journal can be posted. |
computation.chargePerTbPencerequired | integer | Integer pence (GBP). |
computation.differencePencerequired | integer | Integer pence (GBP). Computation less TB: the tax journal to post. |
computation.deferredrequired | object (DeferredTax) | |
computation.deferred.appliesrequired | boolean | |
computation.deferred.netBookValuePencerequired | integer | Integer pence (GBP). NBV of assets that attract allowances, per the register (C final per the TB when there is no register). |
computation.deferred.taxWrittenDownValuePencerequired | integer | Integer pence (GBP). |
computation.deferred.timingDifferencePencerequired | integer | Integer pence (GBP). |
computation.deferred.permanentDifferencePencerequired | integer | Integer pence (GBP). NBV of assets that never attract allowances (FRS 102 s29.10): no deferred tax. |
computation.deferred.linesrequired | array of DeferredTaxLine | NBV against tax WDV by pool, single-asset pool or SBA asset, from the register. |
computation.deferred.lines[].descriptionrequired | string | |
computation.deferred.lines[].netBookValuePencerequired | integer | Integer pence (GBP). |
computation.deferred.lines[].taxWrittenDownValuePencerequired | integer | Integer pence (GBP). |
computation.deferred.lines[].timingDifferencePencerequired | integer | Integer pence (GBP). |
computation.deferred.rateBpsrequired | integer | |
computation.deferred.provisionPencerequired | integer | Integer pence (GBP). Provision required (liability positive). |
computation.deferred.openingPencerequired | integer | Integer pence (GBP). |
computation.deferred.perTbPencerequired | integer | Integer pence (GBP). |
computation.deferred.differencePencerequired | integer | Integer pence (GBP). Provision less TB: the deferred tax journal to post. |
computation.deferred.journalAccountsMappedrequired | boolean | A deferred tax charge and provision are mapped in the TB, so the deferred tax journal can be posted. |
computation.warningsrequired | array of string | |
computation.lockedReasonrequired | stringnullable | Why a preparer cannot change the computation now (section T reviewed). |
computation.inputsSetUp | boolean | The preparer has saved the inputs (PUT …/tax/inputs) at least once, so the computation is set up. |
Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 404 Not found, 429 Too many requests, as problem details (application/problem+json).
Get the self assessment computation
GET/api/v1/engagements/{id}/self-assessment
- Scopes
engagements:read
Sole traders, partnerships and LLPs: adjusted profit, capital allowances, tax-year basis apportionment, transition profit, partner allocation, Class 4 NIC and the SA103 or SA800 figures. 404 for companies. Part of the working_papers product: the firm must have it and you must have access to it.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string (uuid) | Engagement id. |
Responses
200 OK, application/json
Body: object (SelfAssessmentComputation).
| Field | Type | Description |
|---|---|---|
entityrequired | string (SaEntity) | One of: |
errorrequired | stringnullable | |
warningsrequired | array of string | |
inputsrequired | object (SelfAssessmentInputs) | |
inputs.accountsrequired | array of SaAccountTreatment | |
inputs.accounts[].coderequired | string | Account code in the TB. |
inputs.accounts[].categoryrequired | string (Sa103ExpenseCategory)nullable | SA103 expense line; null uses Tolvi’s suggestion. One of: |
inputs.accounts[].disallowablePencerequired | integer | Integer pence (GBP). Disallowable outright (fines, capital items). Depreciation and entertaining (M.dis) are always disallowed in full. |
inputs.accounts[].privateUsePercentrequired | numbernullable | Private-use share of the rest, in per cent; null = not considered yet (0 means none). 0 to 100 |
inputs.goodsForOwnUsePencerequired | integer | Integer pence (GBP). Goods taken for own use, at selling price (ITTOIA 2005 s172B). |
inputs.otherAdjustmentsrequired | array of SaAdjustmentInput | |
inputs.otherAdjustments[].descriptionrequired | string | |
inputs.otherAdjustments[].amountPencerequired | integer | Integer pence (GBP). Positive adds back, negative deducts. |
inputs.tradingAllowancerequired | string (TradingAllowanceChoice) | Sole traders: auto claims the £1,000 trading allowance when it gives a lower profit. Never available for partnership income. One of: |
inputs.lateAccountingDatesrequired | boolean | Treat a 31 March to 4 April year end as 5 April (ITTOIA 2005 s202B). |
inputs.commencementDaterequired | string (date)nullable | example "2026-03-31" |
inputs.cessationDaterequired | string (date)nullable | example "2026-03-31" |
inputs.otherPeriodsrequired | array of SaOtherPeriod | Other periods of account needed to apportion profit to the tax year (last year, or a provisional figure for next year). |
inputs.otherPeriods[].startrequired | string (date) | example "2026-03-31" |
inputs.otherPeriods[].endrequired | string (date) | example "2026-03-31" |
inputs.otherPeriods[].profitPencerequired | integer | Integer pence (GBP). Tax-adjusted profit after capital allowances (negative for a loss). |
inputs.otherPeriods[].provisionalrequired | boolean | A provisional figure for a period not yet drawn up, to be amended once known. |
inputs.overlapReliefPencerequired | integer | Integer pence (GBP). Sole trader: overlap relief brought forward (used in 2023/24). |
inputs.transitionProfitPencerequired | integer | Integer pence (GBP). Sole trader: transition profit from 2023/24, spread over five years. |
inputs.lossesBroughtForwardPencerequired | integer | Integer pence (GBP). |
inputs.partnersrequired | array of SaPartner | |
inputs.partners[].idrequired | string | Your own short id for the partner, used in the arrangements. up to 40 characters |
inputs.partners[].namerequired | string | |
inputs.partners[].kindrequired | string (SaPartnerKind) | A company partner (or LLP corporate member) is charged to corporation tax on its share; no income tax working is done for it. One of: |
inputs.partners[].joinedrequired | string (date)nullable | example "2026-03-31" |
inputs.partners[].leftrequired | string (date)nullable | example "2026-03-31" |
inputs.partners[].overlapReliefPencerequired | integer | Integer pence (GBP). Overlap relief brought forward, used in 2023/24. |
inputs.partners[].transitionProfitPencerequired | integer | Integer pence (GBP). The partner’s transition profit from 2023/24, spread over five years. |
inputs.partners[].lossesBroughtForwardPencerequired | integer | Integer pence (GBP). |
inputs.arrangementsrequired | array of SaArrangement | |
inputs.arrangements[].fromrequired | string (date) | In force from this date until the next arrangement starts. example "2026-03-31" |
inputs.arrangements[].sharesrequired | array of SaPartnerShare | |
inputs.arrangements[].shares[].partnerIdrequired | string | |
inputs.arrangements[].shares[].ratiorequired | integer | Residual profit-sharing ratio, as whole-number weights (e.g. 50/35/15). at least 0 |
inputs.arrangements[].shares[].salaryPencerequired | integer | Integer pence (GBP). Annual salary (prior share). |
inputs.arrangements[].shares[].interestPencerequired | integer | Integer pence (GBP). Annual interest on capital. |
periodrequired | object (SaDateRange) | |
period.startrequired | string (date) | example "2026-03-31" |
period.endrequired | string (date) | example "2026-03-31" |
accountsrequired | array of SaAccountRow | |
accounts[].coderequired | string | |
accounts[].namerequired | string | |
accounts[].lineIdrequired | string | |
accounts[].amountPencerequired | integer | Integer pence (GBP). Final TB balance, debit positive. |
accounts[].categoryrequired | string (Sa103ExpenseCategory) | SA103 expense line; null uses Tolvi’s suggestion. One of: |
accounts[].categorySuggestedrequired | boolean | The category is Tolvi’s suggestion, not the preparer’s. |
accounts[].disallowablePencerequired | integer | Integer pence (GBP). |
accounts[].privateUsePercentrequired | numbernullable | |
accounts[].privateUsePencerequired | integer | Integer pence (GBP). |
accounts[].allowablePencerequired | integer | Integer pence (GBP). |
accounts[].privateUseUnrecordedrequired | boolean | The account usually has some private use (motor, phone, use of home) and none is recorded. |
profitPerAccountsPencerequired | integer | Integer pence (GBP). Net profit per the final TB. |
turnoverPencerequired | integer | Integer pence (GBP). |
interestReceivedPencerequired | integer | Integer pence (GBP). |
adjustmentsrequired | array of SaLine | |
adjustments[].descriptionrequired | string | |
adjustments[].amountPencerequired | integer | Integer pence (GBP). |
adjustments[].referencerequired | string | Legislation or HMRC manual reference. |
capitalAllowancesrequired | object (SaCapitalAllowances) | |
capitalAllowances.fromRegisterrequired | boolean | |
capitalAllowances.annualInvestmentAllowancePencerequired | integer | Integer pence (GBP). |
capitalAllowances.firstYearAllowancesPencerequired | integer | Integer pence (GBP). |
capitalAllowances.mainPoolWdaPencerequired | integer | Integer pence (GBP). |
capitalAllowances.specialRatePoolWdaPencerequired | integer | Integer pence (GBP). |
capitalAllowances.singleAssetPoolsPencerequired | integer | Integer pence (GBP). |
capitalAllowances.structuresAndBuildingsPencerequired | integer | Integer pence (GBP). |
capitalAllowances.balancingAllowancesPencerequired | integer | Integer pence (GBP). |
capitalAllowances.totalPencerequired | integer | Integer pence (GBP). Allowances claimed, after the private-use restriction. |
capitalAllowances.balancingChargesPencerequired | integer | Integer pence (GBP). |
capitalAllowances.privateUseRestrictionPencerequired | integer | Integer pence (GBP). Allowances not given because of private use (CAA 2001 s207). |
capitalAllowances.singleAssetPoolsrequired | array of SaSingleAssetPool | |
capitalAllowances.singleAssetPools[].assetIdrequired | string | |
capitalAllowances.singleAssetPools[].refrequired | string | |
capitalAllowances.singleAssetPools[].descriptionrequired | string | |
capitalAllowances.singleAssetPools[].businessUsePercentrequired | number | |
capitalAllowances.singleAssetPools[].allowancePencerequired | integer | Integer pence (GBP). Allowance before the private-use restriction. |
capitalAllowances.singleAssetPools[].aiaPencerequired | integer | Integer pence (GBP). Of the allowance before the restriction, the Annual Investment Allowance (CAA 2001 s51A). |
capitalAllowances.singleAssetPools[].claimedPencerequired | integer | Integer pence (GBP). Allowance claimed (business share). |
capitalAllowances.mainPoolCfPencerequired | integer | Integer pence (GBP). |
capitalAllowances.specialRatePoolCfPencerequired | integer | Integer pence (GBP). |
adjustedProfitActualPencerequired | integer | Integer pence (GBP). |
tradingAllowanceClaimedrequired | string (TradingAllowanceClaimed) | One of: |
adjustedProfitPencerequired | integer | Integer pence (GBP). Tax-adjusted trading profit of the period (after capital allowances and any trading allowance). |
taxYearsrequired | array of SaTaxYearShare | |
taxYears[].taxYearrequired | integer | |
taxYears[].labelrequired | string | example "2025/26" |
taxYears[].startrequired | string (date) | example "2026-03-31" |
taxYears[].endrequired | string (date) | example "2026-03-31" |
taxYears[].daysrequired | integer | |
taxYears[].periodDaysrequired | integer | |
taxYears[].sharePencerequired | integer | Integer pence (GBP). |
returnTaxYearrequired | integer | |
returnTaxYearLabelrequired | string | |
missingPeriodsrequired | array of SaDateRange | |
missingPeriods[].startrequired | string (date) | example "2026-03-31" |
missingPeriods[].endrequired | string (date) | example "2026-03-31" |
soleTraderrequired | object (SaSoleTrader)nullable | |
soleTrader.workingrequired | object (SaTaxYearWorking)nullable | Null until every period needed for the return year has a figure. |
soleTrader.working.taxYearrequired | integer | |
soleTrader.working.labelrequired | string | |
soleTrader.working.basisPeriodrequired | object (SaDateRange) | |
soleTrader.working.basisPeriod.startrequired | string (date) | example "2026-03-31" |
soleTrader.working.basisPeriod.endrequired | string (date) | example "2026-03-31" |
soleTrader.working.apportionmentsrequired | array of SaApportionment | |
soleTrader.working.apportionments[].startrequired | string (date) | example "2026-03-31" |
soleTrader.working.apportionments[].endrequired | string (date) | example "2026-03-31" |
soleTrader.working.apportionments[].sourcerequired | string (SaPeriodSource) | One of: |
soleTrader.working.apportionments[].daysrequired | integer | |
soleTrader.working.apportionments[].daysInBasisPeriodrequired | integer | |
soleTrader.working.apportionments[].profitPencerequired | integer | Integer pence (GBP). |
soleTrader.working.apportionments[].sharePencerequired | integer | Integer pence (GBP). |
soleTrader.working.basisPeriodProfitPencerequired | integer | Integer pence (GBP). |
soleTrader.working.transitionrequired | object (SaTransition)nullable | |
soleTrader.working.transition.standardPartrequired | object (SaDateRange)nullable | |
soleTrader.working.transition.standardPart.startrequired | string (date) | example "2026-03-31" |
soleTrader.working.transition.standardPart.endrequired | string (date) | example "2026-03-31" |
soleTrader.working.transition.standardPartProfitPencerequired | integer | Integer pence (GBP). |
soleTrader.working.transition.transitionPartrequired | object (SaDateRange)nullable | |
soleTrader.working.transition.transitionPart.startrequired | string (date) | example "2026-03-31" |
soleTrader.working.transition.transitionPart.endrequired | string (date) | example "2026-03-31" |
soleTrader.working.transition.transitionPartProfitPencerequired | integer | Integer pence (GBP). |
soleTrader.working.transition.overlapReliefPencerequired | integer | Integer pence (GBP). |
soleTrader.working.transition.excessOverlapReliefPencerequired | integer | Integer pence (GBP). |
soleTrader.working.transition.transitionProfitPencerequired | integer | Integer pence (GBP). |
soleTrader.working.transition.spreadrequired | array of SaSpreadYear | |
soleTrader.working.transition.spread[].taxYearrequired | integer | |
soleTrader.working.transition.spread[].labelrequired | string | |
soleTrader.working.transition.spread[].amountPencerequired | integer | Integer pence (GBP). |
soleTrader.working.transition.thisYearPencerequired | integer | Integer pence (GBP). Transition profit taxed in this tax year. |
soleTrader.working.lossesBroughtForwardUsedPencerequired | integer | Integer pence (GBP). |
soleTrader.working.taxableProfitPencerequired | integer | Whole pounds (floored), in pence. |
soleTrader.working.lossPencerequired | integer | Integer pence (GBP). |
soleTrader.working.lossCarriedForwardPencerequired | integer | Integer pence (GBP). |
soleTrader.working.class4required | object (SaClass4) | |
soleTrader.working.class4.taxYearrequired | integer | |
soleTrader.working.class4.profitsrequired | integer | Integer pence (GBP). |
soleTrader.working.class4.mainRateBandrequired | integer | Integer pence (GBP). |
soleTrader.working.class4.mainRateNicrequired | integer | Integer pence (GBP). |
soleTrader.working.class4.additionalRateBandrequired | integer | Integer pence (GBP). |
soleTrader.working.class4.additionalRateNicrequired | integer | Integer pence (GBP). |
soleTrader.working.class4.totalrequired | integer | Integer pence (GBP). |
soleTrader.working.class2required | object (SaClass2) | |
soleTrader.working.class2.taxYearrequired | integer | |
soleTrader.working.class2.statusrequired | string (SaClass2Status) | One of: |
soleTrader.working.class2.weeklyRaterequired | integer | Integer pence (GBP). |
soleTrader.working.class2.payablerequired | integer | Compulsory Class 2 (nil from 2024/25). |
soleTrader.working.class2.voluntaryAnnualCostrequired | integer | Cost of a full year of voluntary contributions, where relevant. |
soleTrader.sa103required | object (Sa103Figures)nullable | |
soleTrader.sa103.pagesrequired | string (SelfEmploymentPages) | Short pages (SA103S) below the VAT registration threshold, else full (SA103F). One of: |
soleTrader.sa103.turnoverPencerequired | integer | Integer pence (GBP). |
soleTrader.sa103.otherBusinessIncomePencerequired | integer | Integer pence (GBP). |
soleTrader.sa103.expensesrequired | array of SaExpenseLine | |
soleTrader.sa103.expenses[].categoryrequired | string (Sa103ExpenseCategory) | SA103 expense line; null uses Tolvi’s suggestion. One of: |
soleTrader.sa103.expenses[].labelrequired | string | |
soleTrader.sa103.expenses[].totalPencerequired | integer | Integer pence (GBP). |
soleTrader.sa103.expenses[].disallowablePencerequired | integer | Integer pence (GBP). |
soleTrader.sa103.totalExpensesPencerequired | integer | Integer pence (GBP). |
soleTrader.sa103.netProfitPencerequired | integer | Integer pence (GBP). |
soleTrader.sa103.goodsForOwnUsePencerequired | integer | Integer pence (GBP). |
soleTrader.sa103.disallowableExpensesPencerequired | integer | Integer pence (GBP). |
soleTrader.sa103.balancingChargesPencerequired | integer | Integer pence (GBP). |
soleTrader.sa103.capitalAllowancesPencerequired | integer | Integer pence (GBP). |
soleTrader.sa103.tradingAllowanceClaimedrequired | boolean | |
soleTrader.sa103.adjustedProfitPencerequired | integer | Integer pence (GBP). |
soleTrader.sa103.basisPeriodAdjustmentPencerequired | integer | Integer pence (GBP). |
soleTrader.sa103.transitionProfitPencerequired | integer | Integer pence (GBP). |
soleTrader.sa103.lossesBroughtForwardUsedPencerequired | integer | Integer pence (GBP). |
soleTrader.sa103.taxableProfitPencerequired | integer | Integer pence (GBP). |
soleTrader.sa103.class4Pencerequired | integer | Integer pence (GBP). |
partnershiprequired | object (SaPartnership)nullable | |
partnership.segmentsrequired | array of SaSegment | |
partnership.segments[].startrequired | string (date) | example "2026-03-31" |
partnership.segments[].endrequired | string (date) | example "2026-03-31" |
partnership.segments[].daysrequired | integer | |
partnership.segments[].profitPencerequired | integer | Integer pence (GBP). |
partnership.segments[].partnersrequired | array of SaSegmentPartner | |
partnership.segments[].partners[].partnerIdrequired | string | |
partnership.segments[].partners[].salaryPencerequired | integer | Integer pence (GBP). |
partnership.segments[].partners[].interestPencerequired | integer | Integer pence (GBP). |
partnership.segments[].partners[].residualSharePencerequired | integer | Integer pence (GBP). |
partnership.segments[].partners[].totalPencerequired | integer | Integer pence (GBP). |
partnership.partnersrequired | array of SaPartnerResult | |
partnership.partners[].idrequired | string | |
partnership.partners[].namerequired | string | |
partnership.partners[].kindrequired | string (SaPartnerKind) | A company partner (or LLP corporate member) is charged to corporation tax on its share; no income tax working is done for it. One of: |
partnership.partners[].joinedrequired | string (date)nullable | example "2026-03-31" |
partnership.partners[].leftrequired | string (date)nullable | example "2026-03-31" |
partnership.partners[].salaryPencerequired | integer | Integer pence (GBP). |
partnership.partners[].interestPencerequired | integer | Integer pence (GBP). |
partnership.partners[].residualSharePencerequired | integer | Integer pence (GBP). |
partnership.partners[].notionalSharePencerequired | integer | Integer pence (GBP). Share before any reallocation of notional losses (ITTOIA 2005 s850A/s850B). |
partnership.partners[].sharePencerequired | integer | Integer pence (GBP). Share of the tax-adjusted profit: the partnership statement figure. |
partnership.partners[].accountingSharePencerequired | integer | Integer pence (GBP). Share of the accounting profit per the arrangement. |
partnership.partners[].taxYearsrequired | array of SaTaxYearShare | |
partnership.partners[].taxYears[].taxYearrequired | integer | |
partnership.partners[].taxYears[].labelrequired | string | example "2025/26" |
partnership.partners[].taxYears[].startrequired | string (date) | example "2026-03-31" |
partnership.partners[].taxYears[].endrequired | string (date) | example "2026-03-31" |
partnership.partners[].taxYears[].daysrequired | integer | |
partnership.partners[].taxYears[].periodDaysrequired | integer | |
partnership.partners[].taxYears[].sharePencerequired | integer | Integer pence (GBP). |
partnership.partners[].workingrequired | object (SaTaxYearWorking)nullable | Individuals only. |
partnership.partners[].working.taxYearrequired | integer | |
partnership.partners[].working.labelrequired | string | |
partnership.partners[].working.basisPeriodrequired | object (SaDateRange) | |
partnership.partners[].working.basisPeriod.startrequired | string (date) | example "2026-03-31" |
partnership.partners[].working.basisPeriod.endrequired | string (date) | example "2026-03-31" |
partnership.partners[].working.apportionmentsrequired | array of SaApportionment | |
partnership.partners[].working.apportionments[].startrequired | string (date) | example "2026-03-31" |
partnership.partners[].working.apportionments[].endrequired | string (date) | example "2026-03-31" |
partnership.partners[].working.apportionments[].sourcerequired | string (SaPeriodSource) | One of: |
partnership.partners[].working.apportionments[].daysrequired | integer | |
partnership.partners[].working.apportionments[].daysInBasisPeriodrequired | integer | |
partnership.partners[].working.apportionments[].profitPencerequired | integer | Integer pence (GBP). |
partnership.partners[].working.apportionments[].sharePencerequired | integer | Integer pence (GBP). |
partnership.partners[].working.basisPeriodProfitPencerequired | integer | Integer pence (GBP). |
partnership.partners[].working.transitionrequired | object (SaTransition)nullable | |
partnership.partners[].working.transition.standardPartrequired | object (SaDateRange)nullable | |
partnership.partners[].working.transition.standardPart.startrequired | string (date) | example "2026-03-31" |
partnership.partners[].working.transition.standardPart.endrequired | string (date) | example "2026-03-31" |
partnership.partners[].working.transition.standardPartProfitPencerequired | integer | Integer pence (GBP). |
partnership.partners[].working.transition.transitionPartrequired | object (SaDateRange)nullable | |
partnership.partners[].working.transition.transitionPart.startrequired | string (date) | example "2026-03-31" |
partnership.partners[].working.transition.transitionPart.endrequired | string (date) | example "2026-03-31" |
partnership.partners[].working.transition.transitionPartProfitPencerequired | integer | Integer pence (GBP). |
partnership.partners[].working.transition.overlapReliefPencerequired | integer | Integer pence (GBP). |
partnership.partners[].working.transition.excessOverlapReliefPencerequired | integer | Integer pence (GBP). |
partnership.partners[].working.transition.transitionProfitPencerequired | integer | Integer pence (GBP). |
partnership.partners[].working.transition.spreadrequired | array of SaSpreadYear | |
partnership.partners[].working.transition.spread[].taxYearrequired | integer | |
partnership.partners[].working.transition.spread[].labelrequired | string | |
partnership.partners[].working.transition.spread[].amountPencerequired | integer | Integer pence (GBP). |
partnership.partners[].working.transition.thisYearPencerequired | integer | Integer pence (GBP). Transition profit taxed in this tax year. |
partnership.partners[].working.lossesBroughtForwardUsedPencerequired | integer | Integer pence (GBP). |
partnership.partners[].working.taxableProfitPencerequired | integer | Whole pounds (floored), in pence. |
partnership.partners[].working.lossPencerequired | integer | Integer pence (GBP). |
partnership.partners[].working.lossCarriedForwardPencerequired | integer | Integer pence (GBP). |
partnership.partners[].working.class4required | object (SaClass4) | |
partnership.partners[].working.class4.taxYearrequired | integer | |
partnership.partners[].working.class4.profitsrequired | integer | Integer pence (GBP). |
partnership.partners[].working.class4.mainRateBandrequired | integer | Integer pence (GBP). |
partnership.partners[].working.class4.mainRateNicrequired | integer | Integer pence (GBP). |
partnership.partners[].working.class4.additionalRateBandrequired | integer | Integer pence (GBP). |
partnership.partners[].working.class4.additionalRateNicrequired | integer | Integer pence (GBP). |
partnership.partners[].working.class4.totalrequired | integer | Integer pence (GBP). |
partnership.partners[].working.class2required | object (SaClass2) | |
partnership.partners[].working.class2.taxYearrequired | integer | |
partnership.partners[].working.class2.statusrequired | string (SaClass2Status) | One of: |
partnership.partners[].working.class2.weeklyRaterequired | integer | Integer pence (GBP). |
partnership.partners[].working.class2.payablerequired | integer | Compulsory Class 2 (nil from 2024/25). |
partnership.partners[].working.class2.voluntaryAnnualCostrequired | integer | Cost of a full year of voluntary contributions, where relevant. |
partnership.partners[].missingPeriodsrequired | array of SaDateRange | |
partnership.partners[].missingPeriods[].startrequired | string (date) | example "2026-03-31" |
partnership.partners[].missingPeriods[].endrequired | string (date) | example "2026-03-31" |
partnership.partners[].errorrequired | stringnullable | |
partnership.reallocatedrequired | boolean | |
partnership.unallocatedPencerequired | integer | Integer pence (GBP). |
partnership.sa800required | object (Sa800Figures) | |
partnership.sa800.turnoverPencerequired | integer | Integer pence (GBP). |
partnership.sa800.accountingProfitPencerequired | integer | Integer pence (GBP). |
partnership.sa800.taxAdjustedProfitPencerequired | integer | Integer pence (GBP). |
partnership.sa800.sharesAgreerequired | boolean | |
privateUseUnrecordedrequired | object (SaPrivateUseUnrecorded) | |
privateUseUnrecorded.accountsrequired | array of string | |
privateUseUnrecorded.assetsrequired | array of SaPrivateUseAsset | |
privateUseUnrecorded.assets[].idrequired | string | |
privateUseUnrecorded.assets[].refrequired | string | |
drawingsPencerequired | integer | Integer pence (GBP). Drawings per the final TB (debit positive). |
allocatedToMembersPerTbPencerequired | integer | Integer pence (GBP). LLP: profit allocated to members per the final TB (debit positive). |
summaryrequired | object (SaSummary) | The overview stat: the taxable profit (sole traders) or the amount allocated to partners or members. |
summary.labelrequired | string | example "Taxable profit 2025/26" |
summary.valuePencerequired | integer | Integer pence (GBP). |
summary.detailrequired | string | |
lockedReasonrequired | stringnullable | Why a preparer cannot change the inputs now (section T reviewed). |
inputsSetUp | boolean | The preparer has saved the inputs (PUT …/self-assessment/inputs) at least once, so the computation is set up. |
Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 404 Not found, 429 Too many requests, as problem details (application/problem+json).
Set the self assessment inputs
PUT/api/v1/engagements/{id}/self-assessment/inputs
- Scopes
engagements:writeandengagements:read
Replaces the whole set: expense treatment, adjustments, other periods of account, transition and overlap figures, partners and the profit-sharing arrangement. Locked to reviewers once T is reviewed. Part of the working_papers product: the firm must have it and you must have access to it.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string (uuid) | Engagement id. |
Request body
Required. application/json: object (SetSelfAssessmentInputs).
| Field | Type | Description |
|---|---|---|
accounts | array of SaAccountTreatment | |
accounts[].coderequired | string | Account code in the TB. |
accounts[].categoryrequired | string (Sa103ExpenseCategory)nullable | SA103 expense line; null uses Tolvi’s suggestion. One of: |
accounts[].disallowablePencerequired | integer | Integer pence (GBP). Disallowable outright (fines, capital items). Depreciation and entertaining (M.dis) are always disallowed in full. |
accounts[].privateUsePercentrequired | numbernullable | Private-use share of the rest, in per cent; null = not considered yet (0 means none). 0 to 100 |
goodsForOwnUsePence | integer | Integer pence (GBP). |
otherAdjustments | array of SaAdjustmentInput | |
otherAdjustments[].descriptionrequired | string | |
otherAdjustments[].amountPencerequired | integer | Integer pence (GBP). Positive adds back, negative deducts. |
tradingAllowance | string (TradingAllowanceChoice) | Sole traders: auto claims the £1,000 trading allowance when it gives a lower profit. Never available for partnership income. One of: |
lateAccountingDates | boolean | |
commencementDate | string (date)nullable | example "2026-03-31" |
cessationDate | string (date)nullable | example "2026-03-31" |
otherPeriods | array of SaOtherPeriod | |
otherPeriods[].startrequired | string (date) | example "2026-03-31" |
otherPeriods[].endrequired | string (date) | example "2026-03-31" |
otherPeriods[].profitPencerequired | integer | Integer pence (GBP). Tax-adjusted profit after capital allowances (negative for a loss). |
otherPeriods[].provisionalrequired | boolean | A provisional figure for a period not yet drawn up, to be amended once known. |
overlapReliefPence | integer | Integer pence (GBP). |
transitionProfitPence | integer | Integer pence (GBP). |
lossesBroughtForwardPence | integer | Integer pence (GBP). |
partners | array of SaPartner | |
partners[].idrequired | string | Your own short id for the partner, used in the arrangements. up to 40 characters |
partners[].namerequired | string | |
partners[].kindrequired | string (SaPartnerKind) | A company partner (or LLP corporate member) is charged to corporation tax on its share; no income tax working is done for it. One of: |
partners[].joinedrequired | string (date)nullable | example "2026-03-31" |
partners[].leftrequired | string (date)nullable | example "2026-03-31" |
partners[].overlapReliefPencerequired | integer | Integer pence (GBP). Overlap relief brought forward, used in 2023/24. |
partners[].transitionProfitPencerequired | integer | Integer pence (GBP). The partner’s transition profit from 2023/24, spread over five years. |
partners[].lossesBroughtForwardPencerequired | integer | Integer pence (GBP). |
arrangements | array of SaArrangement | |
arrangements[].fromrequired | string (date) | In force from this date until the next arrangement starts. example "2026-03-31" |
arrangements[].sharesrequired | array of SaPartnerShare | |
arrangements[].shares[].partnerIdrequired | string | |
arrangements[].shares[].ratiorequired | integer | Residual profit-sharing ratio, as whole-number weights (e.g. 50/35/15). at least 0 |
arrangements[].shares[].salaryPencerequired | integer | Integer pence (GBP). Annual salary (prior share). |
arrangements[].shares[].interestPencerequired | integer | Integer pence (GBP). Annual interest on capital. |
Responses
Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 404 Not found, 429 Too many requests, as problem details (application/problem+json).