# debt-forgiveness

Debt forgiveness

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

## Example request

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

```json
{
  "inputs": {
    "forgiven_amount": 100000,
    "attributes": {
      "nonCapitalLossesOrdinary": 15000,
      "nonCapitalLossesAbilByYear": [
        {
          "year": 1995,
          "amount": 2500,
          "applicableFraction": null
        },
        {
          "year": 2002,
          "amount": 2500,
          "applicableFraction": null
        }
      ],
      "farmLosses": 0,
      "restrictedFarmLosses": 0,
      "netCapitalLossesByYear": null,
      "netCapitalLosses": 10000,
      "netCapitalLossesYear": 1995,
      "netCapitalLossesFraction": null,
      "ccaUcc": 20000,
      "cumulativeEligibleCapital": 0,
      "resourcePools": 0,
      "abilAndOtherAcb": 0,
      "section80_9CapitalPropertyAcb": 0,
      "section80_10SpecifiedShareholderPropertyAcb": 0,
      "currentYearCapitalLosses": 0,
      "subsection88_1_2Amount": 0,
      "currentYearCapitalGains": 0,
      "priorSubsection80_12Gains": 0,
      "unrecognizedLosses": 0,
      "priorDReductions": 0,
      "totalSection80_13InclusionsForYear": 100000,
      "assetsFmvAtYearEnd": 90000,
      "totalLiabilitiesAtYearEnd": 40000,
      "taxesPaidForYear": 0,
      "nonArmsLengthDistributions12Months": 0,
      "distressPreferredSharePrincipal": 0,
      "incomeBefore61_3And61_4": 100000,
      "paragraph80_15_a_deductions": 0,
      "section61_4ReserveClaimed": 50000,
      "section56_3InclusionForYear": 0,
      "section61_4PriorYearAmountsComplete": true,
      "section61_4PriorYearAmounts": []
    },
    "designations": {
      "s80_5Amount": 20000,
      "s80_8Amount": null,
      "s80_9Amount": null,
      "s80_10Amount": null,
      "s80_11Amount": null,
      "residualBalance": null,
      "section80_04AgreementAmount": 0
    },
    "party": {
      "isPartnership": false,
      "isResidentInCanadaThroughoutYear": true,
      "isExemptFromTaxUnderPartI": false,
      "subsection61_3_3Applies": false,
      "carriedOnBusinessThroughFixedPlaceInCanadaAtYearEnd": null,
      "commencedWindUpInYear": false,
      "subsection88_1AppliesToWindUp": null
    }
  }
}
```

