schedule97

T2 Corporation Income Tax Return

Kind
batch
Supported tax years
2011 and later
Strict profile
s97_versioned_profile_target_value_v1
Payload schema version
0.5.0
Dependencies (run automatically)
schedule20, schedule91, schedule92

Example request

Send this body to POST /api/v1/computations/batch. It satisfies the strict profile, so it works with or without the payloadContract selector.

{
  "compute": [
    "schedule97"
  ],
  "inputs": {
    "taxYear": 2025,
    "fiscalStart": "2025-01-01",
    "fiscalEnd": "2025-12-31",
    "daysInYear": 365,
    "schedule97": {
      "incorporationCountry": "United States",
      "nrCategoryCode": "10"
    },
    "isCCPC": false
  }
}

Input cells (10)

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

Required says when a cell must be present. Always means every request needs it: the default boundary rejects the call when the cell is omitted or null. Strict means only a request that sends this target’s payloadContract selector needs it. See Run computations for the default boundary.

These cells are everything this target accepts. A member that is not published here, or is sent with the wrong JSON type, fails the call with a 400 naming each failing cell.

Input cells for schedule97
CellTypesRequired
daysInYearDays in the taxation year. It must equal the inclusive fiscalStart-to-fiscalEnd span, counting both end days, so a leap year states 366. The 377-day upper bound admits the longest acquisition-of-control-elected year under ITA 249.1(1)(a) and 249(4)(b); the canonical batch seam still rejects a period that ITA 249(3) deems split.integerstrict
fiscalEndLast day of the taxation year, as YYYY-MM-DD, on or after fiscalStart. Its calendar year must equal taxYear; the engine rejects any other combination before computing.stringstrict
fiscalStartFirst day of the taxation year, as YYYY-MM-DD. ITA s.249(1)(a) makes the taxation year the fiscal period, and the Part I rates and limits this candidate's dependency closure computes are day-weighted, so the engine requires the stated period instead of assuming a calendar year. It must fall in the taxYear stated above or the year before it.stringstrict
isCCPCThe corporation was a Canadian-controlled private corporation (ITA s.125(7) definition) throughout the taxation year.boolean
schedule97.certificateOfDiscontinuanceThis candidate excludes the Canada-incorporation branch, so box 210 must be explicit JSON null.null | string
schedule97.code08TreatyEligibleCode-08 sidecar: whether the entity claims Canada-U.S. Treaty benefits under Article IV(6). False requires Schedule 20 for Part XIV tax.boolean | null
schedule97.incorporationCountryA single line of country text with no leading or trailing whitespace. The 10,000-character ceiling is a Filemark limit, not a CRA field limit. Values whose first word is Canada, in any casing, are excluded.null | stringstrict
schedule97.nrCategoryCodeBranch-limited box 300 value: code 10 (life insurance business in Canada) or code 11 (insurance business in Canada other than life insurance). No implication about filing completeness or companion requirements is made.null | stringstrict
schedule97.section216_4UndertakingFiledSchedule-side persistence home for the non-resident's undertaking under ITA 216(4), commonly filed on Form NR6. This is not a printed S97 box.boolean | null
taxYearFour-digit taxation year accepted by the batch reader. Historical applicability is decided by the requested form; years after 2027 fail at the shared verified-rate horizon.integer | stringalways
Strict profile accepted values (7 of 10 cells)

These values apply only when the request sends this target’s payloadContract selector. A cell marked pinned must equal the value shown to satisfy the strict profile. On the default boundary the same cell accepts any value of its published type.

Strict profile accepted values for schedule97
CellAccepted values
daysInYear1 to 1000000000000000
fiscalEnddate (YYYY-MM-DD); 10 to 10 characters
fiscalStartdate (YYYY-MM-DD); 10 to 10 characters
schedule97.certificateOfDiscontinuanceone of "Y", "N", null
schedule97.incorporationCountrymatches ^\S(?:[^\r\n]*\S)?$; 1 to 10000 characters
schedule97.nrCategoryCodeone of "10", "11", "01", "02", "03", "04"
taxYearmatches ^\s*(?:1[0-9]{3}|2(?:0(?:[0-1][0-9]{1}|2[0-7])))\s*$; 1000 to 2027

Output cells (39)

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

Output cells for schedule97
CellTypes
incorporationCountryBox 200, the country of incorporation. Null when the request does not state it, which is itself one of the gated conditions.null | string
incorporatedInCanadaWhether box 200 names Canada. Null when box 200 is unanswered.boolean | null
certificateOfDiscontinuanceBox 210, echoed from the request. The form asks it only of a corporation incorporated in Canada, so answering it on this candidate's non-Canada branch raises a gate.null | string
nrCategoryCodeBox 300, the non-resident category code. Null when the request does not state it, which is itself one of the gated conditions.null | string
categoryImplications.requires_s91boolean
categoryImplications.requires_tcp_formboolean
categoryImplications.requires_s20boolean
categoryImplications.requires_schedule_92boolean
categoryImplications.is_section_216_electionboolean
categoryImplications.is_actor_electionboolean
categoryImplications.is_emigrantboolean
categoryImplications.is_llc_llp_lllp_treaty_hybridboolean
warningsarray
fired_gatesEvery registered gate this result raised, keyed by gate identifier. At least one member is what selects this branch.object
provisionalboolean
readyboolean
warnings[].codestring
warnings[].messagestring
warnings[].notesstring
warnings[].sectionstring
warnings[].severitystring
warnings[].taxYearinteger
coverageStatusstring
coverageReasonstring
formIdstring
formRevisionstring
taxYearinteger
missing_requiredarray
warnings[].boxThe form box the finding is about, or the em dash the engine prints when the gate is about the form rather than one box.null | string
warnings[].citation.applies_to_boxes[]string
warnings[].citation.cra_text_verbatimstring
warnings[].citation.form_idstring
warnings[].citation.form_revisionstring
warnings[].citation.gate_idstring
warnings[].citation.rulestring
warnings[].citation.sourcestring
warnings[].citation.source_urlstring
warnings[].citation.verified_atstring
warnings[].gate_idstring
Filemark | schedule97 cells