# schedule24

First-Time Filer After Incorporation, Amalgamation, or Winding-up of a Subsidiary into a Parent

- Kind: batch
- Program: T2 Corporation Income Tax Return
- Supported tax years: 2023 and later
- Strict profile: s24_versioned_profile_target_value_v1
- Payload schema version: 0.18.0
- Dependencies (run automatically): none

## Example request

Send this body to `POST /api/v1/computations/batch`. This example works with or without `payloadContract`.

```json
{
  "compute": [
    "schedule24"
  ],
  "inputs": {
    "taxYear": 2025,
    "schedule24": {
      "filingTriggers": [
        "incorporation"
      ],
      "operationCode": "01",
      "predecessors": [],
      "subsidiaries": []
    }
  }
}
```

## Input cells (304)

Paths are relative to the request's `inputs` object. `[]` marks an array element.

Cells marked **always** require a non-null value in every request. Cells marked **strict** are required when you supply this target's `payloadContract`. See [Run computations](https://docs.filemark.ca/run-computations).

Unknown cells and JSON type mismatches return `400` with the affected cells in the error details.

| Cell | Types | Required | Description |
| --- | --- | --- | --- |
| `accounts` | array |  | The trial balance: a JSON array of account objects, read by every schedule that classifies or sums accounts. Omit it when the return carries no trial balance; null is a malformed container and is refused, as is any element that is not an object. Each row's members are declared by the schedules that read them. |
| `accounts[]` | object |  | One trial-balance account row. Its members are declared by the schedules that read them; a row that is not an object is refused. |
| `aocPropertyDesignations` | array \| null |  | Per-property ITA paragraph 111(4)(e) acquisition-of-control designations for depreciable property. Each row identifies the CCA class and property and supplies its fair market value, capital cost, and designated amount; omit the array only when no such designation is made. |
| `aocPropertyDesignations[]` | object |  | Per-property ITA paragraph 111(4)(e) acquisition-of-control designations for depreciable property. Each row identifies the CCA class and property and supplies its fair market value, capital cost, and designated amount; omit the array only when no such designation is made. |
| `aocPropertyDesignations[].capitalCost` | number \| string |  |  |
| `aocPropertyDesignations[].designatedAmount` | number \| string |  | The amount designated under ITA 111(4)(e) for the depreciable property, read with capitalCost as its cost. A row stating designated_proceeds, designatedProceeds or acb is refused naming designatedAmount or capitalCost. |
| `aocPropertyDesignations[].subsection111_5_1WouldApply` | boolean |  |  |
| `daysInYear` | null \| number \| string |  | Number of days in the taxation year, as a positive whole number, driving the ITA s.125(5)(b) short-year proration of the business limit. The third member of the canonical taxation-period trio with fiscalStart and fiscalEnd: all three are mandatory whenever the request reaches Part I through its dependency closure, which most targets do. A missing member is refused before any computation, and a day count that disagrees with the two dates is an error. |
| `deemedYearEndEvents` | array \| boolean \| null \| number \| object \| string |  | Array of already-proved deemed year-end event objects (eventType plus its ISO event date). The engine projects s.149 status-change events onto post-event basis continuity and reads s.40(3.4)(b)(ii)/(iii) suspended-loss revival events. An emigration event also carries allPropertiesIncluded, propertyRegisterEvidence and propertyRows for the s.128.1(4)(b)/(c) departure-year computation. Each property states its identity, ownership, tax character, FMV, tax cost and valuation source; capital/depreciable rows carry Schedule 6 facts, depreciable rows carry capital cost, class UCC and Schedule 8 facts, and resource rows identify their Schedule 12 pool. Missing facts hold the return and post no partial register. An entry records a proved filing event; it does not establish one. Members are read under these camelCase names only: an event or row member stated under another spelling (for example event_date, date or property_rows) is refused, naming the member to send. |
| `deemedYearEndEvents[]` | array \| boolean \| null \| number \| object \| string |  | One already-proved deemed year-end event. An emigration event carries the complete s.128.1(4)(b)/(c) property register; its departure-year dispositions reach Schedules 6, 8, 12 and 1 and its FMV total supplies Schedule 97's s.219.1 element A. Reacquisition belongs to the following period. Missing character, cost, valuation or pool facts hold the return. |
| `engagementPeriods` | array \| null |  | Taxation-period history as an array of objects containing id, periodStart and yearEnd, with dates in YYYY-MM-DD form. Schedule 31 uses it to order prior periods, and Schedule 54 and pool tracking use it to find a prior period start from its year-end. Omitted, empty or malformed history does not establish a usable period sequence; dependent history checks remain unresolved. A period superseded by an amendment states amendedByTaxYearId and is not read as a second period. A period stating taxYearId, period_start or fiscalStart, year_end or fiscalEnd, or amended_by_tax_year_id is refused, naming id, periodStart, yearEnd or amendedByTaxYearId. |
| `engagementPeriods[]` | object |  | Taxation-period history as an array of objects containing id, periodStart and yearEnd, with dates in YYYY-MM-DD form. Schedule 31 uses it to order prior periods, and Schedule 54 uses it to find a prior period start from its year-end. Omitted, empty or malformed history does not establish a usable period sequence; dependent history checks remain unresolved. A period superseded by an amendment states amendedByTaxYearId and is not read as a second period. A period stating taxYearId, period_start or fiscalStart, year_end or fiscalEnd, or amended_by_tax_year_id is refused, naming id, periodStart, yearEnd or amendedByTaxYearId. |
| `fiscalEnd` | null \| string |  | The last day of the taxation year in ISO YYYY-MM-DD form, which bounds every disposition date. Send it with fiscalStart and daysInYear: the three are the canonical taxation-period trio, and all three are mandatory whenever the request reaches Part I through its dependency closure. Strict YYYY-MM-DD, and not before fiscalStart. |
| `fiscalStart` | null \| string |  | The first day of the taxation year (ISO YYYY-MM-DD). With fiscalEnd and daysInYear it is the canonical taxation-period trio, and all three are mandatory whenever the request reaches Part I through its dependency closure — the request is refused before any computation when one is missing. The bounds also drive Schedule 8's Reg 1100(3) short-year CCA proration and the Reg 1104(3.5)(b) immediate-expensing limit proration. |
| `functionalCurrencyContext` | null \| object |  | The functional-currency election sidecar for the taxation year, used to restate statutory dollar thresholds under ITA s.261(5)(b). Send it only for a functional-currency filer; it carries reportingCurrency, periodStart and a firstDayRate object with rate, spotRateSource and firstDayDate. Statutory comparisons use the unrounded conversion. |
| `gifiStatementCoverage` | array \| boolean \| null \| number \| object \| string |  | Statement-coverage evidence for the GIFI financial statements. The engine's coverage check reads it on every computation and answers a finding when it is not the expected object. |
| `incomeStatementFlags` | object |  |  |
| `isCCPC` | boolean \| null |  | The corporation was a Canadian-controlled private corporation (ITA s.125(7) definition) throughout the taxation year. |
| `pinnedFormRevisions` | null \| object |  | Map from form identifiers such as S8 or T2 to nonempty CRA footer revision codes. Each pin selects the form revision for computation; omission leaves selection to the registered year rules. Invalid or unsupported pins fail rather than silently switching revisions. Saved-engagement scenarios reserve this map to the saved return and do not allow caller overrides. |
| `priorTaxYearEnd` | null \| string |  |  |
| `schedule100` | null \| object |  |  |
| `schedule100.businessNumber` | null \| string |  | 9-digit BN or 15-char RC account (e.g. "123456789RC0001"). |
| `schedule101` | null \| object |  |  |
| `schedule101.businessNumber` | null \| string |  | 9-digit BN or 15-char RC account (e.g. "123456789RC0001"). |
| `schedule101.isWindupSuccessor` | boolean \| null |  | s.88(1) wind-up successor (opening at wind-up effective date). |
| `schedule125` | null \| object |  |  |
| `schedule125.businessNumber` | null \| string |  | 9-digit BN or 15-char RC account (e.g. "123456789RC0001"). |
| `schedule125.isFinancialInstitution` | boolean \| null |  | Bank / credit union / trust — specialised GIFI codes apply. |
| `schedule125.isInsuranceCorp` | boolean \| null |  | RC4088 p.5 insurance carve-out — file F/S as PDF instead. |
| `schedule130` | null \| object |  | Schedule 130 (EIFEL) practitioner-entered blob — feeds the schedule130 batch node, whose result posts S1 lines 251/252. |
| `schedule18` | null \| object |  | Schedule 18 Federal and Provincial/Territorial Capital Gains Refund input object. Its corporationType identifies the investment or mutual-fund corporation category used by refund and related status calculations. Omission supplies no Schedule 18 category or refund inputs; other answered return facts may still determine the applicable status. |
| `schedule20` | null \| object |  |  |
| `schedule23` | null \| object |  | Schedule 23 associated-CCPC business-limit agreement input object, including corporation rows and any third-corporation election details. It supports allocation to the filing corporation and reconciliation of association facts. Omission supplies no agreement; an affirmative jacket box 160 without a computed agreement leaves the SBD allocation unresolved. |
| `schedule23.rows` | array \| null |  | Associated corporations and their business-limit allocations, in the order entered on Schedule 23. An imported return's own allocation table can seed this roster while every row is still blank; a preceding year's table seeds the roster and the association codes only, because ITA 125(3) requires a fresh agreement each calendar year. |
| `schedule23.rows[]` | object |  |  |
| `schedule24` | null \| object |  | Schedule 24 First-Time Filer after Incorporation, Amalgamation, or Winding-up of a Subsidiary input object. Supply the operation code and applicable predecessor or subsidiary rows. Omission supplies no predecessor event roster or operation-code status; the jacket and authenticated continuity still determine which first-year and reorganization evidence is required. |
| `schedule24.filingTriggers` | array \| null |  | The list of first-filing events covered by Schedule 24: incorporation, amalgamation or the winding-up of a subsidiary into its parent under section 88. Send a list even for one event; a bare string is refused. |
| `schedule24.filingTriggers[]` | string |  | One entry in the stated collection. |
| `schedule24.operationCode` | null \| string |  | Part 1, box 100: operation type for a corporation filing for the first time after incorporation or amalgamation. |
| `schedule24.predecessors` | array \| null |  | Part 2: predecessor corporations for the first year of filing after amalgamation. |
| `schedule24.predecessors[]` | object |  |  |
| `schedule24.predecessors[].businessNumber` | null \| string |  | Box 300 — Business number (9 digits + 2 uppercase letters + 4 digits, e.g. "123456789RC0001"), or "NR" if the predecessor was never CRA-registered (typically a foreign-amalgamation predecessor). |
| `schedule24.predecessors[].id` | null \| string |  | Stable row identity for retaining the current predecessor row through edits and row reordering. |
| `schedule24.predecessors[].name` | null \| string |  | Box 200 — Name of predecessor corporation. |
| `schedule24.subsidiaries` | array \| null |  | Part 3: subsidiaries wound up into the parent under section 88, with their business numbers and commencement and completion dates. |
| `schedule24.subsidiaries[]` | object |  |  |
| `schedule24.subsidiaries[].assetDistributionCompletedInThatYear` | array \| boolean \| null \| number \| object \| string |  | Non-printed tri-state. Reviewed affirmation that the winding-up distribution was completed in the taxation year ending on assetsDistributedTaxationYearEnd. Only true lets the matching filed subsidiary period authenticate a predecessor closing or RDTOH transfer. |
| `schedule24.subsidiaries[].assetsDistributedTaxationYearEnd` | null \| string |  | Non-printed. End date of the subsidiary taxation year in which its assets were distributed to the parent on the winding-up (ISO YYYY-MM-DD). ITA s.88(1)(e.2)(v) substitutes that year, and box 700 is only the date of wind-up, so this fact is collected separately. Null stays unanswered. |
| `schedule24.subsidiaries[].businessNumber` | null \| string |  | Box 500 — Business number (same format as box 300, or "NR"). |
| `schedule24.subsidiaries[].commencementDate` | null \| string |  | Box 600 — Commencement date of wind-up (ISO YYYY-MM-DD). Typically the board resolution / shareholder approval date. |
| `schedule24.subsidiaries[].id` | null \| string |  | Stable row identity for retaining the current subsidiary row through edits and row reordering. |
| `schedule24.subsidiaries[].name` | null \| string |  | Box 400 — Name of subsidiary corporation. |
| `schedule24.subsidiaries[].qualifiesUnderSection88_1` | array \| boolean \| null \| number \| object \| string |  | Non-printed tri-state. Schedule 24 proves the event roster but not the taxable-Canadian-corporation, 90%-of-each-class, and arm's-length-minority conditions in the ITA s.88(1) chapeau. Pool continuity remains blocked until this reviewed conclusion is answered. |
| `schedule24.subsidiaries[].windUpDate` | null \| string |  | Box 700 — Date of wind-up (ISO YYYY-MM-DD). This is not the date the subsidiary's assets were distributed. Must be ≥ commencementDate per the validator's date-order gate. |
| `schedule25` | null \| object |  | Schedule 25 Investment in Foreign Affiliates input object, including hasForeignAffiliates and affiliateRows. It supplies the affiliate roster used by foreign-affiliate analysis and related schedules. Omission adds no input roster; a computed Schedule 25 may supply one, otherwise affiliate presence remains unknown rather than an answered no. |
| `schedule28` | null \| object |  | Schedule 28 Election not to be Associated Through a Third Corporation input object, including third-corporation facts, otherCorps and the election answers. It supplies election evidence and reconciles the association roster. Omission supplies no Schedule 28 election or roster; another valid source must establish any claimed election. |
| `schedule28.otherCorps` | array \| null |  | Corporations that would otherwise be deemed associated with each other through the third corporation. The form permits additional schedules when more space is needed. |
| `schedule28.otherCorps[]` | object |  |  |
| `schedule29` | null \| object |  |  |
| `schedule3` | array \| boolean \| null \| number \| object \| string |  |  |
| `schedule31` | null \| object |  | Schedule 31 (Investment Tax Credit, s.127) practitioner blob. A result is emitted only when the blob is present, so an unopened form never blocks export. |
| `schedule38` | null \| object |  | Schedule 38 Part VI Tax on Capital of Financial Institutions input object. Its capital and institution facts support the federal calculation, T2 line 720 and provincial financial-institution capital-tax inputs. Omission supplies no Schedule 38 prepass or fallback identity facts; applicable return triggers still require the relevant facts. |
| `schedule38.hasAcquisitionOfControlThisYear` | boolean \| null \| number \| string |  | s.190.1(6) AoC restriction on unused-credit carryover (s.111(5) same-or-similar-business test, NOT s.111(5.1)). |
| `schedule38.hasFunctionalCurrencyElectionS261` | boolean \| null \| number \| string |  | Functional-currency election under s.261 — translate the $1B fixed amount under s.261(5)(b) at the first-day relevant spot rate. |
| `schedule38.isAuthorizedForeignBank` | boolean \| null \| number \| string |  | Authorized foreign bank — s.190.13(d) 10%-of-RWA capital path. |
| `schedule38.isBank` | boolean \| null |  | s.190(1)(a) — bank? |
| `schedule38.isDepositTakingMortgageLender` | boolean \| null \| number \| string |  | s.190(1)(c) — deposit-taking mortgage lender? |
| `schedule38.isHoldcoUnderS190_1_e` | boolean \| null \| number \| string |  | s.190(1)(e) — holdco with all/substantially-all assets in shares or debt of related (a)-(e) corps (CRA admin practice ≥90% of FMV). |
| `schedule38.isLifeInsuranceCorpInCanada` | boolean \| null |  | s.190(1)(d) — life insurance corp carrying on business in Canada? |
| `schedule38.isTrustCorporation` | boolean \| null \| number \| string |  | s.190(1)(b) — authorized to offer trustee services to the public? |
| `schedule38.relatedSolelyViaCrownControl` | boolean \| null \| number \| string |  | s.190.15(6)(a) — related SOLELY because of Crown control (deemed NOT related for s.190.14/190.15). |
| `schedule38.relatedSolelyViaS251_5_b_Right` | boolean \| null \| number \| string |  | s.190.15(6)(b) — related SOLELY via a s.251(5)(b) right. |
| `schedule38.rightAcquiredForAvoidancePurpose` | boolean \| null \| number \| string |  | s.190.15(6) closing exception: was ONE OF THE MAIN PURPOSES for acquiring the s.251(5)(b) right to avoid a limitation on the amount of a corporation's capital deduction? Avoidance need only be among the main purposes, not the predominant one. Yes treats the right as exercised, so the corporations stay related for the s.190.15 capital deduction. It does not restore relatedness for s.190.14. Required whenever relatedSolelyViaS251_5_b_Right is true: a blank withholds the deeming rather than granting the $1B standalone capital deduction. |
| `schedule43` | null \| object |  | Schedule 43 inputs for Parts IV.1 and VI.1 tax, dividend allowances, elections and related-corporation transfers. |
| `schedule46` | null \| object |  | Part II tobacco manufacturing facts and evidence, retained in schedule_46. Omit or null when unopened. |
| `schedule49` | null \| object |  | Schedule 49 agreement and associated-corporation roster, including expenditure-limit allocation rows and rosterComplete. It supports the Schedule 31 SR&ED expenditure limit and associated-group reconciliation. Omission supplies no agreement or complete-roster confirmation; an associated claim still needs its allocation. |
| `schedule49.rows` | array \| null |  | Rows of associated corporations in the group (CCPCs + non-CCPCs). |
| `schedule49.rows[]` | object |  |  |
| `schedule5` | null \| object |  | The Schedule 5 input blob holding the provincial and territorial allocation answers. Omit it when the corporation sends no Schedule 5 input. |
| `schedule5.co17PassThrough` | array \| boolean \| null \| number \| object \| string |  |  |
| `schedule5.quebecPreparation` | null \| object |  | Independent Quebec CO-17 preparation selections, kept apart from prepared CO-17 boxes. Partial drafts are accepted; omit it or send null when it was not opened. Each populated group holds Schedule 5 with an error until its Quebec calculation exists, including a group whose only entry is an explicit zero. |
| `schedule5.quebecPreparation.currency` | null \| string |  | Currency of the entered Quebec amounts. Only CAD is accepted; null or an empty string leaves it unanswered. |
| `schedule5.quebecPreparation.donations` | null \| object |  | Quebec donation and gift deduction selections, each an exact entered amount, with the donation worksheet's choices on sharing the federal opening balances. Null or an empty object is unopened. Any populated member, including zero or an explicit choice, holds Schedule 5 until the Quebec donation calculation exists. |
| `schedule5.quebecPreparation.donations.charitable` | null \| string |  | Charitable donations amount selected for the Quebec deduction, as exact nonnegative decimal text with at most 12 decimal places. Null or an empty string is unanswered. An entered amount, including zero, is a selection; it does not establish an allowable deduction. |
| `schedule5.quebecPreparation.donations.culturalProperty` | null \| string |  | Certified cultural property gifts amount selected for the Quebec deduction, as exact nonnegative decimal text with at most 12 decimal places. Null or an empty string is unanswered. An entered amount, including zero, is a selection; it does not establish an allowable deduction. |
| `schedule5.quebecPreparation.donations.ecologicalLand` | null \| string |  | Certified ecologically sensitive land gifts amount selected for the Quebec deduction, as exact nonnegative decimal text with at most 12 decimal places. Null or an empty string is unanswered. An entered amount, including zero, is a selection; it does not establish an allowable deduction. |
| `schedule5.quebecPreparation.donations.medicine` | null \| string |  | Gifts of medicine amount selected for the Quebec deduction, as exact nonnegative decimal text with at most 12 decimal places. Null or an empty string is unanswered. An entered amount, including zero, is a selection; it does not establish an allowable deduction. |
| `schedule5.quebecPreparation.donations.musicalInstruments` | null \| string |  | Gifts of musical instruments amount selected for the Quebec deduction, as exact nonnegative decimal text with at most 12 decimal places. Null or an empty string is unanswered. An entered amount, including zero, is a selection; it does not establish an allowable deduction. |
| `schedule5.quebecPreparation.donations.useFederalCulturalPropertyOpening` | boolean \| null \| string |  | Whether the Quebec certified cultural property gifts continuity shares the federal opening balance. Send true or false; null or an empty string is unanswered, which is not No. Either answer imports no balance and keeps the donation group held. |
| `schedule5.quebecPreparation.donations.useFederalDonationsOpening` | boolean \| null \| string |  | Whether the Quebec charitable donations continuity shares the federal opening balance. Send true or false; null or an empty string is unanswered, which is not No. Either answer imports no balance and keeps the donation group held. |
| `schedule5.quebecPreparation.donations.useFederalEcologicalLandOpening` | boolean \| null \| string |  | Whether the Quebec ecologically sensitive land gifts continuity shares the federal opening balance. Send true or false; null or an empty string is unanswered, which is not No. Either answer imports no balance and keeps the donation group held. |
| `schedule5.quebecPreparation.donations.useFederalMedicineOpening` | boolean \| null \| string |  | Whether the Quebec gifts of medicine continuity shares the federal opening balance. Send true or false; null or an empty string is unanswered, which is not No. Either answer imports no balance and keeps the donation group held. |
| `schedule5.quebecPreparation.incomeAdjustments` | null \| object |  | Signed corrections in computing Quebec net income for tax purposes (CO-17.A.1), entered by printed category code, with the text naming the other addition and deduction. Null or an empty object is unopened. Any entered correction, including zero, holds Schedule 5 until the Quebec net-income calculation exists. |
| `schedule5.quebecPreparation.incomeAdjustments.additions` | null \| object |  | Signed Quebec net-income additions keyed by printed category code; 299 is the other category. Each value is exact decimal text with at most 12 decimal places; null or an empty string leaves that category unanswered. An undeclared code is refused. A correction is not a packed transfer row and imports no computed amount. |
| `schedule5.quebecPreparation.incomeAdjustments.deductions` | null \| object |  | Signed Quebec net-income deductions keyed by printed category code; 299 is the other category. Each value is exact decimal text with at most 12 decimal places; null or an empty string leaves that category unanswered. An undeclared code is refused. A correction is not a packed transfer row and imports no computed amount. |
| `schedule5.quebecPreparation.incomeAdjustments.otherAdditionDescription` | null \| string |  | Text naming the Quebec net-income addition entered under the other category, code 299. |
| `schedule5.quebecPreparation.incomeAdjustments.otherDeductionDescription` | null \| string |  | Text naming the Quebec net-income deduction entered under the other category, code 299. |
| `schedule5.quebecPreparation.losses` | null \| object |  | Quebec loss deduction selections, each an exact entered amount, with the loss worksheet's choices on sharing the federal opening balances of farm, restricted farm and listed personal property losses. Null or an empty object is unopened. Any populated member, including zero or an explicit choice, holds Schedule 5 until the Quebec loss calculation exists. |
| `schedule5.quebecPreparation.losses.capital` | null \| string |  | Capital loss amount selected for deduction in Quebec, as exact nonnegative decimal text with at most 12 decimal places. Null or an empty string is unanswered. An entered amount, including zero, is a selection; it does not establish an allowable deduction. |
| `schedule5.quebecPreparation.losses.farm` | null \| string |  | Farm loss amount selected for deduction in Quebec, as exact nonnegative decimal text with at most 12 decimal places. Null or an empty string is unanswered. An entered amount, including zero, is a selection; it does not establish an allowable deduction. |
| `schedule5.quebecPreparation.losses.listedPersonalProperty` | null \| string |  | Listed personal property loss amount selected for deduction in Quebec, as exact nonnegative decimal text with at most 12 decimal places. Null or an empty string is unanswered. An entered amount, including zero, is a selection; it does not establish an allowable deduction. |
| `schedule5.quebecPreparation.losses.nonCapital` | null \| string |  | Non-capital loss amount selected for deduction in Quebec, as exact nonnegative decimal text with at most 12 decimal places. Null or an empty string is unanswered. An entered amount, including zero, is a selection; it does not establish an allowable deduction. |
| `schedule5.quebecPreparation.losses.restrictedFarm` | null \| string |  | Restricted farm loss amount selected for deduction in Quebec, as exact nonnegative decimal text with at most 12 decimal places. Null or an empty string is unanswered. An entered amount, including zero, is a selection; it does not establish an allowable deduction. |
| `schedule5.quebecPreparation.losses.useFederalFarmOpening` | boolean \| null \| string |  | Whether the Quebec farm loss continuity shares the federal opening balance. Send true or false; null or an empty string is unanswered, which is not No. Either answer imports no balance and keeps the loss group held. |
| `schedule5.quebecPreparation.losses.useFederalListedPersonalPropertyOpening` | boolean \| null \| string |  | Whether the Quebec listed personal property loss continuity shares the federal opening balance. Send true or false; null or an empty string is unanswered, which is not No. Either answer imports no balance and keeps the loss group held. |
| `schedule5.quebecPreparation.losses.useFederalRestrictedFarmOpening` | boolean \| null \| string |  | Whether the Quebec restricted farm loss continuity shares the federal opening balance. Send true or false; null or an empty string is unanswered, which is not No. Either answer imports no balance and keeps the loss group held. |
| `schedule5.quebecPreparation.periodEnd` | null \| string |  | End of the Quebec fiscal period as a complete ISO date (YYYY-MM-DD). Null or an empty string leaves it unanswered. It cannot fall before periodStart. |
| `schedule5.quebecPreparation.periodStart` | null \| string |  | Start of the Quebec fiscal period as a complete ISO date (YYYY-MM-DD). Null or an empty string leaves it unanswered. It cannot fall after periodEnd. |
| `schedule5.quebecPreparation.reserveChoices` | null \| object |  | Choices on whether the Quebec reserve continuities use the federal reserve openings. Null or an empty object is unopened. Either explicit answer imports no federal balance and holds Schedule 5 until the Quebec reserve calculation exists. |
| `schedule5.quebecPreparation.reserveChoices.useFederalCapitalGainsReserveOpenings` | boolean \| null \| string |  | Whether the Quebec capital gains reserves use the same openings as the federal capital gains reserves. Send true or false; null or an empty string is unanswered, which is not No. Either answer imports no balance. |
| `schedule5.quebecPreparation.reserveChoices.useFederalFinancialStatementReserveOpenings` | boolean \| null \| string |  | Whether the Quebec reserves taken from the financial statements use the same openings as the federal ones. Send true or false; null or an empty string is unanswered, which is not No. Either answer imports no balance. |
| `schedule5.quebecPreparation.reserveChoices.useFederalReserveOpenings` | boolean \| null \| string |  | Whether the Quebec reserves use the same openings as the federal reserves. Send true or false; null or an empty string is unanswered, which is not No. Either answer imports no balance. |
| `schedule5.quebecPreparation.specialTaxEntries` | null \| object |  | Quebec special-tax amounts and their write-off amounts, entered by printed category code. Null or an empty object is unopened. Any entered amount, including zero, holds Schedule 5 until the Quebec special-tax calculation and its settlement exist. |
| `schedule5.quebecPreparation.specialTaxEntries.taxAmounts` | null \| object |  | Signed Quebec special-tax amounts keyed by printed category code 1 to 102, written without leading zeros. Each value is exact decimal text with at most 12 decimal places; null or an empty string leaves that category unanswered. Any other key, including a total, is refused. Kept separate from write-off amounts. |
| `schedule5.quebecPreparation.specialTaxEntries.writeOffAmounts` | null \| object |  | Signed Quebec special-tax write-off amounts keyed by the same printed category code 1 to 102, written without leading zeros. Each value is exact decimal text with at most 12 decimal places; null or an empty string leaves that category unanswered. Any other key, including a total, is refused. |
| `schedule50` | null \| object |  |  |
| `schedule50.rows` | array \| null |  | Current T4012 says to provide a maximum of the 10 top shareholders. Empty rows (all fields null) are allowed and remain no-ops. Rows beyond 10 trigger roster review; Filemark does not infer a supplementary- attachment procedure from the printed-grid capacity. |
| `schedule50.rows[]` | object |  |  |
| `schedule510` | null \| object |  | Ontario Schedule 510 corporate minimum tax inputs, including assets, revenue, association facts and loss or credit continuity. When omitted, the engine still tests CMT liability if Schedule 5 establishes an Ontario permanent establishment; missing required facts remain unresolved. |
| `schedule510.schedule512` | null \| object |  | Ontario Schedule 512 special additional tax inputs for a life insurance corporation, carrying the capital, reserve-liability, residence and related-group facts the tax is computed from. Under the Taxation Act, 2007 (Ontario), Sched. A, s.63, the tax is 1.25 per cent of taxable paid-up capital prorated by the days in the year over 365, less the Division B and Division C tax for the year. Omission supplies no Schedule 512 input; for a life insurance corporation carrying on business in Ontario the tax then stays unresolved rather than nil. |
| `schedule510.schedule512.isLifeInsuranceCorporation` | boolean \| null |  |  |
| `schedule55` | null \| object |  |  |
| `schedule56` | null \| object |  |  |
| `schedule63` | null \| object |  |  |
| `schedule67` | null \| object |  |  |
| `schedule67.hadAmalgamationIn2020Or2021` | boolean \| null \| number \| string |  | Had an amalgamation in 2020 or 2021 → predecessor TI must be included in line 200/210 per Note 1. |
| `schedule67.hadWindupIn2020Or2021` | boolean \| null \| number \| string |  | Had a wind-up in 2020 or 2021 → subsidiary TI must be included in line 200/210 per Note 1. |
| `schedule67.hasMultiple2022TaxYears` | boolean \| null \| number \| string |  | Corp had multiple 2022 tax years → bullet 3 instructs to use the LATEST 2022 TY. |
| `schedule67.isBank` | boolean \| null |  | Is this corp a bank? (Per Bank Act + s.190(1).) |
| `schedule67.isFinancialInstitutionRelatedToBankOrLifeInsurer` | boolean \| null \| number \| string |  | Is this corp a financial institution per s.190(1) that is RELATED to a bank or life-insurance corp carrying on business in Canada? |
| `schedule67.isLifeInsuranceCorpInCanada` | boolean \| null |  | Is this corp a life insurance corporation carrying on business in Canada? (Per s.190(1).) |
| `schedule67.isNonResident` | boolean \| null \| number \| string |  | Non-resident corp → TI substituted with "taxable income earned in Canada" per Note 1. |
| `schedule67.wasBankOrLifeInsurerGroupMemberInA2021TaxYear` | boolean \| null \| number \| string |  | Was this corp "a bank or life insurer group member at any time during a 2021 taxation year"? (s.191.5(2) verbatim.) The Part VI.2 charge exists only if yes — a corp that first became a bank in 2022 answers the three flags above "yes" and owes nothing. Engine fails closed (error + missing_required) on null; false → nil charge for all five instalment years. |
| `schedule68` | null \| object |  |  |
| `schedule68.hasAntiAvoidanceAddbackS123_6_6` | boolean \| null \| number \| string |  | Anti-avoidance s.(6) addback applies. |
| `schedule68.hasFunctionalCurrencyElectionS261` | boolean \| null \| number \| string |  | Functional-currency election under s.261 — translate the $100M fixed amount under s.261(5)(b) at the first-day relevant spot rate. |
| `schedule68.isAmalgamationSuccessor` | boolean \| null \| number \| string |  | Amalgamation successor — distinct from S67/Part VI.2 rollover. |
| `schedule68.isAmendedAgreement` | boolean \| null \| number \| string |  | Box 075 — is this an amended agreement? |
| `schedule68.isBank` | boolean \| null |  | Para (a) — bank? |
| `schedule68.isFinancialInstitutionRelatedToBankOrLifeInsurer` | boolean \| null \| number \| string |  | Para (c) — FI per s.190(1) related to bank/life-insurer? |
| `schedule68.isHoldcoUnderS190_1_e` | boolean \| null \| number \| string |  | s.190(1)(e) holdco of bank/life-insurer subsidiary. |
| `schedule68.isLifeInsuranceCorpInCanada` | boolean \| null |  | Para (b) — life insurance corp carrying on business in Canada? |
| `schedule68.isNonResident` | boolean \| null \| number \| string |  | Non-resident corp → TIEC per Note 1. |
| `schedule68.isPCInsurer` | boolean \| null \| number \| string |  | P&C insurer (NOT s.190(1) FI unless related to bank/life-insurer). |
| `schedule68.isWindupSuccessor` | boolean \| null \| number \| string |  | Wind-up successor — same as amalgamation (no rollover). |
| `schedule71` | null \| object |  |  |
| `schedule72` | null \| object |  |  |
| `schedule78` | null \| object |  |  |
| `schedule89` | null \| object |  | Schedule 89 capital dividend account verification data, including filingCorpRows, predecessorRows and life-insurance policy details. The engine reconciles declared life-insurance proceeds with the canonical CDA calculation and reads successor continuity rows. Omission supplies neither those assertions nor predecessor continuity rows. |
| `schedule89.filingCorpRows` | array \| null |  |  |
| `schedule89.filingCorpRows[]` | object |  |  |
| `schedule89.lifeInsurancePolicy1` | null \| object |  |  |
| `schedule89.lifeInsurancePolicy2` | null \| object |  |  |
| `schedule89.predecessorRows` | array \| null |  |  |
| `schedule89.predecessorRows[]` | object |  |  |
| `schedule9` | null \| object |  | Schedule 9 related and associated corporations data. In the absence of an explicit association answer or other association evidence, its supported computed association finding can answer the Schedule 510 association question. Omission supplies no Schedule 9 fallback and does not itself establish that the corporation is unassociated. |
| `schedule9.rows` | array \| null |  | The printed form has 14 rows. Empty rows are no-ops. Filemark keeps row 15 and beyond; the `taxcycle` export carries them, and the generated package and the `taxprep` and `ifirm` exports stay blocked because the form prescribes no overflow carrier. |
| `schedule9.rows[]` | object |  |  |
| `schedule92` | null \| object |  |  |
| `t2Jacket` | null \| object |  | T2 jacket identification, filing-status, applicability and other answers used by the batch computation. In a saved-engagement scenario the answers merge into the saved jacket leaf by leaf: a section or box the scenario does not name keeps its saved answer (the imported boxes 070, 071 and 080 included), and an explicit null clears that one box. A section the saved jacket holds is sent as an object; null or any other value in its place is refused. |
| `t2Jacket.additionalInfo` | null \| object |  |  |
| `t2Jacket.additionalInfo.partXII4CreditTotal127_41` | array \| boolean \| null \| number \| object \| string |  |  |
| `t2Jacket.additionalInfo.productsOrServices` | array \| boolean \| null \| number \| object \| string |  |  |
| `t2Jacket.additionalInfo.section94_1OffshoreInvestmentFundPropertyApplies` | array \| boolean \| null \| number \| object \| string |  | Whether ITA 94.1 applies to offshore investment fund property the corporation held in the year, Yes or No. The T2 jacket asks it whenever line 259 (specified foreign property over CAN$100,000) is Yes or Schedule 21 reports foreign income, and holds the return until it is answered; a Yes needs the offshore investment fund property ledger, whose imputed income Schedule 1 adds. |
| `t2Jacket.additionalInfo.substantiveCCPCAnytime` | boolean \| null |  | T2 box 290: the corporation was a substantive CCPC (ITA s.248(1)) at any time in the taxation year; routes the general rate reduction worksheet and the dividend-pool regime. |
| `t2Jacket.addresses` | null \| object |  |  |
| `t2Jacket.addresses.headOffice` | null \| object |  |  |
| `t2Jacket.applicability` | null \| object |  |  |
| `t2Jacket.applicability.airQualityImprovementTaxCredit` | array \| boolean \| null \| number \| object \| string |  |  |
| `t2Jacket.applicability.associatedCCPC` | boolean \| null |  | T2 box 160: whether the corporation was associated with one or more other taxable Canadian corporations in the tax year. ITA 191.1(2) makes an associated corporation's Part VI.1 dividend allowance nil unless a subsection 191.1(3) agreement allocates it, so Schedule 43 withholds line 210 until this is answered. Null leaves it unanswered, which holds rather than assuming either answer. |
| `t2Jacket.applicability.cdnFilmVideoTC` | array \| boolean \| null \| number \| object \| string |  |  |
| `t2Jacket.applicability.controlledForeignAffiliates` | array \| boolean \| null \| number \| object \| string |  | Historical T2 jacket box 258 answer: the corporation owned or had an interest in a controlled foreign affiliate. |
| `t2Jacket.applicability.dividendsReceivedOrPaid` | array \| boolean \| null \| number \| object \| string |  |  |
| `t2Jacket.applicability.eifel18_2PartyOrElection` | boolean \| null |  |  |
| `t2Jacket.applicability.eligibleCapitalProperty` | array \| boolean \| null \| number \| object \| string |  | Historical T2 jacket box 210 answer: the corporation had eligible capital property, which Schedule 10 continued before 2017. |
| `t2Jacket.applicability.equityBuybackPartII2` | boolean \| null |  | T2 jacket applicability answer: the corporation had equity repurchases within Part II.2 (ITA s.183.3), so Schedule 56 applies. |
| `t2Jacket.applicability.fiRelatedGroupGrossPartVI` | array \| boolean \| null \| number \| object \| string |  |  |
| `t2Jacket.applicability.filmVideoServicesTC` | array \| boolean \| null \| number \| object \| string |  |  |
| `t2Jacket.applicability.foreignAffiliatesT1134` | boolean \| null |  |  |
| `t2Jacket.applicability.fuelChargeFarmersTC` | boolean \| null |  |  |
| `t2Jacket.applicability.nalNROver1M` | boolean \| null |  |  |
| `t2Jacket.applicability.nonArmsLengthNonResidentTransactions` | array \| boolean \| null \| number \| object \| string |  | Historical T2 jacket box 171 answer: the corporation had non-arm's length transactions with non-residents. |
| `t2Jacket.applicability.nonControlledForeignAffiliates` | array \| boolean \| null \| number \| object \| string |  | Historical T2 jacket box 256 answer: the corporation owned or had an interest in a non-controlled foreign affiliate. |
| `t2Jacket.applicability.nrCarryingOnBusiness` | array \| boolean \| null \| number \| object \| string |  |  |
| `t2Jacket.applicability.nrShareholders` | array \| boolean \| null \| number \| object \| string |  | Historical T2 jacket box 151 answer: the corporation had a non-resident shareholder. |
| `t2Jacket.applicability.nrShareholdersVoting` | array \| boolean \| null \| number \| object \| string |  |  |
| `t2Jacket.applicability.partIITobaccoSurtax` | array \| boolean \| null \| number \| object \| string |  | Historical T2 jacket box 249 answer: the corporation is liable for the Part II tobacco manufacturers' surtax, so Schedule 46 applies. |
| `t2Jacket.applicability.partIV1OrVI1Prefs` | boolean \| null |  | T2 box 243: whether the corporation paid or received dividends on taxable preferred shares or taxable RFI shares. A No answers the per-row taxable-preferred-share question for every dividend row that does not itself point at a preferred share; a Yes or a blank keeps the per-row question. The jacket reads this box permissively, and the reader's predicate is the whole domain: a boolean; 0 or 1 as an integer OR a float; or the word true or false in any mix of case with any surrounding whitespace. Everything else raises rather than answers, including "Yes", "No", "1", "0", "", 0.5, 2 and -1. |
| `t2Jacket.applicability.partVI1TransferAgreement` | array \| boolean \| null \| number \| object \| string |  |  |
| `t2Jacket.applicability.partVIFICapital` | array \| boolean \| null \| number \| object \| string |  |  |
| `t2Jacket.applicability.partXIII1Tax` | boolean \| null |  |  |
| `t2Jacket.applicability.partnershipMember` | boolean \| null |  |  |
| `t2Jacket.applicability.provCreditOrMultiJurisdiction` | boolean \| null |  |  |
| `t2Jacket.applicability.specifiedForeignPropertyOver100K` | array \| boolean \| null \| number \| object \| string |  | T2 line 259: whether the corporation owned or held specified foreign property whose total cost amount was more than CAN$100,000 at any time in the year (ITA 233.3), which makes Form T1135 due. Yes or No; a Yes also asks t2Jacket.additionalInfo.section94_1OffshoreInvestmentFundPropertyApplies, the offshore investment fund property question (ITA 94.1), and the T2 jacket is held until it is answered. |
| `t2Jacket.applicability.surtaxCredit` | array \| boolean \| null \| number \| object \| string |  | Historical T2 jacket box 237 answer: the corporation claims the unused surtax credit, so Schedule 37 applies. |
| `t2Jacket.applicability.taxableDividendsPaid` | boolean \| null |  |  |
| `t2Jacket.certification` | null \| object |  |  |
| `t2Jacket.certification.ccpcOneMonthExtension` | array \| boolean \| null \| number \| object \| string |  |  |
| `t2Jacket.filingStatus` | null \| object |  | T2 jacket filing-status answers, including the first return after incorporation, amalgamation or winding-up. |
| `t2Jacket.filingStatus.amalgamationQualifiesUnderSection87_1` | boolean \| null |  |  |
| `t2Jacket.filingStatus.aocDate` | array \| boolean \| null \| number \| object \| string |  |  |
| `t2Jacket.filingStatus.aocEffectiveDateTime` | null \| string |  | Actual local acquisition timestamp (065), required when electing out of ITA 256(9). Without the election the tax boundary is midnight; CCPC status still uses actual time. |
| `t2Jacket.filingStatus.ccpcStatusChangeCausedByAcquisitionOfControl` | boolean \| null |  | Whether the CCPC-status change was caused by an acquisition of control. True places the boundary under s.249(4) at the acquisition (s.256(9)) instead of s.249(3.1); unanswered blocks box 066. |
| `t2Jacket.filingStatus.ccpcStatusChangeEffectiveDateTime` | null \| string |  |  |
| `t2Jacket.filingStatus.firstYearAfterAmalgamation` | boolean \| null |  |  |
| `t2Jacket.filingStatus.firstYearAfterIncorporation` | boolean \| null |  |  |
| `t2Jacket.filingStatus.section256_9Election` | array \| boolean \| null \| number \| object \| string |  |  |
| `t2Jacket.filingStatus.subsidiaryWindupS88` | boolean \| null |  |  |
| `t2Jacket.identification` | null \| object |  | Corporation identification and residence information from the T2 jacket. |
| `t2Jacket.identification.businessNumber` | null \| string |  |  |
| `t2Jacket.identification.claimingTreatyExemption` | array \| boolean \| null \| number \| object \| string |  |  |
| `t2Jacket.identification.isResidentOfCanada` | boolean \| null |  | T2 box 080: the corporation was resident in Canada in the taxation year. A no answer requires the box 081 country of residence. |
| `t2Jacket.identification.section149Exempt` | null \| number \| string |  | T2 box 085 exemption category: 1, 2 or 4 as a JSON number or its exact digit string; null leaves the category unanswered. This category does not state whether exemption began or ended at an acquisition of control. |
| `t2Jacket.identification.taxYearEnd` | array \| boolean \| null \| number \| object \| string |  |  |
| `t2Jacket.identification.taxYearEndExclusiveAt` | array \| boolean \| null \| number \| object \| string |  | Exact local exclusive end of this return (061). The next return starts at the same instant; CRA HHMM reporting is a separate projection. |
| `t2Jacket.identification.taxYearStart` | array \| boolean \| null \| number \| object \| string |  |  |
| `t2Jacket.identification.taxYearStartAt` | array \| boolean \| null \| number \| object \| string |  | Exact local inclusive period start for an intraday return (060); dates remain the canonical civil filing dates. Preserve any supplied UTC offset. |
| `t2Jacket.identification.typeChangeEffectiveDate` | null \| string |  | Effective date of a corporation-type change during the taxation year. |
| `t2Jacket.identification.typeOfCorporation` | null \| number \| string |  | T2 box 040 corporation category: codes 1 to 5 as JSON numbers or exact digit strings; null leaves the category unanswered. |
| `t2Jacket.lines` | null \| object |  |  |
| `t2Jacket.sbdAssignment` | array \| boolean \| null \| number \| object \| string |  |  |
| `taxYear` | number \| string | always |  |
| `wasAssociatedInPrecedingYear` | boolean \| null |  | Whether the corporation was associated with another corporation in its preceding taxation year, selecting which ITA s.125(5.1)(a) period the taxable-capital figure belongs to and which paragraph of ITA s.157(1.3) and (1.4) the preceding year's quarterly-instalment test uses. Send null deliberately when unknown: the engine then blocks rather than inferring a period. |
| `workpapers` | array \| null \| object |  |  |
| `workpapers[]` | object |  |  |
| `workpapers[].adjustmentAmount` | array \| boolean \| null \| number \| object \| string |  | Amount of the workpaper's computed adjustment, as a number or a plain money string. |
| `workpapers[].adjustmentStatus` | array \| boolean \| null \| number \| object \| string |  | Status of the workpaper's computed adjustment. Anything other than ok raises the workpaper's findings, and null means it was never analysed and is not treated as clean. |
| `workpapers[].assumption` | array \| boolean \| null \| number \| object \| string |  |  |
| `workpapers[].customName` | array \| boolean \| null \| number \| object \| string |  |  |
| `workpapers[].deletedAt` | array \| boolean \| null \| number \| object \| string |  | Timestamp marking the workpaper as deleted. Any value at all takes the workpaper out of every return-level check; leave it null for a live one. |
| `workpapers[].id` | array \| boolean \| null \| number \| object \| string |  | Your identifier for this workpaper. Findings addressed to the workpaper quote it. |
| `workpapers[].kind` | array \| boolean \| null \| number \| object \| string |  |  |
| `workpapers[].linkedAccountIds` | array \| boolean \| null \| number \| object \| string |  | Identifiers of the trial-balance accounts this workpaper ties out to. Only string entries are read. |
| `workpapers[].priorYearRows` | array \| null |  | Prior-year rows for the same workpaper template. |
| `workpapers[].priorYearRows[]._rowKey` | null \| string |  |  |
| `workpapers[].rows` | array \| null |  | The workpaper's own rows. A row's columns come from its template rather than from a fixed contract, so no column below this position is a published cell. |
| `workpapers[].rows[]` | object |  |  |
| `workpapers[].rows[]._rowKey` | null \| string |  |  |
| `workpapers[].rows[].acquiredInOrdinaryCourseOfBusiness` | array \| boolean \| null \| number \| object \| string |  | Acquired in ordinary course (112(2.1))?. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].amountDeductibleInRelevantForeignIncome` | array \| boolean \| null \| number \| object \| string |  | Amount deductible in relevant foreign income (113(5)). Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].connPayerAmountCC` | array \| boolean \| null \| number \| object \| string |  | Connected payer — amount CC (T2 page 7). Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].connPayerAmountII` | array \| boolean \| null \| number \| object \| string |  | Connected payer — amount II (T2 page 7). Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].connPayerLine465` | array \| boolean \| null \| number \| object \| string |  | Connected payer — line 465 (eligible dividends paid). Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].connPayerLine470` | array \| boolean \| null \| number \| object \| string |  | Connected payer — line 470 (non-eligible dividends paid). Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].connPayerTotalTaxableWhilePrivateOrSubject` | array \| boolean \| null \| number \| object \| string |  | Payer taxable dividends paid while private/subject (186(1)(b) denominator). Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].date` | array \| boolean \| null \| number \| object \| string |  | Date. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].designatedInWritingAtPaymentTime` | array \| boolean \| null \| number \| object \| string |  | Written eligible designation at payment?. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the deemed-dividends, dividends, dividends-declared workpaper templates. The template offers No, Yes. The published contract states the type rather than the template's picklist. |
| `workpapers[].rows[].designationDate` | array \| boolean \| null \| number \| object \| string |  | Eligible designation date. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the deemed-dividends, dividends, dividends-declared workpaper templates. |
| `workpapers[].rows[].exemptDividend186_2` | array \| boolean \| null \| number \| object \| string |  | 186.2 exempt (prescribed VCC)?. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. The template offers No, Yes. The published contract states the type rather than the template's picklist. |
| `workpapers[].rows[].exemptSurplusPortion` | array \| boolean \| null \| number \| object \| string |  | Exempt-surplus portion (113(1)(a)). Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].hybridForeignTaxPrescribed` | array \| boolean \| null \| number \| object \| string |  | Foreign tax prescribed — hybrid portion (113(1)(a.1)(ii)(A)(I)). Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].hybridNonBusinessIncomeTax` | array \| boolean \| null \| number \| object \| string |  | Non-business-income tax — hybrid portion (113(1)(a.1)(ii)(A)(II)). Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].hybridSurplusPortion` | array \| boolean \| null \| number \| object \| string |  | Hybrid-surplus portion (113(1)(a.1)). Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].lateDesignationErdtohTransitional` | array \| boolean \| null \| number \| object \| string |  | s.89(14.2) ERDTOH transition applies?. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the deemed-dividends, dividends, dividends-declared workpaper templates. The template offers No, Yes. The published contract states the type rather than the template's picklist. |
| `workpapers[].rows[].nonBusinessIncomeTaxOnDeemedNonDividend` | array \| boolean \| null \| number \| object \| string |  | Non-business-income tax on 113(5) amount (113(6)). Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].originalDividendId` | array \| boolean \| null \| number \| object \| string |  | Original dividend ID (Schedule 55 election). Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the deemed-dividends, dividends, dividends-declared workpaper templates. |
| `workpapers[].rows[].paragraphCAntiAvoidanceApplies` | array \| boolean \| null \| number \| object \| string |  | s.89(1) paragraph (c) applies?. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the deemed-dividends, dividends, dividends-declared workpaper templates. |
| `workpapers[].rows[].payerCarriedBusinessThroughCanadianPeThroughoutStatutoryPeriod` | array \| boolean \| null \| number \| object \| string |  | Canadian PE Throughout 112(2) Period?. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].payerContinuousPeEvidenceReference` | array \| boolean \| null \| number \| object \| string |  | Continuous-PE Evidence / Source. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].payerHypotheticalResidentTaxableIncomePriorYear` | array \| boolean \| null \| number \| object \| string |  | Payer prior-year taxable income if resident throughout year (112(2)). Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].payerIsForeignAffiliate` | array \| boolean \| null \| number \| object \| string |  | Payer is Foreign Affiliate?. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].payerReg8201FactsAtReceipt` | array \| boolean \| null \| number \| object \| string |  | The payer's Reg 8201 permanent-establishment facts as they stood when the dividend was received. Practitioner-asserted operand carried verbatim from the workpaper row. |
| `workpapers[].rows[].payerReg8201Reviews` | array \| boolean \| null \| number \| object \| string |  | Reg 8201 permanent-establishment reviews for the payer, each stamped with the timing it applies to; the receipt-timed review is used when no facts block is sent. Practitioner-asserted operand carried verbatim from the workpaper row. |
| `workpapers[].rows[].payerTaxableIncomeEarnedInCanadaPriorYear` | array \| boolean \| null \| number \| object \| string |  | Payer prior-year taxable income earned in Canada (112(2)). Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].payerTaxableUnderSubsection2_3` | array \| boolean \| null \| number \| object \| string |  | Payer Taxable under 2(3)?. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].payerWasPrivateOrSubjectWhenPaid` | array \| boolean \| null \| number \| object \| string |  | Payer private/subject when paid (186(1)(b))?. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].paymentTimeGroupId` | array \| boolean \| null \| number \| object \| string |  | Payment-time group. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the deemed-dividends, dividends, dividends-declared workpaper templates. |
| `workpapers[].rows[].preAcquisitionSurplusPortion` | array \| boolean \| null \| number \| object \| string |  | Pre-acquisition-surplus portion (113(1)(d)). Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].privateCorporationImmediatelyBeforePayment` | array \| boolean \| null \| number \| object \| string |  | Private immediately before payment (s.185.1(2))?. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the deemed-dividends, dividends, dividends-declared workpaper templates. |
| `workpapers[].rows[].privateCorporationWhenPaid` | array \| boolean \| null \| number \| object \| string |  | Private corporation at payment (s.129(1))?. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the deemed-dividends, dividends, dividends-declared workpaper templates. |
| `workpapers[].rows[].refundExclusion129_1_2` | array \| boolean \| null \| number \| object \| string |  | Paid dividend excluded, line 530 (s.129(1.2)). Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the deemed-dividends, dividends, dividends-declared workpaper templates. |
| `workpapers[].rows[].refundExclusionBankruptController` | array \| boolean \| null \| number \| object \| string |  | Paid to bankrupt controller, line 540 (s.129(1.1)). Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the deemed-dividends, dividends, dividends-declared workpaper templates. |
| `workpapers[].rows[].s126_4TaxCreditGeneratorApplies` | array \| boolean \| null \| number \| object \| string |  | s.126(4) foreign-tax-credit generator applies?. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. The template offers No, Yes. The published contract states the type rather than the template's picklist. |
| `workpapers[].rows[].s126_4_11PartnershipMismatchApplies` | array \| boolean \| null \| number \| object \| string |  | s.126(4.11) partnership mismatch applies?. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. The template offers No, Yes. The published contract states the type rather than the template's picklist. |
| `workpapers[].rows[].s126_4_1NoEconomicProfitApplies` | array \| boolean \| null \| number \| object \| string |  | s.126(4.1) no-economic-profit exclusion applies?. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. The template offers No, Yes. The published contract states the type rather than the template's picklist. |
| `workpapers[].rows[].s126_4_2ShortTermSecurityCapApplies` | array \| boolean \| null \| number \| object \| string |  | s.126(4.2) short-term-security cap applies?. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. The template offers No, Yes. The published contract states the type rather than the template's picklist. |
| `workpapers[].rows[].s126_4_3ShortTermSecurityCapExceptionApplies` | array \| boolean \| null \| number \| object \| string |  | s.126(4.3) exception to short-term-security cap applies?. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].s55CapitalGainIsForeignSource` | array \| boolean \| null \| number \| object \| string |  | s.55 deemed gain foreign-source?. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].s55DividendArisesOnRedemption` | array \| boolean \| null \| number \| object \| string |  | Dividend arises on s.84(2)/(3) redemption?. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].s55PartIVEvidenceReference` | array \| boolean \| null \| number \| object \| string |  | Part IV tax/refund evidence reference. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].s55PartIVTaxPayableForDividend` | array \| boolean \| null \| number \| object \| string |  | Part IV tax payable for dividend. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].s55PartIVTaxRefundedInSeries` | array \| boolean \| null \| number \| object \| string |  | Part IV tax refunded in series. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].s55PurposeOrResultTestMet` | array \| boolean \| null \| number \| object \| string |  | s.55(2.1)(b) purpose/result test met?. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].s55SafeIncomeAttributable` | array \| boolean \| null \| number \| object \| string |  | Safe income attributable to share. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].s55ShareDispositionPropertyId` | array \| boolean \| null \| number \| object \| string |  | Linked share disposition property ID. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].s55TransactionOrSeries` | array \| boolean \| null \| number \| object \| string |  | Whether the dividend was received as part of a transaction or series under ITA 55(2). Answer true/false or Yes/No; null is UNANSWERED and is never read as no. Practitioner-asserted operand carried verbatim from the workpaper row. |
| `workpapers[].rows[].s55UnrefundedPartIVProtectedExcessPortion` | array \| boolean \| null \| number \| object \| string |  | Excess-dividend portion protected by unrefunded Part IV. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].s55_3ExceptionApplies` | array \| boolean \| null \| number \| object \| string |  | s.55(3) exception applies?. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].s55_3ExceptionEvidenceReference` | array \| boolean \| null \| number \| object \| string |  | s.55(3) evidence reference. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].s55_3ExceptionParagraph` | array \| boolean \| null \| number \| object \| string |  | s.55(3) exception paragraph. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. The template offers 55(3)(a), 55(3)(b). The engine matches the paragraph exactly, including case, and blocks the row when it does not match, so a differently-cased answer is refused rather than misread. |
| `workpapers[].rows[].s83_2_2Or2_3Or2_4ReliefApplies` | array \| boolean \| null \| number \| object \| string |  | s.83(2.2)-(2.4) relief applies?. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].s89_14_1ReliefGranted` | array \| boolean \| null \| number \| object \| string |  | Minister granted late-designation relief?. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the deemed-dividends, dividends, dividends-declared workpaper templates. The template offers No, Yes. The published contract states the type rather than the template's picklist. |
| `workpapers[].rows[].s93_4_3_cClause113_1_c_i_AAmount` | array \| boolean \| null \| number \| object \| string |  | Clause 113(1)(c)(i)(A) amount for the 93.4(3)(c) low-RTF amount. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].s93_4_3_cLowRtfDeduction` | array \| boolean \| null \| number \| object \| string |  | Low-RTF deduction determined under 93.4(3)(c). Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].section113_2Deduction` | array \| boolean \| null \| number \| object \| string |  | ITA 113(2) deduction claimed against this dividend out of the pre-acquisition surplus adjustment. Practitioner-asserted operand carried verbatim from the workpaper row. |
| `workpapers[].rows[].section113_2HistoricCapacity` | array \| boolean \| null \| number \| object \| string |  | Historic ITA 113(2) deduction capacity available to this dividend. Practitioner-asserted operand carried verbatim from the workpaper row. |
| `workpapers[].rows[].shareType` | array \| boolean \| null \| number \| object \| string |  | Share Type. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].sharesAcquiredForDividendPurpose` | array \| boolean \| null \| number \| object \| string |  | Share acquired to receive this capital dividend?. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].taxableForeignTaxPrescribed` | array \| boolean \| null \| number \| object \| string |  | Foreign tax prescribed — taxable portion (113(1)(b)). Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].taxableNonBusinessIncomeTax` | array \| boolean \| null \| number \| object \| string |  | Non-business-income tax — taxable portion (113(1)(c)). Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].taxableSurplusPortion` | array \| boolean \| null \| number \| object \| string |  | Taxable-surplus portion (113(1)(b)/(c)). Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].schedule3CoverageReview` | array \| boolean \| null \| number \| object \| string |  | The Schedule 3 dividend coverage review packet, carried on the dividends workpaper only. A transported copy that disagrees with it is refused rather than silently preferred. |
| `workpapers[].sectionRows` | null \| object |  |  |
| `workpapers[].templateId` | null \| string |  | Which workpaper template this is. It selects the stored-row read contract, so a row column is read only where its template declares it. |

### Strict profile accepted values (36 of 304 cells)

These constraints apply when you supply this target's `payloadContract`. Cells marked **pinned** must equal the listed value. A pinned cell that is not required may be left out.

| Cell | Accepted values |
| --- | --- |
| `aocPropertyDesignations[].capitalCost` | `-1000000000000000 to 1000000000000000` |
| `aocPropertyDesignations[].designatedAmount` | `-1000000000000000 to 1000000000000000` |
| `aocPropertyDesignations[].subsection111_5_1WouldApply` | `one of false, true` |
| `daysInYear` | `-1000000000000000 to 1000000000000000` |
| `schedule24.operationCode` | `one of null, "01", "02", "03", "04", "05", "06", "07", "09", "10", "11", "12", "13", "14", "15", "16", "17", "99"` |
| `schedule38.hasAcquisitionOfControlThisYear` | `-1000000000000000 to 1000000000000000` |
| `schedule38.hasFunctionalCurrencyElectionS261` | `-1000000000000000 to 1000000000000000` |
| `schedule38.isAuthorizedForeignBank` | `-1000000000000000 to 1000000000000000` |
| `schedule38.isDepositTakingMortgageLender` | `-1000000000000000 to 1000000000000000` |
| `schedule38.isHoldcoUnderS190_1_e` | `-1000000000000000 to 1000000000000000` |
| `schedule38.isTrustCorporation` | `-1000000000000000 to 1000000000000000` |
| `schedule38.relatedSolelyViaCrownControl` | `-1000000000000000 to 1000000000000000` |
| `schedule38.relatedSolelyViaS251_5_b_Right` | `-1000000000000000 to 1000000000000000` |
| `schedule38.rightAcquiredForAvoidancePurpose` | `-1000000000000000 to 1000000000000000` |
| `schedule67.hadAmalgamationIn2020Or2021` | `-1000000000000000 to 1000000000000000` |
| `schedule67.hadWindupIn2020Or2021` | `-1000000000000000 to 1000000000000000` |
| `schedule67.hasMultiple2022TaxYears` | `-1000000000000000 to 1000000000000000` |
| `schedule67.isFinancialInstitutionRelatedToBankOrLifeInsurer` | `-1000000000000000 to 1000000000000000` |
| `schedule67.isNonResident` | `-1000000000000000 to 1000000000000000` |
| `schedule67.wasBankOrLifeInsurerGroupMemberInA2021TaxYear` | `-1000000000000000 to 1000000000000000` |
| `schedule68.hasAntiAvoidanceAddbackS123_6_6` | `-1000000000000000 to 1000000000000000` |
| `schedule68.hasFunctionalCurrencyElectionS261` | `-1000000000000000 to 1000000000000000` |
| `schedule68.isAmalgamationSuccessor` | `-1000000000000000 to 1000000000000000` |
| `schedule68.isAmendedAgreement` | `-1000000000000000 to 1000000000000000` |
| `schedule68.isFinancialInstitutionRelatedToBankOrLifeInsurer` | `-1000000000000000 to 1000000000000000` |
| `schedule68.isHoldcoUnderS190_1_e` | `-1000000000000000 to 1000000000000000` |
| `schedule68.isNonResident` | `-1000000000000000 to 1000000000000000` |
| `schedule68.isPCInsurer` | `-1000000000000000 to 1000000000000000` |
| `schedule68.isWindupSuccessor` | `-1000000000000000 to 1000000000000000` |
| `t2Jacket.filingStatus.aocEffectiveDateTime` | `at most 40 characters` |
| `t2Jacket.filingStatus.ccpcStatusChangeEffectiveDateTime` | `at most 40 characters` |
| `t2Jacket.identification.section149Exempt` | `one of null, 1, 2, 4, "1", "2", "4"` |
| `t2Jacket.identification.typeOfCorporation` | `one of null, 1, 2, 3, 4, 5, "1", "2", "3", "4", "5"` |
| `taxYear` | `matches ^\s*(?:1[0-9][0-9][0-9]\|20[0-1][0-9]\|202[0-7])\s*$; 1000 to 2027` |
| `workpapers[].priorYearRows[]._rowKey` | `0 to 20000 characters` |
| `workpapers[].rows[]._rowKey` | `0 to 20000 characters` |

## Output cells (59)

Paths are relative to this target's result object in the response.

| Cell | Types | Description |
| --- | --- | --- |
| `filingPropositions[].evidence[]` | string |  |
| `filingPropositions[].filingDisposition` | string |  |
| `filingPropositions[].propositionId` | string |  |
| `filingPropositions[].schemaVersion` | integer |  |
| `filingPropositions[].state` | string |  |
| `filingPropositions[].targets[]` | string |  |
| `provisional` | boolean |  |
| `ready` | boolean |  |
| `warnings[]` | object |  |
| `warnings[].affectedOutputs` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].box` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].calculationUsable` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].code` | null \| string |  |
| `warnings[].message` | string |  |
| `warnings[].producers` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].severity` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].anchorField` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].schedule` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].boxForm` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].box_form` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].citation` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].gate_id` | null \| string |  |
| `warnings[].notes` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].sourceModule` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].taxYear` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].sources` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].taxYears` | array \| boolean \| null \| number \| object \| string |  |
| `coverageReason` | string |  |
| `coverageStatus` | string |  |
| `formId` | string |  |
| `formRevision` | null \| string |  |
| `missing_required` | array |  |
| `revisionHold.blocksCurrentFormClaim` | boolean |  |
| `revisionHold.currentFormSource` | string |  |
| `revisionHold.gaps[]` | string |  |
| `revisionHold.implementationSource` | string |  |
| `revisionHold.status` | string |  |
| `taxYear` | integer |  |
| `continuation_rows.part2_predecessors[].businessNumber` | null \| string |  |
| `continuation_rows.part2_predecessors[].name` | null \| string |  |
| `continuation_rows.part3_subsidiaries[].assetDistributionCompletedInThatYear` | array \| boolean \| null \| number \| object \| string |  |
| `continuation_rows.part3_subsidiaries[].assetsDistributedTaxationYearEnd` | null \| string |  |
| `continuation_rows.part3_subsidiaries[].businessNumber` | null \| string |  |
| `continuation_rows.part3_subsidiaries[].commencementDate` | null \| string |  |
| `continuation_rows.part3_subsidiaries[].name` | null \| string |  |
| `continuation_rows.part3_subsidiaries[].qualifiesUnderSection88_1` | array \| boolean \| null \| number \| object \| string |  |
| `continuation_rows.part3_subsidiaries[].windUpDate` | null \| string |  |
| `filing_triggers[]` | string |  |
| `fired_gates` | object |  |
| `operation_code` | null \| string |  |
| `predecessors[].businessNumber` | null \| string |  |
| `predecessors[].name` | null \| string |  |
| `subsidiaries[].assetDistributionCompletedInThatYear` | array \| boolean \| null \| number \| object \| string |  |
| `subsidiaries[].assetsDistributedTaxationYearEnd` | null \| string |  |
| `subsidiaries[].businessNumber` | null \| string |  |
| `subsidiaries[].commencementDate` | null \| string |  |
| `subsidiaries[].name` | null \| string |  |
| `subsidiaries[].qualifiesUnderSection88_1` | array \| boolean \| null \| number \| object \| string |  |
| `subsidiaries[].windUpDate` | null \| string |  |
