schedule31

T2 Corporation Income Tax Return

Kind
batch
Supported tax years
2024 and later
Strict profile
s31_single_apprenticeship_itc_profile_target_value_v1
Payload schema version
0.9.0
Dependencies (run automatically)
part_i_tax, schedule23, schedule4, schedule49, schedule74, schedule75, schedule76, schedule78, t661

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": [
    "schedule31"
  ],
  "inputs": {
    "taxYear": 2025,
    "fiscalStart": "2025-01-01",
    "fiscalEnd": "2025-12-31",
    "daysInYear": 365,
    "corpType": "1",
    "filerBn": "123456782RC0001",
    "schedule31": {
      "hasRelatedEmployersForApprentices": false,
      "part19Rows": [
        {
          "contractNumber": "CTR-001",
          "eligibleTradeName": "Electrician",
          "eligibleSalaryWages": 10000
        }
      ]
    }
  }
}

Input cells (168)

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 schedule31
CellTypesRequired
corpTypestringstrict
daysInYearDays in the taxation year, tied to the inclusive fiscalStart-to-fiscalEnd span. ITA s.249(1)(a) makes the taxation year the fiscal period, and the Part I rates and limits this request's dependency closure computes are day-weighted, so the engine requires the stated count instead of assuming a calendar year.integerstrict
filerBnstringstrict
fiscalEndLast day of the taxation year, as YYYY-MM-DD, on or after fiscalStart. Its calendar year must equal taxYear. Required for the same reason as fiscalStart.stringstrict
fiscalStartFirst day of the taxation year, as YYYY-MM-DD. Required because this target's dependency closure reaches part_i_tax, whose rates and limits are day-weighted; ITA s.249(1)(a) makes the taxation year the fiscal period, and the engine will not invent calendar-year bounds.stringstrict
schedule31Schedule 31 (Investment Tax Credit, s.127) practitioner blob. A result is emitted only when the blob is present, so an unopened form never blocks export.object
schedule31.amount25CRecapturedCleanHydrogenAmount 25C — Clean Hydrogen recapture / recovery (s.127.48).null | number
schedule31.amount25DRecapturedCleanTechAmount 25D — Clean Tech recapture (s.127.45). From Schedule 75.null | number
schedule31.amount25ERecapturedCleanTechMfgAmount 25E — Clean Tech Mfg recapture (s.127.49).null | number
schedule31.amount25GRecapturedCleanElectricityClean electricity investment tax credit recapture for the year, printed as form amount 24E. A negative value is floored to zero. Where the canonical ITA s.127.491(17) recapture events are also supplied, the calculated amount controls and a disagreement is reported as an error.null | number | string
schedule31.apprenticeshipItcOtherwiseBasisReducedWas the credit already absorbed by one of the carve-outs — most often ITA 13(7.1)(e), which subtracts "all amounts deducted under subsection 127(5) or (6) ..." from the deemed capital cost of the property? A `true` answer makes the 12(1)(t) inclusion NIL: government grinds the pool or includes the credit in income, never both. `null` blocks.boolean | null
schedule31.apprenticeshipItcRelatedToDeductedSalaryExpenditureDid the credit relate to salary and wages that were themselves DEDUCTED in computing income? That is the ITA 12(1)(t) precondition. `null` blocks the following year's Schedule 1.boolean | null
schedule31.ecpcConsolidatedGroupAgreementConfirmedboolean | null
schedule31.ecpcConsolidatedGroupExpenditureLimitnull | number
schedule31.ecpcConsolidatedGroupMemberWas the ECPC a member of a consolidated group at any time in the year? ITA 127(10.61) makes a member's expenditure limit nil absent an allocation under 127(10.62)/(10.63).boolean | null
schedule31.ecpcConsolidatedGroupMemberAllocationnull | number
schedule31.ecpcEligibilityConfirmedUnderlying ITA 127(9) residence, public-corporation/control or eligible- subsidiary tests have been reviewed and documented. Box 382 alone is not treated as a second copy of that legal-status evidence.boolean | null
schedule31.ecpcRefundabilityApplicationConfirmedThe ECPC refund claim satisfies S.C. 2026, c. 3, s.48(5)'s property- acquisition / lease-cost application dates.boolean | null
schedule31.farmingContributionNotAlreadyInT661The check-off contribution entered in Part 3 is not already included in the producer corporation's Form T661. Explicit false blocks duplication.boolean | null
schedule31.farmingGrossContributionGross contribution amount (engine applies 80% factor → line 103).null | number
schedule31.hasRelatedEmployersForApprenticesT2 SCH 31 Part 19 box 611: related employers employ the same eligible apprentice, so the s.127(9) apprenticeship expenditure cap must be shared under the related-employer agreement.boolean | nullstrict
schedule31.isAssociatedForExpLimitPart 9 line 385 — Associated with another CCPC for SR&ED expenditure-limit purposes (per s.127(10.1)/(10.2)). When true, triggers Schedule 49 dependency.boolean | null
schedule31.isCcpcThroughout-the-year CCPC status per s.125(7). Gates the 35% enhanced SR&ED rate (s.127(10.1)) and refundability under Part 14/15.boolean | null
schedule31.isEcpcLine 382 — Are you an eligible Canadian public corporation (ECPC)?boolean | null
schedule31.isElectingRevenueBasedLimitLine 383 — Are you a CCPC electing under s.127(10.31) (single) or s.127(10.32) (associated group) to determine the SR&ED expenditure limit on the REVENUE measure instead of taxable capital? When true (or for an ECPC) in a TYS-after-Dec-15-2024 year, Part 10B substitutes line 399 for line 398 in the $6M × [($60M − A) ÷ $60M] formula.boolean | null
schedule31.isExcludedCorpPart 2B line 650 — Excluded corporation per s.127.1(2) (controlled by / related to tax-exempt or public-authority persons). Triggers footnote-7 40%-on-all refund tier.boolean | null
schedule31.isFarmingCheckOffDuesClaimantPart 3 line 102 — Claiming an agricultural-organization SR&ED contribution (e.g. check-off dues). 80% factor applies.boolean | null
schedule31.isQualifyingCorpPart 2A line 101 — Qualifying corporation per s.127.1(2) (CCPC + PY taxable income ≤ qualifying income limit).boolean | null
schedule31.itcBusinessContinuesPostAocTri-state attestation: the same or a similar business (s.127(9.1)(d)(i)) is carried on for profit post-AoC and substantially all post-AoC tax payable is attributable to it, so the s.127(5) tax-payable cap already binds. null = unanswered — a Part-I deduction drawing on a pre-AoC opening pool FAILS CLOSED (error severity, removed from T2 line 652) until this is answered or the s.127(9.1)(d) cap below is supplied.boolean | null
schedule31.itcLossRestrictionEventDateISO YYYY-MM-DD date of the loss restriction event the corporation was last subject to. Send it with the pre-event vintages or cohorts when no linked prior filed return carries that provenance. An unparseable value raises and blocks the restriction calculation.null | string
schedule31.line140CleanHydrogenItcLine 140 — Clean Hydrogen ITC (s.127.48). Sourced from Schedule 76 (RETRIEVAL-OPEN — CRA may publish later); entered directly today.null | number
schedule31.line155CleanTechItcLine 155 — Clean Technology ITC (s.127.45). From Schedule 75.null | number
schedule31.line170CleanTechMfgItcLine 170 — Clean Tech Manufacturing ITC (s.127.49). Entered directly on S31 (no separate companion form per Part 24).null | number
schedule31.line185CleanElectricityApprenticeHoursActualnull | number
schedule31.line185CleanElectricityApprenticeHoursRequirednull | number
schedule31.line185CleanElectricityAttestationDatenull | string
schedule31.line185CleanElectricityClaimFormAuthorizeds.127.491(2) prescribed form containing prescribed information was completed by the filing-due date.boolean | null
schedule31.line185CleanElectricityDaysBelowPrevailingWagenull | number
schedule31.line185CleanElectricityItcLine 185 — Clean electricity ITC (s.127.491). E (26) fifth clean-economy stream; property acquired after Apr 15 2024.null | number
schedule31.line185CleanElectricityLabourElections.127.46(2) election to claim the regular rather than reduced rate.boolean | null
schedule31.line185CleanElectricityMetLabourRequirementsInstallation-year s.127.46(3)/(5) compliance answer.null | string
schedule31.line185CleanElectricityPropertiesPer-property authority for line 185.array
schedule31.line185CleanElectricityProperties[].acquisitionDatenull | string
schedule31.line185CleanElectricityProperties[].assistanceAmountnull | number
schedule31.line185CleanElectricityProperties[].availableForUseDatenull | string
schedule31.line185CleanElectricityProperties[].capitalCostnull | number
schedule31.line185CleanElectricityProperties[].designatedWorkSitess.127.46(1) designated work site(s) covered by the labour election.null | string
schedule31.line185CleanElectricityProperties[].otherCleanEconomyCreditClaimedOnPropertyITA 127.491(9)(a)(ii): another clean-economy credit claimed by any person.null | string
schedule31.line185CleanElectricityProperties[].preparedOrInstalledDates.127.46(1) installation taxation year: the date preparation or installation was completed. s.127.46 reaches this credit only for property prepared or installed on or after 2023-11-28, and the available-for-use date is not a substitute.null | string
schedule31.line185CleanElectricityProperties[].propertyIdentifierShared fixed-asset key for the five-credit anti-stacking register.null | string
schedule31.line185CleanElectricityProperties[].qualifyingEntityTypenull | string
schedule31.line185CleanElectricityProperties[].writtenAgreementConfirmednull | string
schedule31.line185CleanElectricitySigningOfficerFirstNamePrescribed-form signing-officer evidence for a regular-rate election.null | string
schedule31.line185CleanElectricitySigningOfficerLastNamenull | string
schedule31.line185CleanElectricitySigningOfficerPositionnull | string
schedule31.line185CleanElectricityWorkersBelowPrevailingWageCountnull | number
schedule31.line200CcusItcLine 200 — Carbon Capture, Utilization & Storage ITC (s.127.44). From Schedule 78.null | number
schedule31.line210CoopRemittanceQpLine 210 — Credit deemed as a remittance of co-op corporations.null | number
schedule31.line215CreditExpiredQpExtraLine 215 EXTRA — Manual addition to the engine-computed expiry amount (carryforward expiries are auto-detected from vintage ledger; this captures any non-vintage-tracked adjustments).null | number
schedule31.line230AmalgamTransferInQpLine 230 — Credit transferred on amalgamation / wind-up (s.87/88).null | number
schedule31.line235ItcFromRepaymentQpLegacy reported line 235. The engine neutralizes it until an authenticated repayment/property authority path is implemented.null | number
schedule31.line250PartnershipAllocationQpLine 250 — Credit allocated from a partnership (s.127(8)).null | number
schedule31.line260DeductedFromPartIQpLine 260 — Credit deducted from Part I tax.null | number
schedule31.line280TransferredToPartViiQpLine 280 — Credit transferred to offset Part VII tax liability.null | number
schedule31.line310RefundClaimedQpLine 310 — Refund amount designated on the prescribed form under ITA 127.1(1)(d), capped by the Part 7 maximum. Explicit 0 is a valid designation; null leaves the designation unanswered.null | number
schedule31.line360CapitalExpendituresT661Line 360 — Capital SR&ED expenditures incurred after December 15, 2024 (T661 line 558). E (26): the 2024 reform restores capital SR&ED for depreciable property acquired after Dec 15 2024 used for SR&ED.null | number
schedule31.line370RepaymentsT661Line 370 — Repayments made in the year (T661 line 560).null | number
schedule31.line390PriorYearTaxableIncomeBox 390 — PY taxable income (pre loss-carrybacks). Short-year prorated by the engine per form note.null | number
schedule31.line398PyTaxableCapitalMinus10MLegacy/import line 398 value. Hub computation derives this stand-alone CCPC line from canonical Prior-Year Tax Attributes TCEC; associated CCPCs use Schedule 49. Retained for imported form data and API backward compatibility, never derived from the current-year draft S33 node.null | number
schedule31.line399EcpcRevenueMinus15MLine 399 — variable A of s.127(10.6): three-year average annual revenue MINUS $15M (floored at 0, capped at $60M). The form-faithful DIRECT input — the practitioner enters the already-averaged/grossed-up figure. Supply this OR the raw revenuePriorYear1/2/3 inputs below (the raw path, when supplied, wins and lets the engine do the averaging).null | number
schedule31.line400Schedule49AllocationLegacy/import line 400 value. Hub computation resolves the filing corporation's canonical Schedule 49 row; retained only as an API/import fallback for records without a matched Schedule 49 result.null | number
schedule31.line460RepaymentAssistanceCcpcLine 460 — Repayment of assistance that reduced a qualifying expenditure for a CCPC. 35% rate applied.null | number
schedule31.line480RepaymentPre2015Line 480 — Repayment of assistance made after Sep 16, 2016 that reduced a qualifying expenditure incurred BEFORE 2015. 20% rate.null | number
schedule31.line490RepaymentPost2014Line 490 — Repayment of assistance made after Sep 16, 2016 that reduced a qualifying expenditure incurred AFTER 2014. 15% rate.null | number
schedule31.line510CoopRemittanceSrednull | number
schedule31.line515CreditExpiredSredExtranull | number
schedule31.line530AmalgamTransferInSrednull | number
schedule31.line550PartnershipAllocationSrednull | number
schedule31.line560DeductedFromPartISrednull | number
schedule31.line580TransferredToPartViiSrednull | number
schedule31.line610RefundClaimedSredBox 610, the refund of the SR&ED investment tax credit claimed for the year. On an eligible Canadian private corporation in a reform year it is the separate ITA s.127.1 refund claim that S.C. 2026, c. 3, s.48(5) governs: ECPC status and the tax-year-start rule prove the enhanced rate, not this refund rule, so state the amount rather than leaving it to be inferred.null | number | string
schedule31.line611RelatedEmployerSingleClaimerAgreementPart 19 line 611 — Related-employer single-claimer agreement is on file per s.127(11.4) when multiple s.251(2)-related employers jointly employ an apprentice.boolean | null
schedule31.line612CoopRemittanceAjctcnull | number
schedule31.line615CreditExpiredAjctcExtranull | number
schedule31.line630AmalgamTransferInAjctcnull | number
schedule31.line635ItcFromRepaymentAjctcLegacy reported line 635. The engine neutralizes it until an authenticated repayment/apprentice authority path is implemented.null | number
schedule31.line655PartnershipAllocationAjctcnull | number
schedule31.line660DeductedFromPartIAjctcnull | number
schedule31.line760PartnershipExcessSredLine 760 — Corporate partner's share of partnership-level excess SR&ED ITC recapture (s.127(28)).null | number
schedule31.line765CoopRemittanceChildCarenull | number
schedule31.line770CreditExpiredChildCareExtranull | number
schedule31.line777AmalgamTransferInChildCarenull | number
schedule31.line782PartnershipAllocationChildCarenull | number
schedule31.line785DeductedFromPartIChildCarenull | number
schedule31.line799PartnershipExcessChildCareLine 799 — Corporate partner's share of partnership-level excess child-care-spaces ITC recapture.null | number
schedule31.line841CoopRemittancePpmnull | number
schedule31.line845CreditExpiredPpmExtranull | number
schedule31.line860AmalgamTransferInPpmnull | number
schedule31.line885CarryforwardAppliedPpmLine 885 — Carryforward applied to reduce Part I tax.null | number
schedule31.line901CarrybackY1QpLine 901 — Credit applied to 1st previous tax year.null | number
schedule31.line902CarrybackY2QpLine 902 — Credit applied to 2nd previous tax year.null | number
schedule31.line903CarrybackY3QpLine 903 — Credit applied to 3rd previous tax year.null | number
schedule31.line911CarrybackY1Srednull | number
schedule31.line912CarrybackY2Srednull | number
schedule31.line913CarrybackY3Srednull | number
schedule31.line931CarrybackY1Ajctcnull | number
schedule31.line932CarrybackY2Ajctcnull | number
schedule31.line933CarrybackY3Ajctcnull | number
schedule31.openingCarryforwardApprenticeshipByVintagenull | object
schedule31.openingCarryforwardChildCareByVintagenull | object
schedule31.openingCarryforwardPpmByVintagenull | object
schedule31.openingCarryforwardQpByVintageOpening carryforward by vintage year (per s.127(9)(c) 20-year clock). Key is the year-of-original-generation (as string per JSON convention). Vintages older than tax_year − 20 are expired by the engine and rolled into the per-stream line 215/515/615/770.null | object
schedule31.openingCarryforwardSredByVintagenull | object
schedule31.openingPreLossRestrictionCohortsPer credit stream, the opening carryforward earned before the loss restriction event keyed by vintage year, as stream to year to amount and taxationPeriodId. The streams are qualifiedProperty, sred, apprenticeship, preProductionMining and childCareSpaces; a bare amount may stand in for the object. Each amount must be non-negative.null | object
schedule31.openingPreLossRestrictionVintagesPer credit stream, the list of vintage years whose opening carryforward was earned before the loss restriction event. Each year may be an integer or a four-digit string. This is the coarser sibling of openingPreLossRestrictionCohorts, kept for filed renders that carry no cohort detail.null | object
schedule31.part16Calc1Rowsarray
schedule31.part16Calc1Rows[].acquisitionYearTax year in which the property was acquired. 20-year lookback.null | number
schedule31.part16Calc1Rows[].descriptionnull | string
schedule31.part16Calc1Rows[].isArmLengthDispositionWhether the disposition was at arm's length. Drives the former s.127(27.1) carve-out (repealed 2017, c. 20, s. 23).boolean | null
schedule31.part16Calc1Rows[].nonArmLengthIntendsAllOrSubstantiallyAllSredUsePer form Part 16 note + former s.127(27.1) (repealed 2017, c. 20, s. 23): when true AND isArmLengthDisposition is false, recapture is deferred to the purchaser.boolean | null
schedule31.part16Calc1Rows[].originalItcColumn 700 — original ITC amount calculated on the property when acquired (or original user's ITC for non-arm's-length acquirees).null | number
schedule31.part16Calc1Rows[].recalcAtAcquisitionRateColumn 710 — ITC rate at acquisition × proceeds-of-disposition (arm's-length) or fair-market-value (non-arm's-length).null | number
schedule31.part16Calc2Rowsarray
schedule31.part16Calc2Rows[].alreadyRecapturedCalc1Column 740 — Amount already recaptured under Calc 1 on the same property (avoids double-counting on partial transfers).null | number
schedule31.part16Calc2Rows[].descriptionnull | string
schedule31.part16Calc2Rows[].itcEarnedByTransfereeColumn 750 — ITC earned by the transferee for the transferred expenditures (caps the formula result).null | number
schedule31.part16Calc2Rows[].podOrFmvColumn 730 — Proceeds of disposition (arm's-length) or FMV (other cases) at conversion / disposition.null | number
schedule31.part16Calc2Rows[].transfereeRateColumn 720 — Rate the transferee used in determining its ITC for qualified expenditures under the s.127(13) agreement.null | number
schedule31.part19Rowsarray
schedule31.part19Rows[].contractNumberColumn 601 — Apprenticeship contract number (or SIN or name when contract # unavailable).null | stringstrict
schedule31.part19Rows[].eligibleSalaryWagesColumn 603 — Eligible salary and wages payable to the apprentice for the tax year (net of any other government / non-government assistance).null | numberstrict
schedule31.part19Rows[].eligibleSalaryWagesNetConfirmedExplicit s.127(11.1)(c.4) confirmation; the wage amount alone cannot prove that assistance was removed.boolean | null
schedule31.part19Rows[].eligibleTradeNameColumn 602 — Name of the eligible Red-Seal trade.null | stringstrict
schedule31.part19Rows[].isEmployedInCanadaITA 127(9) "eligible apprentice" — employed in Canada.boolean | null
schedule31.part19Rows[].isWithinFirst24MonthsOfRegisteredContractITA 127(9) "eligible apprentice" — within the registered contract's first 24 months.boolean | null
schedule31.part19Rows[].sourceEmploymentIdStable apprentice/payroll identity. Reuse it if the same individual has more than one contract row so the per-apprentice cap cannot be duplicated.null | string
schedule31.part19Rows[].tradeIsPrescribedITA 127(9) "eligible apprentice" — trade prescribed for Canada/province.boolean | null
schedule31.part23Rowsarray
schedule31.part23Rows[].acquisitionYearTax year in which the property was acquired. 60-month lookback (5 years) per former s.127(27.12) (repealed 2017, c. 20, s. 23).null | number
schedule31.part23Rows[].descriptionnull | string
schedule31.part23Rows[].originalItcChildCareSpaceLine 792 — Original ITC amount on a disposed child care space (former s.127(27.12)(a), repealed 2017, c. 20, s. 23).null | number
schedule31.part23Rows[].originalItcEligibleExpenditureLine 795 — Original ITC on a disposed eligible expenditure property (former s.127(27.12)(b) input, repealed 2017, c. 20, s. 23).null | number
schedule31.part23Rows[].podOrFmvProceeds of disposition (arm's-length) or FMV (other cases). Drives line 797 = 25% × this amount.null | number
schedule31.part4Rowsarray
schedule31.part4Rows[].assistanceAmountAssistance reasonably attributable to acquiring the property under s.127(11.1)(b); the engine subtracts it when publishing box 125.null | number
schedule31.part4Rows[].assistanceSourceCategoryWhether that assistance is government, non-government, or affirmatively none.null | string
schedule31.part4Rows[].atlanticLocationColumn 120 — Atlantic Canada province code or "Gaspé Peninsula" / "offshore" identifier per Reg 4610 + Reg 4609.null | string
schedule31.part4Rows[].ccaClassColumn 105 — CCA class number (e.g. "8", "10", "53").null | string
schedule31.part4Rows[].dateAvailableForUseColumn 115 — date available for use (ISO YYYY-MM-DD). Drives the s.127(11.2) AFU timing gate.null | string
schedule31.part4Rows[].descriptionColumn 110 — free-form description of the investment.null | string
schedule31.part4Rows[].investmentAmountCapital cost before the s.127(11.1)(b) assistance reduction and before s.13(7.1)/(7.4) grinds. The engine publishes the net at box 125.null | number
schedule31.priorFiscalPeriodsCompleteAttestation that every taxation period preceding this one is present in the binder, so the preceding-period count can be used as the statutory count for the carryback and vintage arithmetic. Must be true, false or null; anything else is rejected.boolean | null
schedule31.priorYearS13_7_1UccReductionSchedule 31's prior-year qualified-property investment tax credit grind on undepreciated capital cost under ITA s.13(7.1), as an object with appliesToTaxYear, itcDeductedQp, itcRefundedQp, total, byClass and unattributed. Sent on this blob it is lifted into Schedule 8; the identically named root key is the other accepted spelling.null | object
schedule31.priorYearTaxYearDaysDays in the prior tax year. Drives short-year proration of line 390.null | number
schedule31.priorYearTaxYearS249_4_bElectionWhether the corporation elected under ITA paragraph 249(4)(b) for the preceding taxation year. Paragraph 249.1(1)(a) caps a corporate fiscal period at 53 weeks, and 249(4)(b) extends that by up to seven days where the prior year would otherwise have ended in the seven-day period before an acquisition of control, but only where the taxpayer so elects in its return for that year. Only an explicit true buys the extra days, so an unelected day count above the 53-week ceiling stays unlawful and the prior-year day count is refused.boolean | null
schedule31.revenuePriorYear1RAW-revenue path (s.127(10.6)/(10.64), form line-399 footnote 5): the annual revenue reflected in the financial statements for the 1st/2nd/3rd fiscal year immediately preceding and ending before this tax year. The engine requires the set matching the canonical prior periods. For a consolidated-group ECPC, the accompanying ultimate-parent fiscal-year day counts are required by s.127(10.64)(d).null | number
schedule31.revenuePriorYear2null | number
schedule31.revenuePriorYear3null | number
schedule31.schedule125FarmingIndustryLinkedSchedule 125 identifies the corporation's farming industry, as required by the Schedule 31 Part 3 instruction once box 102 is Yes.boolean | null
schedule31.schedule31FilingDueDateThe taxpayer's filing-due date, as an exact ISO YYYY-MM-DD date after the tax-year end. Read with schedule31PrescribedFormFiledDate to test the ITA s.127(9) rule that the prescribed Schedule 31 information be filed no later than 12 months after it. Required once a T661 claim exposes a current-year ITC base; either date missing or on or before the year end blocks at error severity.null | string
schedule31.schedule31PrescribedFormFiledDateThe date the prescribed Schedule 31 information was or will be filed, as an exact ISO YYYY-MM-DD date after the tax-year end. The other half of the ITA s.127(9) 12-month deadline test; see schedule31FilingDueDate.null | string
schedule31.schedule31PrescribedInformationCompleteConfirmation that Schedule 31 itself contains the prescribed ITC information. The ITA s.127(9) form deadline is a separate statutory gate from the T661 s.37 prescribed-information deadline, so a complete and timely T661 is not a substitute. Only true releases the current-year T661 credit base; blank and false both hold it at error severity.boolean | null
schedule31.t661Line559SredPoolT661 line 559 — SR&ED qualified expenditure pool. Engine adds the Part 3 line 103 (farming check-off × 80%) automatically.null | number
schedule31.taxPayableAttributableToSameOrSimilarBusinesss.127(9.1)(d) cap — Part I tax otherwise payable × same-or-similar business income ÷ taxable income (practitioner-computed; the income streaming is not derivable from S31's own inputs). The pre-AoC claim is ground to this cap. Explicit 0 is valid; null = not supplied.null | number
schedule31.ultimateParentFiscalYearDaysPriorYear1null | number
schedule31.ultimateParentFiscalYearDaysPriorYear2null | number
schedule31.ultimateParentFiscalYearDaysPriorYear3null | 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 (14 of 168 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 schedule31
CellAccepted values
corpType0 to 20000 characters
daysInYear1 to 1000000000000000
filerBn0 to 20000 characters
fiscalEnddate (YYYY-MM-DD); 10 to 10 characters
fiscalStartdate (YYYY-MM-DD); 10 to 10 characters
schedule31.line185CleanElectricityMetLabourRequirementsone of "Y", "N"
schedule31.line185CleanElectricityProperties[].otherCleanEconomyCreditClaimedOnPropertyone of "Y", "N"
schedule31.line185CleanElectricityProperties[].qualifyingEntityTypeone of "taxable_corporation", "qualifying_trust"
schedule31.line185CleanElectricityProperties[].writtenAgreementConfirmedone of "Yes", "No"
schedule31.part19Rows[].contractNumber0 to 20000 characters
schedule31.part19Rows[].eligibleSalaryWages-1000000000000000 to 1000000000000000
schedule31.part19Rows[].eligibleTradeName0 to 20000 characters
schedule31.part4Rows[].assistanceSourceCategoryone of "none", "government", "non_government"
taxYearmatches ^\s*(?:1[0-9]{3}|2(?:0(?:[0-1][0-9]{1}|2[0-7])))\s*$; 1000 to 2027

Output cells (322)

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

Output cells for schedule31
CellTypes
amount_10Anumber
amount_10Bnumber
amount_10Cnumber
amount_10Dnumber
amount_10D_selected_basenumber
amount_10D_tax_year_daysinteger
amount_11Anumber
amount_11Bnumber
amount_11Cnumber
amount_11Dnumber
amount_11Enumber
amount_11Fnumber
amount_11Gnumber
amount_11Hnumber
amount_11Inumber
amount_11Jnumber
amount_12Anumber
amount_12Bnumber
amount_12Cnumber
amount_12Dnumber
amount_12Enumber
amount_12Fnumber
amount_12Gnumber
amount_13Anumber
amount_14Anumber
amount_14Bnumber
amount_14Cnumber
amount_14Dnumber
amount_14Enumber
amount_14Fnumber
amount_14Gnumber
amount_15Anumber
amount_15Bnumber
amount_15Cnumber
amount_15Dnumber
amount_15Enumber
amount_15Fnumber
amount_15Gnumber
amount_16Anumber
amount_16Bnumber
amount_17Anumber
amount_17Bnumber
amount_17Cnumber
amount_17Dnumber
amount_18Anumber
amount_18Bnumber
amount_18Cnumber
amount_19Anumber
amount_20Anumber
amount_20Bnumber
amount_20Cnumber
amount_20Dnumber
amount_20Enumber
amount_20Fnumber
amount_21Anumber
amount_22Anumber
amount_22Bnumber
amount_22Cnumber
amount_22Dnumber
amount_23A_totalnumber
amount_23Bnumber
amount_24Anumber
amount_25Anumber
amount_25Bnumber
amount_25Cnumber
amount_25Dnumber
amount_25Enumber
amount_25Fnumber
amount_25G_clean_electricitynumber
amount_26Anumber
amount_26Bnumber
amount_26Cnumber
amount_26Dnumber
amount_26Enumber
amount_26Fnumber
amount_4Anumber
amount_5Anumber
amount_5Bnumber
amount_5Cnumber
amount_5Dnumber
amount_5Enumber
amount_5Fnumber
amount_5Gnumber
amount_6Anumber
amount_7Anumber
amount_7Bnumber
amount_7Cnumber
closingCarryforwardByVintage.apprenticeshipobject
closingCarryforwardByVintage.childCareSpacesobject
closingCarryforwardByVintage.preProductionMiningobject
closingCarryforwardByVintage.qualifiedPropertyobject
closingCarryforwardByVintage.sredobject
expired_apprentice_detailarray
expired_childcare_detailarray
expired_ppm_detailarray
expired_qp_detailarray
expired_sred_detailarray
farmingGrossContributionnumber
fired_gatesobject
hasRelatedEmployersForApprenticesThe caller's answer to the related-employers question. Null when the request does not state it, which the schedule reports rather than reading as No.boolean | null
isAssociatedForExpLimitboolean
isCcpcboolean
isExcludedCorparray | boolean | null | number | object | string
isQualifyingCorpboolean
itcBusinessContinuesPostAocarray | boolean | null | number | object | string
line_101boolean
line_102boolean
line_103number
line_105array | boolean | null | number | object | string
line_110array | boolean | null | number | object | string
line_115array | boolean | null | number | object | string
line_120array | boolean | null | number | object | string
line_125number
line_140number
line_155number
line_170number
line_185number
line_200number
line_210number
line_215number
line_220number
line_230number
line_235number
line_240number
line_250number
line_260number
line_280number
line_310number
line_320number
line_350number
line_360number
line_370number
line_380number
line_382boolean
line_383boolean
line_385array | boolean | null | number | object | string
line_385_input_sourcestring
line_390number
line_398number
line_398_authoritative_input_providedboolean
line_398_input_metadata.asOfarray | boolean | null | number | object | string
line_398_input_metadata.basisarray | boolean | null | number | object | string
line_398_input_metadata.confirmedboolean
line_398_input_metadata.expectedAsOfstring
line_398_input_metadata.expectedBasisstring
line_398_input_metadata.sourcearray | boolean | null | number | object | string
line_398_input_sourcestring
line_399number
line_399_sourcearray | boolean | null | number | object | string
line_400number
line_400_authoritative_input_providedboolean
line_400_input_sourcestring
line_400_matched_business_numberarray | boolean | null | number | object | string
line_400_matched_corporation_type_codearray | boolean | null | number | object | string
line_410number
line_420number
line_430number
line_440number
line_450number
line_460number
line_480number
line_490number
line_510number
line_515number
line_520number
line_530number
line_540number
line_550number
line_560number
line_580number
line_601Box 601, the apprenticeship contract number. Null when the Part 19 row does not state it; the schedule reports the unanswered cell rather than filing a substitute value.null | string
line_602Box 602, the eligible trade name. Null when the Part 19 row does not state it; the schedule reports the unanswered cell rather than filing a substitute value.null | string
line_603Box 603, eligible salary and wages payable to the apprentice. Null when the Part 19 row does not state it; the schedule reports the unanswered cell rather than filing a substitute value.null | number
line_604number
line_605number
line_610number
line_611array | boolean | null | number | object | string
line_612number
line_615number
line_620number
line_625number
line_630number
line_635number
line_640number
line_650array | boolean | null | number | object | string
line_655number
line_660number
line_690number
line_700number
line_710number
line_720number
line_730number
line_740number
line_750number
line_760number
line_765number
line_770number
line_775number
line_777number
line_782number
line_785number
line_790number
line_792number
line_795number
line_797number
line_799number
line_841number
line_845number
line_850number
line_860number
line_885number
line_890number
line_901number
line_901_target_tax_year_endarray | boolean | null | number | object | string
line_902number
line_902_target_tax_year_endarray | boolean | null | number | object | string
line_903number
line_903_target_tax_year_endarray | boolean | null | number | object | string
line_911number
line_911_target_tax_year_endarray | boolean | null | number | object | string
line_912number
line_912_target_tax_year_endarray | boolean | null | number | object | string
line_913number
line_913_target_tax_year_endarray | boolean | null | number | object | string
line_931number
line_931_target_tax_year_endarray | boolean | null | number | object | string
line_932number
line_932_target_tax_year_endarray | boolean | null | number | object | string
line_933number
line_933_target_tax_year_endarray | boolean | null | number | object | string
missing_requiredarray
part16Calc1Rowsarray
part16Calc2Rowsarray
part19Rows[].line_601Box 601, the apprenticeship contract number. Null when the Part 19 row does not state it; the schedule reports the unanswered cell rather than filing a substitute value.null | string
part19Rows[].line_602Box 602, the eligible trade name. Null when the Part 19 row does not state it; the schedule reports the unanswered cell rather than filing a substitute value.null | string
part19Rows[].line_603Box 603, eligible salary and wages payable to the apprentice. Null when the Part 19 row does not state it; the schedule reports the unanswered cell rather than filing a substitute value.null | number
part19Rows[].line_604number
part19Rows[].line_605number
part19Rows[].sourceEmploymentIdarray | boolean | null | number | object | string
part23Rowsarray
part4Rowsarray
provisionalboolean
readyboolean
reported_legacy_line_398array | boolean | null | number | object | string
reported_legacy_line_400array | boolean | null | number | object | string
revenue_election_activeboolean
s127_9_1_pre_aoc_deductednumber
s127_9_1_pre_aoc_opening_totalnumber
s127_9_1_restricted_excessnumber
s127_9_1_same_business_tax_caparray | boolean | null | number | object | string
s13_7_1NextYearUccReduction.appliesToTaxYeararray | boolean | null | number | object | string
s13_7_1NextYearUccReduction.byClassarray
s13_7_1NextYearUccReduction.itcDeductedQpnumber
s13_7_1NextYearUccReduction.itcRefundedQpnumber
s13_7_1NextYearUccReduction.sourceTaxYearEndarray | boolean | null | number | object | string
s13_7_1NextYearUccReduction.sourceTaxYearIdarray | boolean | null | number | object | string
s13_7_1NextYearUccReduction.totalnumber
s13_7_1NextYearUccReduction.unattributednumber
short_year_proration_appliedboolean
t2_line_602_recapturenumber
t2_line_652_deductednumber
t2_line_780_refundednumber
t661Line559SredPoolnumber
warnings[].boxThe form box the finding is about, or null when the finding is about the return rather than a printed box.null | string
warnings[].citation.displayThe citation as it is shown to a preparer.string
warnings[].citation.kindThe authority family the section belongs to.string
warnings[].citation.sectionThe cited provision.string
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[].severityAlways an error: a divergent or unprovable opening blocks the return.string
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[].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[].fieldThe Filemark input field a finding names when it is not a printed box.string
warnings[].gate_idIdentifier of the registered T4012 gate that raised the finding; travels with `citation`.string
warnings[].sectionstring
warnings[].taxYearinteger | null
warnings[]A Schedule 31 refusal that cites the governing statute or the printed form directly rather than a registered form gate, or a gate-cited refusal that names the paragraph its neutralization rests on.object
warnings[].kindAlways the validation family.string
warnings[].law_citation.displaystring
warnings[].law_citation.kindstring
warnings[].law_citation.sectionstring
warnings[].citation.formstring
warnings[].citation.pathstring
warnings[].citation.revisionstring
warnings[].gridstring
warnings[].actualThe opening amount this return states.number
warnings[].expectedThe closing amount the authenticated prior filed return proves, or null when no filed projection exists to reconcile against.null | number
warnings[].keyThe reconciled balance, named for a preparer.string
warnings[].reasonWhat broke and what to do about it.string
formRevisionstring
closingCarryforwardTaxationPeriodIds.apprenticeshipobject
closingCarryforwardTaxationPeriodIds.childCareSpacesobject
closingCarryforwardTaxationPeriodIds.preProductionMiningobject
closingCarryforwardTaxationPeriodIds.qualifiedPropertyobject
closingCarryforwardTaxationPeriodIds.sredobject
expired_transfer_detailarray
transferInByVintage.apprenticeshipobject
transferInByVintage.childCareSpacesobject
transferInByVintage.preProductionMiningobject
transferInByVintage.qualifiedPropertyobject
transferInByVintage.sredobject
closingPreLossRestrictionVintages.apprenticeshiparray
closingPreLossRestrictionVintages.childCareSpacesarray
closingPreLossRestrictionVintages.preProductionMiningarray
closingPreLossRestrictionVintages.qualifiedPropertyarray
closingPreLossRestrictionVintages.sredarray
s127_9_1_loss_restriction_event_date_cyarray | boolean | null | number | object | string
closingPreLossRestrictionCohorts.apprenticeshipobject
closingPreLossRestrictionCohorts.childCareSpacesobject
closingPreLossRestrictionCohorts.preProductionMiningobject
closingPreLossRestrictionCohorts.qualifiedPropertyobject
closingPreLossRestrictionCohorts.sredobject
t2_line_580_feed_labour_additionnumber
cleanElectricityPropertyRowsarray
Filemark | schedule31 cells