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.
| Cell | Types | Required |
|---|---|---|
| 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. | integer | strict |
| 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. | string | strict |
| fiscalStartFirst day of the taxation year, stated for the same reason as fiscalEnd. | string | strict |
| 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 | string | strict |
| 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 | number | strict |
| schedule42.corporationNameCorporation legal name (header field). | null | string | strict |
| schedule42.currentTaxYearEndTY-end YYYY-MM-DD. | null | string | strict |
| 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 | number | strict |
| 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.2017 | integer | strict |
| 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 | string | always |
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.
| Cell | Accepted values |
|---|---|
| daysInYear | 1 to 1000000000000000 |
| fiscalEnd | date (YYYY-MM-DD); 10 to 10 characters |
| fiscalStart | date (YYYY-MM-DD); 10 to 10 characters |
| schedule42.businessNumber | 0 to 20000 characters |
| schedule42.carryforwardClaimAppliedToCurrentS38 | -1000000000000000 to 1000000000000000 |
| schedule42.corporationName | 0 to 20000 characters |
| schedule42.currentTaxYearEnd | 0 to 20000 characters |
| schedule42.currentYearGeneratedFromS38 | -1000000000000000 to 1000000000000000 |
| schedule42.openingUnusedCreditPoolByYear.2017 | -1000000000000000 to 1000000000000000 |
| taxYear | matches ^\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.
| Cell | Types |
|---|---|
| aoc_grind_applied | boolean |
| aoc_statutory_caps_by_source_taxation_year | object |
| authority_grind_applied | boolean |
| businessNumber | null | string |
| carryback_target_taxation_years | object |
| claimed_this_year_carryback_actually_consumed | number |
| claimed_this_year_carryforward_actually_consumed | number |
| claimed_this_year_total_fifo_sum | number |
| corporationName | null | string |
| currentTaxYear | integer |
| currentTaxYearEnd | null | string |
| currentTaxYearId | array | boolean | null | number | object | string |
| fifo_consumption_carryback | object |
| fifo_consumption_carryback_by_source_taxation_year | object |
| fifo_consumption_carryforward | object |
| fifo_consumption_carryforward_by_source_taxation_year | object |
| fired_gates | object |
| hasAcquisitionOfControlThisYear | array | boolean | null | number | object | string |
| line_115_expired_after_seven_years | number |
| line_120_beginning_of_tax_year | number |
| line_220_amalgamation_or_windup_transfer | number |
| line_220_excluded_expired_amount | number |
| line_420_carryforward_claim_to_s38_line_884 | number |
| line_420_pre_aoc_grind | number |
| line_420_pre_authority_grind | number |
| line_600_current_year_generated_from_s38_line_870 | number |
| line_600_entered_from_raw_data | number |
| line_820_closing_balance | number |
| line_901_carryback_to_1st_previous_year | number |
| line_901_pre_aoc_grind | number |
| line_901_pre_sequence_grind | number |
| line_902_carryback_to_2nd_previous_year | number |
| line_902_pre_aoc_grind | number |
| line_902_pre_sequence_grind | number |
| line_903_carryback_to_3rd_previous_year | number |
| line_903_pre_aoc_grind | number |
| line_903_pre_sequence_grind | number |
| line_a_opening_unused_credit_prior_year | number |
| line_b_subtotal | number |
| line_c_balance_after_carryforward_claim | number |
| line_d_subtotal_after_current_year_generation | number |
| line_e_carryback_claim_total | number |
| line_f_carryback_total | number |
| line_f_pre_aoc_grind | number |
| missing_required[] | string |
| pool_by_source_taxation_year_closing | array |
| pool_by_source_taxation_year_opening | array |
| pool_by_source_year_closing | object |
| pool_by_source_year_opening | object |
| predecessor_transfer_history_closing | array |
| provisional | boolean |
| ready | boolean |
| warnings[].box | null | string |
| warnings[].citation.applies_to_boxes[] | string |
| warnings[].citation.cra_text_verbatim | string |
| warnings[].citation.display | string |
| warnings[].citation.form_id | string |
| warnings[].citation.form_revision | string |
| warnings[].citation.gate_id | string |
| warnings[].citation.kind | string |
| warnings[].citation.rule | string |
| warnings[].citation.section | string |
| warnings[].citation.source | string |
| warnings[].citation.source_url | string |
| warnings[].citation.verified_at | string |
| warnings[].code | string |
| warnings[].gate_id | string |
| warnings[].kind | string |
| warnings[].message | string |
| warnings[].severity | string |
| 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_vi | number |
| surtax_credit_claim_requested | number |
| surtax_credit_expired_after_seven_years | number |
| surtax_fifo_consumption_by_source_taxation_year | object |
| surtax_pool_by_source_taxation_year_closing | array |
| surtax_pool_by_source_taxation_year_opening | array |
| surtax_predecessor_transfer_history_closing | array |
| surtax_credit_available_before_part_vi_capacity | array | boolean | null | number | object | string |