section-87
Filemark T2 rollover and reorganization preview
- Kind
- rollover
- Supported tax years
- —
- Strict profile
- rollover_preview_exact_v1
- Payload schema version
- 9.0.0
Example request
Send this body to POST /api/v1/computations/rollovers/section-87. It satisfies the strict profile, so it works with or without the payloadContract selector.
{
"inputs": {
"predecessor_share_classes": [
{
"label": "Cedar Ridge Manufacturing common",
"aggregateAcb": 100000,
"aggregatePuc": 80000,
"heldByAnotherPredecessorCorporation": false,
"legalStatedCapital": null
}
],
"amalco_classes": [
{
"label": "Cedar Ridge Amalco common",
"correspondsToPredecessorLabel": "Cedar Ridge Manufacturing common",
"legalStatedCapital": 100000,
"fmvImmediatelyAfter": null
}
],
"flags": {
"acquisitionOfControl": false,
"verticalAmalgamation": false,
"sisterAmalgamation": false,
"triangularAmalgamation": false,
"nonShareConsideration": false,
"allPredecessorsTaxableCanadianCorporations": true,
"allPredecessorsCanadianCorporations": true,
"allPropertyBecamePropertyOfNewCorporation": true,
"allLiabilitiesBecameLiabilitiesOfNewCorporation": true,
"allShareholdersReceivedNewCorporationShares": true,
"predecessorSharesNotCancelledOnMerger": null,
"mergerIsPurchaseOfAssetsOrWindingUpDistribution": false,
"election87_3_1Filed": false,
"substitutedClassesIdenticalToExchangedClasses": null,
"verticalAmalgamationDetails": null,
"shareholders": null
}
}
}Input cells (41)
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 |
|---|---|---|
| amalco_classes[].correspondsToPredecessorLabel | string | strict |
| amalco_classes[].fmvImmediatelyAfter | null | number | strict |
| amalco_classes[].label | string | strict |
| amalco_classes[].legalStatedCapital | number | strict |
| flags.acquisitionOfControlAn acquisition of control (s.256(7)) fires on the amalgamation; engages the loss-streaming consequences. | boolean | strict |
| flags.allLiabilitiesBecameLiabilitiesOfNewCorporations.87(1)(b): all liabilities of the predecessors immediately before the merger became liabilities of the new corporation by virtue of the merger. | boolean | strict |
| flags.allPredecessorsCanadianCorporationsIndependent s.87(3) scope fact: every predecessor was a Canadian corporation. Required when the narrower allPredecessorsTaxableCanadianCorporations answer is false; s.87(3) can require a PUC grind even when s.87(1) fails. | boolean | null | strict |
| flags.allPredecessorsTaxableCanadianCorporationss.87(1) definitional condition: each predecessor was, immediately before the merger, a taxable Canadian corporation; unanswered fails closed. | boolean | strict |
| flags.allPropertyBecamePropertyOfNewCorporations.87(1)(a): all property of the predecessors immediately before the merger became property of the new corporation by virtue of the merger. | boolean | strict |
| flags.allShareholdersReceivedNewCorporationSharess.87(1)(c): all shareholders of the predecessors, other than any predecessor corporation, received shares of the new corporation on the merger. | boolean | strict |
| flags.election87_3_1FiledThe new corporation elected under s.87(3.1) in its first s.150 return; each share class then needs its legal stated capital for the identity test. | boolean | strict |
| flags.mergerIsPurchaseOfAssetsOrWindingUpDistributions.87(1) closing words: a merger effected by one corporation purchasing another's property or by a winding-up distribution is not an amalgamation; must be false. | boolean | strict |
| flags.nonShareConsiderationA shareholder received consideration other than shares; the s.87(4) rollover is denied for that shareholder, and each affected row must state its boot amount. | boolean | strict |
| flags.predecessorSharesNotCancelledOnMergers.87(1.1): the relevant predecessor shares owned by non-predecessor shareholders immediately before a vertical or sister merger were not cancelled on the merger. Required only when literal s.87(1)(c) receipt is false; merger type alone does not prove this condition. | boolean | null | strict |
| flags.shareholders[].giftPortionToRelatedPerson | number | strict |
| flags.shareholders[].isPredecessorCorporationThis shareholder is itself a predecessor corporation, the s.87(1)(c) exception to the share-receipt condition. | boolean | strict |
| flags.shareholders[].label | string | strict |
| flags.shareholders[].newShares[].fmvAfter | number | strict |
| flags.shareholders[].newShares[].label | string | strict |
| flags.shareholders[].nonShareConsiderationFmv | number | strict |
| flags.shareholders[].oldShareAcb | null | number | strict |
| flags.shareholders[].oldShareFmvBefore | null | number | strict |
| flags.shareholders[].oldSharesAreCapitalProperty | boolean | null | strict |
| flags.shareholders[].oldSharesWereTaxableCanadianPropertyThe shareholder's old shares were taxable Canadian property immediately before the amalgamation; the new shares then keep the TCP character. | boolean | strict |
| flags.shareholders[].outlaysAndExpensesOutlays and expenses made or incurred for the old-share disposition under s.40(1). Required for a non-predecessor shareholder whose old shares are capital property; enter 0 if none. | null | number | strict |
| flags.sisterAmalgamationTwo or more subsidiary wholly-owned corporations of the same parent amalgamate; engages s.87(1.1)(b). | boolean | strict |
| flags.substitutedClassesIdenticalToExchangedClasses | boolean | null | strict |
| flags.triangularAmalgamationThe new corporation is controlled immediately after the merger by a taxable Canadian parent whose shares were issued to former predecessor shareholders; engages ITA 87(9). | boolean | strict |
| flags.verticalAmalgamationParent and subsidiary wholly-owned amalgamation; engages s.87(1.1), s.87(2.11) and s.87(11). | boolean | strict |
| flags.verticalAmalgamationDetails.parentAcbOfSubShares | null | number | strict |
| flags.verticalAmalgamationDetails.pucOfSubShares | null | number | strict |
| flags.verticalAmalgamationDetails.subsidiaries[].label | null | string | strict |
| flags.verticalAmalgamationDetails.subsidiaries[].parentAcbOfSubShares | number | strict |
| flags.verticalAmalgamationDetails.subsidiaries[].pucOfSubShares | number | strict |
| flags.verticalAmalgamationDetails.subsidiaries[].subsidiaryNetInsideAmount | number | strict |
| flags.verticalAmalgamationDetails.subsidiaryNetInsideAmount | null | number | strict |
| predecessor_share_classes[].aggregateAcb | number | strict |
| predecessor_share_classes[].aggregatePuc | number | strict |
| predecessor_share_classes[].heldByAnotherPredecessorCorporations.87(3)(a) exclusion: these predecessor shares are held by another predecessor corporation and stay out of the paid-up capital continuity total. | boolean | strict |
| predecessor_share_classes[].label | string | strict |
| predecessor_share_classes[].legalStatedCapital | null | number | strict |
Strict profile accepted values (23 of 41 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 |
|---|---|
| amalco_classes[].correspondsToPredecessorLabel | 1 to 2000 characters |
| amalco_classes[].fmvImmediatelyAfter | 0 to 600000000000 |
| amalco_classes[].label | 1 to 2000 characters |
| amalco_classes[].legalStatedCapital | 0 to 600000000000 |
| flags.shareholders[].giftPortionToRelatedPerson | 0 to 600000000000 |
| flags.shareholders[].label | 1 to 2000 characters |
| flags.shareholders[].newShares[].fmvAfter | 0 to 600000000000 |
| flags.shareholders[].newShares[].label | 1 to 2000 characters |
| flags.shareholders[].nonShareConsiderationFmv | 0 to 600000000000 |
| flags.shareholders[].oldShareAcb | 0 to 600000000000 |
| flags.shareholders[].oldShareFmvBefore | 0 to 600000000000 |
| flags.shareholders[].outlaysAndExpenses | 0 to 600000000000 |
| flags.verticalAmalgamationDetails.parentAcbOfSubShares | 0 to 600000000000 |
| flags.verticalAmalgamationDetails.pucOfSubShares | 0 to 600000000000 |
| flags.verticalAmalgamationDetails.subsidiaries[].label | 1 to 2000 characters |
| flags.verticalAmalgamationDetails.subsidiaries[].parentAcbOfSubShares | 0 to 600000000000 |
| flags.verticalAmalgamationDetails.subsidiaries[].pucOfSubShares | 0 to 600000000000 |
| flags.verticalAmalgamationDetails.subsidiaries[].subsidiaryNetInsideAmount | 0 to 600000000000 |
| flags.verticalAmalgamationDetails.subsidiaryNetInsideAmount | 0 to 600000000000 |
| predecessor_share_classes[].aggregateAcb | 0 to 600000000000 |
| predecessor_share_classes[].aggregatePuc | 0 to 600000000000 |
| predecessor_share_classes[].label | 1 to 2000 characters |
| predecessor_share_classes[].legalStatedCapital | 0 to 600000000000 |
Output cells (60)
Paths are relative to this target’s result object in the response.
| Cell | Types |
|---|---|
| applies | boolean | null |
| amalcoClasses[].label | string |
| amalcoClasses[].correspondsToPredecessorLabel | string |
| amalcoClasses[].fmvImmediatelyAfter | null | number |
| amalcoClasses[].newShareAcb | null | number |
| amalcoClasses[].legalStatedCapital | number |
| amalcoClasses[].pucGrind | number |
| amalcoClasses[].pucFinal | number |
| shareholders[].label | string |
| shareholders[].isPredecessorCorporation | boolean |
| shareholders[].oldShareAcb | number |
| shareholders[].oldShareFmvBefore | number |
| shareholders[].nonShareConsiderationFmv | number |
| shareholders[].totalNewShareFmvAfter | number |
| shareholders[].giftPortion | number |
| shareholders[].applies87_4 | boolean |
| shareholders[].exclusionReason | null | string |
| shareholders[].giftPortionApplied | boolean |
| shareholders[].proceedsOfDisposition | null | number |
| shareholders[].capitalGain | null | number |
| shareholders[].suppressedCapitalLoss | null | number |
| shareholders[].totalNewShareCost | number |
| shareholders[].newShareCosts[].label | string |
| shareholders[].newShareCosts[].fmvAfter | number |
| shareholders[].newShareCosts[].cost | number |
| shareholders[].newSharesDeemedTcpFor60Months | boolean |
| totalPucGrind | number |
| election87_3_1Applied | boolean |
| verticalAmalgamationDisposition.acbOfSubsidiaryShares | number |
| verticalAmalgamationDisposition.pucOfSubsidiaryShares | number |
| verticalAmalgamationDisposition.subsidiaryNetInsideAmount | number |
| verticalAmalgamationDisposition.deemedProceeds | number |
| verticalAmalgamationDisposition.capitalGain | number |
| section87_9Disclosure.parentShareDeemingApplied | boolean |
| section87_9Disclosure.parentCostBumpDesignationModelled | boolean |
| section87_9Disclosure.filingAction | string |
| verticalAmalgamation | boolean |
| acquisitionOfControl | boolean |
| 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 |