section-97
Filemark T2 rollover and reorganization preview
- Kind
- rollover
- Supported tax years
- —
- Strict profile
- rollover_preview_exact_v1
- Payload schema version
- 8.0.0
Example request
Send this body to POST /api/v1/computations/rollovers/section-97. It satisfies the strict profile, so it works with or without the payloadContract selector.
{
"inputs": {
"properties": [
{
"rowId": "land-1",
"description": "Cedar Ridge manufacturing land",
"category": "capital_non_depreciable",
"fmv": 150000,
"acb": 100000,
"costAmount": 100000,
"capitalCost": null,
"uccOfClass": 0,
"agreedAmount": 100000,
"bootFmv": 0,
"isTaxableCanadianProperty": false,
"isEligibleDerivative10_1_6": false,
"prescribedClass": null,
"dispositionOrder": null,
"isEmployeeToolProperty": null,
"employeeToolOriginalCost": null,
"partnershipInterestFmvReceived": 150000,
"benefitToRelatedMemberAmount": null,
"isPassengerVehicleCostOverPrescribedAmount": null,
"isZeroEmissionPassengerVehicle13_7_i": null,
"classUndisposedCapitalCost": null,
"isPurchasedInventory": null,
"c2AmountA": null,
"c2ValueB": null,
"c2ValueC": null,
"c2DesignatedD": null
}
],
"partnership": {
"priorInterestAcb": 0,
"memberIsLimitedPartner": null,
"memberWasSpecifiedMemberSinceJoining": null,
"interestIsFeb1994ExcludedInterest": null,
"partnershipHasCeasedToExist": null,
"fiscalPeriodEnd": null
},
"party": {
"allMembersElect": true,
"isCanadianPartnership": true,
"taxpayerIsMemberImmediatelyAfter": true,
"hasAuthorityToActForPartnership": true,
"s97_3AcquisitionOfControlSeries": false,
"s97_3DispositionAfterAcquisitionOfControl": null,
"s97_3PropertyIsBumpDesignationClass": null,
"s97_3SubsidiaryIsTaxpayerOrHoldsInterest": null,
"electionDueDate": "2026-06-30",
"electionFilingDate": "2026-06-01",
"dispositionDate": "2025-06-15",
"penaltyEstimatePaid": null,
"ministerialRelief96_5_1": null,
"anyOtherMemberRelatedToTaxpayer": null,
"relatedMemberIsWhollyOwnedCorporationOfTaxpayer": null,
"taxpayerNotAtArmsLengthWithOtherMembers": null
}
}
}Input cells (49)
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 |
|---|---|---|
| partnership.fiscalPeriodEndFiscal period end. Subsection 40(3.1) measures the deemed gain at the end of a fiscal period; the date is reported back in the trap and is not otherwise used. | null | string | strict |
| partnership.interestIsFeb1994ExcludedInterestSubsection 40(3.1) exception: the interest was held on February 22, 1994 and is an excluded interest. | boolean | null | strict |
| partnership.memberIsLimitedPartnerSubsection 40(3.1) status fact. Required only when the interest ACB after the paragraph 97(2)(b) adjustments is negative; the engine fails closed rather than assuming an answer. | boolean | null | strict |
| partnership.memberWasSpecifiedMemberSinceJoiningSubsection 40(3.1): the member was a specified member of the partnership at all times since becoming a member. | boolean | null | strict |
| partnership.partnershipHasCeasedToExistSubsection 98(1): but for that subsection the partnership would be regarded as having ceased to exist, which engages the paragraph 98(1)(c) deemed gain notwithstanding subsection 40(3). | boolean | null | strict |
| partnership.priorInterestAcbAdjusted cost base of the partnership interest immediately before the paragraph 97(2)(b) adjustments. A NEGATIVE balance is a real state of affairs and is what subsection 40(3.1) and paragraph 98(1)(c) address, so it is representable here. | number | strict |
| party.allMembersElectSubsection 97(2) applies only if the taxpayer and ALL the other members of the partnership jointly elect in prescribed form. There is no default; an unanswered election is not a unanimous one. | boolean | strict |
| party.anyOtherMemberRelatedToTaxpayerParagraph 85(1)(e.2) as imported by paragraph 97(2)(a), reading "the corporation" as all the other members of the partnership: is any other member of the partnership a person related to the taxpayer? Consulted, and REQUIRED to be answered, only once the (e.2) arithmetic test is met on a row — the property's fair market value immediately before the disposition exceeds the greater of the consideration received (bootFmv plus partnershipInterestFmvReceived) and the elected amount determined without reference to (e.2). Null is UNANSWERED and the election fails closed on it in that case. | boolean | null | strict |
| party.anyRelatedMemberBenefitedOtherThanWhollyOwnedCorporationParagraph 85(1)(e.2) carves out a benefit conferred on "a corporation that was a wholly owned corporation of the taxpayer immediately after the disposition", and the carve-out is scoped to that beneficiary. Subparagraph 97(2)(a)(iii) reads "the corporation" as ALL the other members of the partnership, so one exempt wholly owned corporation cannot exempt the other related members a contribution also benefits. Consulted, and REQUIRED to be answered, only once the (e.2) excess exists on a row, a related member is affirmed AND that member is a wholly owned corporation. Answer false where the wholly owned corporation is the only person benefited; null is UNANSWERED and the election fails closed on it in that case. | boolean | null | |
| party.dispositionDateDate of the disposition. Required when any row is taxable Canadian property so the paragraph 97(2)(c) 60-month window can be dated. | null | string | strict |
| party.electionDueDateThe subsection 96(4) day — the earliest of the days on or before which any taxpayer making the election must file a return under section 150 for the year of the transaction. | string | strict |
| party.electionFilingDateDay the prescribed form was in fact filed. Compared against the subsection 96(4) day and the subsection 96(5) three-year day. | string | strict |
| party.hasAuthorityToActForPartnershipSubparagraph 96(3)(a)(ii): the taxpayer had authority to act for the partnership, without which the election is not valid. | boolean | strict |
| party.isCanadianPartnershipSubsection 102(1): immediately after the disposition the partnership is a Canadian partnership, all of the members of which were resident in Canada. | boolean | strict |
| party.ministerialRelief96_5_1Subsection 96(5.1) Ministerial relief. Required only when the election is filed beyond the subsection 96(5) three-year day. | boolean | null | strict |
| party.penaltyEstimatePaidParagraph 96(5)(b): an estimate of the subsection 96(6) penalty was paid. Required only when the election was filed late. The penalty AMOUNT is not computed by this engine. | boolean | null | strict |
| party.relatedMemberIsWhollyOwnedCorporationOfTaxpayerThe closing carve-out of paragraph 85(1)(e.2): a benefit conferred on "a corporation that was a wholly owned corporation of the taxpayer immediately after the disposition" (subsection 85(1.3)) is excluded, so the elected amount is not deemed up. Consulted, and REQUIRED to be answered, only once the (e.2) excess exists on a row AND a related member is affirmed. Null is UNANSWERED and the election fails closed on it in that case. | boolean | null | strict |
| party.s97_3AcquisitionOfControlSeriesParagraph 97(3)(a) gateway: as part of a transaction, event or series, control of a taxable Canadian corporation is acquired, the subsidiary is wound up under subsection 88(1) or amalgamated under subsection 87(11), and the parent makes a paragraph 88(1)(d) designation in respect of a partnership interest. | boolean | strict |
| party.s97_3DispositionAfterAcquisitionOfControlParagraph 97(3)(b). Required only when the paragraph 97(3)(a) gateway is affirmed; all four conditions are conjunctive. | boolean | null | strict |
| party.s97_3PropertyIsBumpDesignationClassParagraph 97(3)(c): the property is described in clauses (A) to (C) of the description of B in subparagraph 88(1)(d)(ii.1). | boolean | null | strict |
| party.s97_3SubsidiaryIsTaxpayerOrHoldsInterestParagraph 97(3)(d): the subsidiary is the taxpayer or holds, directly or indirectly, an interest in the taxpayer. | boolean | null | strict |
| party.taxpayerIsMemberImmediatelyAfterSubsection 97(2) requires a partnership of which the taxpayer is a member immediately after the disposition. Where this is false neither subsection 97(2) nor subsection 97(1) is engaged. | boolean | strict |
| party.taxpayerNotAtArmsLengthWithOtherMembersSubparagraph 85(1)(e.4)(ii) and paragraph 85(1)(e.5) as applied by subparagraph 97(2)(a)(iv), reading "the corporation" as all the other members of the partnership: do the taxpayer and all the other members not deal at arm's length? REQUIRED once any row asserts the (e.4)(i) passenger-vehicle condition or the (e.5) zero-emission passenger-vehicle condition; the answer decides whether the elected amount is deemed to be the class undepreciated capital cost (e.4) or the subsection 248(1) cost amount of the vehicle (e.5). Null is UNANSWERED and the election fails closed on it in that case. | boolean | null | strict |
| properties[].acb | number | strict |
| properties[].agreedAmount | number | strict |
| properties[].benefitToRelatedMemberAmountParagraph 85(1)(e.2) as applied by paragraph 97(2)(a): the part of the excess that it is reasonable to regard as a benefit the taxpayer desired to have conferred on a person related to the taxpayer. Required once the (e.2) excess is visible on this row and a related member that is not a subsection 85(1.3) wholly owned corporation is affirmed. It must not exceed the excess, an explicit 0 is a stated position, and null is UNANSWERED — left blank the whole value shift would be reported as a nil gain, so the election fails closed instead. | null | number | strict |
| properties[].bootFmvFair market value of the consideration OTHER than an interest in the partnership received for this property. Subparagraph 97(2)(a)(ii) reads the paragraph 85(1)(b) exclusion that way, so the boot floor and the paragraph 97(2)(b) interest-ACB adjustments are per property. Enter 0 for an interest-only rollover; it is not an optional field. | number | strict |
| properties[].c2AmountAParagraph 85(1)(c.2)(i) element A: the paragraph 28(1)(c) amount for the last taxation year beginning before the disposition, determined as if it ended immediately before the disposition. Required for purchased inventory_cash_method_farm rows. | null | number | strict |
| properties[].c2DesignatedDParagraph 85(1)(c.2)(i) element D: the additional amount designated by the taxpayer and the partnership. Null means no additional amount was designated. | null | number | strict |
| properties[].c2ValueBParagraph 85(1)(c.2)(i) element B: the subsection 28(1.2) value of the purchased inventory transferred. Required for purchased inventory_cash_method_farm rows. | null | number | strict |
| properties[].c2ValueCParagraph 85(1)(c.2)(i) element C: the subsection 28(1.2) value of all purchased inventory owned in connection with the business immediately before the disposition. Required and greater than nil for purchased inventory_cash_method_farm rows. | null | number | strict |
| properties[].capitalCostCapital cost to the taxpayer of a capital_depreciable property. Required on that category for subsection 13(21) element F, capital-gain basis, subsection 97(4), and the subsection 248(1)(a) numerator used by paragraph 85(1)(e.5); null is unanswered there and blocks. Null on every other category. This is distinct from the paragraph 85(1)(e)(ii) cost carried in costAmount. | null | number | strict |
| properties[].category | string | strict |
| properties[].classUndisposedCapitalCostSubsection 248(1) cost amount, paragraph (a): the capital cost to the taxpayer of ALL property of the class that had not been disposed of before that time — the denominator of the paragraph 85(1)(e.5) proportion. Required once isZeroEmissionPassengerVehicle13_7_i is true; it cannot be inferred from the rows of this election, which do not disclose property retained in the class. | null | number | strict |
| properties[].costAmountOn a capital_depreciable row, the cost to the taxpayer of the property under subparagraph 85(1)(e)(ii), as applied by paragraph 97(2)(a). Despite this legacy wire name, that provision says 'cost' and does not use the defined subsection 248(1) term 'cost amount'. On other rows this is the statutory cost amount used with acb. | number | strict |
| properties[].description | string | strict |
| properties[].dispositionOrderParagraph 85(1)(e.1) order designated by the taxpayer within a prescribed class; all-or-none for the rows of one class. Null leaves the order to the Minister, which changes each row's paragraph 85(1)(e) floor as the class UCC is consumed. | integer | null | strict |
| properties[].employeeToolOriginalCostCost of the tool to the individual immediately before the transfer, determined as if the Act were read without reference to subsection 8(7). Required when isEmployeeToolProperty is true. | null | number | strict |
| properties[].fmv | number | strict |
| properties[].isEligibleDerivative10_1_6The opening words of subsection 97(2) exclude an eligible derivative, as defined in subsection 10.1(5), of a taxpayer to whom subsection 10.1(6) applies. No election is available for such property. | boolean | strict |
| properties[].isEmployeeToolPropertySubsection 97(5): the property was an employee's tool. Required on a capital_depreciable row; the transferee-side comparator then becomes the individual's cost read without subsection 8(7). Null on any other category. | boolean | null | strict |
| properties[].isPassengerVehicleCostOverPrescribedAmountSubparagraph 85(1)(e.4)(i): the property is a passenger vehicle the cost of which to the taxpayer was more than the prescribed amount (Regulation 7307(1)). With the party-level arm's-length answer it deems the agreed amount to the undepreciated capital cost of the class. Required on a capital_depreciable row; null on any other category. | boolean | null | strict |
| properties[].isPurchasedInventoryParagraph 85(1)(c.2)(i), as applied by paragraph 97(2)(a): whether this cash-method farming-business inventory was purchased by the taxpayer. Required when category is inventory_cash_method_farm; null on other categories. False identifies raised inventory, for which paragraph (c.2) displaces the (c.1) floor but does not apply the (A × B/C) + D deeming. | boolean | null | strict |
| properties[].isTaxableCanadianPropertyParagraph 97(2)(c): where the property is taxable Canadian property, the partnership interest received as consideration is deemed to be taxable Canadian property for 60 months. | boolean | strict |
| properties[].isZeroEmissionPassengerVehicle13_7_iParagraph 85(1)(e.5): the property is a zero-emission passenger vehicle to which paragraph 13(7)(i) applies. With the party-level arm's-length answer it deems the agreed amount to the subsection 248(1) COST AMOUNT of the vehicle — a proportion of the class undepreciated capital cost, not the whole of it. Mutually exclusive with isPassengerVehicleCostOverPrescribedAmount because the subsection 248(1) definition of passenger vehicle excludes a zero-emission vehicle. Required on a capital_depreciable row; null on any other category. | boolean | null | strict |
| properties[].partnershipInterestFmvReceivedParagraph 85(1)(e.2)(i) as applied by paragraph 97(2)(a): the fair market value, immediately after the disposition, of the INTEREST IN THE PARTNERSHIP received for this property. With bootFmv it is the whole consideration received, and paragraph 85(1)(e.2) mandatorily raises the elected amount where the property's fair market value exceeds that consideration and part of the excess is a benefit conferred on a related person. Null is UNANSWERED and the election fails closed on it. | null | number | strict |
| properties[].prescribedClassPrescribed class of depreciable property. Required on a capital_depreciable row because subsection 13(1) recapture and the paragraph 85(1)(e.1) ordered disposal both operate on the class pool, never on one property. Null on any other category. | null | string | strict |
| properties[].rowId | string | strict |
| properties[].uccOfClass | number | strict |
Strict profile accepted values (25 of 49 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 |
|---|---|
| partnership.fiscalPeriodEnd | date (YYYY-MM-DD); at most 10 characters |
| partnership.priorInterestAcb | -600000000000 to 600000000000 |
| party.dispositionDate | date (YYYY-MM-DD); at most 10 characters |
| party.electionDueDate | date (YYYY-MM-DD); 1 to 2000 characters |
| party.electionFilingDate | date (YYYY-MM-DD); 1 to 2000 characters |
| properties[].acb | 0 to 600000000000 |
| properties[].agreedAmount | 0 to 600000000000 |
| properties[].benefitToRelatedMemberAmount | 0 to 600000000000 |
| properties[].bootFmv | 0 to 600000000000 |
| properties[].c2AmountA | 0 to 600000000000 |
| properties[].c2DesignatedD | 0 to 600000000000 |
| properties[].c2ValueB | 0 to 600000000000 |
| properties[].c2ValueC | 0 to 600000000000 |
| properties[].capitalCost | 0 to 600000000000 |
| properties[].category | one of "capital_non_depreciable", "capital_depreciable", "inventory_non_real", "inventory_cash_method_farm", "canadian_resource", "foreign_resource" |
| properties[].classUndisposedCapitalCost | 0 to 600000000000 |
| properties[].costAmount | 0 to 600000000000 |
| properties[].description | 1 to 2000 characters |
| properties[].dispositionOrder | 1 to 10000 |
| properties[].employeeToolOriginalCost | 0 to 600000000000 |
| properties[].fmv | 0 to 600000000000 |
| properties[].partnershipInterestFmvReceived | 0 to 600000000000 |
| properties[].prescribedClass | 1 to 2000 characters |
| properties[].rowId | 1 to 2000 characters |
| properties[].uccOfClass | 0 to 600000000000 |
Output cells (77)
Paths are relative to this target’s result object in the response.
| Cell | Types |
|---|---|
| properties[].rowId | string |
| properties[].description | string |
| properties[].category | string |
| properties[].bootFmv | number |
| properties[].floor | number |
| properties[].ceiling | number |
| properties[].deemedAgreedAmount | number |
| properties[].gainTriggered | number |
| properties[].lossTriggered | number |
| properties[].incomeInclusionTriggeredSigned subsection 9(1) business income on an inventory row. It is not floored at zero: an inventory loss is an ordinary deductible amount, not a denied capital loss. | number |
| properties[].recaptureTriggeredNull on a depreciable row. Subsection 13(1) recapture is a CLASS determination reported in depreciableClasses[]; null means "see the class", never nil. | null | number |
| properties[].prescribedClass | null | string |
| properties[].partnershipDeemedCapitalCostParagraph 97(4)(a) or subsection 97(5): capital cost to the partnership deemed equal to the transferor's capital cost. Null where the provision does not arise. | null | number |
| properties[].partnershipDeemedPriorCcaParagraph 97(4)(b): the excess deemed to have already been allowed to the partnership under regulations made under paragraph 20(1)(a). Null where the provision does not arise. | null | number |
| depreciableClasses[].prescribedClass | string |
| depreciableClasses[].openingUcc | number |
| depreciableClasses[].uccCredited | number |
| depreciableClasses[].closingUcc | number |
| depreciableClasses[].recaptureTriggered | number |
| partnershipInterestAcb | null | number |
| priorInterestAcb | null | number |
| interestAcbAddition | null | number |
| interestAcbDeduction | null | number |
| totalAgreedAmount | null | number |
| totalGain | null | number |
| totalCapitalLoss | null | number |
| totalIncomeInclusion | null | number |
| totalRecapture | null | number |
| negativeInterestDeemedGain | null | number |
| partnershipInterestDeemedTcp | boolean | null |
| partnershipInterestTcpExpiry | null | string |
| electionTiming.electionDueDate | string |
| electionTiming.electionFilingDate | string |
| electionTiming.threeYearDay | string |
| electionTiming.isLate | boolean |
| electionTiming.deemedTimelyUnder | null | string |
| section97_1.reason | string |
| section97_1.properties[].rowId | string |
| section97_1.properties[].description | string |
| section97_1.properties[].category | string |
| section97_1.properties[].deemedProceedsFmv | number |
| section97_1.properties[].costBase | number |
| section97_1.properties[].capitalGain | number |
| section97_1.properties[].capitalLoss | number |
| section97_1.properties[].incomeInclusion | number |
| section97_1.depreciableClasses[].prescribedClass | string |
| section97_1.depreciableClasses[].openingUcc | number |
| section97_1.depreciableClasses[].uccCredited | number |
| section97_1.depreciableClasses[].closingUcc | number |
| section97_1.depreciableClasses[].recaptureTriggered | number |
| section97_1.totalCapitalGain | number |
| section97_1.totalCapitalLoss | number |
| section97_1.totalIncomeInclusion | number |
| section97_1.totalRecapture | number |
| rolloverDeferred | boolean |
| traps[].findingCode | string |
| traps[].filingDisposition | string |
| traps[].citationKey | string |
| traps[].severity | string |
| traps[].title | string |
| traps[].body | string |
| warnings[] | string |
| warnings[].code | string |
| warnings[].findingCode | string |
| warnings[].filingDisposition | string |
| warnings[].message | string |
| warnings[].severity | string |
| blocking | boolean |
| ready | boolean |
| provisional | boolean |
| citationsApplied[] | string |
| citations[].key | string |
| citations[].section | string |
| citations[].description | string |
| citations[].source_url | string |
| citations[].verified_at | string |
| electionInvalid | boolean |