section-84-1
Filemark T2 rollover and reorganization preview
- Kind
- rollover
- Supported tax years
- —
- Strict profile
- rollover_preview_exact_v1
- Payload schema version
- 6.0.0
Example request
Send this body to POST /api/v1/computations/rollovers/section-84-1. It satisfies the strict profile, so it works with or without the payloadContract selector.
{
"inputs": {
"subject_shares": {
"acb": 100,
"puc": 100,
"fmv": 1000,
"vDayValueBump": 0,
"cgdClaimedGrossedUp": 0
},
"consideration": {
"bootFmv": 100,
"newShareLegalStatedCapital": 900,
"newShareFmv": 900,
"section85ElectedAmount": 100,
"purchaserShareClasses": null
},
"party": {
"transferorIsIndividualResident": true,
"dealsAtArmsLength": false,
"subjectConnectedToPurchaser": true,
"concurrentSection85Election": true,
"subjectSharesAreCapitalProperty": true,
"subjectCorporationResidentInCanada": true,
"dispositionDate": null,
"intergenerationalTransfer": "none",
"intergenerationalTransferConditions": null
}
}
}Input cells (36)
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 |
|---|---|---|
| consideration.bootFmv | number | strict |
| consideration.newShareFmv | number | strict |
| consideration.newShareLegalStatedCapital | number | strict |
| consideration.purchaserShareClasses[].label | string | strict |
| consideration.purchaserShareClasses[].pucIncrease | number | strict |
| consideration.section85ElectedAmount | null | number | strict |
| party.concurrentSection85Election | boolean | null | strict |
| party.dealsAtArmsLengthWhether the transferor and purchaser corporation deal at arm's length; s.84.1 applies only to non-arm's-length dispositions, and only a real boolean counts as an answer. | boolean | strict |
| party.dispositionDateDate the subject shares were disposed of. Required when an immediate or gradual intergenerational transfer is claimed: S.C. 2024, c.15, s.17(3) makes the current s.84.1(2)(e), (2.31) and (2.32) rules applicable only from 2024-01-01. | null | string | strict |
| party.intergenerationalTransfer | string | strict |
| party.intergenerationalTransferConditions.childControlAndEngagementFor36Months | boolean | null | strict |
| party.intergenerationalTransferConditions.childControlAndEngagementForGreaterOf60MonthsAndFinalSale | boolean | null | strict |
| party.intergenerationalTransferConditions.jointElectionFiledByFilingDueDate | boolean | null | strict |
| party.intergenerationalTransferConditions.managementTransferredWithin36Months | boolean | null | strict |
| party.intergenerationalTransferConditions.managementTransferredWithin60Months | boolean | null | strict |
| party.intergenerationalTransferConditions.noPriorIntergenerationalExceptionSought | boolean | null | strict |
| party.intergenerationalTransferConditions.purchaserControlledByAdultChildren | boolean | null | strict |
| party.intergenerationalTransferConditions.residualInterestBelowThresholdWithin10Years | boolean | null | strict |
| party.intergenerationalTransferConditions.subjectSharesAreQsbcOrFamilyFarmOrFishing | boolean | null | strict |
| party.intergenerationalTransferConditions.taxpayerDoesNotControlAfterDisposition | boolean | null | strict |
| party.intergenerationalTransferConditions.taxpayerEquityWoundDownWithin36Months | boolean | null | strict |
| party.intergenerationalTransferConditions.taxpayerIsIndividualNotTrust | boolean | null | strict |
| party.intergenerationalTransferConditions.taxpayerOwnsUnder50PercentAfterDisposition | boolean | null | strict |
| party.subjectConnectedToPurchaserWhether the subject corporation is connected (s.186(4)) with the purchaser corporation immediately after the disposition, as s.84.1(1) requires. | boolean | strict |
| party.subjectCorporationResidentInCanada | boolean | null | strict |
| party.subjectSharesAreCapitalProperty | boolean | null | strict |
| party.transferorIsIndividualResidents.84.1(1) scope fact: the transferor is a taxpayer resident in Canada other than a corporation; the omitted posture keeps the harsher in-scope branch. | boolean | always |
| subject_shares.acb | number | strict |
| subject_shares.cgdClaimedGrossedUp | number | strict |
| subject_shares.fmv | number | strict |
| subject_shares.lots[].acb | number | strict |
| subject_shares.lots[].cgdClaimedGrossedUp | number | strict |
| subject_shares.lots[].label | string | strict |
| subject_shares.lots[].vDayValueBump | number | strict |
| subject_shares.puc | number | strict |
| subject_shares.vDayValueBump | number | strict |
Strict profile accepted values (17 of 36 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 |
|---|---|
| consideration.bootFmv | 0 to 600000000000 |
| consideration.newShareFmv | 0 to 600000000000 |
| consideration.newShareLegalStatedCapital | 0 to 600000000000 |
| consideration.purchaserShareClasses[].label | 1 to 2000 characters |
| consideration.purchaserShareClasses[].pucIncrease | 0 to 600000000000 |
| consideration.section85ElectedAmount | 0 to 600000000000 |
| party.dispositionDate | date (YYYY-MM-DD); at most 10 characters |
| party.intergenerationalTransfer | one of "none", "immediate", "gradual" |
| subject_shares.acb | 0 to 600000000000 |
| subject_shares.cgdClaimedGrossedUp | 0 to 600000000000 |
| subject_shares.fmv | 0 to 600000000000 |
| subject_shares.lots[].acb | 0 to 600000000000 |
| subject_shares.lots[].cgdClaimedGrossedUp | 0 to 600000000000 |
| subject_shares.lots[].label | 1 to 2000 characters |
| subject_shares.lots[].vDayValueBump | 0 to 600000000000 |
| subject_shares.puc | 0 to 600000000000 |
| subject_shares.vDayValueBump | 0 to 600000000000 |
Output cells (47)
Paths are relative to this target’s result object in the response.
| Cell | Types |
|---|---|
| applies | boolean |
| subjectShares.acb | number |
| subjectShares.hardAcb | number |
| subjectShares.puc | number |
| subjectShares.fmv | number |
| subjectShares.vDayValueBump | number |
| subjectShares.cgdClaimedGrossedUp | number |
| greaterOfPucHardAcb | number |
| deemedDividend | number |
| pucReduction | number |
| pucNewShares | number |
| boot | number |
| newShareLegalStatedCapital | number |
| proceedsForCapitalGain | number |
| capitalGain | number |
| intergenerationalTransfer | string |
| hardAcbByLot[].label | string |
| hardAcbByLot[].acb | number |
| hardAcbByLot[].vDayValueBump | number |
| hardAcbByLot[].cgdClaimedGrossedUp | number |
| hardAcbByLot[].hardAcb | number |
| pucByClass[].label | string |
| pucByClass[].pucIncrease | number |
| pucByClass[].pucReduction | number |
| pucByClass[].pucFinal | number |
| 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 |