schedule73
T2 Corporation Income Tax Return
- Kind
- batch
- Supported tax years
- 2019 and later
- Strict profile
- s73_2024_s71_s72_rollup_worked_example_target_value_v1
- Payload schema version
- 0.7.0
- Dependencies (run automatically)
- schedule71, schedule72
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": [
"schedule73"
],
"inputs": {
"schedule71": {
"becameBankruptInYear": false,
"corpTaxYearEnd": "2025-12-31",
"corpTaxYearStart": "2025-01-01",
"isMultiTierPartnership": false,
"isProfessionalCorp": false,
"multiTierAlignmentYear1Suspension": false,
"partnershipIsForeignAffiliateSurrogate": false,
"partnerships": [
{
"continuousMembershipSinceBeforeMarch22_2011": true,
"corpSharePercentage": 50,
"particularPeriodEnd": "2026-01-31",
"particularPeriodStart": "2025-02-01",
"partnershipBN": "123456782RZ0001",
"partnershipFYEndInYear": "2025-01-31",
"partnershipFYStartInYear": "2024-02-01",
"partnershipName": "Cedar Ridge Operations LP",
"significantInterestConfirmed": true,
"var_A_share_of_income_and_tcg": 1000000,
"var_A_tcg_component": 0,
"var_B_acl_component": 0,
"var_B_share_of_loss_and_acl": 0,
"var_E_designated_qre": 0,
"var_F_discretionary": 0,
"corpEntitledToShareAtParticularPeriodEnd": true,
"var_A_active_business_component": 1000000,
"var_A_property_component": 0,
"var_A_other_component": 0
}
]
},
"schedule72": {
"becameBankruptInYear": false,
"corpTaxYearEnd": "2025-12-31",
"corpTaxYearStart": "2025-01-01",
"isProfessionalCorp": false,
"isSingleTierPartnership": false,
"partnershipHasPartnershipMember": true,
"partnershipIsForeignAffiliateSurrogate": false,
"partnerships": [
{
"box_2A_income": 1000000,
"box_2B_loss": 0,
"box_2D_tcg": 0,
"box_2E_acl": 0,
"box_2J_designated_qre": 0,
"box_2K_discretionary_designation": 0,
"continuousMembershipSinceBeforeMarch22_2011": true,
"corpSharePercentage": 50,
"particularPeriodEnd": "2026-01-31",
"particularPeriodStart": "2025-02-01",
"partnershipBN": "222222226RZ0001",
"partnershipFYEndInYear": "2025-01-31",
"partnershipFYStartInYear": "2024-02-01",
"partnershipName": "Cedar Ridge Multi-Tier LP",
"significantInterestConfirmed": true,
"corpEntitledToShareAtParticularPeriodEnd": true,
"box_2A_active_business_component": 1000000,
"box_2A_property_component": 0,
"box_2A_other_component": 0
}
],
"preFirstAlignedFiscalPeriodSuspension": false,
"stickyMultiTierAfterStructureFlattens": false,
"wasSubjectToMultiTierAlignment": false
},
"schedule73": {
"characterSplitOverrides": {
"activeBusinessIncome": 1835616.44,
"allowableCapitalLoss": 0,
"otherIncome": 0,
"propertyIncome": 0,
"taxableCapitalGain": 0
}
},
"taxYear": 2025
}
}Input cells (83)
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.
| Cell | Types | Required |
|---|---|---|
| schedule71.becameBankruptInYears.34.2(7) carve-out: the corporation became bankrupt in the year, so neither the ASPA inclusion nor the s.34.2(3) new-partner designation applies. | boolean | strict |
| schedule71.corpTaxYearEnd | string | strict |
| schedule71.corpTaxYearStart | string | strict |
| schedule71.isMultiTierPartnershipScope check: the partnership is itself a member of another partnership (s.102(2), s.249.1(1)(c)); multi-tier partnerships use Schedule 72, not Schedule 71. | boolean | strict |
| schedule71.isProfessionalCorps.34.2(2) chapeau carve-out: a professional corporation accrues stub-period income under s.34.1 instead of the ASPA regime. | boolean | strict |
| schedule71.multiTierAlignmentYear1Suspensions.34.2(9): ASPA is suspended for taxation years preceding the year that includes the end of the first aligned fiscal period. | boolean | strict |
| schedule71.partnershipIsForeignAffiliateSurrogates.34.2(8) carve-out: s.34.2 does not apply in computing FAPI or foreign-affiliate surplus; the accrual flows through the surplus computation instead. | boolean | strict |
| schedule71.partnerships[].continuousMembershipSinceBeforeMarch22_2011s.34.2(13)(a) transitional condition: the corporation has been a member of the partnership continuously since before March 22, 2011; required for the qualifying transitional income reserve. | boolean | strict |
| schedule71.partnerships[].corpEntitledToShareAtParticularPeriodEndWhether, at the end of the year, the corporation is entitled to a share of the partnership's income, loss, taxable capital gain or allowable capital loss for the fiscal period — the ITA 34.2(2)(c) condition. Strict tri-state: true admits the row's ASPA, false applies the (2)(c) carveout and zeroes it, and an absent answer withholds the ASPA and blocks. The answer is a submitted practitioner fact and is not proof that the corporation was so entitled. | boolean | strict |
| schedule71.partnerships[].corpSharePercentage | integer | strict |
| schedule71.partnerships[].particularPeriodEnd | string | strict |
| schedule71.partnerships[].particularPeriodStart | string | strict |
| schedule71.partnerships[].partnershipBN | string | strict |
| schedule71.partnerships[].partnershipFYEndInYear | string | strict |
| schedule71.partnerships[].partnershipFYStartInYear | string | strict |
| schedule71.partnerships[].partnershipName | string | strict |
| schedule71.partnerships[].significantInterestConfirmedPractitioner confirmation of the s.34.2(1) significant-interest test: the corporation, together with related or affiliated persons, holds more than 10 percent of the partnership's income entitlement. | boolean | strict |
| schedule71.partnerships[].var_A_active_business_componentThe active-business share of this row's variable A character split. ITA 34.2(5)(a)(i) gives the adjusted stub period accrual the same character, in the same proportions, as the income the partnership allocated to the corporation — an allocation fact the corporation cannot infer. Send all three shares: an absent breakdown is UNKNOWN and blocks rather than filing the whole non-capital amount on T2 SCH 73 line 270. | integer | |
| schedule71.partnerships[].var_A_other_componentThe other-income share of this row's variable A character split, on the same ITA 34.2(5)(a)(i) terms as the active-business share. Send all three: an absent breakdown is UNKNOWN and blocks rather than filing the whole non-capital amount on T2 SCH 73 line 270. | integer | |
| schedule71.partnerships[].var_A_property_componentThe property-income share of this row's variable A character split, on the same ITA 34.2(5)(a)(i) terms as the active-business share. Send all three: an absent breakdown is UNKNOWN and blocks rather than filing the whole non-capital amount on T2 SCH 73 line 270. | integer | |
| schedule71.partnerships[].var_A_share_of_income_and_tcg | integer | strict |
| schedule71.partnerships[].var_A_tcg_component | integer | strict |
| schedule71.partnerships[].var_B_acl_component | integer | strict |
| schedule71.partnerships[].var_B_share_of_loss_and_acl | integer | strict |
| schedule71.partnerships[].var_E_designated_qre | integer | strict |
| schedule71.partnerships[].var_F_discretionary | integer | strict |
| schedule72.becameBankruptInYears.34.2(7) carve-out: the corporation became bankrupt in the year, so neither the ASPA inclusion nor the s.34.2(3) new-partner designation applies. | boolean | strict |
| schedule72.corpTaxYearEnd | string | strict |
| schedule72.corpTaxYearStart | string | strict |
| schedule72.isProfessionalCorps.34.2(2) chapeau carve-out: a professional corporation accrues stub-period income under s.34.1 instead of the ASPA regime. | boolean | strict |
| schedule72.isSingleTierPartnershipScope check: an explicitly single-tier partnership belongs on Schedule 71; only a formerly multi-tier structure kept here by the sticky form-face rule stays on Schedule 72. | boolean | strict |
| schedule72.partnershipHasPartnershipMemberThe partnership has another partnership as a member (s.102(2), s.249.1(1)(c)); one of the facts that qualifies it as multi-tier for Schedule 72. | boolean | strict |
| schedule72.partnershipIsForeignAffiliateSurrogates.34.2(8) carve-out: s.34.2 does not apply in computing FAPI or foreign-affiliate surplus; the accrual flows through the surplus computation instead. | boolean | strict |
| schedule72.partnerships[].box_2A_active_business_componentThe active-business share of this row's amount 2A character split. ITA 34.2(5)(a)(i) gives the adjusted stub period accrual the same character, in the same proportions, as the income the partnership allocated to the corporation — an allocation fact the corporation cannot infer. Send all three shares: an absent breakdown is UNKNOWN and blocks rather than filing the whole non-capital amount on T2 SCH 73 line 270. | integer | |
| schedule72.partnerships[].box_2A_income | integer | strict |
| schedule72.partnerships[].box_2A_other_componentThe other-income share of this row's amount 2A character split, on the same ITA 34.2(5)(a)(i) terms as the active-business share. Send all three: an absent breakdown is UNKNOWN and blocks rather than filing the whole non-capital amount on T2 SCH 73 line 270. | integer | |
| schedule72.partnerships[].box_2A_property_componentThe property-income share of this row's amount 2A character split, on the same ITA 34.2(5)(a)(i) terms as the active-business share. Send all three: an absent breakdown is UNKNOWN and blocks rather than filing the whole non-capital amount on T2 SCH 73 line 270. | integer | |
| schedule72.partnerships[].box_2B_loss | integer | strict |
| schedule72.partnerships[].box_2D_tcg | integer | strict |
| schedule72.partnerships[].box_2E_acl | integer | strict |
| schedule72.partnerships[].box_2J_designated_qre | integer | strict |
| schedule72.partnerships[].box_2K_discretionary_designation | integer | strict |
| schedule72.partnerships[].continuousMembershipSinceBeforeMarch22_2011s.34.2(13)(a) transitional condition: the corporation has been a member of the partnership continuously since before March 22, 2011; required for the qualifying transitional income reserve. | boolean | strict |
| schedule72.partnerships[].corpEntitledToShareAtParticularPeriodEndWhether, at the end of the year, the corporation is entitled to a share of the partnership's income, loss, taxable capital gain or allowable capital loss for the fiscal period — the ITA 34.2(2)(c) condition. Strict tri-state: true admits the row's ASPA, false applies the (2)(c) carveout and zeroes it, and an absent answer withholds the ASPA and blocks. The answer is a submitted practitioner fact and is not proof that the corporation was so entitled. | boolean | strict |
| schedule72.partnerships[].corpSharePercentage | integer | strict |
| schedule72.partnerships[].particularPeriodEnd | string | strict |
| schedule72.partnerships[].particularPeriodStart | string | strict |
| schedule72.partnerships[].partnershipBN | string | strict |
| schedule72.partnerships[].partnershipFYEndInYear | string | strict |
| schedule72.partnerships[].partnershipFYStartInYear | string | strict |
| schedule72.partnerships[].partnershipName | string | strict |
| schedule72.partnerships[].significantInterestConfirmedPractitioner confirmation of the s.34.2(1) significant-interest test: the corporation, together with related or affiliated persons, holds more than 10 percent of the partnership's income entitlement. | boolean | strict |
| schedule72.preFirstAlignedFiscalPeriodSuspensions.34.2(9): ASPA is suspended for taxation years before the first aligned fiscal period ends; the catch-up arrives as eligible alignment income in the alignment-end year. | boolean | strict |
| schedule72.stickyMultiTierAfterStructureFlattensForm-face rule: a partnership that changed from multi-tier to single-tier stays on Schedule 72; set true to keep filing here after the structure flattens. | boolean | strict |
| schedule72.wasSubjectToMultiTierAlignmentThe partnership was subject to a multi-tier alignment election; one of the facts that keeps it in Schedule 72 scope. | boolean | strict |
| schedule73.characterSplitOverridesManual character-split override (null = use the engine's auto split). | null | object | |
| schedule73.characterSplitOverrides.activeBusinessIncomeLine 270 — total active business income (can be negative). | null | number | string | strict |
| schedule73.characterSplitOverrides.allowableCapitalLossLine 285 — total allowable capital loss (non-negative; → S6 line 901). | null | number | strict |
| schedule73.characterSplitOverrides.otherIncomeLine 290 — total other income (can be negative). | null | number | strict |
| schedule73.characterSplitOverrides.propertyIncomeLine 280 — total property income (can be negative). | null | number | strict |
| schedule73.characterSplitOverrides.taxableCapitalGainLine 275 — total taxable capital gain (non-negative; → S6 line 899). | null | number | strict |
| schedule73.partnershipsStandalone rows or same-identity assertions (empty in the normal flow). | array | |
| schedule73.partnerships[].characterOrdinaryThe s.34.2(5)(a)(i) ordinary (non-capital) character of this row's column 4 — the total the three component cells below must exhaust across lines 270 / 280 / 290. It has no printed per-row box of its own. null is NOT STATED rather than nil: state it with none of the three components and the row's non-capital column 4 is withheld from those lines instead of defaulting onto line 270 as active business income. Send all three components with it — a partial split overstates line 270. | null | number | |
| schedule73.partnerships[].characterTCGThe s.34.2(5)(a)(i) taxable-capital-gain share of this row's column 4 (line 275 → S6 line 899), not column 6's — send column 6's share as `col6CharacterTCG`. Line 275 must be non-negative. null is NOT STATED and no other cell can state this gain, but unlike the ordinary side it is never withheld: line 275 carries the share even while the row's ordinary split is unknown. | null | number | |
| schedule73.partnerships[].col10_thresholdColumn 10 (box 310) — threshold amount (4W). | null | number | |
| schedule73.partnerships[].col1_stubAccrualColumn 1 (box 200) — stub period accrual (S71/S72 amount 2I). | null | number | |
| schedule73.partnerships[].col2_designatedQREColumn 2 (box 205) — designated qualified resource expenses (2J). | null | number | |
| schedule73.partnerships[].col3_discretionaryColumn 3 (box 210) — discretionary amount designated (2K). | null | number | |
| schedule73.partnerships[].col4CharacterActiveBusinessThe s.34.2(5)(a)(i) active-business component of this row's column 4 (line 270 share). No printed per-row box. null is NOT STATED, not zero: a row carrying non-capital column-4 inclusion with no split behind it blocks at error severity and its amount is withheld from lines 270 / 280 / 290 rather than defaulted onto line 270 as active business income. | null | number | |
| schedule73.partnerships[].col4CharacterOthers.34.2(5)(a)(i) character of column 4 — other-income component (line 290 share; engine key `col4CharacterOther`). null = not stated, not zero. The three components must exhaust the row's non-capital column 4; the lines 270+275+280-285+290 tie-out enforces that. | null | number | |
| schedule73.partnerships[].col4CharacterPropertys.34.2(5)(a)(i) character of column 4 — property component (line 280 share; engine key `col4CharacterProperty`). null = not stated, not zero. | null | number | |
| schedule73.partnerships[].col6CharacterActiveBusinesss.34.2(5)(a)(ii) character of column 6: active-business component (line 270 share). null is not stated, not zero. | null | number | |
| schedule73.partnerships[].col6CharacterOthers.34.2(5)(a)(ii) character of column 6: other-income component (line 290 share). The four components must exhaust column 6. | null | number | |
| schedule73.partnerships[].col6CharacterPropertys.34.2(5)(a)(ii) character of column 6: property-income component (line 280 share). null is not stated, not zero. | null | number | |
| schedule73.partnerships[].col6CharacterTCGs.34.2(5)(a)(ii) character of column 6: taxable-capital-gain component (line 275 share). null is not stated, not zero. | null | number | |
| schedule73.partnerships[].col6_newMemberColumn 6 (box 225) — income inclusion for a new corporate member (3E). | null | number | |
| schedule73.partnerships[].col9_shortfallColumn 9 (box 300) — income shortfall adjustment (4T). | null | number | |
| schedule73.partnerships[].fiscalPeriodEndBox 140 — fiscal period-end (YYYY-MM-DD). | null | string | |
| schedule73.partnerships[].fiscalPeriodStartBox 130 — fiscal period-start (YYYY-MM-DD). | null | string | |
| schedule73.partnerships[].multiTierFlagBox 150 — part of a multi-tiered structure: 1 = yes, 2 = no. | null | number | |
| schedule73.partnerships[].partnershipBNBox 100 — partnership account number (9-digit BN / 15-char RZ / 'NR'). 'NR' is not unique; same-year matching also requires name, dates, and tier. | null | string | |
| schedule73.partnerships[].partnershipNameBox 110 — partnership's name. | null | string | |
| 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 | string | always |
Strict profile accepted values (42 of 83 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.
| Cell | Accepted values |
|---|---|
| schedule71.corpTaxYearEnd | 0 to 20000 characters |
| schedule71.corpTaxYearStart | 0 to 20000 characters |
| schedule71.partnerships[].corpSharePercentage | -1000000000000000 to 1000000000000000 |
| schedule71.partnerships[].particularPeriodEnd | 0 to 20000 characters |
| schedule71.partnerships[].particularPeriodStart | 0 to 20000 characters |
| schedule71.partnerships[].partnershipBN | 0 to 20000 characters |
| schedule71.partnerships[].partnershipFYEndInYear | 0 to 20000 characters |
| schedule71.partnerships[].partnershipFYStartInYear | 0 to 20000 characters |
| schedule71.partnerships[].partnershipName | 0 to 20000 characters |
| schedule71.partnerships[].var_A_active_business_component | -1000000000000000 to 1000000000000000 |
| schedule71.partnerships[].var_A_other_component | -1000000000000000 to 1000000000000000 |
| schedule71.partnerships[].var_A_property_component | -1000000000000000 to 1000000000000000 |
| schedule71.partnerships[].var_A_share_of_income_and_tcg | -1000000000000000 to 1000000000000000 |
| schedule71.partnerships[].var_A_tcg_component | -1000000000000000 to 1000000000000000 |
| schedule71.partnerships[].var_B_acl_component | -1000000000000000 to 1000000000000000 |
| schedule71.partnerships[].var_B_share_of_loss_and_acl | -1000000000000000 to 1000000000000000 |
| schedule71.partnerships[].var_E_designated_qre | -1000000000000000 to 1000000000000000 |
| schedule71.partnerships[].var_F_discretionary | -1000000000000000 to 1000000000000000 |
| schedule72.corpTaxYearEnd | 0 to 20000 characters |
| schedule72.corpTaxYearStart | 0 to 20000 characters |
| schedule72.partnerships[].box_2A_active_business_component | -1000000000000000 to 1000000000000000 |
| schedule72.partnerships[].box_2A_income | -1000000000000000 to 1000000000000000 |
| schedule72.partnerships[].box_2A_other_component | -1000000000000000 to 1000000000000000 |
| schedule72.partnerships[].box_2A_property_component | -1000000000000000 to 1000000000000000 |
| schedule72.partnerships[].box_2B_loss | -1000000000000000 to 1000000000000000 |
| schedule72.partnerships[].box_2D_tcg | -1000000000000000 to 1000000000000000 |
| schedule72.partnerships[].box_2E_acl | -1000000000000000 to 1000000000000000 |
| schedule72.partnerships[].box_2J_designated_qre | -1000000000000000 to 1000000000000000 |
| schedule72.partnerships[].box_2K_discretionary_designation | -1000000000000000 to 1000000000000000 |
| schedule72.partnerships[].corpSharePercentage | -1000000000000000 to 1000000000000000 |
| schedule72.partnerships[].particularPeriodEnd | 0 to 20000 characters |
| schedule72.partnerships[].particularPeriodStart | 0 to 20000 characters |
| schedule72.partnerships[].partnershipBN | 0 to 20000 characters |
| schedule72.partnerships[].partnershipFYEndInYear | 0 to 20000 characters |
| schedule72.partnerships[].partnershipFYStartInYear | 0 to 20000 characters |
| schedule72.partnerships[].partnershipName | 0 to 20000 characters |
| schedule73.characterSplitOverrides.activeBusinessIncome | -1000000000000000 to 1000000000000000; 0 to 20000 characters |
| schedule73.characterSplitOverrides.allowableCapitalLoss | -1000000000000000 to 1000000000000000 |
| schedule73.characterSplitOverrides.otherIncome | -1000000000000000 to 1000000000000000 |
| schedule73.characterSplitOverrides.propertyIncome | -1000000000000000 to 1000000000000000 |
| schedule73.characterSplitOverrides.taxableCapitalGain | -1000000000000000 to 1000000000000000 |
| taxYear | matches ^\s*(?:1[0-9]{3}|2(?:0(?:[0-1][0-9]{1}|2[0-7])))\s*$; 1000 to 2027 |
Output cells (86)
Paths are relative to this target’s result object in the response.
| Cell | Types |
|---|---|
| amount_320_subtotal | number |
| amount_3A | number |
| amount_3B | number |
| amount_3C | number |
| character_split_total | number |
| fired_gates | object |
| line_100 | null | string |
| line_110 | null | string |
| line_130 | null | string |
| line_140 | null | string |
| line_150 | integer | null |
| line_200 | number |
| line_205 | number |
| line_210 | number |
| line_215 | number |
| line_220 | number |
| line_225 | number |
| line_230 | number |
| line_260 | number |
| line_270 | number |
| line_275 | number |
| line_280 | number |
| line_285 | number |
| line_290 | number |
| line_300 | number |
| line_310 | number |
| line_320 | number |
| missing_required | array |
| partnerships[]._source | string |
| partnerships[].line_100 | string |
| partnerships[].line_110 | string |
| partnerships[].line_130 | string |
| partnerships[].line_140 | string |
| partnerships[].line_150 | integer |
| partnerships[].line_200 | number |
| partnerships[].line_205 | number |
| partnerships[].line_210 | number |
| partnerships[].line_215 | number |
| partnerships[].line_220 | number |
| partnerships[].line_225 | number |
| partnerships[].line_230 | number |
| partnerships[].line_260 | number |
| partnerships[].inclusion_char_active_business | number |
| partnerships[].inclusion_char_other | number |
| partnerships[].inclusion_char_property | number |
| partnerships[].inclusion_char_tcg | number |
| provisional | boolean |
| ready | boolean |
| s1_line_130_feed | number |
| s1_line_131_feed | number |
| s6_line_899_feed | number |
| s6_line_901_feed | number |
| shortfall_rows | array |
| total_col_1 | number |
| total_col_10 | number |
| total_col_2 | number |
| total_col_3 | number |
| total_col_4_aspa | number |
| total_col_5_prior_year_aspa | number |
| total_col_6_new_member | number |
| total_col_7_prior_year_new_member | number |
| total_col_8_net | number |
| total_col_9 | number |
| warnings[].box | null | string |
| warnings[].citation.applies_to_boxes[] | string |
| warnings[].citation.cra_text_verbatim | string |
| warnings[].citation.form_id | string |
| warnings[].citation.form_revision | string |
| warnings[].citation.gate_id | string |
| warnings[].citation.rule | string |
| warnings[].citation.source | string |
| warnings[].citation.source_url | string |
| warnings[].citation.verified_at | string |
| warnings[].codeStable machine identity of the disclosure, independent of its prose. | string |
| warnings[].gate_id | string |
| warnings[].message | string |
| warnings[].severity | string |
| warnings[].notesWhat the rate manifest records against the year, including what is still outstanding before the year can be verified. | string |
| warnings[].sectionThe module that emitted the disclosure. | string |
| warnings[].sources[] | string |
| warnings[].taxYearThe taxation year whose rate tables are unverified. | integer |
| warnings[].taxYears[] | integer |
| qti_reserve_addback_capital_s342_12_b | number |
| qti_reserve_addback_s342_12_total | number |
| qti_reserve_deduction_capital_s342_11_b_ii | number |
| qti_reserve_deduction_s342_11_total | number |