schedule7
T2 Corporation Income Tax Return
- Kind
- batch
- Supported tax years
- 2022 and later
- Strict profile
- s7_2025_active_business_income_worked_example_target_value_v1
- Payload schema version
- 0.8.0
- Dependencies (run automatically)
- division_c, schedule1, schedule21, schedule24, schedule3, schedule4, schedule6, schedule73
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": [
"schedule7"
],
"inputs": {
"taxYear": 2025,
"fiscalStart": "2025-01-01",
"fiscalEnd": "2025-12-31",
"isCCPC": true,
"associatedGroupAII": 0,
"specifiedInvestmentBusinessIncome": 0,
"lifeInsurancePolicyIncome": 0,
"accounts": [
{
"id": "revenue",
"accountCode": "4000",
"accountName": "Cedar Ridge active business revenue",
"currentYearBalance": -100000,
"classification": {
"schedule1Relevant": false,
"incomeType": "active_business",
"foreignSource": false
}
}
],
"incomeStatementFlags": {
"revenue": true
},
"pyUCCPools": [],
"assetData": [],
"dispositions": [],
"specifiedCorporateIncomeReviewed": true,
"supplementalLinesReviewed": true,
"supplementalLineAmounts": {},
"specifiedPartnershipIncomeApplies": false,
"daysInYear": 365
}
}Input cells (87)
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 |
|---|---|---|
| accounts | array | |
| accounts[].accountCode | string | strict |
| accounts[].accountName | string | strict |
| 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 | null | strict |
| accounts[].classification.incomeType | null | string | strict |
| 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. | boolean | strict |
| accounts[].currentYearBalance | integer | null | number | strict |
| accounts[].id | string | strict |
| assetData | array | strict |
| associatedGroupAIIS7 s.125(5.1)(b) grind input — preceding-calendar-year AAII of the corporation + associated corporations. OMIT (don't send null) when not provided: the backend distinguishes absent (current-year line 745 proxy + info disclosure) from an explicit value, including 0. | null | number | strict |
| combinedAdjustmentsPosted adjusting journal entries, as a map from account id to the net amount posted against that account. Each amount may be a number or a numeric string. It is added to the trial-balance balance before the account is measured, and an unreadable entry is reported as an error rather than filed as zero. | null | object | |
| daysInYearInclusive day count for the canonical fiscalStart/fiscalEnd period required by the settled Part I dependency closure. | integer | strict |
| dispositions | array | strict |
| 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 | string | strict |
| 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 | string | strict |
| 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 | |
| incomeStatementFlags | 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. | boolean | null | strict |
| isCCPCThe corporation was a Canadian-controlled private corporation (ITA s.125(7) definition) throughout the taxation year. | boolean | strict |
| 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. | integer | null | number | strict |
| pyUCCPools | array | strict |
| schedule7.aaiiThe s.125(5.1)(b) grind input: associatedGroupAII override (prior- calendar-year group AAII) when provided, else line 745 as a proxy. | number | |
| schedule7.aaiiBeforeSupplementalReviewGate | number | |
| schedule7.aaiiCurrentYearPart 2 line 745 — this corporation's current-year AAII (s.125(7)). | number | |
| schedule7.aaiiCurrentYearBeforeSupplementalReviewGate | number | |
| schedule7.abiPart 6 amount DD — income eligible for the SBD (s.125(1)(a)) → T2 400. | number | |
| schedule7.abiBeforeSpecifiedCorporateIncomeGatePrinted amount DD before the explicit Part 7 review/validity gate. | number | |
| schedule7.accountDetails | array | |
| schedule7.aiiPart 1 line 092 — aggregate investment income (s.129(4)) → T2 line 440. | number | |
| schedule7.aiiBeforeSupplementalReviewGateCalculation-preview values before the supplemental-line review gate neutralizes affected downstream filing outputs. | number | |
| schedule7.fiiPart 3 line 079 — foreign investment income (s.129(4)) → T2 line 445. | number | |
| schedule7.fiiBeforeSupplementalReviewGate | number | |
| schedule7.foreignInvestmentIncomeAlias of fii. | number | |
| schedule7.formTrue Form View projection — every printed T2 SCH 7 box. | object | |
| schedule7.form.formWarnings | array | |
| schedule7.form.part4Table | array | |
| schedule7.form.part4Table2 | array | |
| schedule7.form.part4Table2[].assigned420 | number | |
| schedule7.form.part4Table2[].memberBn410 | string | |
| schedule7.form.part4Table2[].memberName406 | string | |
| schedule7.form.part4Table2[].memberSin411 | string | |
| schedule7.form.part4Table2[].memberTrust412 | string | |
| schedule7.form.part4Table2[].name405 | string | |
| schedule7.form.part4Table2[].yearEnd416 | string | |
| schedule7.form.part4Table2[].yearStart415 | string | |
| schedule7.form.part4Table3 | array | |
| schedule7.form.part4Table3[].assigned440 | number | |
| schedule7.form.part4Table3[].memberBn430 | string | |
| schedule7.form.part4Table3[].memberName426 | string | |
| schedule7.form.part4Table3[].name425 | string | |
| schedule7.form.part4Table3[].yearEnd436 | string | |
| schedule7.form.part4Table3[].yearStart435 | string | |
| schedule7.form.part4Table[].activeIncome300 | null | number | |
| schedule7.form.part4Table[].adjustments315 | null | number | |
| schedule7.form.part4Table[].assignedByYou336 | null | number | |
| schedule7.form.part4Table[].assignedToYou335 | null | number | |
| schedule7.form.part4Table[].days325 | null | number | |
| schedule7.form.part4Table[].excessL1 | null | number | |
| schedule7.form.part4Table[].income320 | null | number | |
| schedule7.form.part4Table[].lesser340 | null | number | |
| schedule7.form.part4Table[].limitK1 | null | number | |
| schedule7.form.part4Table[].name200 | string | |
| schedule7.form.part4Table[].proratedLimit330 | null | number | |
| schedule7.form.part4Table[].services311 | null | number | |
| schedule7.form.part4Table[].share310 | null | number | |
| schedule7.form.part7Table | array | |
| schedule7.form.part7Table[].bn600 | string | |
| schedule7.form.part7Table[].income610 | number | |
| schedule7.form.part7Table[].limit620 | number | |
| schedule7.isSpecifiedInvestmentBusiness | boolean | |
| schedule7.line1_netTaxableCapitalGains | number | |
| schedule7.line2_foreignInvestmentIncome | number | |
| schedule7.line3_netRentalIncome | number | |
| schedule7.line4_otherPropertyIncome | number | |
| schedule7.line4b_nonDeductibleDividends | number | |
| schedule7.netIncome | number | |
| schedule7.netTaxableCapitalGains | number | |
| schedule7.provisional | boolean | |
| schedule7.specifiedInvestmentBusinessIncomeSigned income or loss from a specified investment business, whose ITA s.125(7) principal-purpose and employee/service tests cannot be derived from the trial balance. A CCPC must enter an explicit amount, including 0 for reviewed nil; null or omission blocks filing. ITA s.129(4) deems the in-Canada portion to be property income. | null | number | string | |
| schedule7.taxableIncome | number | |
| schedule7.warnings | array | |
| 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. | boolean | null | strict |
| 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. | null | number | strict |
| specifiedPartnershipIncomeAppliesWhether ITA s.125(7) specified partnership income applies for the year; true requires the Schedule 7 Parts 4 and 5 partnership packets. | boolean | null | strict |
| supplementalLineAmounts | object | strict |
| 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. | boolean | null | strict |
| 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 (15 of 87 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 |
|---|---|
| accounts[].accountCode | 0 to 20000 characters |
| accounts[].accountName | 0 to 20000 characters |
| accounts[].classification.incomeType | one of "active_business", "property", "rental", "capital", null |
| accounts[].currentYearBalance | -1000000000000000 to 1000000000000000 |
| accounts[].id | 0 to 20000 characters |
| assetData | exactly []pinned |
| associatedGroupAII | -1000000000000000 to 1000000000000000 |
| daysInYear | 1 to 1000000000000000 |
| dispositions | exactly []pinned |
| fiscalEnd | date (YYYY-MM-DD); 10 to 10 characters |
| fiscalStart | date (YYYY-MM-DD); 10 to 10 characters |
| lifeInsurancePolicyIncome | -1000000000000000 to 1000000000000000 |
| pyUCCPools | exactly []pinned |
| specifiedInvestmentBusinessIncome | -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 (173)
Paths are relative to this target’s result object in the response.
| Cell | Types |
|---|---|
| aaii | number |
| aaiiBeforeSupplementalReviewGate | number |
| aaiiCurrentYear | number |
| aaiiCurrentYearBeforeSupplementalReviewGate | number |
| abi | number |
| abiBeforeSpecifiedCorporateIncomeGate | number |
| accountDetails[].accountId | string |
| accountDetails[].accountCode | string |
| accountDetails[].accountName | string |
| accountDetails[].balance | number |
| accountDetails[].incomeType | string |
| accountDetails[].foreignSource | boolean |
| accountDetails[].sourceAnswered | boolean |
| accountDetails[].line | integer |
| aii | number |
| aiiBeforeSupplementalReviewGate | number |
| associatedCorporationPropertyPayments.clause125_1_a_i_C_excluded | number |
| associatedCorporationPropertyPayments.deemedActiveBusinessIncome | number |
| associatedCorporationPropertyPayments.rowCount | integer |
| eligiblePortionCarveOut.allowableCapitalLosses | number |
| eligiblePortionCarveOut.statusChangeInAccrualPeriod | array | boolean | null | number | object | string |
| eligiblePortionCarveOut.taxableCapitalGains | number |
| eligiblePortionCarveOut.activeAllowableCapitalLosses | number |
| eligiblePortionCarveOut.activeTaxableCapitalGains | number |
| fii | number |
| fiiBeforeSupplementalReviewGate | number |
| foreignAccrualPropertyIncomeElections.amountRemovedFromPropertyIncome | number |
| foreignAccrualPropertyIncomeElections.electionCount | integer |
| foreignAccrualPropertyIncomeElections.subsection91_4DeductionExcluded | number |
| foreignInvestmentIncome | number |
| form.amount_A | number |
| form.amount_AA | number |
| form.amount_B | number |
| form.amount_BB | number |
| form.amount_C | number |
| form.amount_CC | number |
| form.amount_D | number |
| form.amount_DD | number |
| form.amount_E | number |
| form.amount_F | number |
| form.amount_G | number |
| form.amount_H | number |
| form.amount_I | number |
| form.amount_J | number |
| form.amount_K | number |
| form.amount_L | number |
| form.amount_M | number |
| form.amount_N | number |
| form.amount_O | number |
| form.amount_P | number |
| form.amount_Q | number |
| form.amount_R | number |
| form.amount_S | number |
| form.amount_T | number |
| form.amount_U | number |
| form.amount_V | number |
| form.amount_W | number |
| form.amount_X | number |
| form.amount_Y | number |
| form.amount_Z | number |
| form.formWarnings | array |
| form.line_001 | number |
| form.line_002 | number |
| form.line_009 | number |
| form.line_012 | number |
| form.line_019 | number |
| form.line_022 | number |
| form.line_029 | number |
| form.line_032 | number |
| form.line_042 | number |
| form.line_049 | number |
| form.line_052 | number |
| form.line_059 | number |
| form.line_062 | number |
| form.line_069 | number |
| form.line_072 | number |
| form.line_079 | number |
| form.line_082 | number |
| form.line_092 | number |
| form.line_350 | number |
| form.line_360 | number |
| form.line_370 | number |
| form.line_380 | number |
| form.line_385 | number |
| form.line_390 | number |
| form.line_400 | number |
| form.line_450 | number |
| form.line_500 | number |
| form.line_520 | number |
| form.line_530 | number |
| form.line_540 | number |
| form.line_615 | number |
| form.line_625 | number |
| form.line_705 | number |
| form.line_710 | number |
| form.line_715 | number |
| form.line_720 | number |
| form.line_725 | number |
| form.line_730 | number |
| form.line_735 | number |
| form.line_740 | number |
| form.line_741 | number |
| form.line_745 | number |
| form.part4Table | array |
| form.part4Table2 | array |
| form.part4Table3 | array |
| form.part7Table | array |
| isCreditUnion | array | boolean | null | number | object | string |
| isSpecifiedInvestmentBusiness | boolean |
| lifeInsurancePolicyIncome | number |
| line1_netTaxableCapitalGains | number |
| line2_foreignInvestmentIncome | number |
| line3_netRentalIncome | number |
| line4_otherPropertyIncome | number |
| line4b_nonDeductibleDividends | number |
| netIncome | number |
| personalServicesBusinessIncome | number |
| precedingYearOwnAAII | array | boolean | null | number | object | string |
| propertyIncomeActiveBusinessOverrides | array |
| provisional | boolean |
| psbSbdAllocationResolved | boolean |
| psbSbdAuthority | string |
| psbTaxableIncome | number |
| specifiedCorporateIncome.activeRowCount | integer |
| specifiedCorporateIncome.businessLimitAssignedFromPayersTotal | number |
| specifiedCorporateIncome.errors | array |
| specifiedCorporateIncome.incomeFromPayersTotal | number |
| specifiedCorporateIncome.reviewed | boolean |
| specifiedCorporateIncome.valid | boolean |
| specifiedInvestmentBusinessForeignIncome | number |
| specifiedInvestmentBusinessIncome | number |
| specifiedInvestmentBusinessIncomeAsEntered | number |
| specifiedPartnershipIncome.amounts.350 | number |
| specifiedPartnershipIncome.amounts.360 | number |
| specifiedPartnershipIncome.amounts.370 | number |
| specifiedPartnershipIncome.amounts.380 | number |
| specifiedPartnershipIncome.amounts.385 | number |
| specifiedPartnershipIncome.applies | boolean | null |
| specifiedPartnershipIncome.rowDetailSupported | boolean |
| supplementalLines.amounts.029 | number |
| supplementalLines.amounts.042 | number |
| supplementalLines.amounts.052 | number |
| supplementalLines.amounts.059 | number |
| supplementalLines.amounts.072 | number |
| supplementalLines.amounts.530 | number |
| supplementalLines.amounts.540 | number |
| supplementalLines.amounts.720 | number |
| supplementalLines.amounts.725 | number |
| supplementalLines.amounts.735 | number |
| supplementalLines.amounts.741 | number |
| supplementalLines.reviewed | boolean |
| supplementalLines.valid | boolean |
| taxableIncome | number |
| warnings[].code | string |
| warnings[].message | string |
| warnings[].severity | string |
| warnings[].source | 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[].gate_id | string |
| warnings[].accountIds[] | string |
| s125AntiAvoidanceConclusions.subsection6MultiplePartnerships | array | boolean | null | number | object | string |
| s125AntiAvoidanceConclusions.subsection9Intermediary | array | boolean | null | number | object | string |
| s125AntiAvoidanceConclusions.subsections6_2And6_3ControlledPartnership | array | boolean | null | number | object | string |
| psbPresent | array | boolean | null | number | object | string |
| fired_gates | object |