schedule74

T2 Corporation Income Tax Return

Kind
batch
Supported tax years
2023 and later
Strict profile
s74_exact_single_request_target_value_v1
Payload schema version
0.10.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": [
    "schedule74"
  ],
  "inputs": {
    "taxYear": 2025,
    "fiscalStart": "2025-01-01",
    "fiscalEnd": "2025-12-31",
    "schedule74": {
      "isCanadianCorporation": "Y",
      "isExemptFromTaxUnderPartI": "N",
      "nrcanProjectCode": "NRCAN-PUBLIC-74",
      "firstDayComplianceperiod": "2025-01-01",
      "projectExpectedCarbonIntensity": 0.5,
      "isTaxShelterInvestment": "N",
      "part1Rows": [
        {
          "propertyIdentifier": "FA-74-0001",
          "ccaClassNumber": "43.1",
          "assetCode": "01",
          "provinceOrTerritory": "AB",
          "acquisitionDate": "2024-11-01",
          "availableForUseDate": "2025-06-15",
          "designatedWorkSites": "WS-74",
          "capitalCost": 100000,
          "adjustments": 0,
          "electingLabourRequirements": "Y",
          "otherCleanEconomyCreditClaimedOnProperty": "N",
          "percentageForHydrogenProduction": 1,
          "percentageForAmmoniaProduction": 0,
          "preparedOrInstalledDate": "2025-06-15",
          "previouslyUsedOrAcquiredForUseOrLease": "N"
        }
      ],
      "signingOfficerFirstName": "Jane",
      "signingOfficerLastName": "Smith",
      "signingOfficerPosition": "CFO",
      "attestationDate": "2025-12-01",
      "metLabourRequirements": "Y"
    }
  }
}

