API Docs / Schemas / MtdTaxReturnDto

MtdTaxReturnDto

Everything a practice has to look at before sending a client's tax return: every income
source's obligations, reporting setup, held position and year-end work; all the other income;
the losses; the liability adjustments where the year has them; HMRC's calculation; and the
declaration with whatever is standing in the way.

One read, because HMRC's precondition for the return is that the customer "has already provided
their entire income" — assembled from the granular endpoints that is thirty or more HMRC
requests driven from a browser.

⚠ SodiumHQ.DTOs.MtdSubmissions.MtdTaxReturnDto.Review carries the MTD service's own answer rather than a restatement of it.
Every other MTD read here maps into per-area shapes because a form binds them; this one is read
only, and re-declaring two hundred properties a screen displays and never edits would be
restatement that drifts. What this DTO adds is what the MTD service cannot know: whether this
practice may file at all, and what it will cost.

Properties

Name Type Description
clientCodestring

The client the year belongs to.

The client the year belongs to.

taxYearstring

The tax year, in HMRC's format, e.g. 2025-26.

The tax year, in HMRC's format, e.g. 2025-26.

reviewTaxYearReturnResponse
agentRoleenum

None Main Supporting NotApplicable

None Main Supporting NotApplicable

canFileboolean

Whether this practice may send the return at all.

False for a supporting agent: HMRC allow them a client's quarterly updates and refuse them
the tax return, so a screen offering Submit would be offering something HMRC will reject.
The review reflects the same refusal from HMRC's side — the tax return obligation lands on
unavailableParts — but this answers it from the capacity we recorded, which is known
before HMRC is asked.

Whether this practice may send the return at all.

False for a supporting agent: HMRC allow them a client's quarterly updates and refuse them
the tax return, so a screen offering Submit would be offering something HMRC will reject.
The review reflects the same refusal from HMRC's side — the tax return obligation lands on
unavailableParts — but this answers it from the capacity we recorded, which is known
before HMRC is asked.

creditCostinteger

How many filing credits sending this return will cost, from the platform cost registry.

Shown before the declaration is agreed, not after: a practice about to spend a credit should
know it. Null when the cost registry holds no row for a tax return, which is not "free" —
the registry fails closed and the filing would be refused.

How many filing credits sending this return will cost, from the platform cost registry.

Shown before the declaration is agreed, not after: a practice about to spend a credit should
know it. Null when the cost registry holds no row for a tax return, which is not "free" —
the registry fails closed and the filing would be refused.

creditsAvailableinteger

The credits the practice has left. Null when this tenant is not on a credit plan.

The credits the practice has left. Null when this tenant is not on a credit plan.

JSON Example

{
  "clientCode": "string",
  "taxYear": "string",
  "review": {
    "taxYear": "string",
    "unavailableParts": [
      "..."
    ],
    "incomeSources": [
      "..."
    ],
    "otherIncome": "...",
    "calculation": "..."
  },
  "agentRole": "None",
  "canFile": false
}

Used By Operations