schedule18
T2 Corporation Income Tax Return
- Kind
- batch
- Supported tax years
- 2019 and later
- Strict profile
- s18_2025_six_line_projection_v1
- Payload schema version
- 0.10.0
- Dependencies (run automatically)
- division_c, part_i_tax, schedule31, schedule4, schedule5, schedule6
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": [
"schedule18"
],
"inputs": {
"taxYear": 2025,
"fiscalStart": "2025-01-01",
"fiscalEnd": "2025-12-31",
"daysInYear": 365,
"t2Jacket": {
"additionalInfo": {
"returnFiledWithinThreeYears": true
},
"filingStatus": {
"firstYearAfterIncorporation": false,
"firstYearAfterAmalgamation": false,
"subsidiaryWindupS88": false
}
},
"schedule18": {
"line120_taxed_capital_gains": 1000,
"line160_rcgtoh_before_refund": 500,
"line190_federal_capital_gains_refund": 100,
"line260_ontario_capital_gains_refund": 0,
"line262_manitoba_capital_gains_refund": 0,
"line290_total_provincial_capital_gains_refund": 0,
"totalTaxableIncome": 1000,
"perProvinceRows": {}
},
"isCCPC": true
}
}Input cells (52)
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 |
|---|---|---|
| daysInYearDays in the taxation year, tied to the inclusive fiscalStart-to-fiscalEnd span. ITA s.249(1)(a) makes the taxation year the fiscal period, and the Part I rates and limits this schedule feeds are day-weighted, so the engine requires the stated count instead of assuming a calendar year. | 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. | 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 |
| isCCPCThe corporation was a Canadian-controlled private corporation (ITA s.125(7) definition) throughout the taxation year. | boolean | |
| schedule18.amount4A_ontario_allocation_factorAmount 4A — Ontario allocation factor (0-1). Notes 4/5: the amount allocated to Ontario from column F in Part 1 of Schedule 5 over T2 line 360; enter 1 when line 750 is Ontario. | null | number | |
| schedule18.amount5C_ontario_income_tax_payableAmount 5C — "Ontario corporate income tax payable. Amount 5G from Part 2 of Schedule 5" (form-face tooltip, T2 SCH 18 E (19) page 2). | null | number | |
| schedule18.amount5D_ontario_refundable_tax_creditsAmount 5D — "Ontario refundable tax credits. Amount 5J from Part 2 of Schedule 5". Amount 5E is 5C minus 5D, floored at nil ("if negative, enter 0" = the statute's "the amount, if any, by which"). | null | number | |
| schedule18.amount7A_manitoba_tax_rateAmount 7A — the higher Manitoba tax rate for the year (0-1) from Schedule 383, Part 7. Where different rates apply to different periods, the form's own R x A1 / A2 day weighting applies. | null | number | |
| schedule18.amount8A_manitoba_allocation_factorAmount 8A — Manitoba allocation factor (0-1), Notes 9/10; the Ontario rule read for Manitoba. | null | number | |
| schedule18.amount9C_manitoba_income_tax_payableAmount 9C — "Manitoba corporate income tax payable. Amount 6B from Part 2 of Schedule 5" (form-face tooltip, T2 SCH 18 E (19) page 3). | null | number | |
| schedule18.amount9D_manitoba_refundable_tax_creditsAmount 9D — "Manitoba refundable tax credits. Amount 6C from Part 2 of Schedule 5". Amount 9E is 9C minus 9D, floored at nil. | null | number | |
| schedule18.corporationType | null | string | |
| schedule18.incorporatedWithinTwoYearsOfTestTimeWhether the corporation was incorporated within the two years before the test time, the ITA s.131(8.3) recent-incorporation exception. Consulted only once specified persons both control the corporation and hold more than 10 percent of total share fair market value. null leaves mutual-fund-corporation status unproved and releases no Schedule 18 refund; false disqualifies the corporation under s.131(8.2). | boolean | null | |
| schedule18.lastModifiedAt | string | |
| schedule18.lastModifiedBy | string | |
| schedule18.line101_rcgtoh_opening | null | number | |
| schedule18.line120_taxed_capital_gains | null | number | strict |
| schedule18.line144_rcgtoh_amalg_transfer | null | number | |
| schedule18.line151_federal_cgr_previous_year | null | number | |
| schedule18.line160_rcgtoh_before_refund | null | number | strict |
| schedule18.line162_fmv_issued_shares | null | number | |
| schedule18.line164_fmv_debts | null | number | |
| schedule18.line166_total_cost_amounts | null | number | |
| schedule18.line168_money_on_hand | null | number | |
| schedule18.line169_amount_paid_redeem | null | number | |
| schedule18.line170_capital_gains_redemptions | null | number | |
| schedule18.line171_fmv_share_exchanges_131_4_1 | null | number | |
| schedule18.line180_capital_gains_dividends_60d_window | null | number | |
| schedule18.line190_federal_capital_gains_refund | null | number | strict |
| schedule18.line192_orcgtoh_opening | null | number | |
| schedule18.line194_orcgtoh_amalg_transfer | null | number | |
| schedule18.line196_ontario_cgr_previous_year | null | number | |
| schedule18.line198_orcgtoh_before_refund | null | number | |
| schedule18.line260_ontario_capital_gains_refund | null | number | strict |
| schedule18.line262_manitoba_capital_gains_refund | null | number | strict |
| schedule18.line290_total_provincial_capital_gains_refund | null | number | strict |
| schedule18.line300_mrcgtoh_opening | null | number | |
| schedule18.line310_manitoba_cgr_previous_year | null | number | |
| schedule18.line320_mrcgtoh_before_refund | null | number | |
| schedule18.ontario_basic_rate_of_tax_note6Note 6 — the Ontario basic rate of tax (0-1), "the rate calculated in Part 1 of Schedule 500". | null | number | |
| schedule18.perProvinceRowsProvince-keyed taxable-income and capital-gains-refund operands used to allocate the Schedule 18 provincial refund. The object uses the persisted public Schedule 18 row names. | null | object | strict |
| schedule18.prescribedLsvccITA 131(8): the corporation was a prescribed labour-sponsored venture capital corporation throughout the tax year. Null is unanswered. | boolean | null | |
| schedule18.reitControlledOnApril16_2024Whether the corporation was controlled by a real estate investment trust on April 16, 2024. Read only on a return whose taxation year starts in 2025: S.C. 2026 c.3 s.62(3) defers ITA s.131(8.2) for that class until years beginning after 2025, so true keeps the substantial-interest rule off this year. null leaves the coming-into-force branch unresolved and releases no Schedule 18 refund. | boolean | null | |
| schedule18.specifiedPersonsControlCorporationWhether specified persons control the corporation, the first limb of the ITA s.131(8.2) substantial-interest test. Read whenever that rule reaches the taxation year, together with specifiedPersonsShareFmvPercentage. null leaves mutual-fund-corporation status and its capital gains refund unproved. | boolean | null | |
| schedule18.specifiedPersonsShareFmvAggregate fair market value of the shares held by specified persons, tested against the $5,000,000 ceiling in the ITA s.131(8.3) exception. Consulted only once that exception is otherwise in play. It must not be negative, and an absent amount leaves mutual-fund-corporation status unproved. | null | number | string | |
| schedule18.specifiedPersonsShareFmvPercentageShare of total share fair market value held by specified persons, as a 0-to-100 percentage. The second limb of the ITA s.131(8.2) substantial-interest test: above 10 percent, with specified-person control, the s.131(8.3) exception decides the outcome. A value outside 0 to 100, or an absent one, leaves the status unproved. | null | number | string | |
| schedule18.totalTaxableIncome | null | number | strict |
| t2Jacket.additionalInfo.returnFiledWithinThreeYears | 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 (12 of 52 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 |
|---|---|
| daysInYear | 1 to 1000000000000000 |
| fiscalEnd | date (YYYY-MM-DD); 10 to 10 characters |
| fiscalStart | date (YYYY-MM-DD); 10 to 10 characters |
| schedule18.corporationType | one of "investment", "mutualFund" |
| schedule18.line120_taxed_capital_gains | -1000000000000000 to 1000000000000000 |
| schedule18.line160_rcgtoh_before_refund | -1000000000000000 to 1000000000000000 |
| schedule18.line190_federal_capital_gains_refund | -1000000000000000 to 1000000000000000 |
| schedule18.line260_ontario_capital_gains_refund | -1000000000000000 to 1000000000000000 |
| schedule18.line262_manitoba_capital_gains_refund | -1000000000000000 to 1000000000000000 |
| schedule18.line290_total_provincial_capital_gains_refund | -1000000000000000 to 1000000000000000 |
| schedule18.totalTaxableIncome | -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 (74)
Paths are relative to this target’s result object in the response.
| Cell | Types |
|---|---|
| answered_count | integer |
| federal_parts_1_to_3.computed_lines.160 | array | boolean | null | number | object | string |
| federal_parts_1_to_3.computed_lines.170 | array | boolean | null | number | object | string |
| federal_parts_1_to_3.computed_lines.190 | array | boolean | null | number | object | string |
| federal_parts_1_to_3.corporation_type | array | boolean | null | number | object | string |
| federal_parts_1_to_3.corporation_type_supplied | boolean |
| federal_parts_1_to_3.line_120 | null | number |
| federal_parts_1_to_3.part_1.amount_1a | array | boolean | null | number | object | string |
| federal_parts_1_to_3.part_1.amount_1b | array | boolean | null | number | object | string |
| federal_parts_1_to_3.part_1.amount_1c | array | boolean | null | number | object | string |
| federal_parts_1_to_3.part_1.amount_1d | array | boolean | null | number | object | string |
| federal_parts_1_to_3.part_1.amount_1e | array | boolean | null | number | object | string |
| federal_parts_1_to_3.part_1.computed | boolean |
| federal_parts_1_to_3.part_1.line_101 | array | boolean | null | number | object | string |
| federal_parts_1_to_3.part_1.line_144 | array | boolean | null | number | object | string |
| federal_parts_1_to_3.part_1.line_151 | array | boolean | null | number | object | string |
| federal_parts_1_to_3.part_1.line_160 | array | boolean | null | number | object | string |
| federal_parts_1_to_3.part_1.missing_inputs[] | string |
| federal_parts_1_to_3.part_2.amount_2a | array | boolean | null | number | object | string |
| federal_parts_1_to_3.part_2.amount_2b | array | boolean | null | number | object | string |
| federal_parts_1_to_3.part_2.amount_2c | array | boolean | null | number | object | string |
| federal_parts_1_to_3.part_2.amount_2d | array | boolean | null | number | object | string |
| federal_parts_1_to_3.part_2.amount_2e | array | boolean | null | number | object | string |
| federal_parts_1_to_3.part_2.amount_2f | array | boolean | null | number | object | string |
| federal_parts_1_to_3.part_2.computed | boolean |
| federal_parts_1_to_3.part_2.line_170 | array | boolean | null | number | object | string |
| federal_parts_1_to_3.part_2.missing_inputs[] | string |
| federal_parts_1_to_3.part_2.not_applicable | boolean |
| federal_parts_1_to_3.part_2.notes | array |
| federal_parts_1_to_3.part_3.amount_3a | array | boolean | null | number | object | string |
| federal_parts_1_to_3.part_3.amount_3b | array | boolean | null | number | object | string |
| federal_parts_1_to_3.part_3.computed | boolean |
| federal_parts_1_to_3.part_3.line_190 | array | boolean | null | number | object | string |
| federal_parts_1_to_3.part_3.missing_inputs[] | string |
| federal_parts_1_to_3.sources.120 | string |
| federal_parts_1_to_3.sources.160 | string |
| federal_parts_1_to_3.sources.170 | string |
| federal_parts_1_to_3.sources.190 | string |
| fired_gates | object |
| line_120 | integer |
| line_160 | integer |
| line_190 | integer |
| line_260 | integer |
| line_262 | integer |
| line_290 | integer |
| missing_required[] | string |
| part_11_detail | array | boolean | null | number | object | string |
| provisional | boolean |
| ready | boolean |
| t2_line_788_feed | null | number |
| t2_line_808_feed | null | number |
| total_count | integer |
| warnings[].box | 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[].message | string |
| warnings[].severity | string |
| warnings[].province | string |
| warnings[].code | string |
| warnings[].tax_year | integer | null |
| provincial_pools.computed_lines.198 | array | boolean | null | number | object | string |
| provincial_pools.computed_lines.320 | array | boolean | null | number | object | string |
| provincial_pools.continuity_break | boolean |
| corporation_type | array | boolean | null | number | object | string |
| perProvinceRows | array |
| prescribed_lsvcc | array | boolean | null | number | object | string |