schedule13

T2 Corporation Income Tax Return

Kind
batch
Supported tax years
2011 and later
Strict profile
s13_exact_single_request_target_value_v1
Payload schema version
0.6.0
Dependencies (run automatically)
reserve_continuity, schedule24

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": [
    "schedule13"
  ],
  "inputs": {
    "taxYear": 2025,
    "schedule13": {
      "part1CapitalGainsReserves": [],
      "part2DoubtfulDebts": {
        "openingBalance": 5000,
        "amalgamationTransfer": 0,
        "closingBalance": 5500
      }
    }
  }
}

Input cells (71)

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 schedule13
CellTypesRequired
schedule13.line008TotalOpeningPart 1 box 008, the total of the opening column across the capital gains reserve rows. The engine computes it from the rows, so send it only to reconcile an imported figure; a difference over one dollar is reported as an error.null | number | string
schedule13.line010TotalClosingPart 1 box 010, the total of the closing column across the capital gains reserve rows, which the form footer routes to Schedule 6 line 885.null | number | string
schedule13.part1CapitalGainsReservesPart 1 capital gains reserves (per-row). Empty array is valid for a corp with no capital-gains-reserve continuity.array
schedule13.part1CapitalGainsReserves[].amalgamationTransferBox 003 — Transfer on an amalgamation (ITA s.87(2)(g)/(m)) or the wind-up of a subsidiary (s.88(1)(e.1)). Normally null/zero unless the corp had a successor event in the tax year.null | number
schedule13.part1CapitalGainsReserves[].closingBalanceBox 004 — Balance at the end of the year. The fresh CY-end reserve the practitioner claims; tied to S6 per-disposition reserve calc.null | number
schedule13.part1CapitalGainsReserves[].descriptionBox 001 — Description of property. Required when the row has any non-zero amount in boxes 002/003/004.null | string
schedule13.part1CapitalGainsReserves[].dispositionDatenull | string
schedule13.part1CapitalGainsReserves[].extendedTenYearReserveITA 40(1.1) to (1.4) — "Yes" when the disposition is one for which s.40(1)(a)(iii) is read with "1/10" and "9": to the taxpayer's child of family farm/fishing property or a QSBC share (1.1), a qualifying intergenerational transfer under s.84.1(2.31)/(2.32) (1.2), a qualifying business transfer to an employee ownership trust (1.3), or a qualifying cooperative conversion (1.4). Read through norm_yes_no; blank is UNANSWERED and blocks, never an implicit "No".null | string
schedule13.part1CapitalGainsReserves[].extendedTenYearReserveEligibilityConfirmednull | string
schedule13.part1CapitalGainsReserves[].extendedTenYearReserveProvisionnull | string
schedule13.part1CapitalGainsReserves[].isActiveAssetNon-printed s.125(7) character of the property whose gain carries the reserve. Blank is unanswered and blocks a non-zero reserve swing.null | string
schedule13.part1CapitalGainsReserves[].isForeignSourceNon-printed s.129(4) source character of that same property.null | string
schedule13.part1CapitalGainsReserves[].openingBalanceBox 002 — Balance at the beginning of the year. Must equal the prior-year closing balance per the continuity-of-reserves semantics; the carryforward function auto-rolls PY closing → CY opening.null | number
schedule13.part1CapitalGainsReserves[].originalGainStatutory gain base for clauses (C)/(D): ordinarily the ITA 40(1)(a)(i) gain. On an inherited box-003 reserve, ITA 87(2)(m)(ii) instead deems the predecessor's claimed reserve to be that amount.null | number
schedule13.part1CapitalGainsReserves[].precedingTaxationYearsEndingAfterDispositionOPTIONAL override for N itself — "the number of preceding taxation years of the taxpayer ending after the disposition of the property". Normally derived as (filing year − yearOfDisposition), which is exact while the corporation's taxation years map one-to-one onto year labels. A short year (or two year-ends in one calendar year) makes the derived count too low and the cap too generous, so the practitioner may state the statutory count and it governs. Exception: a proven predecessor reserve in box 003 uses N = 1 under ITA 87(2)(m)(i) (also applied to a qualifying wind-up by 88(1)(e.2)); a…null | number
schedule13.part1CapitalGainsReserves[].proceedsNotDueAfterYearEndITA 40(1)(a)(iii)(C) — "such of the proceeds of disposition of the property that are payable to the taxpayer after the end of the year". Measured at EACH year end, so it is re-answered every year and the carryforward resets it.null | number
schedule13.part1CapitalGainsReserves[].proceedsOfDispositionITA 40(1)(a)(iii)(C) — the property's TOTAL proceeds of disposition, the denominator of the clause (C) portion. Fixed at the sale.null | number
schedule13.part1CapitalGainsReserves[].purchaserControlRelationshipITA 40(2)(a)(ii) — the purchaser is a corporation that, immediately after the sale, (A) was controlled by the taxpayer, (B) was controlled by the person or group controlling the taxpayer, or (C) controlled the taxpayer. Fixed at the sale; carried forward.null | string
schedule13.part1CapitalGainsReserves[].purchaserMajorityInterestPartnershipITA 40(2)(a)(iii) — the purchaser is a partnership in which the taxpayer was, immediately after the sale, a majority-interest partner. Fixed at the sale; carried forward.null | string
schedule13.part1CapitalGainsReserves[].taxpayerNonResidentITA 40(2)(a)(i) — the taxpayer, at the end of the year or at any time in the immediately following year, was not resident in Canada.null | string
schedule13.part1CapitalGainsReserves[].taxpayerTaxExemptITA 40(2)(a)(i) — ... or was exempt from tax under any provision of this Part.null | string
schedule13.part1CapitalGainsReserves[].yearOfDispositionITA 40(1)(a)(iii)(D) — the taxation year in which the property was disposed of, as the same integer year label the engine files under. N (the preceding taxation years ending after the disposition) is derived from it; nil in the year of disposition.null | number
schedule13.part2DoubtfulDebtsBox 110/115/120 — Reserve for doubtful debts (ITA s.20(1)(l)).object
schedule13.part2DoubtfulDebts.amalgamationTransfernull | numberstrict
schedule13.part2DoubtfulDebts.closingBalancenull | numberstrict
schedule13.part2DoubtfulDebts.isActiveAssetITA 40(2)(a) / s.125(5.1) character declarations on the reserve swing — tri-state; a row persisted before these existed normalizes to null (unanswered), never "No" (TXE-727 family).boolean | null
schedule13.part2DoubtfulDebts.isForeignSourceboolean | null
schedule13.part2DoubtfulDebts.openingBalancenull | number | stringstrict
schedule13.part2DoubtfulDebts.statutoryBasisnull | string
schedule13.part2DoubtfulDebts.statutoryProvisionNon-printed support for a manually entered reserve. The catchall row cannot be linked to a generic workpaper because its statutory tests vary by provision; absent values remain unanswered and block a non-zero row.null | string
schedule13.part2OtherTaxReservesBox 230/235/240 — Other tax reserves (T4012 catch-all: s.20(1)(o) special shipping surveys, s.20(1)(oo)/(pp) salary-deferral amounts, s.32(1) unearned non-life-insurance commissions, etc.).object
schedule13.part2OtherTaxReserves.amalgamationTransfernull | number
schedule13.part2OtherTaxReserves.closingBalancenull | number
schedule13.part2OtherTaxReserves.isActiveAssetITA 40(2)(a) / s.125(5.1) character declarations on the reserve swing — tri-state; a row persisted before these existed normalizes to null (unanswered), never "No" (TXE-727 family).boolean | null
schedule13.part2OtherTaxReserves.isForeignSourceboolean | null
schedule13.part2OtherTaxReserves.openingBalancenull | number
schedule13.part2OtherTaxReserves.statutoryBasisnull | string
schedule13.part2OtherTaxReserves.statutoryProvisionNon-printed support for a manually entered reserve. The catchall row cannot be linked to a generic workpaper because its statutory tests vary by provision; absent values remain unanswered and block a non-zero row.null | string
schedule13.part2PrepaidRentBox 150/155/160 — Reserve for prepaid rent (ITA s.20(1)(m)(iii) applied to amounts forced-included under s.12(1)(a) for advance rent or other use-of-property payments).object
schedule13.part2PrepaidRent.amalgamationTransfernull | number
schedule13.part2PrepaidRent.closingBalancenull | number
schedule13.part2PrepaidRent.isActiveAssetITA 40(2)(a) / s.125(5.1) character declarations on the reserve swing — tri-state; a row persisted before these existed normalizes to null (unanswered), never "No" (TXE-727 family).boolean | null
schedule13.part2PrepaidRent.isForeignSourceboolean | null
schedule13.part2PrepaidRent.openingBalancenull | number
schedule13.part2PrepaidRent.statutoryBasisnull | string
schedule13.part2PrepaidRent.statutoryProvisionNon-printed support for a manually entered reserve. The catchall row cannot be linked to a generic workpaper because its statutory tests vary by provision; absent values remain unanswered and block a non-zero row.null | string
schedule13.part2ReturnableContainersBox 190/195/200 — Reserve for returnable containers (ITA s.20(1)(m)(iv) for non-bottle deposits; bottle deposits fall outside (m)(iv) by statutory carve-out and are reported under s.20(1)(m.2) per CRA administrative practice).object
schedule13.part2ReturnableContainers.amalgamationTransfernull | number
schedule13.part2ReturnableContainers.closingBalancenull | number
schedule13.part2ReturnableContainers.isActiveAssetITA 40(2)(a) / s.125(5.1) character declarations on the reserve swing — tri-state; a row persisted before these existed normalizes to null (unanswered), never "No" (TXE-727 family).boolean | null
schedule13.part2ReturnableContainers.isForeignSourceboolean | null
schedule13.part2ReturnableContainers.openingBalancenull | number
schedule13.part2ReturnableContainers.statutoryBasisnull | string
schedule13.part2ReturnableContainers.statutoryProvisionNon-printed support for a manually entered reserve. The catchall row cannot be linked to a generic workpaper because its statutory tests vary by provision; absent values remain unanswered and block a non-zero row.null | string
schedule13.part2UndeliveredGoodsAndServicesBox 130/135/140 — Reserve for undelivered goods and services not rendered (ITA s.20(1)(m)).object
schedule13.part2UndeliveredGoodsAndServices.amalgamationTransfernull | number
schedule13.part2UndeliveredGoodsAndServices.closingBalancenull | number
schedule13.part2UndeliveredGoodsAndServices.isActiveAssetITA 40(2)(a) / s.125(5.1) character declarations on the reserve swing — tri-state; a row persisted before these existed normalizes to null (unanswered), never "No" (TXE-727 family).boolean | null
schedule13.part2UndeliveredGoodsAndServices.isForeignSourceboolean | null
schedule13.part2UndeliveredGoodsAndServices.openingBalancenull | number
schedule13.part2UndeliveredGoodsAndServices.statutoryBasisnull | string
schedule13.part2UndeliveredGoodsAndServices.statutoryProvisionNon-printed support for a manually entered reserve. The catchall row cannot be linked to a generic workpaper because its statutory tests vary by provision; absent values remain unanswered and block a non-zero row.null | string
schedule13.part2UnpaidAmountsBox 210/215/220 — Reserve for unpaid amounts (ITA s.20(1)(n) instalment-sale reserve; NOT the s.78 unpaid-expense add-back).object
schedule13.part2UnpaidAmounts.amalgamationTransfernull | number
schedule13.part2UnpaidAmounts.closingBalancenull | number
schedule13.part2UnpaidAmounts.isActiveAssetITA 40(2)(a) / s.125(5.1) character declarations on the reserve swing — tri-state; a row persisted before these existed normalizes to null (unanswered), never "No" (TXE-727 family).boolean | null
schedule13.part2UnpaidAmounts.isForeignSourceboolean | null
schedule13.part2UnpaidAmounts.openingBalancenull | number
schedule13.part2UnpaidAmounts.statutoryBasisnull | string
schedule13.part2UnpaidAmounts.statutoryProvisionNon-printed support for a manually entered reserve. The catchall row cannot be linked to a generic workpaper because its statutory tests vary by provision; absent values remain unanswered and block a non-zero row.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 | stringalways
Strict profile accepted values (23 of 71 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 schedule13
CellAccepted values
schedule13.part1CapitalGainsReserves[].amalgamationTransfer-1000000000000000 to 1000000000000000
schedule13.part1CapitalGainsReserves[].closingBalance-1000000000000000 to 1000000000000000
schedule13.part1CapitalGainsReserves[].description0 to 20000 characters
schedule13.part1CapitalGainsReserves[].dispositionDate0 to 20000 characters
schedule13.part1CapitalGainsReserves[].extendedTenYearReserve0 to 20000 characters
schedule13.part1CapitalGainsReserves[].extendedTenYearReserveEligibilityConfirmed0 to 20000 characters
schedule13.part1CapitalGainsReserves[].extendedTenYearReserveProvision0 to 20000 characters
schedule13.part1CapitalGainsReserves[].isActiveAsset0 to 20000 characters
schedule13.part1CapitalGainsReserves[].isForeignSource0 to 20000 characters
schedule13.part1CapitalGainsReserves[].openingBalance-1000000000000000 to 1000000000000000
schedule13.part1CapitalGainsReserves[].originalGain-1000000000000000 to 1000000000000000
schedule13.part1CapitalGainsReserves[].precedingTaxationYearsEndingAfterDisposition-1000000000000000 to 1000000000000000
schedule13.part1CapitalGainsReserves[].proceedsNotDueAfterYearEnd-1000000000000000 to 1000000000000000
schedule13.part1CapitalGainsReserves[].proceedsOfDisposition-1000000000000000 to 1000000000000000
schedule13.part1CapitalGainsReserves[].purchaserControlRelationship0 to 20000 characters
schedule13.part1CapitalGainsReserves[].purchaserMajorityInterestPartnership0 to 20000 characters
schedule13.part1CapitalGainsReserves[].taxpayerNonResident0 to 20000 characters
schedule13.part1CapitalGainsReserves[].taxpayerTaxExempt0 to 20000 characters
schedule13.part1CapitalGainsReserves[].yearOfDisposition-1000000000000000 to 1000000000000000
schedule13.part2DoubtfulDebts.amalgamationTransfer-1000000000000000 to 1000000000000000
schedule13.part2DoubtfulDebts.closingBalance-1000000000000000 to 1000000000000000
schedule13.part2DoubtfulDebts.openingBalance-1000000000000000 to 1000000000000000; 0 to 20000 characters
taxYearmatches ^\s*(?:1[0-9]{3}|2(?:0(?:[0-1][0-9]{1}|2[0-7])))\s*$; 1000 to 2027

Output cells (106)

Paths are relative to this target’s result object in the response.

Output cells for schedule13
CellTypes
fired_gatesobject
form.cell_110number
form.cell_115number
form.cell_120number
form.cell_130number
form.cell_135number
form.cell_140number
form.cell_150number
form.cell_155number
form.cell_160number
form.cell_190number
form.cell_195number
form.cell_200number
form.cell_210number
form.cell_215number
form.cell_220number
form.cell_230number
form.cell_235number
form.cell_240number
form.form_warningsarray
form.line_008number
form.line_009number
form.line_010number
form.line_270number
form.line_275number
form.line_280number
form.part1OverflowRowsarray
form.part1PrintedRowCapacityinteger
form.part1RowCountinteger
form.part1Tablearray
line_880_postingstring
line_885_postingstring
part_1.line_008_total_openingstring
part_1.line_009_total_amalgamation_transferstring
part_1.line_010_total_closingstring
part_1.per_row_reserve_cap_provenboolean
part_1.rowsarray
part_2.doubtful_debts.amalgamationTransfernull | string
part_2.doubtful_debts.closingBalancenull | string
part_2.doubtful_debts.openingBalancenull | string
part_2.doubtful_debts.statutoryBasisarray | boolean | null | number | object | string
part_2.doubtful_debts.statutoryProvisionarray | boolean | null | number | object | string
part_2.line_270_total_openingstring
part_2.line_275_total_amalgamation_transferstring
part_2.line_280_total_closingstring
part_2.other_tax_reserves.amalgamationTransferarray | boolean | null | number | object | string
part_2.other_tax_reserves.closingBalancearray | boolean | null | number | object | string
part_2.other_tax_reserves.openingBalancearray | boolean | null | number | object | string
part_2.other_tax_reserves.statutoryBasisarray | boolean | null | number | object | string
part_2.other_tax_reserves.statutoryProvisionarray | boolean | null | number | object | string
part_2.prepaid_rent.amalgamationTransferarray | boolean | null | number | object | string
part_2.prepaid_rent.closingBalancearray | boolean | null | number | object | string
part_2.prepaid_rent.openingBalancearray | boolean | null | number | object | string
part_2.prepaid_rent.statutoryBasisarray | boolean | null | number | object | string
part_2.prepaid_rent.statutoryProvisionarray | boolean | null | number | object | string
part_2.reserve_continuityobject
part_2.reserves[].amalgamationTransfernull | string
part_2.reserves[].closingBalancenull | string
part_2.reserves[].openingBalancenull | string
part_2.reserves[].reserveTypestring
part_2.returnable_containers.amalgamationTransferarray | boolean | null | number | object | string
part_2.returnable_containers.closingBalancearray | boolean | null | number | object | string
part_2.returnable_containers.openingBalancearray | boolean | null | number | object | string
part_2.returnable_containers.statutoryBasisarray | boolean | null | number | object | string
part_2.returnable_containers.statutoryProvisionarray | boolean | null | number | object | string
part_2.undelivered_goods_and_services.amalgamationTransferarray | boolean | null | number | object | string
part_2.undelivered_goods_and_services.closingBalancearray | boolean | null | number | object | string
part_2.undelivered_goods_and_services.openingBalancearray | boolean | null | number | object | string
part_2.undelivered_goods_and_services.statutoryBasisarray | boolean | null | number | object | string
part_2.undelivered_goods_and_services.statutoryProvisionarray | boolean | null | number | object | string
part_2.unpaid_amounts.amalgamationTransferarray | boolean | null | number | object | string
part_2.unpaid_amounts.closingBalancearray | boolean | null | number | object | string
part_2.unpaid_amounts.openingBalancearray | boolean | null | number | object | string
part_2.unpaid_amounts.statutoryBasisarray | boolean | null | number | object | string
part_2.unpaid_amounts.statutoryProvisionarray | boolean | null | number | object | string
provisionalboolean
readyboolean
s1_line_125_feedstring
s1_line_413_feedstring
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_idIdentifier of the registered T4012 gate that raised the finding; travels with `citation`.string
warnings[].messagestring
warnings[].severityAlways an error: a divergent or unprovable opening blocks the return.string
warnings[].codeStable machine identity of the disclosure, independent of its prose.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
warnings[].actualThe opening amount this return states.number
warnings[].citation.formThe pinned CRA form revision identifier.string
warnings[].citation.referenceThe lines on that face the opening and closing balances are read from.string
warnings[].expectedThe closing amount the authenticated prior filed return proves, or null when no filed projection exists to reconcile against.null | number
warnings[].keyThe reconciled balance, named for a preparer.string
warnings[].kindAlways the validation family.string
warnings[].reasonWhat broke and what to do about it.string
s1_written_off_20_1_p_feedstring
Filemark | schedule13 cells