schedule33

T2 Corporation Income Tax Return

Kind
batch
Supported tax years
2014 and later
Strict profile
s33_single_resident_tcec_profile_target_value_v1
Payload schema version
0.11.0
Dependencies (run automatically)
division_c, schedule23, schedule5

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": [
    "schedule33"
  ],
  "inputs": {
    "taxYear": 2025,
    "fiscalStart": "2025-01-01",
    "fiscalEnd": "2025-12-31",
    "isResidentOfCanada": true,
    "isFinancialInstitution": false,
    "isInsuranceCorp": false,
    "associatedCCPC": false,
    "wasAssociatedInPrecedingYear": false,
    "accounts": [
      {
        "id": "revenue",
        "accountCode": "4000",
        "accountName": "Cedar Ridge active business revenue",
        "accountType": "revenue",
        "currentYearBalance": -100000,
        "userStatus": "default",
        "reviewStatus": "default",
        "classification": {
          "schedule1Relevant": false,
          "incomeType": "active",
          "foreignSource": false
        }
      }
    ],
    "incomeStatementFlags": {
      "revenue": true
    },
    "schedule33": {
      "allResidentComponentsReviewed": true,
      "partnershipDetails": null,
      "lines": {
        "104": {
          "amount": 15000000,
          "source": "entered"
        },
        "610": {
          "amount": 100000,
          "source": "entered"
        }
      }
    },
    "isCCPC": true,
    "daysInYear": 365
  }
}