## Input cells (64)

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 |
| --- | --- | --- | --- |
| `attributes` | array \| boolean \| null \| number \| object \| string |  |  |
| `attributes.abilAndOtherAcb` | null \| number \| string |  |  |
| `attributes.assetsFmvAtYearEnd` | null \| number \| string |  |  |
| `attributes.ccaUcc` | null \| number \| string |  |  |
| `attributes.cumulativeEligibleCapital` | null \| number \| string |  |  |
| `attributes.currentYearCapitalGains` | null \| number \| string |  |  |
| `attributes.currentYearCapitalLosses` | null \| number \| string |  |  |
| `attributes.distressPreferredSharePrincipal` | null \| number \| string |  |  |
| `attributes.farmLosses` | null \| number \| string |  |  |
| `attributes.incomeBefore61_3And61_4` | null \| number \| string |  |  |
| `attributes.netCapitalLosses` | null \| number \| string |  |  |
| `attributes.netCapitalLossesByYear` | array \| null |  |  |
| `attributes.netCapitalLossesByYear[].amount` | null \| number \| string |  |  |
| `attributes.netCapitalLossesByYear[].applicableFraction` | null \| number \| string |  |  |
| `attributes.netCapitalLossesByYear[].year` | null \| number \| string |  |  |
| `attributes.netCapitalLossesFraction` | null \| number \| string |  |  |
| `attributes.netCapitalLossesYear` | null \| number \| string |  |  |
| `attributes.nonArmsLengthDistributions12Months` | null \| number \| string |  |  |
| `attributes.nonCapitalLossesAbilByYear[].amount` | null \| number \| string |  |  |
| `attributes.nonCapitalLossesAbilByYear[].applicableFraction` | null \| number \| string |  |  |
| `attributes.nonCapitalLossesAbilByYear[].year` | null \| number \| string |  |  |
| `attributes.nonCapitalLossesOrdinary` | null \| number \| string |  |  |
| `attributes.paragraph80_15_a_deductions` | null \| number \| string |  |  |
| `attributes.priorDReductions` | null \| number \| string |  |  |
| `attributes.priorSubsection80_12Gains` | null \| number \| string |  |  |
| `attributes.resourcePools` | null \| number \| string |  |  |
| `attributes.restrictedFarmLosses` | null \| number \| string |  |  |
| `attributes.section56_3InclusionForYear` | null \| number \| string |  |  |
| `attributes.section61_4PriorYearAmounts` | array \| null |  |  |
| `attributes.section61_4PriorYearAmountsComplete` | array \| boolean \| null \| number \| object \| string |  |  |
| `attributes.section61_4PriorYearAmounts[].paragraph80_15_aDeductions` | null \| number \| string |  |  |
| `attributes.section61_4PriorYearAmounts[].section61_3Deductions` | null \| number \| string |  |  |
| `attributes.section61_4PriorYearAmounts[].section80_13Inclusions` | null \| number \| string |  |  |
| `attributes.section61_4PriorYearAmounts[].yearsBeforeCurrent` | null \| number \| string |  |  |
| `attributes.section61_4ReserveClaimed` | null \| number \| string |  |  |
| `attributes.section80_10SpecifiedShareholderPropertyAcb` | null \| number \| string |  |  |
| `attributes.section80_9CapitalPropertyAcb` | null \| number \| string |  |  |
| `attributes.section80_9Properties` | array \| null |  |  |
| `attributes.section80_9Properties[].acb` | null \| number \| string |  |  |
| `attributes.section80_9Properties[].capitalCost` | null \| number \| string |  |  |
| `attributes.section80_9Properties[].ccaCapitalCost` | null \| number \| string |  |  |
| `attributes.section80_9Properties[].isDepreciable` | boolean \| null |  |  |
| `attributes.subsection88_1_2Amount` | null \| number \| string |  |  |
| `attributes.taxesPaidForYear` | null \| number \| string |  |  |
| `attributes.totalLiabilitiesAtYearEnd` | null \| number \| string |  |  |
| `attributes.totalSection80_13InclusionsForYear` | null \| number \| string |  |  |
| `attributes.unrecognizedLosses` | null \| number \| string |  |  |
| `designations` | array \| boolean \| null \| number \| object \| string |  |  |
| `designations.residualBalance` | null \| number \| string |  |  |
| `designations.s80_10Amount` | null \| number \| string |  |  |
| `designations.s80_11Amount` | null \| number \| string |  |  |
| `designations.s80_5Amount` | null \| number \| string |  |  |
| `designations.s80_8Amount` | null \| number \| string |  |  |
| `designations.s80_9Amount` | null \| number \| string |  |  |
| `designations.section80_04AgreementAmount` | null \| number \| string |  |  |
| `forgiven_amount` | null \| number \| string |  |  |
| `party` | array \| boolean \| null \| number \| object \| string |  |  |
| `party.carriedOnBusinessThroughFixedPlaceInCanadaAtYearEnd` | boolean \| null |  |  |
| `party.commencedWindUpInYear` | boolean \| null |  |  |
| `party.isExemptFromTaxUnderPartI` | boolean \| null |  |  |
| `party.isPartnership` | boolean \| null |  |  |
| `party.isResidentInCanadaThroughoutYear` | boolean \| null |  |  |
| `party.subsection61_3_3Applies` | boolean \| null |  |  |
| `party.subsection88_1AppliesToWindUp` | boolean \| null |  |  |

