schedule76

T2 Corporation Income Tax Return

Kind
batch
Supported tax years
2024 and later
Strict profile
s76_exact_single_request_target_value_v1
Payload schema version
0.7.0
Dependencies (run automatically)
none

Example request

Send this body to POST /api/v1/computations/batch. It satisfies the strict profile, so it works with or without the payloadContract selector.

{
  "compute": [
    "schedule76"
  ],
  "inputs": {
    "taxYear": 2025,
    "fiscalStart": "2025-01-01",
    "fiscalEnd": "2025-12-31",
    "schedule76": {
      "isCanadianCorporation": "Y",
      "isExemptFromTaxUnderPartI": "N",
      "isTaxShelterInvestment": "N",
      "part1Rows": [
        {
          "propertyIdentifier": "FA-76-0001",
          "ccaClassNumber": "53",
          "ctmPropertyDescription": "Manufacturing press",
          "ctmUseCode": "01",
          "ctmUseIsAllOrSubstantiallyAll": "Y",
          "provinceOrTerritory": "ON",
          "acquisitionDate": "2025-06-15",
          "availableForUseDate": "2025-06-15",
          "capitalCost": 100000,
          "adjustments": 0,
          "assistanceRepaid": 0,
          "situatedAndUsedExclusivelyInCanada": "Y",
          "previouslyUsedOrAcquiredForUseOrLease": "N",
          "leasedToAnotherPerson": "N",
          "otherCleanEconomyCreditClaimedOnProperty": "N"
        }
      ]
    }
  }
}

Input cells (76)

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.

