# section-87

Section 87 amalgamation

- Kind: rollover
- Program: Filemark T2 rollover and reorganization preview
- Supported tax years: —
- Strict profile: rollover_preview_exact_v1
- Payload schema version: 12.0.0

## Example request

Send this body to `POST /api/v1/computations/rollovers/section-87`. This example works with or without `payloadContract`.

```json
{
  "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 (48)

Paths are relative to the request's `inputs` object. `[]` marks an array element.

Cells marked **always** require a non-null value in every request. Cells marked **strict** are required when you supply this target's `payloadContract`. See [Run computations](https://docs.filemark.ca/run-computations).

Unknown cells and JSON type mismatches return `400` with the affected cells in the error details.

| Cell | Types | Required | Description |
| --- | --- | --- | --- |
| `amalco_classes` | array \| boolean \| null \| number \| object \| string |  |  |
| `amalco_classes[].correspondsToPredecessorLabel` | array \| boolean \| null \| number \| object \| string |  |  |
| `amalco_classes[].fmvImmediatelyAfter` | null \| number \| string |  |  |
| `amalco_classes[].label` | array \| boolean \| null \| number \| object \| string |  |  |
| `amalco_classes[].legalStatedCapital` | null \| number \| string |  |  |
| `flags` | array \| boolean \| null \| number \| object \| string |  |  |
| `flags.acquisitionOfControl` | boolean \| null |  |  |
| `flags.allLiabilitiesBecameLiabilitiesOfNewCorporation` | boolean \| null |  |  |
| `flags.allPredecessorsCanadianCorporations` | boolean \| null |  |  |
| `flags.allPredecessorsTaxableCanadianCorporations` | boolean \| null |  |  |
| `flags.allPropertyBecamePropertyOfNewCorporation` | boolean \| null |  |  |
| `flags.allShareholdersReceivedNewCorporationShares` | boolean \| null |  |  |
| `flags.election87_3_1Filed` | boolean \| null |  |  |
| `flags.mergerIsPurchaseOfAssetsOrWindingUpDistribution` | boolean \| null |  |  |
| `flags.nonShareConsideration` | boolean \| null |  |  |
| `flags.predecessorSharesNotCancelledOnMerger` | boolean \| null |  |  |
| `flags.shareholders` | array \| null |  |  |
| `flags.shareholders[].giftPortionToRelatedPerson` | null \| number \| string |  |  |
| `flags.shareholders[].isPredecessorCorporation` | boolean \| null |  |  |
| `flags.shareholders[].label` | array \| boolean \| null \| number \| object \| string |  |  |
| `flags.shareholders[].newShares` | array \| null |  |  |
| `flags.shareholders[].newShares[].fmvAfter` | null \| number \| string |  |  |
| `flags.shareholders[].newShares[].label` | array \| boolean \| null \| number \| object \| string |  |  |
| `flags.shareholders[].nonShareConsiderationFmv` | null \| number \| string |  |  |
| `flags.shareholders[].oldShareAcb` | null \| number \| string |  |  |
| `flags.shareholders[].oldShareFmvBefore` | null \| number \| string |  |  |
| `flags.shareholders[].oldSharesAreCapitalProperty` | boolean \| null |  |  |
| `flags.shareholders[].oldSharesWereTaxableCanadianProperty` | boolean \| null |  |  |
| `flags.shareholders[].outlaysAndExpenses` | null \| number \| string |  |  |
| `flags.sisterAmalgamation` | boolean \| null |  |  |
| `flags.substitutedClassesIdenticalToExchangedClasses` | boolean \| null |  |  |
| `flags.triangularAmalgamation` | boolean \| null |  |  |
| `flags.verticalAmalgamation` | boolean \| null |  |  |
| `flags.verticalAmalgamationDetails` | null \| object |  |  |
| `flags.verticalAmalgamationDetails.parentAcbOfSubShares` | null \| number \| string |  |  |
| `flags.verticalAmalgamationDetails.pucOfSubShares` | null \| number \| string |  |  |
| `flags.verticalAmalgamationDetails.subsidiaries` | array \| null |  |  |
| `flags.verticalAmalgamationDetails.subsidiaries[].label` | array \| boolean \| null \| number \| object \| string |  |  |
| `flags.verticalAmalgamationDetails.subsidiaries[].parentAcbOfSubShares` | null \| number \| string |  |  |
| `flags.verticalAmalgamationDetails.subsidiaries[].pucOfSubShares` | null \| number \| string |  |  |
| `flags.verticalAmalgamationDetails.subsidiaries[].subsidiaryNetInsideAmount` | null \| number \| string |  |  |
| `flags.verticalAmalgamationDetails.subsidiaryNetInsideAmount` | null \| number \| string |  |  |
| `predecessor_share_classes` | array \| boolean \| null \| number \| object \| string |  |  |
| `predecessor_share_classes[].aggregateAcb` | null \| number \| string |  |  |
| `predecessor_share_classes[].aggregatePuc` | null \| number \| string |  |  |
| `predecessor_share_classes[].heldByAnotherPredecessorCorporation` | boolean \| null |  |  |
| `predecessor_share_classes[].label` | array \| boolean \| null \| number \| object \| string |  |  |
| `predecessor_share_classes[].legalStatedCapital` | null \| number \| string |  |  |

### Strict profile accepted values (20 of 48 cells)

These constraints apply when you supply this target's `payloadContract`. Cells marked **pinned** must equal the listed value. A pinned cell that is not required may be left out.

| Cell | Accepted values |
| --- | --- |
| `amalco_classes` | `one of null, false, 0, "", [], {}` |
| `amalco_classes[].fmvImmediatelyAfter` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 0 to 600000000000` |
| `amalco_classes[].legalStatedCapital` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 0 to 600000000000` |
| `flags` | `one of null, false, 0, "", []` |
| `flags.shareholders[].giftPortionToRelatedPerson` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 0 to 600000000000` |
| `flags.shareholders[].newShares[].fmvAfter` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 0 to 600000000000` |
| `flags.shareholders[].nonShareConsiderationFmv` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 0 to 600000000000` |
| `flags.shareholders[].oldShareAcb` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 0 to 600000000000` |
| `flags.shareholders[].oldShareFmvBefore` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 0 to 600000000000` |
| `flags.shareholders[].outlaysAndExpenses` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 0 to 600000000000` |
| `flags.verticalAmalgamationDetails.parentAcbOfSubShares` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 0 to 600000000000` |
| `flags.verticalAmalgamationDetails.pucOfSubShares` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 0 to 600000000000` |
| `flags.verticalAmalgamationDetails.subsidiaries[].parentAcbOfSubShares` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 0 to 600000000000` |
| `flags.verticalAmalgamationDetails.subsidiaries[].pucOfSubShares` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 0 to 600000000000` |
| `flags.verticalAmalgamationDetails.subsidiaries[].subsidiaryNetInsideAmount` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 0 to 600000000000` |
| `flags.verticalAmalgamationDetails.subsidiaryNetInsideAmount` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 0 to 600000000000` |
| `predecessor_share_classes` | `one of null, false, 0, "", [], {}` |
| `predecessor_share_classes[].aggregateAcb` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 0 to 600000000000` |
| `predecessor_share_classes[].aggregatePuc` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 0 to 600000000000` |
| `predecessor_share_classes[].legalStatedCapital` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 0 to 600000000000` |

