schedule53

T2 Corporation Income Tax Return

Kind
batch
Supported tax years
2019 and later
Strict profile
s53_single_grip_profile_target_value_v1
Payload schema version
0.8.0
Dependencies (run automatically)
dividend_pool_status, division_c, sbd, schedule24, schedule3, schedule4, schedule7

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": [
    "schedule53"
  ],
  "inputs": {
    "taxYear": 2025,
    "fiscalStart": "2025-01-01",
    "fiscalEnd": "2025-12-31",
    "corpType": "1",
    "t2Jacket": {
      "identification": {
        "isResidentOfCanada": true
      },
      "additionalInfo": {
        "isDepositInsuranceCorporation": false,
        "isCreditUnion": false,
        "substantiveCCPCAnytime": false,
        "section89_11ElectionInForceForTaxYear": false
      },
      "filingStatus": {
        "firstYearAfterIncorporation": false,
        "firstYearAfterAmalgamation": 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
    },
    "specifiedCorporateIncomeReviewed": true,
    "supplementalLinesReviewed": true,
    "specifiedPartnershipIncomeApplies": false,
    "specifiedInvestmentBusinessIncome": 0,
    "lifeInsurancePolicyIncome": 0,
    "schedule53": {
      "line100GripOpening": 0,
      "line130LesserSbdNumerator": 40000,
      "line210Section113Dividends": 0,
      "line300EligibleDivsPaidPriorYear": 0,
      "line310ExcessiveEEDPriorYear": 0,
      "line140LesserAiiTaxableIncome": 0
    },
    "daysInYear": 365
  }
}

