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.

Input cells for schedule18
CellTypesRequired
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.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.null | 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.null | stringstrict
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.corporationTypenull | 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.lastModifiedAtstring
schedule18.lastModifiedBystring
schedule18.line101_rcgtoh_openingnull | number
schedule18.line120_taxed_capital_gainsnull | numberstrict
schedule18.line144_rcgtoh_amalg_transfernull | number
schedule18.line151_federal_cgr_previous_yearnull | number
schedule18.line160_rcgtoh_before_refundnull | numberstrict
schedule18.line162_fmv_issued_sharesnull | number
schedule18.line164_fmv_debtsnull | number
schedule18.line166_total_cost_amountsnull | number
schedule18.line168_money_on_handnull | number
schedule18.line169_amount_paid_redeemnull | number
schedule18.line170_capital_gains_redemptionsnull | number
schedule18.line171_fmv_share_exchanges_131_4_1null | number
schedule18.line180_capital_gains_dividends_60d_windownull | number
schedule18.line190_federal_capital_gains_refundnull | numberstrict
schedule18.line192_orcgtoh_openingnull | number
schedule18.line194_orcgtoh_amalg_transfernull | number
schedule18.line196_ontario_cgr_previous_yearnull | number
schedule18.line198_orcgtoh_before_refundnull | number
schedule18.line260_ontario_capital_gains_refundnull | numberstrict
schedule18.line262_manitoba_capital_gains_refundnull | numberstrict
schedule18.line290_total_provincial_capital_gains_refundnull | numberstrict
schedule18.line300_mrcgtoh_openingnull | number
schedule18.line310_manitoba_cgr_previous_yearnull | number
schedule18.line320_mrcgtoh_before_refundnull | 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 | objectstrict
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.totalTaxableIncomenull | numberstrict
t2Jacket.additionalInfo.returnFiledWithinThreeYearsbooleanstrict
t2Jacket.filingStatus.firstYearAfterAmalgamationbooleanstrict
t2Jacket.filingStatus.firstYearAfterIncorporationbooleanstrict
t2Jacket.filingStatus.subsidiaryWindupS88booleanstrict
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 (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.

Strict profile accepted values for schedule18
CellAccepted values
daysInYear1 to 1000000000000000
fiscalEnddate (YYYY-MM-DD); 10 to 10 characters
fiscalStartdate (YYYY-MM-DD); 10 to 10 characters
schedule18.corporationTypeone 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
taxYearmatches ^\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.

Output cells for schedule18
CellTypes
answered_countinteger
federal_parts_1_to_3.computed_lines.160array | boolean | null | number | object | string
federal_parts_1_to_3.computed_lines.170array | boolean | null | number | object | string
federal_parts_1_to_3.computed_lines.190array | boolean | null | number | object | string
federal_parts_1_to_3.corporation_typearray | boolean | null | number | object | string
federal_parts_1_to_3.corporation_type_suppliedboolean
federal_parts_1_to_3.line_120null | number
federal_parts_1_to_3.part_1.amount_1aarray | boolean | null | number | object | string
federal_parts_1_to_3.part_1.amount_1barray | boolean | null | number | object | string
federal_parts_1_to_3.part_1.amount_1carray | boolean | null | number | object | string
federal_parts_1_to_3.part_1.amount_1darray | boolean | null | number | object | string
federal_parts_1_to_3.part_1.amount_1earray | boolean | null | number | object | string
federal_parts_1_to_3.part_1.computedboolean
federal_parts_1_to_3.part_1.line_101array | boolean | null | number | object | string
federal_parts_1_to_3.part_1.line_144array | boolean | null | number | object | string
federal_parts_1_to_3.part_1.line_151array | boolean | null | number | object | string
federal_parts_1_to_3.part_1.line_160array | boolean | null | number | object | string
federal_parts_1_to_3.part_1.missing_inputs[]string
federal_parts_1_to_3.part_2.amount_2aarray | boolean | null | number | object | string
federal_parts_1_to_3.part_2.amount_2barray | boolean | null | number | object | string
federal_parts_1_to_3.part_2.amount_2carray | boolean | null | number | object | string
federal_parts_1_to_3.part_2.amount_2darray | boolean | null | number | object | string
federal_parts_1_to_3.part_2.amount_2earray | boolean | null | number | object | string
federal_parts_1_to_3.part_2.amount_2farray | boolean | null | number | object | string
federal_parts_1_to_3.part_2.computedboolean
federal_parts_1_to_3.part_2.line_170array | boolean | null | number | object | string
federal_parts_1_to_3.part_2.missing_inputs[]string
federal_parts_1_to_3.part_2.not_applicableboolean
federal_parts_1_to_3.part_2.notesarray
federal_parts_1_to_3.part_3.amount_3aarray | boolean | null | number | object | string
federal_parts_1_to_3.part_3.amount_3barray | boolean | null | number | object | string
federal_parts_1_to_3.part_3.computedboolean
federal_parts_1_to_3.part_3.line_190array | boolean | null | number | object | string
federal_parts_1_to_3.part_3.missing_inputs[]string
federal_parts_1_to_3.sources.120string
federal_parts_1_to_3.sources.160string
federal_parts_1_to_3.sources.170string
federal_parts_1_to_3.sources.190string
fired_gatesobject
line_120integer
line_160integer
line_190integer
line_260integer
line_262integer
line_290integer
missing_required[]string
part_11_detailarray | boolean | null | number | object | string
provisionalboolean
readyboolean
t2_line_788_feednull | number
t2_line_808_feednull | number
total_countinteger
warnings[].boxstring
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
warnings[].provincestring
warnings[].codestring
warnings[].tax_yearinteger | null
provincial_pools.computed_lines.198array | boolean | null | number | object | string
provincial_pools.computed_lines.320array | boolean | null | number | object | string
provincial_pools.continuity_breakboolean
corporation_typearray | boolean | null | number | object | string
perProvinceRowsarray
prescribed_lsvccarray | boolean | null | number | object | string
Filemark | schedule18 cells