## Output cells (64)

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

| Cell | Types | Description |
| --- | --- | --- |
| `acquisitionOfControl` | boolean |  |
| `amalcoClasses[].correspondsToPredecessorLabel` | array \| boolean \| null \| number \| object \| string |  |
| `amalcoClasses[].fmvImmediatelyAfter` | null \| number |  |
| `amalcoClasses[].label` | array \| boolean \| null \| number \| object \| string |  |
| `amalcoClasses[].legalStatedCapital` | number |  |
| `amalcoClasses[].newShareAcb` | null \| number |  |
| `amalcoClasses[].pucFinal` | number |  |
| `amalcoClasses[].pucGrind` | number |  |
| `applies` | boolean \| null |  |
| `blocking` | boolean |  |
| `citations[].description` | string |  |
| `citations[].key` | string |  |
| `citations[].section` | string |  |
| `citations[].source_url` | string |  |
| `citations[].verified_at` | string |  |
| `citationsApplied[]` | string |  |
| `election87_3_1Applied` | boolean |  |
| `provisional` | boolean |  |
| `ready` | boolean |  |
| `rolloverDeferred` | boolean |  |
| `section87_9Disclosure` | null \| object |  |
| `section87_9Disclosure.filingAction` | string |  |
| `section87_9Disclosure.parentCostBumpDesignationModelled` | boolean |  |
| `section87_9Disclosure.parentShareDeemingApplied` | boolean |  |
| `shareholders[].applies87_4` | boolean |  |
| `shareholders[].capitalGain` | null \| number |  |
| `shareholders[].exclusionReason` | null \| string |  |
| `shareholders[].giftPortion` | number |  |
| `shareholders[].giftPortionApplied` | boolean |  |
| `shareholders[].isPredecessorCorporation` | boolean |  |
| `shareholders[].label` | array \| boolean \| null \| number \| object \| string |  |
| `shareholders[].newShareCosts` | array \| null |  |
| `shareholders[].newShareCosts[].cost` | number |  |
| `shareholders[].newShareCosts[].fmvAfter` | number |  |
| `shareholders[].newShareCosts[].label` | array \| boolean \| null \| number \| object \| string |  |
| `shareholders[].newSharesDeemedTcpFor60Months` | boolean |  |
| `shareholders[].nonShareConsiderationFmv` | number |  |
| `shareholders[].oldShareAcb` | number |  |
| `shareholders[].oldShareFmvBefore` | number |  |
| `shareholders[].proceedsOfDisposition` | null \| number |  |
| `shareholders[].suppressedCapitalLoss` | null \| number |  |
| `shareholders[].totalNewShareCost` | number |  |
| `shareholders[].totalNewShareFmvAfter` | number |  |
| `totalPucGrind` | number |  |
| `traps[].body` | string |  |
| `traps[].citationKey` | string |  |
| `traps[].filingDisposition` | string |  |
| `traps[].findingCode` | string |  |
| `traps[].severity` | string |  |
| `traps[].title` | string |  |
| `verticalAmalgamation` | boolean |  |
| `verticalAmalgamationDisposition` | null \| object |  |
| `verticalAmalgamationDisposition.acbOfSubsidiaryShares` | number |  |
| `verticalAmalgamationDisposition.capitalGain` | number |  |
| `verticalAmalgamationDisposition.deemedProceeds` | number |  |
| `verticalAmalgamationDisposition.pucOfSubsidiaryShares` | number |  |
| `verticalAmalgamationDisposition.subsidiaryNetInsideAmount` | number |  |
| `warnings[]` | object |  |
| `warnings[].citationKey` | string |  |
| `warnings[].code` | string |  |
| `warnings[].message` | string |  |
| `warnings[].severity` | string |  |
| `warnings[].filingDisposition` | string |  |
| `warnings[].findingCode` | string |  |