Input cells (45)

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 schedule33
CellTypesRequired
accountsarray
accounts[].accountCodestringstrict
accounts[].accountNamestringstrict
accounts[].accountTypestringstrict
accounts[].classification.foreignSourceThe account's income is foreign source; schedules that split Canadian from foreign amounts route it accordingly, for example Schedule 7's foreign property and rental buckets and line 500 foreign business income.boolean | nullstrict
accounts[].classification.incomeTypenull | stringstrict
accounts[].classification.schedule1RelevantMarks the account's concept as one to review for Schedule 1. It does not decide the posting; the classification's line and treatment do.booleanstrict
accounts[].currentYearBalanceinteger | null | numberstrict
accounts[].idstringstrict
accounts[].reviewStatusstringstrict
accounts[].userStatusstringstrict
associatedCCPCT2 jacket box 160: the corporation was associated with one or more CCPCs in the taxation year; with the preceding-year fact this controls Schedule 33 Part 5.booleanstrict
currentYearTCECTaxable capital employed in Canada for the current taxation year. It must be finite and non-negative.null | number | string
currentYearTCECMetaProvenance for currentYearTCEC. When sent, all four members must be present and correct: basis is current_tax_year, asOf is the current taxation-year end, source names where the figure came from, and confirmed is true. Anything less leaves the amount an unattested assertion.null | object
daysInYearInclusive day count for the canonical fiscalStart/fiscalEnd period required by the settled Part I dependency closure.integerstrict
fiscalEndLast day of the taxation year, as YYYY-MM-DD, on or after fiscalStart. Its calendar year must equal taxYear. Required for the same reason as fiscalStart.null | stringstrict
fiscalStartFirst day of the taxation year, as YYYY-MM-DD. Required because this target's dependency closure reaches part_i_tax, whose rates and limits are day-weighted; ITA s.249(1)(a) makes the taxation year the fiscal period, and the engine will not invent calendar-year bounds.null | stringstrict
functionalCurrencyContextThe 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, a firstDayRate object with rate, spotRateSource and firstDayDate, and optional statutoryThresholdRoundingOverrides.null | object
gifiAssignmentsMap of account id to the accepted GIFI code, folded onto accounts before consumers read them. An assignment overrides an account's embedded gifiCode and an empty string clears it. The merged view drives statutory paths including Schedule 1's lines 239/347 OCI treatment and Schedule 4's farming-presence signal, as well as Schedule 33's reference panel and prefill.null | object
incomeStatementFlags.revenueTrue when the trial-balance account with this id is an income-statement account; flagged balances form net income per financial statements, Schedule 1 amount A.booleanstrict
isCCPCThe corporation was a Canadian-controlled private corporation (ITA s.125(7) definition) throughout the taxation year.boolean
isFinancialInstitutionWhether the corporation is a "financial institution" within the meaning of ITA 181(1). Every operative subsection of ITA 181.2 is scoped to a corporation "other than a financial institution", and a filer inside that class is measured under ITA 181.3 on Schedule 34/35 instead. Optional, and never defaulted: omit it and the scope is unresolved, so the engine refuses to certify any taxable capital, small-business-deduction grind or s.127(10.2) flag rather than assuming the ordinary-corporation regime. Pinned false for this profile, whose witness states that ITA 181.2 governs.boolean
isInsuranceCorpWhether the corporation is an insurance corporation. T2 SCH33 E (15) scopes its own face to "the corporation (other than a financial institution or an insurance corporation)", and an insurance corporation is measured under ITA 181.3 on Schedule 35. Pinned false for this profile, optional, and never defaulted — see `isFinancialInstitution`.boolean
isResidentOfCanadaThe corporation was resident in Canada in the taxation year (T2 box 080); Schedule 33 requires the residence fact answered before its taxable-capital result is filing-ready.booleanstrict
schedule33Schedule 33 (Taxable Capital Employed in Canada) statutory input blob. null or absent means the form was not opened: the node returns the not-ready all-None shape, never a silent-zero 690/790.null | object
schedule33.allResidentComponentsReviewedTrue confirms every resident Schedule 33 capital, deduction, and investment-allowance line omitted from `lines` was reviewed and is nil. Without this confirmation, every line must be entered explicitly, including zero.boolean | nullstrict
schedule33.isFinancialInstitution`true` = a financial institution within the meaning of s.181(1) (→ s.181.3, Schedule 34); null/absent leaves the scope unresolved.boolean | null
schedule33.isInsuranceCorp`true` = an insurance corporation at any time in the year (→ s.181.3, Schedule 35); null/absent leaves the scope unresolved.boolean | null
schedule33.line713ForeignTaxConditionMetSupplied paragraph 181.4(d) fact for a positive line 713. `true` confirms that the corporation's country of residence imposed neither tax described by that paragraph; `false` means line 713 is not deductible; null/absent is unresolved.boolean | null
schedule33.linesForm line number ("101"…"713") → entry. Enterable codes: 101, 103-112, 121-124, 401-407, 610, 701/711/712/713.object
schedule33.lines.104.amountintegerstrict
schedule33.lines.104.sourceWhere the line's amount came from. A closed set: the engine refuses any other source with a box-scoped error and excludes the entry, so a free-text source would silently drop the amount out of capital. This contract rejects it at the boundary instead, before execution.stringstrict
schedule33.lines.112.amountnumberstrict
schedule33.lines.112.sourceWhere the line's amount came from. A closed set: the engine refuses any other source with a box-scoped error and excludes the entry, so a free-text source would silently drop the amount out of capital. This contract rejects it at the boundary instead, before execution.stringstrict
schedule33.lines.407.amountnumberstrict
schedule33.lines.407.sourceWhere the line's amount came from. A closed set: the engine refuses any other source with a box-scoped error and excludes the entry, so a free-text source would silently drop the amount out of capital. This contract rejects it at the boundary instead, before execution.stringstrict
schedule33.lines.610.amountintegerstrict
schedule33.lines.610.sourceWhere the line's amount came from. A closed set: the engine refuses any other source with a box-scoped error and excludes the entry, so a free-text source would silently drop the amount out of capital. This contract rejects it at the boundary instead, before execution.stringstrict
schedule33.partnershipDetailsOptional per-partnership detail rows backing lines 112 and 407, as a map from the line code (112 or 407) to a list of partnershipName and amount rows. Detail rows do not substitute for the line amount: the line must also be entered and the rows must total it within tolerance. ITA s.181.2(3)(g) for line 112 and s.181.2(4)(e) for line 407.null | object
schedule33.partnershipDetails.112[].amountnumberstrict
schedule33.partnershipDetails.112[].partnershipNamestring
schedule33.partnershipDetails.407[].amountnumberstrict
schedule33.partnershipDetails.407[].partnershipNamestring
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.number | stringalways
wasAssociatedInPrecedingYearThe corporation was associated with at least one other corporation in the preceding taxation year; prior-year continuity fact for association-driven limits.boolean
Strict profile accepted values (24 of 45 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 schedule33
CellAccepted values
accounts[].accountCode0 to 20000 characters
accounts[].accountName0 to 20000 characters
accounts[].accountType0 to 20000 characters
accounts[].classification.incomeTypeone of "active_business", "property", "rental", "capital", "active", null
accounts[].currentYearBalance-1000000000000000 to 1000000000000000
accounts[].id0 to 20000 characters
accounts[].reviewStatus0 to 20000 characters
accounts[].userStatus0 to 20000 characters
daysInYear1 to 1000000000000000
fiscalEnddate (YYYY-MM-DD); 10 to 10 characters
fiscalStartdate (YYYY-MM-DD); 10 to 10 characters
schedule33.lines.104.amount-1000000000000000 to 1000000000000000
schedule33.lines.104.sourceone of "entered", "prefill_accepted"
schedule33.lines.112.amount0 to 600000000000
schedule33.lines.112.sourceone of "entered", "prefill_accepted"
schedule33.lines.407.amount0 to 600000000000
schedule33.lines.407.sourceone of "entered", "prefill_accepted"
schedule33.lines.610.amount-1000000000000000 to 1000000000000000
schedule33.lines.610.sourceone of "entered", "prefill_accepted"
schedule33.partnershipDetails.112[].amount0 to 600000000000
schedule33.partnershipDetails.112[].partnershipName1 to 20000 characters
schedule33.partnershipDetails.407[].amount0 to 600000000000
schedule33.partnershipDetails.407[].partnershipName1 to 20000 characters
taxYearmatches ^\s*(?:1[0-9]{3}|2(?:0(?:[0-1][0-9]{1}|2[0-7])))\s*$; 1000 to 2027

Output cells (107)

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

Output cells for schedule33
CellTypes
amount_Anull | number
amount_Bnull | number
amount_Earray | boolean | null | number | object | string
amount_Farray | boolean | null | number | object | string
amount_Garray | boolean | null | number | object | string
amount_Harray | boolean | null | number | object | string
amount_Iarray | boolean | null | number | object | string
associatedGroupStatusboolean
associatedGroupTCECMissingboolean
associatedGroupTCECProvidedboolean
authoritativeForPriorYearGrindsboolean
businessLimitReductionnull | number
businessLimitReductionIsScenarioboolean
coverageStatusstring
currentYearAssociatedboolean
eligibleForPriorYearGrindInputboolean
filingProjectionSupportedboolean
fired_gatesobject
fiscalEndstring
fiscalStartstring
gifiReference.canadianRevenuePercentEstimatearray | boolean | null | number | object | string
gifiReference.deferredTaxLiabilitiesnumber
gifiReference.gifiBreakdown[].descriptionstring
gifiReference.gifiBreakdown[].gifiRangestring
gifiReference.gifiBreakdown[].totalnumber
gifiReference.investmentDeductionsnumber
gifiReference.prefillSuggestionsobject
gifiReference.shareholderLoansnumber
gifiReference.taxableCapitalBasenumber
gifiReference.taxableCapitalEstimatenumber
gifiReference.totalAssetsnumber
gifiReference.totalReservesnumber
grindTCECnull | number
line713EligibilityResolvedboolean
line713ForeignTaxConditionMetarray | boolean | null | number | object | string
line_101array | boolean | null | number | object | string
line_103array | boolean | null | number | object | string
line_104null | number
line_105array | boolean | null | number | object | string
line_106array | boolean | null | number | object | string
line_107array | boolean | null | number | object | string
line_108array | boolean | null | number | object | string
line_109array | boolean | null | number | object | string
line_110array | boolean | null | number | object | string
line_111array | boolean | null | number | object | string
line_112null | number
line_121array | boolean | null | number | object | string
line_122array | boolean | null | number | object | string
line_123array | boolean | null | number | object | string
line_124array | boolean | null | number | object | string
line_190_capitalnull | number
line_401array | boolean | null | number | object | string
line_402array | boolean | null | number | object | string
line_403array | boolean | null | number | object | string
line_404array | boolean | null | number | object | string
line_405array | boolean | null | number | object | string
line_406array | boolean | null | number | object | string
line_407null | number
line_415_sbd_factorarray | boolean | null | number | object | string
line_490_investment_allowancenull | number
line_500_taxable_capitalnull | number
line_610null | number
line_690_tcec_residentnull | number
line_701array | boolean | null | number | object | string
line_711array | boolean | null | number | object | string
line_712array | boolean | null | number | object | string
line_713array | boolean | null | number | object | string
line_790_tcec_non_residentarray | boolean | null | number | object | string
missing_required[]string
part5Applicabilitystring
part5ApplicabilityReasonstring
part5CurrentYearTCECReconciledarray | boolean | null | number | object | string
provincialProportionnull | number
provisionalboolean
readyboolean
residenceFactSuppliedboolean
residencyBranchstring
reviewedCurrentYearTCECarray | boolean | null | number | object | string
taxYearinteger
taxable_income_denominatornull | number
tcecnull | number
tcecCalculationCompleteboolean
tcecExceeds10Mboolean | null
tcecExceeds15Mboolean | null
filingPropositions[].schemaVersioninteger
filingPropositions[].propositionIdstring
filingPropositions[].statestring
filingPropositions[].filingDispositionstring
filingPropositions[].targets[]string
filingPropositions[].evidence[]string
warnings[].accountIds[]string
warnings[].codestring
warnings[].messagestring
warnings[].severitystring
warnings[].boxnull | 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
warnings[].box_formstring
wasAssociatedInPrecedingYearWhether the corporation was associated with another corporation in the preceding taxation year. The input is optional and the answer selects whether ITA 125(5.1)(a)(ii) and Part 5 apply, so an unanswered fact is published as null and listed in missing_required rather than assumed to be false.boolean | null
Filemark | schedule33 cells