Input cells for schedule76
CellTypesRequired
fiscalEndstring
fiscalStartstring
schedule76.isCanadianCorporations.89(1) claimant fact: the corporation is a Canadian corporation. With isExemptFromTaxUnderPartI it establishes the qualifying taxpayer (a taxable Canadian corporation) the clean-economy credit definitions require; unanswered, the engine refuses the credit.null | string
schedule76.isExemptFromTaxUnderPartIs.89(1) claimant fact: whether the corporation is exempt from Part I tax. 'N' with isCanadianCorporation 'Y' establishes the qualifying taxpayer; unanswered, the engine refuses the credit.null | string
schedule76.isTaxShelterInvestments.127.49(10) — is the CTM property (or an interest in a person or partnership that has an interest in it) a tax shelter investment for the purpose of s.143.2? "Y" denies the credit on every Part 1 row and blocks the filing. Tri-state: null = unanswered.null | string
schedule76.line150PartnershipAllocatedItcnull | number
schedule76.line240PartnershipAllocatedRecapturenull | number
schedule76.part1Rowsarray
schedule76.part1Rows[].acquisitionDateOptional s.127.49(1) 'specified percentage' operand: the REAL acquisition date. Paragraph (a) reads, verbatim, 'before January 1, 2024, determined without reference to subsection (4), nil', and 'without reference to subsection (4)' disapplies the available-for-use deeming for that test, so availableForUseDate cannot stand in for it. Absent, the engine cannot tell a 30% row from a statutory nil and claims no CTM ITC for the row (error-severity s76_acquisition_date_required, ready false) - it never assumes 30% on a refundable credit.null | string
schedule76.part1Rows[].adjustmentsBox 120 / column 1G — Adjustments: government and non-government assistance received, receivable, or reasonably expected (s.127.49(5)(c)). REDUCES the amount eligible for ITC. Required on a claiming row: enter 0 where there is no assistance. Left blank it is unanswered, not nil, and the row claims no CTM ITC until it is entered.null | numberstrict
schedule76.part1Rows[].amountEligibleForItcBox 130 / column 1I — Derived: 1F − 1G + 1H.null | number
schedule76.part1Rows[].assistanceRepaidBox 125 / column 1H — Assistance repaid (or no longer reasonably expected) per s.127.49(7). INCREASES the amount eligible for ITC. Blank is the ordinary "nothing was repaid" state; an unreadable entry blocks.null | numberstrict
schedule76.part1Rows[].availableForUseDateBox 110 / column 1E — Available-for-use date (yyyy/mm/dd). Per s.127.49(4), CTM property is deemed not to have been acquired until AFU; this date is one of the TWO dates that drive the specified-percentage bracket (30/20/10/5/nil) — it settles paragraphs (b)-(c) through the s.127.49(4) deeming but never paragraph (a), which belongs to `acquisitionDate` above.null | stringstrict
schedule76.part1Rows[].batteryProductionBenefitsFromContributionAgreements.127.49(1) "excluded property" — property used in the production of battery cells or modules where that production "has benefitted from, or can reasonably be expected to benefit from, support under a contribution agreement with the Government of Canada referred to in section 7300 of the Income Tax Regulations" (Strategic Innovation Fund / Canada Growth Fund). REQUIRED where the property description names a battery cell or module; "Y" denies the credit and unanswered fails closed.null | string
schedule76.part1Rows[].capitalCostBox 115 / column 1F — Capital cost (excludes any amount unpaid 180 days after the year-end per s.127.49(9); add back when later paid).null | numberstrict
schedule76.part1Rows[].ccaClassNumberBox 100 / column 1A — CCA class number (must be one of: 8, 10, 12, 38, 41, 41.2, 43, 43.1, 43.2, 53, or 56 per s.127.49(1) 'CTM property' para (d)).null | stringstrict
schedule76.part1Rows[].claimsClass431ElectricalStoragenull | string
schedule76.part1Rows[].claimsEligibleTransmissionEquipmentnull | string
schedule76.part1Rows[].class431Subparagraphnull | string
schedule76.part1Rows[].ctmItcAmountBox 145 / column 1K — Derived: 1I × 1J.null | number
schedule76.part1Rows[].ctmPropertyDescriptionBox 105 / column 1B — CTM property description (free text).null | stringstrict
schedule76.part1Rows[].ctmPropertyScheduleIIRoutes.127.49(1) "CTM property" para (d) — which of the seven Schedule II routes describes this property. REQUIRED on every class except 53 and 56 (the only two paragraph (d) names in whole); a route that cannot reach the entered class is a contradiction between two independent preparer assertions and denies the credit, as does an unanswered one.null | string
schedule76.part1Rows[].ctmUseCodeBox 106 / column 1C — rev-(26) CTM-use asset code. Codes 30/31 are qualifying-mineral-activity property; all other values identify the particular Reg 5202 zero-emission manufacturing asset.null | object | stringstrict
schedule76.part1Rows[].ctmUseIsAllOrSubstantiallyAlls.127.49(1) "CTM use" means "the use of a property ALL OR SUBSTANTIALLY ALL in" the listed activities, and "CTM investment tax credit" para (a) allows the specified percentage only on property acquired "for a CTM use". The box-106 asset code records WHICH activity the property serves, not that all or substantially all of its use is that activity — and s.127.49(1) "non-CTM use" counts every other use against the test. REQUIRED on every Part 1 row; "N" denies the credit and unanswered fails closed.null | string
schedule76.part1Rows[].ctmUseMineralOutputTestMets.127.49(1) "CTM use" mineral OUTPUT test — separate from the chapeau all-or-substantially-all test on USE. The asset code selects the threshold: paragraph (b) (code 30) asks whether the property produces PRIMARILY qualifying materials; paragraph (c) (code 31) asks whether it produces ALL OR SUBSTANTIALLY ALL qualifying materials. Both are "determined based on the value of all commercial outputs in accordance with subsection (2.2)". REQUIRED on a mineral row; "N" denies the credit and unanswered fails closed.null | string
schedule76.part1Rows[].designedForStreetOrHighwayUses.127.49(1) "CTM property" para (d)(v)(A) — the Class 10 / Class 38 route excludes "any property that is designed or adapted for use on streets and highways". REQUIRED on a Class 10 or Class 38 row; "Y" denies the credit and unanswered fails closed. Irrelevant on every other class.null | string
schedule76.part1Rows[].eligibleGenerationEnergyTransmittedPctnull | number
schedule76.part1Rows[].isBuildingnull | string
schedule76.part1Rows[].leaseMeetsQualifyingLesseeConditionss.127.49(1) "CTM property" paragraph (c)(i)-(ii) — the lease is to a qualifying taxpayer (or a partnership all of whose members are qualifying taxpayers) AND is in the ordinary course of a business in Canada of a lessor whose principal business is selling or servicing property of that type, or leasing property, lending money and the related financing businesses the paragraph lists. Required once `leasedToAnotherPerson` is "Y"; unanswered fails closed.null | string
schedule76.part1Rows[].leasedToAnotherPersonIs the property to be leased by the corporation to another person or partnership? Paragraph (c) of the ITA 127.49(1) definition of CTM property excludes a lease unless the qualifying-lessee conditions are met, so the answer is stated rather than assumed.null | stringstrict
schedule76.part1Rows[].mineralCertifications.127.49(2.1) independent engineer / geoscientist certification. REQUIRED on an asset-code-30 row, ignored on every other code.null | object
schedule76.part1Rows[].mineralCertification.certificationDateDate on the certification (yyyy-mm-dd). Must fall inside the s.127.49(3) filing window for the return.null | string
schedule76.part1Rows[].mineralCertification.certificationFiledWithReturnPractitioner confirmation that the certification is attached to this schedule and filed with the return. "N" denies the row.null | string
schedule76.part1Rows[].mineralCertification.certifierDesignations.127.49(1) "independent engineer or geoscientist" paragraph (a).null | object
schedule76.part1Rows[].mineralCertification.certifierIsIndependents.127.49(1) "independent engineer or geoscientist" paragraph (b) — the individual "is at all times at arm's length with, independent of, and not employed by" the corporation. "N" denies the row.null | string
schedule76.part1Rows[].mineralCertification.certifyingProfessionalNameName of the individual signing the certification.null | string
schedule76.part1Rows[].mineralCertification.mineOrWellSites.127.49(2.1)(a) — the "particular mine site or well site" the certification names.null | string
schedule76.part1Rows[].mineralCertification.planPrimarilyTargetsQualifyingMaterialss.127.49(2.1)(b) — the property is used "in accordance with a plan that primarily targets qualifying materials". "N" denies the row.null | string
schedule76.part1Rows[].mineralValuationElections.127.49(2.2) valuation-method election. REQUIRED on an asset-code-30 or -31 row, ignored on every other code.null | object
schedule76.part1Rows[].mineralValuationElection.electionDateDate of the election (yyyy-mm-dd).null | string
schedule76.part1Rows[].mineralValuationElection.electionFiledWithReturnPractitioner confirmation that the election is filed together with this schedule. "N" denies the row.null | string
schedule76.part1Rows[].mineralValuationElection.valuationMethodThe elected method. Binding for all relevant tax years.null | object
schedule76.part1Rows[].otherCleanEconomyCreditClaimedOnPropertyWas an investment tax credit or any other clean economy tax credit deducted on this property by any person? ITA 127.49(5)(a)(ii) allows one clean economy credit per property, and a competing claim can sit on another taxpayer's return, so only an explicit N admits the row.null | stringstrict
schedule76.part1Rows[].previouslyUsedOrAcquiredForUseOrLeaseHad the property been used, or acquired for use or lease, for any purpose before the corporation acquired it? Paragraph (b) of the ITA 127.49(1) definition of CTM property requires previously unused property, so an explicit N is what admits the row.null | stringstrict
schedule76.part1Rows[].propertyIdentifierFree-text asset key shared with the other clean-economy Part 1 grids. Use the SAME key on every clean-economy schedule for the same asset: matching normalizes case and whitespace only, never a partial match. No CRA box — it exists so one property carrying a clean-economy credit on two schedules is detected, which s.127.49(5)(a)(ii) and the parallel s.127.45(5)(a)(ii) / s.127.48(10)(a)(ii) forbid.null | string
schedule76.part1Rows[].provinceOrTerritoryBox 108 / column 1D — Province or territory of the property.null | stringstrict
schedule76.part1Rows[].situatedAndUsedExclusivelyInCanadaIs the property situated in Canada and intended for use exclusively in Canada? Paragraph (a) of the ITA 127.49(1) definition of CTM property, so an explicit Y is what admits the row.null | stringstrict
schedule76.part1Rows[].specifiedPercentageBox 135 / column 1J — Specified percentage (s.127.49(1)). Engine derives from the AFU date; practitioner override surfaces a warning if it disagrees with the statutory bracket. Stored as decimal fraction 0-1 (e.g. 0.30 for 30%).null | number
schedule76.part1Rows[].storageEnergyConditionMetnull | string
schedule76.part1Rows[].storageExcludedCategorynull | string
schedule76.part1Rows[].storageFixedLocationnull | string
schedule76.part1Rows[].storagePrimaryPurposeConfirmednull | string
schedule76.part1Rows[].transmittedEnergyFromEligibleGenerationPctnull | number
schedule76.part1Rows[].usedWithEligibleGenerationEquipmentnull | string
schedule76.part2Rowsarray
schedule76.part2Rows[].availableForUseDateBox 210 / E(26) column 2E — Original available-for-use date. The 10-year recapture window per s.127.49(11)(a) is anchored on this date (current tax year + 10 preceding calendar years).null | string
schedule76.part2Rows[].capitalCostBox 225 / E(26) column 2H — Capital cost on which the CTM ITC was deducted (denominator of the recapture-proportion formula).null | number
schedule76.part2Rows[].ccaClassNumberBox 200 / column 2A — CCA class number of disposed/converted/exported CTM property.null | string
schedule76.part2Rows[].ctmItcRecapturedBox 235 / E(26) column 2J — Derived: lesser of 2F and 2I.null | number
schedule76.part2Rows[].ctmPropertyDescriptionBox 205 / column 2B — CTM property description.null | string
schedule76.part2Rows[].ctmUseCodeBox 206 / E(26) column 2C - CTM-use asset code for the property being recaptured. Required current-form evidence; never inferred from class.null | object
schedule76.part2Rows[].originalCtmItcAmountBox 215 / E(26) column 2F — Original CTM ITC amount claimed for the particular property.null | number
schedule76.part2Rows[].proceedsOrFmvBox 220 / E(26) column 2G — Proceeds of disposition (arm's length) or fair market value (non-arm's length / conversion to non-CTM use / export from Canada). Per s.127.49(12) footnote 6 + B(i)/B(ii).null | number
schedule76.part2Rows[].proportionRecapturedBox 230 / E(26) column 2I — Derived: 2F × (2G / 2H).null | number
schedule76.part2Rows[].provinceOrTerritoryBox 208 / E(26) column 2D — Province or territory.null | string
schedule76.part2Rows[].purchaserContinuesCtmUses.127.49(13) — is the property "used by the purchaser for a CTM use"?null | string
schedule76.part2Rows[].purchaserIsQualifyingTaxpayers.127.49(13) — is the purchaser a qualifying taxpayer?null | string
schedule76.part2Rows[].purchaserRelationshipRelationship of the purchaser to the transferor.null | string
schedule76.part3RowsRev-(26) per-partnership detail. This is the authority for lines 150/240 and totals 350/355.array
schedule76.part3Rows[].ctmItcAllocatedLine 310 / column 3C - CTM ITC allocated from T5013 box 292 or letter.null | number
schedule76.part3Rows[].ctmItcRecaptureAllocatedLine 315 / column 3D - CTM ITC recapture allocated from T5013 box 293 or letter.null | number
schedule76.part3Rows[].partnershipAccountNumberLine 305 / column 3B - partnership account number.null | string
schedule76.part3Rows[].partnershipNameLine 300 / column 3A - partnership's legal name.null | string
schedule76.taxationYearEndDatenull | string
schedule76.taxationYearStartDateTaxation-year bounds (ISO YYYY-MM-DD). Form Part 1 footnote 2 requires the available-for-use date to be "within the current tax year", and that test runs against the real taxation period rather than its calendar label. That date gate is all the bounds do here: S76 has no s.127.46 indexed amount to prorate, since labour requirements do not apply to CTM property. Read-only display, never a preparer entry: the server imposes the return's own fiscalStart/fiscalEnd and blocks a blob carrying a different period. No CRA box.null | string
taxYearFour-digit taxation year accepted by the batch reader. Historical applicability is decided by the requested form; years after 2027 fail at the shared verified-rate horizon.integer | stringalways
Strict profile accepted values (42 of 76 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.

Strict profile accepted values for schedule76
CellAccepted values
fiscalEnddate (YYYY-MM-DD); 10 to 10 characters
fiscalStartdate (YYYY-MM-DD); 10 to 10 characters
schedule76.isCanadianCorporationone of "Y", "N", null
schedule76.isExemptFromTaxUnderPartIone of "Y", "N", null
schedule76.isTaxShelterInvestmentone of "Y", "N", null
schedule76.part1Rows[].acquisitionDate1 to 10 characters
schedule76.part1Rows[].adjustments-1000000000000000 to 1000000000000000
schedule76.part1Rows[].assistanceRepaid-1000000000000000 to 1000000000000000
schedule76.part1Rows[].availableForUseDate1 to 10 characters
schedule76.part1Rows[].batteryProductionBenefitsFromContributionAgreementone of "Y", "N"
schedule76.part1Rows[].capitalCost-1000000000000000 to 1000000000000000
schedule76.part1Rows[].ccaClassNumber1 to 2 characters
schedule76.part1Rows[].claimsClass431ElectricalStorageone of "Y", "N"
schedule76.part1Rows[].claimsEligibleTransmissionEquipmentone of "Y", "N"
schedule76.part1Rows[].class431Subparagraphone of "d(ii)", "d(v)", "d(vi)", "d(vii)", "d(xiv)", "d(xix)"
schedule76.part1Rows[].ctmPropertyDescription1 to 19 characters
schedule76.part1Rows[].ctmPropertyScheduleIIRouteone of "d_i", "d_ii", "d_iii", "d_iv", "d_v", "d_vi", "d_vii"
schedule76.part1Rows[].ctmUseCode1 to 2 characters
schedule76.part1Rows[].ctmUseIsAllOrSubstantiallyAllone of "Y", "N", null
schedule76.part1Rows[].ctmUseMineralOutputTestMetone of "Y", "N"
schedule76.part1Rows[].designedForStreetOrHighwayUseone of "Y", "N"
schedule76.part1Rows[].isBuildingone of "Y", "N"
schedule76.part1Rows[].leaseMeetsQualifyingLesseeConditionsone of "Y", "N"
schedule76.part1Rows[].leasedToAnotherPersonone of "Y", "N", null
schedule76.part1Rows[].mineralCertification.certificationFiledWithReturnone of "Y", "N"
schedule76.part1Rows[].mineralCertification.certifierIsIndependentone of "Y", "N"
schedule76.part1Rows[].mineralCertification.planPrimarilyTargetsQualifyingMaterialsone of "Y", "N"
schedule76.part1Rows[].mineralValuationElection.electionFiledWithReturnone of "Y", "N"
schedule76.part1Rows[].otherCleanEconomyCreditClaimedOnPropertyone of "Y", "N", null
schedule76.part1Rows[].previouslyUsedOrAcquiredForUseOrLeaseone of "Y", "N", null
schedule76.part1Rows[].propertyIdentifier1 to 10 characters
schedule76.part1Rows[].provinceOrTerritory1 to 2 characters
schedule76.part1Rows[].situatedAndUsedExclusivelyInCanadaone of "Y", "N", null
schedule76.part1Rows[].storageEnergyConditionMetone of "Y", "N"
schedule76.part1Rows[].storageExcludedCategoryone of "none", "building", "pumped_hydroelectric_storage", "hydroelectric_dam_or_reservoir", "backup_only", "motor_vehicle_battery", "other_vehicle_battery", "other_automotive_equipment_battery", "vehicle_or_automotive_charging_property", "steam_methane_fuel_cell", "class_10_or_17"
schedule76.part1Rows[].storageFixedLocationone of "Y", "N"
schedule76.part1Rows[].storagePrimaryPurposeConfirmedone of "Y", "N"
schedule76.part1Rows[].usedWithEligibleGenerationEquipmentone of "Y", "N"
schedule76.part2Rows[].purchaserContinuesCtmUseone of "Y", "N"
schedule76.part2Rows[].purchaserIsQualifyingTaxpayerone of "Y", "N"
schedule76.part2Rows[].purchaserRelationshipone of "related", "arms_length"
taxYearmatches ^\s*(?:1[0-9]{3}|2(?:0(?:[0-1][0-9]{1}|2[0-7])))\s*$; 1000 to 2027

Output cells (80)

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

Output cells for schedule76
CellTypes
line_100null | string
line_105null | string
line_106null | string
line_108null | string
line_110null | string
line_115number
line_120number
line_125number
line_130number
line_135number
line_145number
line_150number
line_155number
amount_a_total_col_1knumber
part1Rows[].propertyIdentifiernull | string
part1Rows[].ccaClassNumbernull | string
part1Rows[].ctmPropertyDescriptionnull | string
part1Rows[].ctmUseCodenull | string
part1Rows[].provinceOrTerritorynull | string
part1Rows[].availableForUseDatenull | string
part1Rows[].capitalCostnumber
part1Rows[].adjustmentsnumber
part1Rows[].assistanceRepaidnumber
part1Rows[].amountEligibleForItcnumber
part1Rows[].specifiedPercentagenumber
part1Rows[].ctmItcAmountnumber
line_200array | boolean | null | number | object | string
line_205array | boolean | null | number | object | string
line_206array | boolean | null | number | object | string
line_208array | boolean | null | number | object | string
line_210array | boolean | null | number | object | string
line_215number
line_220number
line_225number
line_230number
line_235number
line_240number
line_245number
amount_b_total_col_2jnumber
part2Rowsarray
line_300array | boolean | null | number | object | string
line_305array | boolean | null | number | object | string
line_310number
line_315number
line_350number
line_355number
part3_total_itc_line_350number
part3_total_recapture_line_355number
part3Rowsarray
total_itc_line_155number
total_recapture_line_245number
s31_feed_ctm_itcnumber
s31_feed_recapturenumber
warnings[].codeStable machine identity of the finding, independent of its prose. Present on a finding a consumer is expected to branch on; absent on a prose-only review finding.string
warnings[].messagestring
warnings[].notesstring
warnings[].sectionstring
warnings[].severitystring
warnings[].sources[]string
warnings[].taxYearinteger
warnings[].taxYears[]integer
warnings[].anchor_fieldThe Filemark input anchor a preparer has to answer to clear the finding, when the box alone does not identify it.string
warnings[].anchor_rowThe Filemark input anchor for the grid ROW a row-scoped finding is about.string
warnings[].boxstring
warnings[].citation.applies_to_boxes[]string
warnings[].citation.cra_text_verbatimstring
warnings[].citation.form_idstring
warnings[].citation.form_revisionstring
warnings[].citation.gate_idstring
warnings[].citation.rulestring
warnings[].citation.sourcestring
warnings[].citation.source_urlstring
warnings[].citation.verified_atstring
warnings[].gate_idIdentifier of the registered T4012 gate that raised the finding; travels with `citation`.string
fired_gatesobject
provisionalboolean
readyboolean
missing_requiredarray
coverageStatusstring
coverageReasonstring
Filemark | schedule76 cells