schedule21
T2 Corporation Income Tax Return
- Kind
- batch
- Supported tax years
- 2023 and later
- Strict profile
- s21_2025_synthetic_federal_fnbi_credit_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": [
"schedule21"
],
"inputs": {
"accounts": [
{
"accountCode": "4000",
"accountName": "Cedar Ridge foreign-source revenue",
"classification": {
"assumption": "Synthetic exact contract witness only",
"deductibility": "100%",
"deductibilityPercentage": 100,
"schedule1Relevant": false,
"treatment": "no_adjustment"
},
"currentYearBalance": -500000,
"id": "s21-income",
"reviewStatus": "default",
"userStatus": "default"
}
],
"combinedAdjustments": {},
"incomeStatementFlags": {
"s21-income": true
},
"schedule21": {
"isAuthorizedForeignBank": false,
"line6aNetIncomeForTaxPurposes": 500000,
"line6bNetCapitalLossesClaimed": 0,
"line6cS112_113DividendsDeductible": 0,
"line6dS20_12Deductions": 0,
"line6gOtherAdjustments": 0,
"line7aBaseT2Line550": 190000,
"line7bAbatementT2Line608": 0,
"line7cInvCorpDeductionT2Line620": 0,
"line7dGeneralTaxReductionT2Line639": 0,
"line7fRecaptureITCT2Line602": 0,
"line7gCCPCRefundableTaxInvIncomeT2Line604": 0,
"part1Rows": [
{
"col1b_netForeignNonBusinessIncome": 50000,
"col1c_foreignNonBusinessTaxPaid": 20000,
"col1d_s20_12Deduction": 0,
"foreignAffiliateShareIncome": "No",
"s126_4TaxCreditGeneratorApplies": false,
"s126_4_1NoEconomicProfitApplies": false,
"s126_4_11PartnershipMismatchApplies": false,
"s126_4_2ShortTermSecurityCapApplies": false,
"country": "US"
}
],
"part2Rows": [],
"part3Rows": [],
"part4Rows": [],
"part9Rows": [],
"line6gS110_5AddBack": 0
},
"taxYear": 2025,
"fiscalStart": "2025-01-01",
"fiscalEnd": "2025-12-31",
"daysInYear": 365,
"workpapers": [],
"isCCPC": true,
"t2Jacket": {
"identification": {
"isResidentOfCanada": true
},
"filingStatus": {
"firstYearAfterIncorporation": false,
"firstYearAfterAmalgamation": false,
"subsidiaryWindupS88": false
}
}
}
}Input cells (145)
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 |
|---|---|---|
| accounts[].accountCode | string | strict |
| accounts[].accountName | string | strict |
| accounts[].classification.adjustmentType | null | string | |
| accounts[].classification.assumption | string | strict |
| accounts[].classification.deductibility | string | strict |
| accounts[].classification.deductibilityPercentage | integer | null | number | string | strict |
| accounts[].classification.deductibilityRule | string | |
| accounts[].classification.ruleId | null | string | |
| accounts[].classification.schedule1RelevantMarks the account's concept as one to review for Schedule 1. It does not decide the posting; the classification's line and treatment do. | boolean | strict |
| accounts[].classification.templateId | null | string | |
| accounts[].classification.treatment | string | strict |
| accounts[].currentYearBalance | integer | strict |
| accounts[].id | string | strict |
| accounts[].reviewStatus | string | strict |
| accounts[].userStatus | string | strict |
| combinedAdjustments | object | strict |
| daysInYearInclusive day count of the taxation year. It must equal the fiscalStart-to-fiscalEnd span, counting both end days, so a leap year states 366. Required for the same reason as fiscalStart; the count reconciles the bounds and never constructs them. | integer | strict |
| 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. | string | strict |
| 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. | string | strict |
| incomeStatementFlags.s21-incomeTrue when the trial-balance account with this id is an income-statement account; flagged balances form net income per financial statements, Schedule 1 amount A. | boolean | strict |
| isCCPCThe corporation was a Canadian-controlled private corporation (ITA s.125(7) definition) throughout the taxation year. | boolean | |
| schedule21Schedule 21 practitioner-input blob. The completed batch result is rebuilt after Schedule 5 so all consumers see the same allocation and post-Division-C taxable-income inputs. | null | object | |
| schedule21.canadianBankingBusinessReview | null | object | |
| schedule21.canadianBankingBusinessReview.businessCarriedOnThroughCanadianPe | boolean | null | |
| schedule21.canadianBankingBusinessReview.businessConductedThroughRepresentativeOffice | boolean | null | |
| schedule21.canadianBankingBusinessReview.isAuthorizedForeignBank | boolean | null | |
| schedule21.canadianBankingBusinessReview.line300IncomeRestrictedToCanadianBankingBusiness | boolean | null | |
| schedule21.canadianBankingBusinessReview.measureRestrictedToCanadianBankingBusinessConsumer-specific confirmations; only the owning schedule reads the relevant member. | boolean | null | |
| schedule21.canadianBankingBusinessReview.reg8201Facts | null | object | |
| schedule21.canadianBankingBusinessReview.reg8201Facts.controlledSubsidiaryOnly | boolean | null | |
| schedule21.canadianBankingBusinessReview.reg8201Facts.employeeOrAgentEstablishedAtTarget | boolean | null | |
| schedule21.canadianBankingBusinessReview.reg8201Facts.fixedPlaceJurisdiction | null | string | |
| schedule21.canadianBankingBusinessReview.reg8201Facts.generalContractingAuthorityAtTarget | boolean | null | |
| schedule21.canadianBankingBusinessReview.reg8201Facts.hasFixedPlaceOfBusiness | boolean | null | |
| schedule21.canadianBankingBusinessReview.reg8201Facts.independentAgentOnly | boolean | null | |
| schedule21.canadianBankingBusinessReview.reg8201Facts.insurerRegisteredOrLicensedJurisdictions | array | |
| schedule21.canadianBankingBusinessReview.reg8201Facts.isInsurer | boolean | null | |
| schedule21.canadianBankingBusinessReview.reg8201Facts.personOwnedStockAtTarget | boolean | null | |
| schedule21.canadianBankingBusinessReview.reg8201Facts.principalPlaceOfBusinessAtTarget | boolean | null | |
| schedule21.canadianBankingBusinessReview.reg8201Facts.purchaseOnlyOfficeOnly | boolean | null | |
| schedule21.canadianBankingBusinessReview.reg8201Facts.regularlyFillsOrdersFromStockAtTarget | boolean | null | |
| schedule21.canadianBankingBusinessReview.reg8201Facts.substantialMachineryOrEquipmentUsedAtTarget | boolean | null | |
| schedule21.canadianBankingBusinessReview.reg8201Facts.treatyExists | boolean | null | |
| schedule21.canadianBankingBusinessReview.reg8201Facts.treatyPermanentEstablishmentArticle | null | string | |
| schedule21.canadianBankingBusinessReview.reg8201Facts.treatyPermanentEstablishmentConclusion | boolean | null | |
| schedule21.isAuthorizedForeignBankThe filer is an authorized foreign bank; the T2 SCH 21 header admits corporations resident in Canada and authorized foreign banks, and the s.20(12) deduction feed is withheld until one status is established. | boolean | null | strict |
| schedule21.isCCPCWhether the corporation was a Canadian-controlled private corporation, used only as one signal in the Schedule 21 CCPC inference when the T2 jacket corporation type is absent. The jacket answer governs when it is supplied. | boolean | null | |
| schedule21.line6aNetIncomeForTaxPurposesCell 6A — T2 line 300 NIFTP. Auto-fills from S1.taxableIncome (Filemark S1 names this field 'taxableIncome' but its semantic is Division B net income for tax purposes per the validator). | null | number | strict |
| schedule21.line6bNetCapitalLossesClaimedCell 6B — T2 line 332 net capital losses claimed under s.111(1)(b). | null | number | strict |
| schedule21.line6cS112_113DividendsDeductibleCell 6C — Taxable dividends deductible under ss.112/113. Auto-fills from S3.totalTaxableDividendsDeductible (future wiring). | null | number | strict |
| schedule21.line6dProspectorGrubstakerSharesCell 6D — T2 line 350 prospector / grubstaker shares. | null | number | |
| schedule21.line6dS20_12Deductions | integer | strict |
| schedule21.line6eEmployerDeductionNQSecuritiesCell 6E — employer deduction for non-qualified securities (line 352). | null | number | |
| schedule21.line6gOtherAdjustments | integer | strict |
| schedule21.line6gS110_5AddBackPart 6 cell 6H, the ITA s.110.5 addition carried from T2 line 355. The sweep made a blank cell blocking; the witness states an explicit nil. | null | number | strict |
| schedule21.line6iTaxableIncomeInCanada | null | number | |
| schedule21.line6jCanadianBankingIncome | null | number | |
| schedule21.line6kS115AddBack | null | number | |
| schedule21.line7aBaseT2Line550Cell 7A — T2 line 550 base Part I tax. Auto-fills from part_i_tax.baseTax (future wiring). | null | number | strict |
| schedule21.line7bAbatementT2Line608Cell 7B — T2 line 608 federal tax abatement. | null | number | strict |
| schedule21.line7cInvCorpDeductionT2Line620Cell 7C — T2 line 620 investment corporation deduction. | null | number | strict |
| schedule21.line7dGeneralTaxReductionT2Line639Cell 7D — T2 line 639 general tax reduction. | null | number | strict |
| schedule21.line7fAdditionalTaxPSBT2Line560Cells 7F-7H — rev-26 tax add-backs from T2 lines 560/565/580. | null | number | |
| schedule21.line7fRecaptureITCT2Line602Cell 7I — T2 line 602 recapture of ITC. | null | number | strict |
| schedule21.line7gAdditionalTaxBanksLifeT2Line565 | null | number | |
| schedule21.line7gCCPCRefundableTaxInvIncomeT2Line604Cell 7J — T2 line 604 refundable tax on CCPC investment income (s.123.3 ART). | null | number | strict |
| schedule21.line7hLabourRequirementsAdditionT2Line580 | null | number | |
| schedule21.line8aBaseT2Line550Cells 8A/8B/8D/8F/8G/8H/8I default to matching Part 7 sources if left null. Cell 8C is the CCPC-specific general tax reduction (T2 line 638) — a SEPARATE deduction from 8D. | null | number | |
| schedule21.line8bInvCorpDeductionT2Line620 | null | number | |
| schedule21.line8cCCPCGeneralTaxReductionT2Line638 | null | number | |
| schedule21.line8dGeneralTaxReductionT2Line639 | null | number | |
| schedule21.line8fAdditionalTaxPSBT2Line560Cells 8F-8H — explicit overrides; null inherits the matching Part 7 value. | null | number | |
| schedule21.line8fRecaptureITCT2Line602 | null | number | |
| schedule21.line8gAdditionalTaxBanksLifeT2Line565 | null | number | |
| schedule21.line8hLabourRequirementsAdditionT2Line580 | null | number | |
| schedule21.part1Rows | array | |
| schedule21.part1Rows[].claimedAmountOverride | null | number | string | |
| schedule21.part1Rows[].col1b_netForeignNonBusinessIncome | integer | null | number | object | strict |
| schedule21.part1Rows[].col1c_foreignNonBusinessTaxPaid | integer | null | number | strict |
| schedule21.part1Rows[].col1d_s20_12Deduction | integer | null | number | strict |
| schedule21.part1Rows[].country | null | string | strict |
| schedule21.part1Rows[].foreignAffiliateShareIncome | null | string | strict |
| schedule21.part1Rows[].s126_4TaxCreditGeneratorAppliesITA s.126(4) foreign-tax-credit-generator exclusion. Mandatory Yes/No: the engine computes no exclusion, so an unanswered fact refuses Column 1C rather than reading as No. | boolean | null | strict |
| schedule21.part1Rows[].s126_4_11PartnershipMismatchApplies | boolean | null | strict |
| schedule21.part1Rows[].s126_4_1NoEconomicProfitApplies | boolean | null | strict |
| schedule21.part1Rows[].s126_4_2ShortTermSecurityCapApplies | boolean | null | strict |
| schedule21.part1Rows[].s126_4_3ShortTermSecurityCapExceptionAppliesITA s.126(4.3) exception, demanded only when s126_4_2ShortTermSecurityCapApplies is true. Optional here because this witness answers the cap fact No. | boolean | |
| schedule21.part2Rows | array | |
| schedule21.part2Rows[].claimedAmountOverride | null | number | |
| schedule21.part2Rows[].col2b_netForeignBusinessIncome | number | strict |
| schedule21.part2Rows[].col2c_foreignBusinessTaxPaid | number | strict |
| schedule21.part2Rows[].col2d_unusedFTCPreviousYears | number | strict |
| schedule21.part2Rows[].country | string | strict |
| schedule21.part2Rows[].s126_4TaxCreditGeneratorAppliesITA s.126(4) foreign-tax-credit-generator exclusion. | boolean | strict |
| schedule21.part2Rows[].s126_4_11PartnershipMismatchAppliesITA s.126(4.11) partnership-allocation exclusion. | boolean | strict |
| schedule21.part2Rows[].s126_4_1NoEconomicProfitAppliesITA s.126(4.1) no-economic-profit exclusion. | boolean | strict |
| schedule21.part2Rows[].s126_4_2ShortTermSecurityCapAppliesITA s.126(4.2) short-term-security cap. | boolean | strict |
| schedule21.part2Rows[].s126_4_3ShortTermSecurityCapExceptionAppliesITA s.126(4.3) exception, demanded only when s126_4_2ShortTermSecurityCapApplies is true. | boolean | |
| schedule21.part3Rows | array | |
| schedule21.part3Rows[].col3l_originYearBreakdownColumn 3L origin-year attribution. ITA 126(2)(a) counts TAXATION years ("the 10 taxation years immediately preceding") and s.126(7) defines the unused foreign tax credit FOR A TAXATION YEAR, so a positive Column 3L opening must be attributed to the years it arose in before any of it can be claimed — the engine holds an unvintaged positive pool. `null` / omitted = no attribution supplied. | array | null | |
| schedule21.part3Rows[].col3l_originYearBreakdown[].amount | null | number | |
| schedule21.part3Rows[].col3l_originYearBreakdown[].originYear | null | number | |
| schedule21.part3Rows[].col3l_originYearBreakdown[].originYearEnd | null | string | |
| schedule21.part3Rows[].col3l_priorYearClosingBalanceColumn 3L — Balance at end of previous tax year. Auto-fills from PY S21 Part 3 Column 3S. | null | number | |
| schedule21.part3Rows[].col3m_amountExpiredInYearColumn 3M — Amount expired in the year (10-year window per s.111(8) "unused foreign tax credit"). Practitioner-managed today; per-origination-year tracking is a future enhancement. | null | number | |
| schedule21.part3Rows[].col3o_amalgamationOrWindupTransferColumn 3O — Credits transferred via amalgamation (s.87(2.2)) or wind-up of subsidiary (s.88(1.5)). | null | number | |
| schedule21.part3Rows[].col3o_originYearBreakdownColumn 3O origin-year attribution — the SECOND arrival route into the Part 3 opening. A succession transfer-in under s.87(2)(z) / s.88(1)(e.7) keeps the predecessor's vintages: s.126(2)(a)'s ten-year clock runs from the year the credit AROSE, not the year of the amalgamation, so a transferred pool needs its own attribution exactly as Column 3L does. | array | null | |
| schedule21.part3Rows[].col3o_originYearBreakdown[].amount | null | number | |
| schedule21.part3Rows[].col3o_originYearBreakdown[].originYear | null | number | |
| schedule21.part3Rows[].col3o_originYearBreakdown[].originYearEnd | null | string | |
| schedule21.part3Rows[].col3p_currentYearTaxPaidOverrideOptional override of Column 3P (CY tax paid). When null, engine auto-pulls from Part 2 Column 2C for the same country. | null | number | |
| schedule21.part3Rows[].col3q_currentYearCreditDeductedOverrideOptional override of Column 3Q (CY credit deducted). When null, the engine auto-pulls Part 2 Column 2J for the same country — the printed least-of (2E / 2H / 2I), NOT the amount the corporation elected to claim. s.126(7) "unused foreign tax credit" measures the pool against the amount that "was deductible", so a lesser election does not bank the difference. | null | number | |
| schedule21.part3Rows[].country | string | |
| schedule21.part4Rows | array | |
| schedule21.part4Rows[].col4u_unusedFTCOverrideColumn 4U override — by default the engine computes 3P - 3Q for the same country. Override is for cases where the practitioner is restating a prior carryback request. | null | number | |
| schedule21.part4Rows[].col4v_carrybackPrev1Column 4V — Carryback to 1st previous tax year. | null | number | |
| schedule21.part4Rows[].col4w_carrybackPrev2Column 4W — Carryback to 2nd previous tax year. | null | number | |
| schedule21.part4Rows[].col4x_carrybackPrev3Column 4X — Carryback to 3rd previous tax year. | null | number | |
| schedule21.part4Rows[].country | string | |
| schedule21.part4Rows[].targetYearEvidenceThe target-year facts backing every requested column, one entry per target year. A request without its entry is accepted at $0.00 and blocks the filing; the boxes 901-903 the engine files are the ACCEPTED amounts, not the raw request. Two rows for one country concatenate into one list, so a repeated `targetYearOffset` is a contradiction. | array | null | |
| schedule21.part4Rows[].targetYearEvidence[].carriedOnBusinessInCountryDid the corporation carry on business in this country in that year? Only boolean `true` answers it: s.126(2) is available to "a taxpayer who was resident in Canada at any time in a taxation year" in respect of the "business-income tax paid ... in respect of businesses carried on by the taxpayer in that country", so with no business there the target year can absorb nothing. Unanswered blocks; it is never read as a Yes. | boolean | null | |
| schedule21.part4Rows[].targetYearEvidence[].s126_2AmountAlreadyDeductedAmount already deducted under s.126(2) against that year for this country (s.126(2.3)(c)). Enter 0 where none: it is subtracted from both the (b) and (c) limbs, so a blank is not nil. | null | number | |
| schedule21.part4Rows[].targetYearEvidence[].s126_2_bLimitForCountryThe target year's s.126(2)(b) limit for this country. | null | number | |
| schedule21.part4Rows[].targetYearEvidence[].s126_2_cTaxRemainingAfterS126_1The target year's Part I tax remaining after its s.126(1) credits — the s.126(2)(c) operand. s.126(2.3)(a) applies the s.126(1) credits first, which is why the room is measured after them. | null | number | |
| schedule21.part4Rows[].targetYearEvidence[].targetYearOffsetWhich preceding taxation year this entry describes: 1 = first preceding (Column 4V, box 901), 2 = second (4W, box 902), 3 = third (4X, box 903). Two entries naming the same offset is a contradiction and blocks. | integer | |
| schedule21.part4Rows[].targetYearEvidence[].taxationYearEndISO YYYY-MM-DD end of that target taxation year. It must equal the Nth preceding year end in the corporation's own taxation-year chain; a calendar-year label is not the unit of account. | null | string | |
| schedule21.part5BcIncomeFromLogging | null | number | |
| schedule21.part5BcLoggingTaxPaid | null | number | |
| schedule21.part5OtherProvincesLogging-tax claims for provinces other than British Columbia and Quebec, as rows of province, incomeFromLogging and loggingTaxPaid. The form has no lines for them: any row only raises a warning that only BC and Quebec impose a tax declared under Regulation 700(3), and the amounts never enter the credit. | array | null | |
| schedule21.part5QcIncomeFromLogging | null | number | |
| schedule21.part5QcLoggingTaxPaid | null | number | |
| schedule21.part5TaxableIncomeOverrideExplicit POST-DIVISION-C taxable income for the line 5H cap (used by non-residents per the form parenthetical). When null, the engine pulls from Schedule 5 line-360 taxable income. Schedule 1 net income and Part 6 adjusted net income are pre-Division-C DISPLAY proxies only: with a live logging credit (5G > 0) neither is a value source, and the engine withholds the credit rather than over-stating the ITA s.127(1) cap. | null | number | |
| schedule21.part9Rows | array | |
| schedule21.part9Rows[].countryTwo-letter country code matching a Part 1 row. | string | |
| schedule21.part9Rows[].provinceTwo-letter province/territory code (ON, BC, AB, SK, MB, QC, NB, NS, PE, NL, YT, NT, NU). | string | |
| schedule21.part9Rows[].provinceTaxableIncomeAllocationOverrideOptional override of the province's allocated taxable income. When null, engine pulls from Schedule 5 Part 1 column F. | null | number | |
| schedule21.part9Rows[].provincialTaxRateProvincial corporate tax rate to apply in cell 9H. Per Note 9: for all provinces except Ontario use the HIGHER tax rate (general corporate rate, not M&P or SBD). For Ontario use the basic rate from Schedule 500 Part 1. Mid-year rate change → days-weighted average. Accepts ratio (0.115) or percent (11.5). | null | number | |
| schedule21.part9TaxableIncomeOutsideCanadaOverrideTaxable income earned outside Canada, the amount excluded from the Part 9 amount 9F denominator per T2 SCH 21 note 8. Send it only when no Schedule 5 result is available; with a Schedule 5 present a differing value is reported as a conflict, and a negative value is rejected and reset to zero. | null | number | string | |
| schedule21.part9TotalTaxableIncomeOverrideOptional override for the total taxable income (Part 9 ratio denominator). When null, the engine pulls T2 line 360 from Schedule 5 or Division C; pre-Division-C Schedule 1 / Part 6 amounts are never substituted. | null | number | |
| t2Jacket.filingStatus.firstYearAfterAmalgamation | boolean | strict |
| t2Jacket.filingStatus.firstYearAfterIncorporation | boolean | strict |
| t2Jacket.filingStatus.subsidiaryWindupS88 | boolean | strict |
| t2Jacket.identification.isResidentOfCanada | boolean | strict |
| 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 |
| workpapers[] | boolean | null | number | string | strict |
Strict profile accepted values (60 of 145 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 |
|---|---|
| accounts[].accountCode | 0 to 20000 characters |
| accounts[].accountName | 0 to 20000 characters |
| accounts[].classification.adjustmentType | 0 to 20000 characters |
| accounts[].classification.assumption | 0 to 20000 characters |
| accounts[].classification.deductibility | 0 to 20000 characters |
| accounts[].classification.deductibilityPercentage | -1000000000000000 to 1000000000000000; 0 to 20000 characters |
| accounts[].classification.deductibilityRule | 0 to 20000 characters |
| accounts[].classification.ruleId | 0 to 20000 characters |
| accounts[].classification.templateId | 0 to 20000 characters |
| accounts[].classification.treatment | 0 to 20000 characters |
| accounts[].currentYearBalance | -1000000000000000 to 1000000000000000 |
| accounts[].id | 0 to 20000 characters |
| accounts[].reviewStatus | 0 to 20000 characters |
| accounts[].userStatus | 0 to 20000 characters |
| daysInYear | 1 to 1000000000000000 |
| fiscalEnd | date (YYYY-MM-DD); 10 to 10 characters |
| fiscalStart | date (YYYY-MM-DD); 10 to 10 characters |
| schedule21.line6aNetIncomeForTaxPurposes | -1000000000000000 to 1000000000000000 |
| schedule21.line6bNetCapitalLossesClaimed | -1000000000000000 to 1000000000000000 |
| schedule21.line6cS112_113DividendsDeductible | -1000000000000000 to 1000000000000000 |
| schedule21.line6dS20_12Deductions | -1000000000000000 to 1000000000000000 |
| schedule21.line6gOtherAdjustments | -1000000000000000 to 1000000000000000 |
| schedule21.line6gS110_5AddBack | -1000000000000000 to 1000000000000000 |
| schedule21.line7aBaseT2Line550 | -1000000000000000 to 1000000000000000 |
| schedule21.line7bAbatementT2Line608 | -1000000000000000 to 1000000000000000 |
| schedule21.line7cInvCorpDeductionT2Line620 | -1000000000000000 to 1000000000000000 |
| schedule21.line7dGeneralTaxReductionT2Line639 | -1000000000000000 to 1000000000000000 |
| schedule21.line7fRecaptureITCT2Line602 | -1000000000000000 to 1000000000000000 |
| schedule21.line7gCCPCRefundableTaxInvIncomeT2Line604 | -1000000000000000 to 1000000000000000 |
| schedule21.part1Rows[].claimedAmountOverride | -1000000000000000 to 1000000000000000; 0 to 20000 characters |
| schedule21.part1Rows[].col1b_netForeignNonBusinessIncome | -1000000000000000 to 1000000000000000 |
| schedule21.part1Rows[].col1c_foreignNonBusinessTaxPaid | -1000000000000000 to 1000000000000000 |
| schedule21.part1Rows[].col1d_s20_12Deduction | -1000000000000000 to 1000000000000000 |
| schedule21.part1Rows[].country | 0 to 20000 characters |
| schedule21.part1Rows[].foreignAffiliateShareIncome | 0 to 20000 characters |
| schedule21.part2Rows[].claimedAmountOverride | -1000000000000000 to 1000000000000000 |
| schedule21.part2Rows[].col2b_netForeignBusinessIncome | -1000000000000000 to 1000000000000000 |
| schedule21.part2Rows[].col2c_foreignBusinessTaxPaid | -1000000000000000 to 1000000000000000 |
| schedule21.part2Rows[].col2d_unusedFTCPreviousYears | -1000000000000000 to 1000000000000000 |
| schedule21.part2Rows[].country | 0 to 20000 characters |
| schedule21.part3Rows[].col3l_originYearBreakdown[].originYearEnd | 0 to 20000 characters |
| schedule21.part3Rows[].col3l_priorYearClosingBalance | -1000000000000000 to 1000000000000000 |
| schedule21.part3Rows[].col3m_amountExpiredInYear | -1000000000000000 to 1000000000000000 |
| schedule21.part3Rows[].col3o_amalgamationOrWindupTransfer | -1000000000000000 to 1000000000000000 |
| schedule21.part3Rows[].col3o_originYearBreakdown[].originYearEnd | 0 to 20000 characters |
| schedule21.part3Rows[].col3p_currentYearTaxPaidOverride | -1000000000000000 to 1000000000000000 |
| schedule21.part3Rows[].col3q_currentYearCreditDeductedOverride | -1000000000000000 to 1000000000000000 |
| schedule21.part3Rows[].country | 0 to 20000 characters |
| schedule21.part4Rows[].col4u_unusedFTCOverride | -1000000000000000 to 1000000000000000 |
| schedule21.part4Rows[].col4v_carrybackPrev1 | -1000000000000000 to 1000000000000000 |
| schedule21.part4Rows[].col4w_carrybackPrev2 | -1000000000000000 to 1000000000000000 |
| schedule21.part4Rows[].col4x_carrybackPrev3 | -1000000000000000 to 1000000000000000 |
| schedule21.part4Rows[].country | 0 to 20000 characters |
| schedule21.part4Rows[].targetYearEvidence[].taxationYearEnd | 0 to 20000 characters |
| schedule21.part9Rows[].country | 0 to 20000 characters |
| schedule21.part9Rows[].province | 0 to 20000 characters |
| schedule21.part9Rows[].provinceTaxableIncomeAllocationOverride | -1000000000000000 to 1000000000000000 |
| schedule21.part9Rows[].provincialTaxRate | -1000000000000000 to 1000000000000000 |
| taxYear | matches ^\s*(?:1[0-9]{3}|2(?:0(?:[0-1][0-9]{1}|2[0-7])))\s*$; 1000 to 2027 |
| workpapers[] | -1000000000000000 to 1000000000000000; 0 to 20000 characters |
Output cells (149)
Paths are relative to this target’s result object in the response.
| Cell | Types |
|---|---|
| batch_refinement.partITaxApplied | boolean |
| batch_refinement.phase | string |
| batch_refinement.s1FeedStable | boolean |
| batch_refinement.schedule1Applied | boolean |
| batch_refinement.schedule3Applied | boolean |
| batch_refinement.schedule4Applied | boolean |
| batch_refinement.schedule5Applied | boolean |
| federal_fbi_credit_total | number |
| federal_fnbi_credit_total | number |
| federal_logging_tax_credit | number |
| fired_gates | object |
| isAuthorizedForeignBank | boolean |
| line_100 | string |
| line_110 | number |
| line_120 | number |
| line_130 | number |
| line_180 | number |
| line_200 | string |
| line_210 | number |
| line_220 | number |
| line_230 | number |
| line_280 | number |
| line_345 | string |
| line_348 | number |
| line_350 | number |
| line_360 | number |
| line_380 | number |
| line_500 | number |
| line_510 | number |
| line_520 | number |
| line_530 | number |
| line_580 | number |
| line_600 | number |
| line_610 | number |
| line_620 | number |
| line_900 | string |
| line_901 | number |
| line_902 | number |
| line_903 | number |
| part_1_rows[].claimed_amount | number |
| part_1_rows[].col_1b | number |
| part_1_rows[].col_1c | number |
| part_1_rows[].col_1d | number |
| part_1_rows[].col_1e | number |
| part_1_rows[].col_1f | number |
| part_1_rows[].col_1g | number |
| part_1_rows[].col_1h | number |
| part_1_rows[].col_1i | number |
| part_1_rows[].country | string |
| part_2_rows | array |
| part_3_rows | array |
| part_4_rows | array |
| part_5_rows | array |
| part_6.line_600 | number |
| part_6.val_6a | number |
| part_6.val_6b | number |
| part_6.val_6c | number |
| part_6.val_6d | number |
| part_6.val_6e | number |
| part_6.val_6f | number |
| part_6.val_6g | number |
| part_6.val_6h | number |
| part_6.val_6i | number |
| part_6.val_6j | number |
| part_6.val_6k | number |
| part_6.val_6l | number |
| part_6.val_6m | number |
| part_6.val_6n | number |
| part_7.line_610 | number |
| part_7.val_7a | number |
| part_7.val_7b | number |
| part_7.val_7c | number |
| part_7.val_7d | number |
| part_7.val_7e | number |
| part_7.val_7f | number |
| part_7.val_7g | number |
| part_7.val_7h | number |
| part_7.val_7i | number |
| part_7.val_7j | number |
| part_7.val_7k | number |
| part_8.line_620 | number |
| part_8.val_8a | number |
| part_8.val_8b | number |
| part_8.val_8c | number |
| part_8.val_8d | number |
| part_8.val_8e | number |
| part_8.val_8f | number |
| part_8.val_8g | number |
| part_8.val_8h | number |
| part_8.val_8i | number |
| part_8.val_8j | number |
| part_9_rows | array |
| provincial_ftc_application.appliedToProvincialTax | boolean |
| provincial_ftc_application.appliedToSchedule5 | boolean |
| provincial_ftc_application.calculatedTotal | number |
| provincial_ftc_application.reason | array | boolean | null | number | object | string |
| provincial_ftc_application.status | string |
| provincial_ftc_totals_by_prov | object |
| provisional | boolean |
| ready | boolean |
| s1_feed_s20_12_deduction | number |
| s1_feed_s20_12_deduction_by_country | array |
| val_5g | number |
| val_5h | number |
| warnings[].box | null | string |
| warnings[].citation.applies_to_boxes[] | string |
| warnings[].citation.cra_text_verbatim | string |
| warnings[].citation.form_id | string |
| warnings[].citation.form_revision | string |
| warnings[].citation.gate_id | string |
| warnings[].citation.rule | string |
| warnings[].citation.source | string |
| warnings[].citation.source_url | string |
| warnings[].citation.verified_at | string |
| warnings[].gate_id | string |
| warnings[].message | string |
| warnings[].severity | string |
| warnings[].code | string |
| warnings[].producer | string |
| warnings[].target | string |
| warnings[].manualValue | number |
| warnings[].canonicalValue | number |
| warnings[].amount | number |
| canadianBankingBusinessDetermination | array | boolean | null | number | object | string |
| federal_fbi_credit_total_without_s123_4 | number |
| federal_fnbi_credit_total_without_s123_3_and_s123_4 | number |
| part_7_without_s123_3_and_s123_4.line_610 | number |
| part_7_without_s123_3_and_s123_4.val_7a | number |
| part_7_without_s123_3_and_s123_4.val_7b | number |
| part_7_without_s123_3_and_s123_4.val_7c | number |
| part_7_without_s123_3_and_s123_4.val_7d | number |
| part_7_without_s123_3_and_s123_4.val_7e | number |
| part_7_without_s123_3_and_s123_4.val_7f | number |
| part_7_without_s123_3_and_s123_4.val_7g | number |
| part_7_without_s123_3_and_s123_4.val_7h | number |
| part_7_without_s123_3_and_s123_4.val_7i | number |
| part_7_without_s123_3_and_s123_4.val_7j | number |
| part_7_without_s123_3_and_s123_4.val_7k | number |
| part_8_without_s123_4.line_620 | number |
| part_8_without_s123_4.val_8a | number |
| part_8_without_s123_4.val_8b | number |
| part_8_without_s123_4.val_8c | number |
| part_8_without_s123_4.val_8d | number |
| part_8_without_s123_4.val_8e | number |
| part_8_without_s123_4.val_8f | number |
| part_8_without_s123_4.val_8g | number |
| part_8_without_s123_4.val_8h | number |
| part_8_without_s123_4.val_8i | number |
| part_8_without_s123_4.val_8j | number |