Input cells (75)

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 schedule53
CellTypesRequired
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.booleanstrict
accounts[].classification.incomeTypestringstrict
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[].currentYearBalanceintegerstrict
accounts[].idstringstrict
accounts[].reviewStatusstringstrict
accounts[].userStatusstringstrict
corpTypestringstrict
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.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.stringstrict
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
lifeInsurancePolicyIncomeTXE-319: ITA s.125(7)(c)(ii), in the 'adjusted aggregate investment income' definition, includes amounts in respect of a life insurance policy that are included in income; the engine reads the amount as an explicit off-form statutory fact. Zero pins this witness's branch.integerstrict
schedule53.isBecomingCcpcTrue iff corp is BECOMING a CCPC this year (s.89(4)); forces 300/310 = 0.boolean | null
schedule53.line100GripOpeningLine 100 — Opening GRIP carryforward from prior-year line 590.null | numberstrict
schedule53.line110TaxableIncomeLine 110 — Taxable income for the year (DICs enter 0).null | number
schedule53.line130LesserSbdNumeratorLine 130 — Lesser of T2 lines 400/405/410/428.null | numberstrict
schedule53.line140LesserAiiTaxableIncomeSchedule 53 line 140: for a CCPC, the lesser of aggregate investment income (T2 line 440) and taxable income. A ready Schedule 7 is the canonical producer and GOVERNS this figure; the explicit amount is the only other proof, and without either the engine holds line 140 rather than reading the blank as nil. This witness earns only active business income, so its answer is 0.null | number
schedule53.line200EligibleDividendsReceivedLine 200 — Eligible dividends received in tax year (Cdn-source).null | number
schedule53.line210Section113DividendsLine 210 — Exact ITA s.89(1) variable-E foreign-affiliate amount.null | numberstrict
schedule53.line300EligibleDivsPaidPriorYearLine 300 — Final prior-year eligible dividends paid after any valid s.185.1(2) election. Source from the finalized prior Schedule 55 line 150/election record; Schedule 3 line 465 is partial-scope only.null | numberstrict
schedule53.line310ExcessiveEEDPriorYearLine 310 — Final prior-year excessive eligible dividend designations remaining after any valid s.185.1(2) election. Paragraph-(c) EEDD is not electable.null | numberstrict
schedule53.part2Rowsarray
schedule53.part2Rows[].a_taxableIncomeBeforeA — Taxable income BEFORE SFTC.null | number
schedule53.part2Rows[].b_sbdBeforeB — Lesser of T2 400/405/410/428 BEFORE SFTC.null | number
schedule53.part2Rows[].c_aiiBeforeC — AII (T2 line 440) BEFORE SFTC.null | number
schedule53.part2Rows[].f_taxableIncomeAfterF — Taxable income AFTER SFTC.null | number
schedule53.part2Rows[].g_sbdAfterG — Lesser of T2 400/405/410/428 AFTER SFTC.null | number
schedule53.part2Rows[].h_aiiAfterH — AII (T2 line 440) AFTER SFTC.null | number
schedule53.part2Rows[].priorYearIndexWhich prior tax year this row covers.integer
schedule53.part3Rowsarray
schedule53.part3Rows[].a4_predecessorGripA4 — Predecessor GRIP at end of its last tax year.null | number
schedule53.part3Rows[].assetsReceivedTaxationYearEndISO YYYY-MM-DD end of the PARENT's taxation year during which it received the subsidiary's assets on the wind-up. ITA 89(6) includes the addition in the parent's GRIP "at the end of its taxation year that immediately follows the taxation year during which it receives the assets of the subsidiary", so the receipt year is what places the inclusion; the return's own year end cannot stand in for it. Required on a `wind_up` row and ignored on an `amalgamation` row. Left blank the engine derives it from the provenance-bearing Schedule 24 wind-up evidence and blocks when that evidence is absent — it…null | string
schedule53.part3Rows[].b4_eligibleDivsPaidB4 — Eligible dividends paid by predecessor in its last tax year.null | number
schedule53.part3Rows[].businessNumberstring
schedule53.part3Rows[].c4_excessiveEEDC4 — Excessive eligible dividend designations made by predecessor.null | number
schedule53.part3Rows[].corpNamestring
schedule53.part3Rows[].operation"amalgamation" feeds line 230; "wind_up" feeds line 240.string
schedule53.part4Rowsarray
schedule53.part4Rows[].a5_costOfPropertyA5 — Cost amount of all property immediately before end of last TY.null | number
schedule53.part4Rows[].assetsReceivedTaxationYearEndISO YYYY-MM-DD end of the PARENT's taxation year during which it received the subsidiary's assets on the wind-up — the same ITA 89(6) timing fact Part 3 carries, on the non-CCPC subsidiary branch. Required on a `post_wind_up` row and ignored on the other two situations. Left blank the engine derives it from the Schedule 24 wind-up evidence and blocks when that evidence is absent. Optional in the shape for the same reason as the Part 3 twin.null | string
schedule53.part4Rows[].b5_moneyOnHandB5 — Corporation's money on hand immediately before end of last TY.null | number
schedule53.part4Rows[].businessNumberstring
schedule53.part4Rows[].c5_nonCapitalLossesnull | number
schedule53.part4Rows[].corpNamestring
schedule53.part4Rows[].d5_netCapitalLossesnull | number
schedule53.part4Rows[].e5_farmLossesnull | number
schedule53.part4Rows[].f5_restrictedFarmLossesnull | number
schedule53.part4Rows[].g5_limitedPartnershipLossesnull | number
schedule53.part4Rows[].i5_actualNonCapitalLossesnull | number
schedule53.part4Rows[].j5_actualNetCapitalLossesnull | number
schedule53.part4Rows[].k5_actualFarmLossesnull | number
schedule53.part4Rows[].l5_actualRestrictedFarmLossesnull | number
schedule53.part4Rows[].m5_actualLimitedPartnershipLossesnull | number
schedule53.part4Rows[].q5_debtsnull | number
schedule53.part4Rows[].r5_paidUpCapitalnull | number
schedule53.part4Rows[].s5_reservesnull | number
schedule53.part4Rows[].situation"becoming_ccpc" feeds line 220 (s.89(4)); "post_amalgamation" feeds line 230 (s.87(1) / s.89(5)); "post_wind_up" feeds line 240 (s.88(1) / s.89(6)).string
schedule53.part4Rows[].t5_cdaBalancenull | number
schedule53.part4Rows[].u5_lripBalancenull | number
specifiedCorporateIncomeReviewedConfirms the Schedule 7 Part 7 review of ITA s.125(7) specified corporate income; until true the engine caps specified corporate income at nil and line 615 stays out of SBD-eligible income.booleanstrict
specifiedInvestmentBusinessIncomeTotal income for the year from a specified investment business carried on in Canada, the ITA s.125(7) 'income of the corporation for the year from an active business' paragraph (a) carve-out the sweep made an explicit operand. Zero pins this witness's branch: no specified investment business income.integerstrict
specifiedPartnershipIncomeAppliesWhether ITA s.125(7) specified partnership income applies for the year; true requires the Schedule 7 Parts 4 and 5 partnership packets.booleanstrict
supplementalLinesReviewedConfirms Schedule 7 lines 042, 052, 072, 720, 725, 735, 741, 029, 059, 530 and 540 were reviewed and every applicable amount entered; AII, FII, AAII and SBD-eligible income are held at zero until confirmed.booleanstrict
t2Jacket.additionalInfo.isCreditUnionThe corporation is a credit union; a legal-status fact the GRIP and LRIP dividend-pool resolution requires beyond the T2 corporation-type code.booleanstrict
t2Jacket.additionalInfo.isDepositInsuranceCorporationThe corporation is a deposit insurance corporation; a legal-status fact the GRIP and LRIP dividend-pool resolution requires beyond the T2 corporation-type code.booleanstrict
t2Jacket.additionalInfo.section89_11ElectionInForceForTaxYearAn ITA s.89(11) election not to be treated as a CCPC is in force for the taxation year; the continuing election state, distinct from the box 266 and 267 filing events.booleanstrict
t2Jacket.additionalInfo.substantiveCCPCAnytimeT2 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.booleanstrict
t2Jacket.filingStatus.firstYearAfterAmalgamationbooleanstrict
t2Jacket.filingStatus.firstYearAfterIncorporationbooleanstrict
t2Jacket.identification.isResidentOfCanadaT2 box 080: the corporation was resident in Canada in the taxation year. A no answer requires the box 081 country of residence.booleanstrict
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 (23 of 75 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 schedule53
CellAccepted values
accounts[].accountCode0 to 20000 characters
accounts[].accountName0 to 20000 characters
accounts[].accountType0 to 20000 characters
accounts[].classification.incomeType0 to 20000 characters
accounts[].currentYearBalance-1000000000000000 to 1000000000000000
accounts[].id0 to 20000 characters
accounts[].reviewStatus0 to 20000 characters
accounts[].userStatus0 to 20000 characters
corpType0 to 20000 characters
daysInYear1 to 1000000000000000
fiscalEnddate (YYYY-MM-DD); 10 to 10 characters
fiscalStartdate (YYYY-MM-DD); 10 to 10 characters
lifeInsurancePolicyIncome-1000000000000000 to 1000000000000000
schedule53.line100GripOpening-1000000000000000 to 1000000000000000
schedule53.line130LesserSbdNumerator-1000000000000000 to 1000000000000000
schedule53.line140LesserAiiTaxableIncome-1000000000000000 to 1000000000000000
schedule53.line210Section113Dividends-1000000000000000 to 1000000000000000
schedule53.line300EligibleDivsPaidPriorYear-1000000000000000 to 1000000000000000
schedule53.line310ExcessiveEEDPriorYear-1000000000000000 to 1000000000000000
schedule53.part3Rows[].operationone of "amalgamation", "wind_up"
schedule53.part4Rows[].situationone of "becoming_ccpc", "post_amalgamation", "post_wind_up"
specifiedInvestmentBusinessIncome-1000000000000000 to 1000000000000000
taxYearmatches ^\s*(?:1[0-9]{3}|2(?:0(?:[0-1][0-9]{1}|2[0-7])))\s*$; 1000 to 2027

Output cells (89)

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

Output cells for schedule53
CellTypes
fired_gatesobject
form.formWarningsarray
form.line_100number
form.line_110number
form.line_130number
form.line_140number
form.line_150number
form.line_190number
form.line_200number
form.line_210number
form.line_220number
form.line_230number
form.line_240number
form.line_290number
form.line_300number
form.line_310number
form.line_490number
form.line_500number
form.line_520number
form.line_540number
form.line_560number
form.line_590array | boolean | null | number | object | string
form.part2Table[].anumber
form.part2Table[].bnumber
form.part2Table[].cnumber
form.part2Table[].dnumber
form.part2Table[].d2number
form.part2Table[].enumber
form.part2Table[].e2number
form.part2Table[].fnumber
form.part2Table[].gnumber
form.part2Table[].hnumber
form.part2Table[].inumber
form.part2Table[].i2number
form.part2Table[].jnumber
form.part2Table[].j2number
form.part2Table[].knumber
form.part2Table[].yearinteger
form.part3Tablearray
form.part4Tablearray
form.subtotal_Anumber
form.subtotal_Bnumber
form.subtotal_Cnumber
form.subtotal_Dnumber
line_100number
line_110number
line_130number
line_140number
line_150number
line_190number
line_200number
line_210number
line_220number
line_230number
line_240number
line_290number
line_300number
line_310number
line_490number
line_500number
line_520number
line_540number
line_560number
line_590array | boolean | null | number | object | string
missing_required[]string
part2Rowsarray
part3Rowsarray
part4Rowsarray
poolBalanceChangedboolean
provisionalboolean
readyboolean
subtotalAnumber
subtotalBnumber
subtotalCnumber
subtotalDnumber
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[].messagestring
warnings[].severitystring
line_590_withheldPresent only when the closing balance was withheld, and then always true.boolean
Filemark | schedule53 cells