### Strict profile accepted values (52 of 64 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 |
| --- | --- |
| `attributes` | `one of null, false, 0, "", []` |
| `attributes.abilAndOtherAcb` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 0 to 600000000000` |
| `attributes.assetsFmvAtYearEnd` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 0 to 600000000000` |
| `attributes.ccaUcc` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 0 to 600000000000` |
| `attributes.cumulativeEligibleCapital` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 0 to 0` |
| `attributes.currentYearCapitalGains` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 0 to 600000000000` |
| `attributes.currentYearCapitalLosses` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 0 to 600000000000` |
| `attributes.distressPreferredSharePrincipal` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 0 to 600000000000` |
| `attributes.farmLosses` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 0 to 600000000000` |
| `attributes.incomeBefore61_3And61_4` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; -600000000000 to 600000000000` |
| `attributes.netCapitalLosses` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 0 to 600000000000` |
| `attributes.netCapitalLossesByYear[].amount` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 0 to 600000000000` |
| `attributes.netCapitalLossesByYear[].applicableFraction` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; -1000000000000000 to 1` |
| `attributes.netCapitalLossesByYear[].year` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 1972 to 2100` |
| `attributes.netCapitalLossesFraction` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; -1000000000000000 to 1` |
| `attributes.netCapitalLossesYear` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 1972 to 2100` |
| `attributes.nonArmsLengthDistributions12Months` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 0 to 600000000000` |
| `attributes.nonCapitalLossesAbilByYear[].amount` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 0 to 600000000000` |
| `attributes.nonCapitalLossesAbilByYear[].applicableFraction` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; -1000000000000000 to 1` |
| `attributes.nonCapitalLossesAbilByYear[].year` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 1972 to 2100` |
| `attributes.nonCapitalLossesOrdinary` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 0 to 600000000000` |
| `attributes.paragraph80_15_a_deductions` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 0 to 600000000000` |
| `attributes.priorDReductions` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 0 to 600000000000` |
| `attributes.priorSubsection80_12Gains` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 0 to 600000000000` |
| `attributes.resourcePools` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 0 to 600000000000` |
| `attributes.restrictedFarmLosses` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 0 to 600000000000` |
| `attributes.section56_3InclusionForYear` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 0 to 600000000000` |
| `attributes.section61_4PriorYearAmounts[].paragraph80_15_aDeductions` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 0 to 600000000000` |
| `attributes.section61_4PriorYearAmounts[].section61_3Deductions` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 0 to 600000000000` |
| `attributes.section61_4PriorYearAmounts[].section80_13Inclusions` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 0 to 600000000000` |
| `attributes.section61_4PriorYearAmounts[].yearsBeforeCurrent` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 1 to 200` |
| `attributes.section61_4ReserveClaimed` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 0 to 600000000000` |
| `attributes.section80_10SpecifiedShareholderPropertyAcb` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 0 to 600000000000` |
| `attributes.section80_9CapitalPropertyAcb` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 0 to 600000000000` |
| `attributes.section80_9Properties[].acb` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 0 to 600000000000` |
| `attributes.section80_9Properties[].capitalCost` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 0 to 600000000000` |
| `attributes.section80_9Properties[].ccaCapitalCost` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 0 to 600000000000` |
| `attributes.subsection88_1_2Amount` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 0 to 600000000000` |
| `attributes.taxesPaidForYear` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 0 to 600000000000` |
| `attributes.totalLiabilitiesAtYearEnd` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 0 to 600000000000` |
| `attributes.totalSection80_13InclusionsForYear` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 0 to 600000000000` |
| `attributes.unrecognizedLosses` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 0 to 600000000000` |
| `designations` | `one of null, false, 0, "", []` |
| `designations.residualBalance` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 0 to 600000000000` |
| `designations.s80_10Amount` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 0 to 600000000000` |
| `designations.s80_11Amount` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 0 to 600000000000` |
| `designations.s80_5Amount` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 0 to 600000000000` |
| `designations.s80_8Amount` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 0 to 600000000000` |
| `designations.s80_9Amount` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 0 to 600000000000` |
| `designations.section80_04AgreementAmount` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 0 to 600000000000` |
| `forgiven_amount` | `matches ^\s*[+-]?(?:[0-9]+(?:\.[0-9]*)?\|\.[0-9]+)(?:[eE][+-]?[0-9]+)?\s*$; 0 to 600000000000` |
| `party` | `one of null, false, 0, "", []` |