Input cells (99)

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 schedule74
CellTypesRequired
fiscalEndstring
fiscalStartstring
schedule74.apprenticeHoursActualnull | number
schedule74.apprenticeHoursRequirednull | number
schedule74.attestationDatenull | stringstrict
schedule74.dateOfPurchasenull | string
schedule74.dateOfSalenull | string
schedule74.daysBelowPrevailingWagenull | number
schedule74.eligiblePathwaynull | string
schedule74.firstDayComplianceperiodLine 105: the first day of the project's compliance period. Required before the s.127.48(30) post-compliance carbon-intensity substitution can be tested for any acquired property.null | string
schedule74.firstDayHydrogenProducednull | string
schedule74.firstElectionDelaynull | string
schedule74.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
schedule74.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
schedule74.isTaxShelterInvestments.127.48(14) — is the eligible clean hydrogen 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. No CRA box; tri-state with null = unanswered.null | string
schedule74.lastAnnualCiReportDatenull | string
schedule74.line190PartnershipAllocatedItcnull | number
schedule74.line335PartnershipAllocatedLabourAdditionnull | number
schedule74.line645PartnershipAllocatedRecapturenull | number
schedule74.line700ExpectedCarbonIntensitynull | number
schedule74.line705ComplianceperiodEndedDatenull | string
schedule74.line710AverageActualCarbonIntensityLine 710. Required for a Part 1 property acquired after the compliance period even when no Part 7 recovery-tax row is filed.null | number
schedule74.line715FiledRevisedPlannull | string
schedule74.line720DeemedAverageActualCarbonIntensitynull | number
schedule74.line760PartnershipAllocatedRecoveryTaxnull | number
schedule74.metLabourRequirementsPart 3 line-300 answer confirming that the elected prevailing-wage and apprenticeship requirements were met.null | string
schedule74.nrcanProjectCodenull | stringstrict
schedule74.part1Rowsarray
schedule74.part1Rows[].acquisitionDateThe real acquisition date (ISO YYYY-MM-DD). Paragraph (a) of the s.127.48(1) "eligible clean hydrogen property" definition tests acquisition and available-for-use separately, so the AFU date alone cannot establish the acquisition limb. No CRA box — an engine operand, like the Part 6/7 AFU dates. Absent, the row blocks with a box-120 error; supplied, s.127.48(5) picks the later of the two dates to select the specified-percentage bracket.null | stringstrict
schedule74.part1Rows[].adjustmentsT2 SCH 74 Part 1 column 1G: government and non-government assistance in respect of the property that was received, is receivable, or can reasonably be expected. ITA 127.48(10)(c) reduces the capital cost the credit runs on by that total, so the amount is established before the credit is computed. Enter 0 when there is none; a blank is not a nil and holds the row's credit at zero.null | numberstrict
schedule74.part1Rows[].amountEligibleForItcnull | number
schedule74.part1Rows[].assetCodenull | stringstrict
schedule74.part1Rows[].assistanceRepaidColumn 1H — assistance repaid or no longer reasonably expected (s.127.48(11)). INCREASES the amount eligible for ITC. Blank is the ordinary "nothing was repaid" state; an unreadable entry blocks.null | number
schedule74.part1Rows[].availableForUseDatenull | stringstrict
schedule74.part1Rows[].capitalCostnull | numberstrict
schedule74.part1Rows[].ccaClassNumbernull | stringstrict
schedule74.part1Rows[].cleanHydrogenItcAmountnull | number
schedule74.part1Rows[].cleanHydrogenPortionnull | number
schedule74.part1Rows[].designatedWorkSitesnull | stringstrict
schedule74.part1Rows[].electingLabourRequirementsnull | stringstrict
schedule74.part1Rows[].otherCleanEconomyCreditClaimedOnPropertyWas an investment tax credit or any other clean economy tax credit deducted on this property by any person? ITA 127.48(10)(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
schedule74.part1Rows[].percentageForAmmoniaProductionColumn 1M: the expected-use percentage allocated to ammonia production. Both s.127.48(10)(g) allocation legs must be readable - an explicit zero, never a blank.null | number
schedule74.part1Rows[].percentageForHydrogenProductionColumn 1L. Enter explicitly, including 0, unless code 06 proves the statutory sole-ammonia use.null | numberstrict
schedule74.part1Rows[].percentageForQualifiedProjectnull | number
schedule74.part1Rows[].preparedOrInstalledDateThe date preparation or installation of the property was COMPLETED (ISO YYYY-MM-DD). The s.127.46(1) "installation taxation year" operand, and the only date that decides whether the labour requirements reach the property — the available-for-use date is not a substitute for it. No CRA box — an engine operand, the same one Schedule 75 and Schedule 78 collect. Blank blocks a claiming row; there is no fallback.null | string
schedule74.part1Rows[].previouslyUsedOrAcquiredForUseOrLeaseHad the property been used, or acquired for use or lease, by any person or partnership for any purpose before the corporation acquired it? Paragraph (b) of the ITA 127.48(1) definition of eligible clean hydrogen property requires previously unused property, so an explicit N is what admits the row. The prescribed form prints no column for it, which does not make the definition optional.null | stringstrict
schedule74.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.48(10)(a)(ii) and the parallel s.127.45(5)(a)(ii) / s.127.49(5)(a)(ii) forbid.null | string
schedule74.part1Rows[].provinceOrTerritorynull | stringstrict
schedule74.part1Rows[].specifiedPercentageAmmonianull | number
schedule74.part1Rows[].specifiedPercentageHydrogennull | number
schedule74.part4Rowsarray
schedule74.part4Rows[].daysNotOperatingnull | number
schedule74.part4Rows[].endDatenull | string
schedule74.part4Rows[].operatingYearnumber
schedule74.part4Rows[].startDatenull | string
schedule74.part6Rowsarray
schedule74.part6Rows[].adjustedItcnull | number
schedule74.part6Rows[].assetCodenull | string
schedule74.part6Rows[].availableForUseDatenull | string
schedule74.part6Rows[].capitalCostnull | number
schedule74.part6Rows[].ccaClassNumbernull | string
schedule74.part6Rows[].cleanHydrogenItcRecapturednull | number
schedule74.part6Rows[].originalCleanHydrogenItcAmountnull | number
schedule74.part6Rows[].priorRecoveryTaxPaidnull | number
schedule74.part6Rows[].proceedsOrFmvnull | number
schedule74.part6Rows[].provinceOrTerritorynull | string
schedule74.part7Rowsarray
schedule74.part7Rows[].assetCodenull | string
schedule74.part7Rows[].availableForUseDatenull | string
schedule74.part7Rows[].capitalCostnull | number
schedule74.part7Rows[].ccaClassNumbernull | string
schedule74.part7Rows[].electingLabourRequirementsThe row's s.127.46(2) labour-requirements election, on the same terms as the Part 1 column 1Q answer. The s.127.48(18) counterfactual varies the carbon intensity alone and holds the labour status constant, so column 7F mirrors this answer. Unanswered leaves 7F at the regular rate and reports the status as unproven rather than inventing one. No CRA box — an engine operand.null | string
schedule74.part7Rows[].preparedOrInstalledDateThe date preparation or installation of the property was COMPLETED (ISO YYYY-MM-DD; slashes tolerated). The s.127.46(1) "installation taxation year" operand, and the only date that decides whether the labour requirements reach the property at all: a date before the 2023-11-27 cutover puts the property outside s.127.46 entirely, so the election answer cannot change column 7F. A malformed value is treated as unproven, never as the cutover date. The same operand the Part 1 grid collects. No CRA box.null | string
schedule74.part7Rows[].provinceOrTerritorynull | string
schedule74.part7Rows[].recoveryTaxnull | number
schedule74.part7Rows[].specifiedPercentageUsednull | number
schedule74.part7Rows[].specifiedPercentageWouldApplynull | number
schedule74.priorYearRegularRateClaimForInstallationYears.127.46(6)/(7) assess the addition in the INSTALLATION taxation year for a credit claimed at the regular rate "in a taxation year" — which need not be this one. Current Part 1 rows cannot prove an earlier year's claim, so the corporation states it. Unanswered holds lines 315/330.null | string
schedule74.projectExpectedCarbonIntensitynull | numberstrict
schedule74.purchaserBusinessNumbernull | string
schedule74.purchaserElectionTicknull | string
schedule74.purchaserNamenull | string
schedule74.purchaserSignedDatenull | string
schedule74.purchaserSigningOfficernull | string
schedule74.secondElectionDelaynull | string
schedule74.signingOfficerFirstNamenull | stringstrict
schedule74.signingOfficerLastNamenull | stringstrict
schedule74.signingOfficerPositionnull | stringstrict
schedule74.signingOfficerTelephonenull | string
schedule74.submittedFinalDesignsnull | string
schedule74.taxationYearEndDatenull | string
schedule74.taxationYearStartDateTaxation-year bounds (ISO YYYY-MM-DD). They gate every Part 1 s.127.48 date against the real taxation period rather than its calendar label, and they drive the s.127.46(8) proration of the Part 3 additions to tax. 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
schedule74.vendorBusinessNumbernull | string
schedule74.vendorElectionTicknull | string
schedule74.vendorNamenull | string
schedule74.vendorSignedDatenull | string
schedule74.vendorSigningOfficernull | string
schedule74.workersBelowPrevailingWageCountnull | number
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 (39 of 99 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 schedule74
CellAccepted values
fiscalEnddate (YYYY-MM-DD); 10 to 10 characters
fiscalStartdate (YYYY-MM-DD); 10 to 10 characters
schedule74.attestationDate1 to 10 characters
schedule74.firstDayComplianceperiod0 to 20000 characters
schedule74.firstElectionDelayone of "Y", "N"
schedule74.isCanadianCorporationone of "Y", "N", null
schedule74.isExemptFromTaxUnderPartIone of "Y", "N", null
schedule74.isTaxShelterInvestmentone of "Y", "N", null
schedule74.line715FiledRevisedPlanone of "Y", "N"
schedule74.metLabourRequirementsone of "Y", "N", null
schedule74.nrcanProjectCode1 to 15 characters
schedule74.part1Rows[].acquisitionDate1 to 10 characters
schedule74.part1Rows[].adjustments-1000000000000000 to 1000000000000000
schedule74.part1Rows[].assetCodeone of "01", "02", "03", "04", "05", "06", "07", "08", "09", null
schedule74.part1Rows[].availableForUseDate1 to 10 characters
schedule74.part1Rows[].capitalCost-1000000000000000 to 1000000000000000
schedule74.part1Rows[].ccaClassNumber1 to 4 characters
schedule74.part1Rows[].designatedWorkSites1 to 5 characters
schedule74.part1Rows[].electingLabourRequirementsone of "Y", "N", null
schedule74.part1Rows[].otherCleanEconomyCreditClaimedOnPropertyone of "Y", "N", null
schedule74.part1Rows[].percentageForAmmoniaProduction-1000000000000000 to 1000000000000000
schedule74.part1Rows[].percentageForHydrogenProduction-1000000000000000 to 1000000000000000
schedule74.part1Rows[].preparedOrInstalledDate0 to 20000 characters
schedule74.part1Rows[].previouslyUsedOrAcquiredForUseOrLeaseone of "Y", "N", null
schedule74.part1Rows[].propertyIdentifier1 to 10 characters
schedule74.part1Rows[].provinceOrTerritory1 to 2 characters
schedule74.part6Rows[].assetCodeone of "01", "02", "03", "04", "05", "06", "07", "08", "09"
schedule74.part7Rows[].assetCodeone of "01", "02", "03", "04", "05", "06", "07", "08", "09"
schedule74.part7Rows[].electingLabourRequirementsone of "Y", "N"
schedule74.priorYearRegularRateClaimForInstallationYearone of "Y", "N"
schedule74.projectExpectedCarbonIntensity-1000000000000000 to 1000000000000000
schedule74.purchaserElectionTickone of "Y", "N"
schedule74.secondElectionDelayone of "Y", "N"
schedule74.signingOfficerFirstName1 to 4 characters
schedule74.signingOfficerLastName1 to 5 characters
schedule74.signingOfficerPosition1 to 3 characters
schedule74.submittedFinalDesignsone of "Y", "N"
schedule74.vendorElectionTickone of "Y", "N"
taxYearmatches ^\s*(?:1[0-9]{3}|2(?:0(?:[0-1][0-9]{1}|2[0-7])))\s*$; 1000 to 2027

Output cells (134)

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

Output cells for schedule74
CellTypes
line_099null | string
line_100array | boolean | null | number | object | string
line_101array | boolean | null | number | object | string
line_102array | boolean | null | number | object | string
line_103array | boolean | null | number | object | string
line_104array | boolean | null | number | object | string
line_105null | string
line_106null | string
line_110null | string
line_115null | string
line_120null | string
line_125null | string
line_130number
line_135number
line_140number
line_145number
line_150number
line_155number
line_160number
line_165number
line_170number
line_175number
line_180number
line_185null | string
line_190number
line_195number
part1Rows[].propertyIdentifiernull | string
part1Rows[].ccaClassNumbernull | string
part1Rows[].assetCodenull | string
part1Rows[].provinceOrTerritorynull | string
part1Rows[].availableForUseDatenull | string
part1Rows[].designatedWorkSitesnull | string
part1Rows[].capitalCostnumber
part1Rows[].adjustmentsnumber
part1Rows[].assistanceRepaidnumber
part1Rows[].amountEligibleForItcnumber
part1Rows[].percentageForQualifiedProjectnumber
part1Rows[].cleanHydrogenPortionnumber
part1Rows[].percentageForHydrogenProductionnumber
part1Rows[].percentageForAmmoniaProductionnumber
part1Rows[].specifiedPercentageHydrogennumber
part1Rows[].specifiedPercentageAmmonianumber
part1Rows[].cleanHydrogenItcAmountnumber
part1Rows[].electingLabourRequirementsnull | string
part1Rows[]._labourReductionAppliedboolean
line_200null | string
line_201null | string
line_202null | string
line_203null | string
line_204array | boolean | null | number | object | string
line_300null | string
line_305number
line_310number
line_315number
line_320number
line_325number
line_330number
line_335number
line_340number
line_400array | boolean | null | number | object | string
line_401number
line_402array | boolean | null | number | object | string
line_403array | boolean | null | number | object | string
part4Rowsarray
line_500array | boolean | null | number | object | string
line_501array | boolean | null | number | object | string
line_502array | boolean | null | number | object | string
line_503array | boolean | null | number | object | string
line_504array | boolean | null | number | object | string
line_505array | boolean | null | number | object | string
line_506array | boolean | null | number | object | string
line_507array | boolean | null | number | object | string
line_508array | boolean | null | number | object | string
line_509array | boolean | null | number | object | string
line_510array | boolean | null | number | object | string
line_511array | boolean | null | number | object | string
line_600array | boolean | null | number | object | string
line_605array | boolean | null | number | object | string
line_610array | boolean | null | number | object | string
line_615number
line_620number
line_625number
line_630number
line_635number
line_640number
line_645number
line_650number
part6Rowsarray
line_700number
line_705array | boolean | null | number | object | string
line_710number
line_715array | boolean | null | number | object | string
line_720number
line_725array | boolean | null | number | object | string
line_730array | boolean | null | number | object | string
line_735array | boolean | null | number | object | string
line_740number
line_745number
line_750number
line_755number
line_760number
line_765number
part7Rowsarray
total_itc_line_195number
total_labour_addition_line_340number
total_recapture_line_650number
total_recovery_tax_line_765number
s31_feed_clean_hydrogen_itcnumber
s31_feed_clean_hydrogen_clawbacknumber
t2_line_580_feed_labour_additionnumber
warnings[].boxstring
warnings[].anchor_fieldstring
warnings[].severitystring
warnings[].codestring
warnings[].messagestring
warnings[].gate_idstring
warnings[].citation.gate_idstring
warnings[].citation.form_idstring
warnings[].citation.rulestring
warnings[].citation.cra_text_verbatimstring
warnings[].citation.sourcestring
warnings[].citation.source_urlstring
warnings[].citation.form_revisionstring
warnings[].citation.applies_to_boxes[]string
warnings[].citation.verified_atstring
warnings[].anchor_rowstring
fired_gatesobject
provisionalboolean
readyboolean
missing_required[]string
recovery_tax_assessment_year_unprovenboolean
amount_a_total_col_1pnumber
amount_b_total_col_6inumber
amount_c_total_col_7gnumber
Filemark | schedule74 cells