schedule27
T2 Corporation Income Tax Return
- Kind
- batch
- Supported tax years
- 2022 and later
- Strict profile
- s27_single_reg5201_profile_target_value_v2
- Payload schema version
- 0.8.0
- Dependencies (run automatically)
- division_c, sbd, schedule21, schedule7, schedule8, t661
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": [
"schedule27"
],
"inputs": {
"taxYear": 2025,
"corpType": "1",
"fiscalStart": "2025-01-01",
"fiscalEnd": "2025-12-31",
"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,
"priorYearGroupTCEC": 0,
"priorYearGroupTCECMeta": {
"basis": "standalone_preceding_tax_year",
"asOf": "2024-12-31",
"source": "prior filed T2",
"confirmed": true
},
"schedule27": {
"line100ActiveBusinessIncomeNetOfLoss": 100000,
"line105AssociatedCorpsABI": 0,
"mpGrossRevenueRatio": 1,
"primarilyMPInCanada": true,
"hasActiveBusinessOutsideCanada": false,
"hasExcludedActivityS125_1_3_a_to_k": false,
"hasForeignOreProcessingNotBeyondPrescribedStage": false,
"hasResourceActivitiesReg5203": false
},
"daysInYear": 365,
"t2Jacket": {
"filingStatus": {
"firstYearAfterAmalgamation": false,
"firstYearAfterIncorporation": true,
"subsidiaryWindupS88": false
}
},
"associatedGroupAII": 0
}
}Input cells (90)
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[].accountCode | string | strict |
| accounts[].accountName | string | strict |
| accounts[].accountType | 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 | strict |
| accounts[].classification.incomeType | 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 | strict |
| accounts[].id | string | strict |
| accounts[].reviewStatus | string | strict |
| accounts[].userStatus | string | strict |
| associatedGroupAIIITA s.125(5.1)(b): the adjusted aggregate investment income of the corporation and every associated corporation for taxation years that ended in the PRECEDING calendar year. It can never be derived from current-year amounts, so Schedule 7 holds the business-limit grind until it is stated; zero is a valid answer and is what this witness states. | integer | null | number | |
| corpType | string | strict |
| daysInYearInclusive day count for the canonical fiscalStart/fiscalEnd period required by the settled Part I dependency closure. | integer | 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. | 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. | string | strict |
| 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 | 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 | strict |
| priorYearGroupTCEC | integer | strict |
| priorYearGroupTCECMeta.asOf | string | strict |
| priorYearGroupTCECMeta.basis | string | strict |
| priorYearGroupTCECMeta.confirmedConfirms the associated group's prior-year taxable capital employed in Canada figure, the operand of the ITA s.125(5.1) business-limit reduction. | boolean | strict |
| priorYearGroupTCECMeta.source | string | strict |
| schedule27.amount11BPortionDirectlyInQualifiedActivitiesIncludingElecSteamAmount 11B — the part of C used directly in qualified activities INCLUDING generating electrical energy / producing steam. Must be the SUPERSET of amount 5B, not the elec/steam carve-out. | null | number | |
| schedule27.amount12ASalariesWagesInQualifiedActivitiesIncludingElecSteamAmount 12A — employee salaries and wages in qualified activities INCLUDING elec/steam. Superset of amount 7A. | null | number | |
| schedule27.amount12BNonEmployeeInQualifiedActivitiesIncludingElecSteamAmount 12B — non-employee payments in qualified activities INCLUDING elec/steam. Superset of amount 7B. | null | number | |
| schedule27.amount16AZETMSalariesWagesDirectlyInZETMAmount 16A — employee salaries and wages for services directly engaged in qualified ZETM activities. | null | number | |
| schedule27.amount16BZETMNonEmployeeInZETMAmount 16B — non-employee payments for functions directly related to qualified ZETM activities. 306 (MLB) = 16A + 16B. | null | number | |
| schedule27.amount305ZETMCostOfCapitalMCBBox 305 — ZETM cost of capital (MCB): the part of C (line 140) used directly in qualified ZETM activities. Capped at C. | null | number | |
| schedule27.amount3BNetResourceAdjustmentReg5203_3_1Amount 3B — net resource adjustment, Reg 5203(3.1). | null | number | |
| schedule27.amount3DRefundInterestReg5203_4Amount 3D — refund interest, Reg 5203(4). | null | number | |
| schedule27.amount4ADepreciableScheduleIIAmount 4A — GROSS COST (not UCC) of owned depreciable property under Schedule II. | null | number | |
| schedule27.amount4BTimberLimitsAndCuttingRightsAmount 4B — timber limits and cutting rights. | null | number | |
| schedule27.amount4CImmovableWoodAssetsClass15Amount 4C — immovable wood assets (Class 15). | null | number | |
| schedule27.amount4DIndustrialMineralMinesAmount 4D — industrial mineral mines. | null | number | |
| schedule27.amount4ESREDCapitalExpendituresAmount 4E — SR&ED capital expenditures. | null | number | |
| schedule27.amount4FPartXVIIPropertyAmount 4F — Part XVII property. | null | number | |
| schedule27.amount4HRentalCostForPropertyUseAmount 4H — rental cost incurred for the use of property whose gross cost would be included above if owned. Aggregated in FULL (no 10%). | null | number | |
| schedule27.amount4IPartnershipShareOfCCAmount 4I — partnership share of cost of capital. | null | number | |
| schedule27.amount5BPortionDirectlyInQualifiedActivitiesAmount 5B — the part of C reflecting the extent of direct use in Reg 5202 qualified activities. Engine applies 100/85, capped at C. | null | number | |
| schedule27.amount6ASalariesWagesEmployeesAmount 6A — salaries and wages paid or payable to employees. | null | number | |
| schedule27.amount6BIncludedInGrossCostOfPropertyAmount 6B — portion included in gross cost of property (Part 4). | null | number | |
| schedule27.amount6CRelatedToOutsideCanadaABAmount 6C — portion related to active business outside Canada. | null | number | |
| schedule27.amount6DRelatedToCdnResourceProfitsAmount 6D — portion related to Canadian resource profits. | null | number | |
| schedule27.amount6EIncludedInCEDEFEDEAmount 6E — portion included in CEDE / FEDE / CEE / CDE. | null | number | |
| schedule27.amount6HPartnershipShareEmployeeNetAmount 6H — partnership share, employee arm, net of exclusions. | null | number | |
| schedule27.amount6JManagementAdminNonEmployeeAmount 6J — non-employee management and administration amounts. | null | number | |
| schedule27.amount6KSREDNonEmployeeAmount 6K — non-employee SR&ED amounts. | null | number | |
| schedule27.amount6LServiceFunctionNonEmployeeAmount 6L — non-employee amounts for a service or function that would normally be performed by an employee. | null | number | |
| schedule27.amount6NIncludedInGrossCostOfPropertyNEAmount 6N — non-employee portion included in gross cost of property. | null | number | |
| schedule27.amount6ORelatedToOutsideCanadaABNEAmount 6O — non-employee portion related to outside-Canada business. | null | number | |
| schedule27.amount6PRelatedToCdnResourceProfitsNEAmount 6P — non-employee portion related to Cdn resource profits. | null | number | |
| schedule27.amount6QIncludedInCEDEFEDENEAmount 6Q — non-employee portion included in CEDE / FEDE. | null | number | |
| schedule27.amount6TPartnershipShareNonEmployeeNetAmount 6T — partnership share, non-employee arm, net of exclusions. | null | number | |
| schedule27.amount7ASalariesWagesInQualifiedActivitiesAmount 7A — part of salaries and wages (included in 6I) for employees directly engaged in qualified activities. | null | number | |
| schedule27.amount7BNonEmployeeInQualifiedActivitiesAmount 7B — part of other payments (included in 6U) to non-employees for functions directly related to qualified activities. | null | number | |
| schedule27.amount8AResourceProfitsReg1204Amount 8A — resource profits, Reg 1204. | null | number | |
| schedule27.amount8BSection59IncomeNotInResourceProfitsAmount 8B — s.59 income not included in resource profits. | null | number | |
| schedule27.amount8DSection65DeductionsNotAgainstResourceProfitsAmount 8D — s.65 deductions not applied against resource profits. | null | number | |
| schedule27.amount8EIncomeFromForeignOreProcessingAmount 8E — income from processing foreign ore. | null | number | |
| schedule27.claimingElectricalSteamPathClaiming the parallel deduction on profits from generating electrical energy for sale or producing steam for sale. Parts 10–13 compute as all-zero unless true. | boolean | null | |
| schedule27.claimingPart9MainPathWhether the main Part 9 path is ALSO claimed. Governs amount 13J: form footnote 10 requires 13J = 0 when only the elec/steam deduction is claimed. null = engine assumes both are claimed (conservative). | boolean | null | |
| schedule27.claimingZETMDeductionSignals a ZETM claim. Used only to raise an advisory when no MCB/MLB allocation is supplied; the ZETM arm computes off the amounts below. | boolean | null | |
| schedule27.costOfCapitalReflectsReg5203And5204ExclusionsBox 140 review: Part 4 gross and rental costs exclude the property-use portions required by Reg 5203(1) or, for a partnership member, Reg 5204. | boolean | null | |
| schedule27.excludedActivityParagraphss.125.1(3)(a)–(k) paragraph letters the corporation is engaged in. Non-empty blocks the deduction. Paragraph (h) (electrical energy / steam) is RE-INCLUDED by s.125.1(5) for the Parts 10–13 path. | array | |
| schedule27.hasActiveBusinessOutsideCanadaReg 5201(d) disqualifier: the corporation carried on an active business outside Canada at any time in the year, which forces the Reg 5200 formula. | boolean | null | strict |
| schedule27.hasExcludedActivityS125_1_3_a_to_kReg 5201(c) disqualifier: the corporation engaged in an activity excluded by paragraphs (a) to (k) of the ITA s.125.1(3) manufacturing or processing definition. | boolean | null | strict |
| schedule27.hasForeignOreProcessingNotBeyondPrescribedStageReg 5201(c.1) to (c.3) disqualifier: processing of foreign ore not beyond the prime metal, iron-ore pellet, or crude-oil stage. | boolean | null | strict |
| schedule27.hasResourceActivitiesReg5203Exact-profile fact required by Regulations 5201 and 5203(2): the corporation has no resource activities that require the Schedule 27 resource-profit reduction. | boolean | null | strict |
| schedule27.includesEmployerCPP_EIAdvisory flag: amount 6A includes employer-portion CPP/EI/EHT. Reg 5202 limits salaries and wages to salaries, wages and commissions; the engine warns for review but never auto-strips. | boolean | null | |
| schedule27.line100ActiveBusinessIncomeNetOfLossBox 100 — active business income minus active business losses for the year, including your share for each partnership of which you were a member. Reg 5201(b)(i). When the four conditions are met this IS the Canadian M&P profits figure entered at line 200. | null | number | strict |
| schedule27.line105AssociatedCorpsABIBox 105 — active business income of each associated Canadian corporation. Reg 5201(b)(ii) has NO loss-netting on this arm. | null | number | strict |
| schedule27.line120ActiveBusinessIncomeNetOfLossBox 120 — active business income net of losses (Reg 5200 path). | null | number | |
| schedule27.mpGrossRevenueRatioThe ITA s.125.1(3)(l) qualifying Canadian manufacturing and processing gross-revenue ratio. This exact witness proves the 10% floor instead of treating an unanswered statutory fact as zero. | null | number | strict |
| schedule27.onlyGeneratedOrProducedElectricalEnergyOrSteamForSaleInSaskatchewanSchedule 404 Note 1 — the corporation only generated or produced electrical energy or steam for sale in Saskatchewan. Yes routes S404 amount 1A to S27 line 210; No routes it to line 200; null is unanswered. | boolean | null | |
| schedule27.primarilyMPInCanadaReg 5201 small-manufacturers condition: the corporation's activities during the year were primarily manufacturing or processing in Canada. | boolean | null | strict |
| schedule27.primarilyMPRatioOptional 0..1 corroboration of the Reg 5201(a) "primarily" test. | null | number | |
| schedule27.schedule404Supporting Schedule 404 worksheet. It rides on THIS document because Schedule 27 already owns the Schedule 404 Note 1 routing answer above and produces amount 1A (line 200 / line 210); the same nesting Schedule 511 uses inside Schedule 510. Opening Schedule 404 therefore opens Schedule 27 too, which is correct in substance — amount 1A comes from Schedule 27, so the Saskatchewan reduction cannot be computed without it. | null | object | |
| schedule27.schedule404.amount1EFromSchedule411Amount 1E from Schedule 411, which the face prints TWICE — as amount 1B (subtracted from Canadian M&P profits to reach amount 1C) and as amount 1E (added into amount 1H and so subtracted from taxable income to reach amount 1I). Form Note 2 makes it live only for a corporation that was a CCPC throughout the year. Filemark computes no Schedule 411, so this is entered. Leaving it blank does NOT read as nil — a nil would enlarge the reduction in the taxpayer's favour — it makes the engine fall back to the Saskatchewan small-business-rate income it computed and disclose that substitution at… | null | number | |
| schedule27.uccDepreciableScheduleIINot consumed. Regulation 5202 cost of capital paragraph (a) requires the gross historical capital cost of owned depreciable property, not undepreciated capital cost, so any value here is ignored and only produces a warning telling you to send amount4ADepreciableScheduleII instead. | null | number | string | |
| schedule27.zetmAllocationReflectsDirectUseConfirmation that the MCB/MLB allocation reflects extent of direct use in those clauses. A positive allocation without `true` fails closed. | boolean | null | |
| schedule27.zetmQualifiedActivityClausesReg 5202 qualified-ZETM-activity clause identifiers the allocation relates to — a CLOSED list (clauses (a)(i)(A)–(I) and (L)–(O)). A positive MCB/MLB allocation with no clause fails closed; manufacturing generally is NOT a qualified ZETM activity. | array | |
| schedule27.zetm_deduction_claimedSignals that a zero-emission technology manufacturing deduction is being claimed, so the engine emits an advisory when no ZETM cost is supplied. It does not itself produce the line 350 amount: with no ZETM cost present the line 616 figure stays the exact manufacturing and processing figure. claimingZETMDeduction is the equivalent alternative spelling. | boolean | null | |
| 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 | 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. | integer | 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 | 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 | strict |
| t2Jacket.filingStatus.firstYearAfterAmalgamation | boolean | strict |
| t2Jacket.filingStatus.firstYearAfterIncorporation | boolean | strict |
| t2Jacket.filingStatus.subsidiaryWindupS88 | boolean | 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 (23 of 90 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[].accountType | 0 to 20000 characters |
| accounts[].classification.incomeType | 0 to 20000 characters |
| accounts[].currentYearBalance | -1000000000000000 to 1000000000000000 |
| accounts[].id | 0 to 20000 characters |
| accounts[].reviewStatus | 0 to 20000 characters |
| accounts[].userStatus | 0 to 20000 characters |
| associatedGroupAII | -1000000000000000 to 1000000000000000 |
| corpType | 0 to 20000 characters |
| daysInYear | 1 to 1000000000000000 |
| fiscalEnd | date (YYYY-MM-DD); 10 to 10 characters |
| fiscalStart | date (YYYY-MM-DD); 10 to 10 characters |
| lifeInsurancePolicyIncome | -1000000000000000 to 1000000000000000 |
| priorYearGroupTCEC | -1000000000000000 to 1000000000000000 |
| priorYearGroupTCECMeta.asOf | 0 to 20000 characters |
| priorYearGroupTCECMeta.basis | 0 to 20000 characters |
| priorYearGroupTCECMeta.source | matches \S; 1 to 20000 characters |
| schedule27.line100ActiveBusinessIncomeNetOfLoss | -1000000000000000 to 1000000000000000 |
| schedule27.line105AssociatedCorpsABI | -1000000000000000 to 1000000000000000 |
| schedule27.mpGrossRevenueRatio | -1000000000000000 to 1000000000000000 |
| 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 (133)
Paths are relative to this target’s result object in the response.
| Cell | Types |
|---|---|
| amount_11A | number |
| amount_11B | number |
| amount_12A | number |
| amount_12B | number |
| amount_12C | number |
| amount_13A | number |
| amount_13B | number |
| amount_13C | number |
| amount_13D | number |
| amount_13E | number |
| amount_13F | number |
| amount_13G | number |
| amount_13H | number |
| amount_13I | number |
| amount_13J | number |
| amount_13K | number |
| amount_13L | number |
| amount_14A | number |
| amount_14B | number |
| amount_14C | number |
| amount_16A | number |
| amount_16B | number |
| amount_17A | number |
| amount_17B | number |
| amount_17C | number |
| amount_17D | number |
| amount_17E | number |
| amount_17F | number |
| amount_17G | number |
| amount_17H | number |
| amount_17I | number |
| amount_17J | number |
| amount_17K | number |
| amount_17L | number |
| amount_17M | number |
| amount_3A | number |
| amount_3B | number |
| amount_3C | number |
| amount_3D | number |
| amount_4A | number |
| amount_4B | number |
| amount_4C | number |
| amount_4D | number |
| amount_4E | number |
| amount_4F | number |
| amount_4G | number |
| amount_4H | number |
| amount_4I | number |
| amount_5A | number |
| amount_5B | number |
| amount_6A | number |
| amount_6B | number |
| amount_6C | number |
| amount_6D | number |
| amount_6E | number |
| amount_6F | number |
| amount_6G | number |
| amount_6H | number |
| amount_6I | number |
| amount_6J | number |
| amount_6K | number |
| amount_6L | number |
| amount_6M | number |
| amount_6N | number |
| amount_6O | number |
| amount_6P | number |
| amount_6Q | number |
| amount_6R | number |
| amount_6S | number |
| amount_6T | number |
| amount_6U | number |
| amount_7A | number |
| amount_7B | number |
| amount_7C | number |
| amount_8A | number |
| amount_8B | number |
| amount_8C | number |
| amount_8D | number |
| amount_8E | number |
| amount_8F | number |
| amount_8G | number |
| amount_9A | number |
| amount_9B | number |
| amount_9C | number |
| amount_9D | number |
| amount_9E | number |
| amount_9F | number |
| amount_9G | number |
| amount_9H | number |
| amount_9I | number |
| amount_9J | number |
| amount_9K | number |
| amount_9L | number |
| fired_gates | object |
| line_100 | number |
| line_105 | number |
| line_110 | number |
| line_120 | number |
| line_125 | number |
| line_130 | number |
| line_140 | number |
| line_150 | number |
| line_160 | number |
| line_170 | number |
| line_200 | number |
| line_205 | number |
| line_206 | number |
| line_210 | number |
| line_305 | number |
| line_306 | number |
| line_310 | number |
| line_350 | number |
| mp_profits_for_provincial_use | number |
| provisional | boolean |
| ready | boolean |
| reg_5201_qualifies | boolean |
| t2_line_616_mp_deduction | number |
| warnings[].boxThe form box the finding is about, or null when the finding is about the return rather than a printed box. | null | string |
| warnings[].codeStable machine identity of the finding, independent of its prose. Present on a finding a consumer is expected to branch on; absent on a prose-only review finding. | string |
| warnings[].message | string |
| warnings[].producers[] | string |
| warnings[].severity | 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_idIdentifier of the registered T4012 gate that raised the finding; travels with `citation`. | string |
| fbitc_relevant_factor | string |