schedule42

T2 Corporation Income Tax Return

Kind
batch
Supported tax years
2011 and later
Strict profile
s42_single_source_credit_pool_profile_target_value_v1
Payload schema version
0.9.0
Dependencies (run automatically)
part_i_tax, schedule31, schedule38

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": [
    "schedule42"
  ],
  "inputs": {
    "taxYear": 2025,
    "fiscalStart": "2025-01-01",
    "fiscalEnd": "2025-12-31",
    "daysInYear": 365,
    "schedule42": {
      "corporationName": "Northstar Bank of Canada",
      "businessNumber": "222333445",
      "currentTaxYearEnd": "2025-12-31",
      "openingUnusedCreditPoolByYear": {
        "2017": 100000
      },
      "carryforwardClaimAppliedToCurrentS38": 50000,
      "currentYearGeneratedFromS38": 25000
    },
    "isCCPC": true
  }
}

Input cells (25)

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 schedule42
CellTypesRequired
daysInYearDays in the taxation year, tied to the inclusive fiscalStart-to-fiscalEnd span. 2024 is a leap year, so the exact witness period is 366 days.integerstrict
fiscalEndLast day of the taxation year. 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 period instead of assuming a calendar year. It matches the Schedule 42 current tax-year end.stringstrict
fiscalStartFirst day of the taxation year, stated for the same reason as fiscalEnd.stringstrict
isCCPCThe corporation was a Canadian-controlled private corporation (ITA s.125(7) definition) throughout the taxation year.boolean
schedule42.amalgamationOrWindupTransferAmountLine 220 — credit transferred on amalgamation (s.87(2.1)) or subsidiary wind-up (s.88(1)). Expiry clock does NOT reset.null | number
schedule42.amalgamationTransferPredecessorBreakdownByYearLine 220 per-source-year predecessor breakdown ("YYYY" → amount) — transferred entries retain the predecessor's generating year.object
schedule42.aocContinuingBusinessIncomeNumeratorAoC proportional-ratio NUMERATOR — income from the continuing (same-or-similar) business for the particular year.null | number
schedule42.aocTaxableIncomeForRatioDenominatorAoC proportional-ratio DENOMINATOR input — taxable income for the particular year (engine uses greater of numerator and this).null | number
schedule42.businessNumber9-digit BN or 15-char RC account.null | stringstrict
schedule42.carrybackTo1stPreviousYearAmountLine 901 — carryback to 1st previous tax year (s.190.1(3)(b)).null | number
schedule42.carrybackTo2ndPreviousYearAmountLine 902 — carryback to 2nd previous tax year.null | number
schedule42.carrybackTo3rdPreviousYearAmountLine 903 — carryback to 3rd previous tax year.null | number
schedule42.carryforwardClaimAppliedToCurrentS38Line 420 — carryforward claim applied to reduce current-year Part VI tax (≡ S38 line 884 / unusedPartIcreditsClaimedFromS42).null | numberstrict
schedule42.corporationNameCorporation legal name (header field).null | stringstrict
schedule42.currentTaxYearEndTY-end YYYY-MM-DD.null | stringstrict
schedule42.currentYearGeneratedFromS38Line 600 — current-year unused Part I tax credit generated (≡ S38 line 870, max(0, Part I tax − gross Part VI) per s.190.1(5)).null | numberstrict
schedule42.hasAcquisitionOfControlThisYears.190.1(6) AoC restriction — pre-AoC credits restricted post-AoC (s.111(5) same-or-similar-business test, NOT s.111(5.1)).boolean | null
schedule42.openingUnusedCreditPoolByYearLine A opening pool — source-year ("YYYY") → unused Part I tax credit generated in that year and still unclaimed. The form face is aggregate-only; the per-source-year register is required for FIFO ordering (s.190.1(4)(a)) and 7-year expiry (line 115).object
schedule42.openingUnusedCreditPoolByYear.2017integerstrict
schedule42.surtaxCreditAmountUnused surtax credit claimed this year (s.190.1(3)(b)). There is no fixed target-calendar cutoff: a claim is supported only by a source period that began before 2008 and remains within the next seven taxation years in the verified entity sequence. It is applied against the separate unused-surtax-credit register carried by the pinned prior filed return and needs a `surtaxCreditPoolBySourceTaxationYear` row per source year.null | number
schedule42.surtaxCreditPoolBySourceTaxationYearTwo per-source-year facts the current return must state about the unused surtax credit register: `sourceTaxYearStart` and `partI3CreditClaimedForYear`. The balances themselves are never entered here — they come from the pinned prior filed closing register. An unstated Part I.3 claim is not a nil one and blocks. The UI uses a derived absolute outer date only to hide an impossible empty register; the engine decides actual reach from the verified taxation-year sequence.array
schedule42.surtaxCreditPoolBySourceTaxationYear[].partI3CreditClaimedForYears.190.1(4)(b)(ii)(B) — the total claimed in respect of THIS source year's unused surtax credit under Part I.3, for the current year or any earlier one. Required; absent is not zero and blocks the claim.null | number
schedule42.surtaxCreditPoolBySourceTaxationYear[].sourceTaxYearStartYYYY-MM-DD start of the source period. Admissibility is on the START: S.C. 2006, c. 4, s. 72(3) repeals s.123.2 for "taxation years that begin after 2007", and a year beginning 2007-07-01 still generated a credit.null | string
schedule42.surtaxCreditPoolBySourceTaxationYear[].sourceTaxationYearIdStable server taxation-year identity of the SOURCE year, matching the register row on the pinned prior filed Schedule 42 closing.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 (10 of 25 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 schedule42
CellAccepted values
daysInYear1 to 1000000000000000
fiscalEnddate (YYYY-MM-DD); 10 to 10 characters
fiscalStartdate (YYYY-MM-DD); 10 to 10 characters
schedule42.businessNumber0 to 20000 characters
schedule42.carryforwardClaimAppliedToCurrentS38-1000000000000000 to 1000000000000000
schedule42.corporationName0 to 20000 characters
schedule42.currentTaxYearEnd0 to 20000 characters
schedule42.currentYearGeneratedFromS38-1000000000000000 to 1000000000000000
schedule42.openingUnusedCreditPoolByYear.2017-1000000000000000 to 1000000000000000
taxYearmatches ^\s*(?:1[0-9]{3}|2(?:0(?:[0-1][0-9]{1}|2[0-7])))\s*$; 1000 to 2027

Output cells (79)

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

Output cells for schedule42
CellTypes
aoc_grind_appliedboolean
aoc_statutory_caps_by_source_taxation_yearobject
authority_grind_appliedboolean
businessNumbernull | string
carryback_target_taxation_yearsobject
claimed_this_year_carryback_actually_consumednumber
claimed_this_year_carryforward_actually_consumednumber
claimed_this_year_total_fifo_sumnumber
corporationNamenull | string
currentTaxYearinteger
currentTaxYearEndnull | string
currentTaxYearIdarray | boolean | null | number | object | string
fifo_consumption_carrybackobject
fifo_consumption_carryback_by_source_taxation_yearobject
fifo_consumption_carryforwardobject
fifo_consumption_carryforward_by_source_taxation_yearobject
fired_gatesobject
hasAcquisitionOfControlThisYeararray | boolean | null | number | object | string
line_115_expired_after_seven_yearsnumber
line_120_beginning_of_tax_yearnumber
line_220_amalgamation_or_windup_transfernumber
line_220_excluded_expired_amountnumber
line_420_carryforward_claim_to_s38_line_884number
line_420_pre_aoc_grindnumber
line_420_pre_authority_grindnumber
line_600_current_year_generated_from_s38_line_870number
line_600_entered_from_raw_datanumber
line_820_closing_balancenumber
line_901_carryback_to_1st_previous_yearnumber
line_901_pre_aoc_grindnumber
line_901_pre_sequence_grindnumber
line_902_carryback_to_2nd_previous_yearnumber
line_902_pre_aoc_grindnumber
line_902_pre_sequence_grindnumber
line_903_carryback_to_3rd_previous_yearnumber
line_903_pre_aoc_grindnumber
line_903_pre_sequence_grindnumber
line_a_opening_unused_credit_prior_yearnumber
line_b_subtotalnumber
line_c_balance_after_carryforward_claimnumber
line_d_subtotal_after_current_year_generationnumber
line_e_carryback_claim_totalnumber
line_f_carryback_totalnumber
line_f_pre_aoc_grindnumber
missing_required[]string
pool_by_source_taxation_year_closingarray
pool_by_source_taxation_year_openingarray
pool_by_source_year_closingobject
pool_by_source_year_openingobject
predecessor_transfer_history_closingarray
provisionalboolean
readyboolean
warnings[].boxnull | string
warnings[].citation.applies_to_boxes[]string
warnings[].citation.cra_text_verbatimstring
warnings[].citation.displaystring
warnings[].citation.form_idstring
warnings[].citation.form_revisionstring
warnings[].citation.gate_idstring
warnings[].citation.kindstring
warnings[].citation.rulestring
warnings[].citation.sectionstring
warnings[].citation.sourcestring
warnings[].citation.source_urlstring
warnings[].citation.verified_atstring
warnings[].codestring
warnings[].gate_idstring
warnings[].kindstring
warnings[].messagestring
warnings[].severitystring
warnings[]A Schedule 42 finding that states no registered gate identity: a statute-cited refusal, a coded input refusal, or a plain box-scoped message.object
surtax_credit_claim_applied_to_part_vinumber
surtax_credit_claim_requestednumber
surtax_credit_expired_after_seven_yearsnumber
surtax_fifo_consumption_by_source_taxation_yearobject
surtax_pool_by_source_taxation_year_closingarray
surtax_pool_by_source_taxation_year_openingarray
surtax_predecessor_transfer_history_closingarray
surtax_credit_available_before_part_vi_capacityarray | boolean | null | number | object | string
Filemark | schedule42 cells