## Output cells (69)

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

| Cell | Types | Description |
| --- | --- | --- |
| `abilNonCapitalLossBalanceReduced` | number |  |
| `abilNonCapitalLossDetail[].applicableFraction` | string |  |
| `abilNonCapitalLossDetail[].balanceReduced` | number |  |
| `abilNonCapitalLossDetail[].forgivenAmountConsumed` | number |  |
| `abilNonCapitalLossDetail[].year` | integer \| null |  |
| `blocking` | boolean |  |
| `citations[].description` | string |  |
| `citations[].key` | string |  |
| `citations[].section` | string |  |
| `citations[].source_url` | string |  |
| `citations[].verified_at` | string |  |
| `citationsApplied[]` | string |  |
| `deemedCapitalGainSubsection80_12` | number |  |
| `forgivenAmount` | number |  |
| `inclusionFormula.A` | number |  |
| `inclusionFormula.B` | number |  |
| `inclusionFormula.C` | number |  |
| `inclusionFormula.D` | number |  |
| `inclusionFormula.E` | number |  |
| `inclusionFormula.base` | number |  |
| `incomeInclusion` | number |  |
| `isPartnership` | boolean |  |
| `netCapitalLossBalanceReduced` | number |  |
| `netCapitalLossDetail[].applicableFraction` | string |  |
| `netCapitalLossDetail[].balanceReduced` | number |  |
| `netCapitalLossDetail[].forgivenAmountConsumed` | number |  |
| `netCapitalLossDetail[].year` | integer \| null |  |
| `orderedReductions.acb` | number |  |
| `orderedReductions.deemedCapitalGain80_12` | number |  |
| `orderedReductions.farmLosses` | number |  |
| `orderedReductions.netCapitalLosses` | number |  |
| `orderedReductions.nonCapitalLosses` | number |  |
| `orderedReductions.nonCapitalLossesAbil` | number |  |
| `orderedReductions.pools` | number |  |
| `orderedReductions.restrictedFarmLosses` | number |  |
| `poolDesignations.abilAndOtherAcb` | number |  |
| `poolDesignations.ccaUcc` | number |  |
| `poolDesignations.resourcePools` | number |  |
| `poolDesignations.subsection80_11` | number |  |
| `poolDesignations.total` | number |  |
| `provisional` | boolean |  |
| `ready` | boolean |  |
| `residual` | number |  |
| `section61_3Deduction` | null \| number |  |
| `section61_4ParagraphACap` | null \| number |  |
| `section61_4ParagraphBCap` | null \| number |  |
| `section61_4ReserveClaimed` | null \| number |  |
| `section61_4ReserveDeduction` | null \| number |  |
| `section61_4ReserveMaximum` | null \| number |  |
| `section61_4WindUpNilCapApplies` | boolean \| null |  |
| `traps[].body` | string |  |
| `traps[].citationKey` | string |  |
| `traps[].filingDisposition` | string |  |
| `traps[].findingCode` | string |  |
| `traps[].severity` | string |  |
| `traps[].title` | string |  |
| `undesignatedRoomExplanation[].availabilityBasis` | string |  |
| `undesignatedRoomExplanation[].balance` | number |  |
| `undesignatedRoomExplanation[].designated` | number |  |
| `undesignatedRoomExplanation[].pool` | string |  |
| `undesignatedRoomExplanation[].roomDeclined` | number |  |
| `undesignatedRoomExplanation[].subsection` | string |  |
| `warnings[]` | object |  |
| `warnings[].citationKey` | string |  |
| `warnings[].code` | string |  |
| `warnings[].message` | string |  |
| `warnings[].severity` | string |  |
| `warnings[].filingDisposition` | string |  |
| `warnings[].findingCode` | string |  |
