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.

Input cells for schedule21
CellTypesRequired
accounts[].accountCodestringstrict
accounts[].accountNamestringstrict
accounts[].classification.adjustmentTypenull | string
accounts[].classification.assumptionstringstrict
accounts[].classification.deductibilitystringstrict
accounts[].classification.deductibilityPercentageinteger | null | number | stringstrict
accounts[].classification.deductibilityRulestring
accounts[].classification.ruleIdnull | 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.booleanstrict
accounts[].classification.templateIdnull | string
accounts[].classification.treatmentstringstrict
accounts[].currentYearBalanceintegerstrict
accounts[].idstringstrict
accounts[].reviewStatusstringstrict
accounts[].userStatusstringstrict
combinedAdjustmentsobjectstrict
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.integerstrict
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
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.booleanstrict
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.canadianBankingBusinessReviewnull | object
schedule21.canadianBankingBusinessReview.businessCarriedOnThroughCanadianPeboolean | null
schedule21.canadianBankingBusinessReview.businessConductedThroughRepresentativeOfficeboolean | null
schedule21.canadianBankingBusinessReview.isAuthorizedForeignBankboolean | null
schedule21.canadianBankingBusinessReview.line300IncomeRestrictedToCanadianBankingBusinessboolean | null
schedule21.canadianBankingBusinessReview.measureRestrictedToCanadianBankingBusinessConsumer-specific confirmations; only the owning schedule reads the relevant member.boolean | null
schedule21.canadianBankingBusinessReview.reg8201Factsnull | object
schedule21.canadianBankingBusinessReview.reg8201Facts.controlledSubsidiaryOnlyboolean | null
schedule21.canadianBankingBusinessReview.reg8201Facts.employeeOrAgentEstablishedAtTargetboolean | null
schedule21.canadianBankingBusinessReview.reg8201Facts.fixedPlaceJurisdictionnull | string
schedule21.canadianBankingBusinessReview.reg8201Facts.generalContractingAuthorityAtTargetboolean | null
schedule21.canadianBankingBusinessReview.reg8201Facts.hasFixedPlaceOfBusinessboolean | null
schedule21.canadianBankingBusinessReview.reg8201Facts.independentAgentOnlyboolean | null
schedule21.canadianBankingBusinessReview.reg8201Facts.insurerRegisteredOrLicensedJurisdictionsarray
schedule21.canadianBankingBusinessReview.reg8201Facts.isInsurerboolean | null
schedule21.canadianBankingBusinessReview.reg8201Facts.personOwnedStockAtTargetboolean | null
schedule21.canadianBankingBusinessReview.reg8201Facts.principalPlaceOfBusinessAtTargetboolean | null
schedule21.canadianBankingBusinessReview.reg8201Facts.purchaseOnlyOfficeOnlyboolean | null
schedule21.canadianBankingBusinessReview.reg8201Facts.regularlyFillsOrdersFromStockAtTargetboolean | null
schedule21.canadianBankingBusinessReview.reg8201Facts.substantialMachineryOrEquipmentUsedAtTargetboolean | null
schedule21.canadianBankingBusinessReview.reg8201Facts.treatyExistsboolean | null
schedule21.canadianBankingBusinessReview.reg8201Facts.treatyPermanentEstablishmentArticlenull | string
schedule21.canadianBankingBusinessReview.reg8201Facts.treatyPermanentEstablishmentConclusionboolean | 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 | nullstrict
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 | numberstrict
schedule21.line6bNetCapitalLossesClaimedCell 6B — T2 line 332 net capital losses claimed under s.111(1)(b).null | numberstrict
schedule21.line6cS112_113DividendsDeductibleCell 6C — Taxable dividends deductible under ss.112/113. Auto-fills from S3.totalTaxableDividendsDeductible (future wiring).null | numberstrict
schedule21.line6dProspectorGrubstakerSharesCell 6D — T2 line 350 prospector / grubstaker shares.null | number
schedule21.line6dS20_12Deductionsintegerstrict
schedule21.line6eEmployerDeductionNQSecuritiesCell 6E — employer deduction for non-qualified securities (line 352).null | number
schedule21.line6gOtherAdjustmentsintegerstrict
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 | numberstrict
schedule21.line6iTaxableIncomeInCanadanull | number
schedule21.line6jCanadianBankingIncomenull | number
schedule21.line6kS115AddBacknull | number
schedule21.line7aBaseT2Line550Cell 7A — T2 line 550 base Part I tax. Auto-fills from part_i_tax.baseTax (future wiring).null | numberstrict
schedule21.line7bAbatementT2Line608Cell 7B — T2 line 608 federal tax abatement.null | numberstrict
schedule21.line7cInvCorpDeductionT2Line620Cell 7C — T2 line 620 investment corporation deduction.null | numberstrict
schedule21.line7dGeneralTaxReductionT2Line639Cell 7D — T2 line 639 general tax reduction.null | numberstrict
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 | numberstrict
schedule21.line7gAdditionalTaxBanksLifeT2Line565null | number
schedule21.line7gCCPCRefundableTaxInvIncomeT2Line604Cell 7J — T2 line 604 refundable tax on CCPC investment income (s.123.3 ART).null | numberstrict
schedule21.line7hLabourRequirementsAdditionT2Line580null | 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.line8bInvCorpDeductionT2Line620null | number
schedule21.line8cCCPCGeneralTaxReductionT2Line638null | number
schedule21.line8dGeneralTaxReductionT2Line639null | number
schedule21.line8fAdditionalTaxPSBT2Line560Cells 8F-8H — explicit overrides; null inherits the matching Part 7 value.null | number
schedule21.line8fRecaptureITCT2Line602null | number
schedule21.line8gAdditionalTaxBanksLifeT2Line565null | number
schedule21.line8hLabourRequirementsAdditionT2Line580null | number
schedule21.part1Rowsarray
schedule21.part1Rows[].claimedAmountOverridenull | number | string
schedule21.part1Rows[].col1b_netForeignNonBusinessIncomeinteger | null | number | objectstrict
schedule21.part1Rows[].col1c_foreignNonBusinessTaxPaidinteger | null | numberstrict
schedule21.part1Rows[].col1d_s20_12Deductioninteger | null | numberstrict
schedule21.part1Rows[].countrynull | stringstrict
schedule21.part1Rows[].foreignAffiliateShareIncomenull | stringstrict
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 | nullstrict
schedule21.part1Rows[].s126_4_11PartnershipMismatchAppliesboolean | nullstrict
schedule21.part1Rows[].s126_4_1NoEconomicProfitAppliesboolean | nullstrict
schedule21.part1Rows[].s126_4_2ShortTermSecurityCapAppliesboolean | nullstrict
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.part2Rowsarray
schedule21.part2Rows[].claimedAmountOverridenull | number
schedule21.part2Rows[].col2b_netForeignBusinessIncomenumberstrict
schedule21.part2Rows[].col2c_foreignBusinessTaxPaidnumberstrict
schedule21.part2Rows[].col2d_unusedFTCPreviousYearsnumberstrict
schedule21.part2Rows[].countrystringstrict
schedule21.part2Rows[].s126_4TaxCreditGeneratorAppliesITA s.126(4) foreign-tax-credit-generator exclusion.booleanstrict
schedule21.part2Rows[].s126_4_11PartnershipMismatchAppliesITA s.126(4.11) partnership-allocation exclusion.booleanstrict
schedule21.part2Rows[].s126_4_1NoEconomicProfitAppliesITA s.126(4.1) no-economic-profit exclusion.booleanstrict
schedule21.part2Rows[].s126_4_2ShortTermSecurityCapAppliesITA s.126(4.2) short-term-security cap.booleanstrict
schedule21.part2Rows[].s126_4_3ShortTermSecurityCapExceptionAppliesITA s.126(4.3) exception, demanded only when s126_4_2ShortTermSecurityCapApplies is true.boolean
schedule21.part3Rowsarray
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[].amountnull | number
schedule21.part3Rows[].col3l_originYearBreakdown[].originYearnull | number
schedule21.part3Rows[].col3l_originYearBreakdown[].originYearEndnull | 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[].amountnull | number
schedule21.part3Rows[].col3o_originYearBreakdown[].originYearnull | number
schedule21.part3Rows[].col3o_originYearBreakdown[].originYearEndnull | 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[].countrystring
schedule21.part4Rowsarray
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[].countrystring
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.part5BcIncomeFromLoggingnull | number
schedule21.part5BcLoggingTaxPaidnull | 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.part5QcIncomeFromLoggingnull | number
schedule21.part5QcLoggingTaxPaidnull | 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.part9Rowsarray
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.firstYearAfterAmalgamationbooleanstrict
t2Jacket.filingStatus.firstYearAfterIncorporationbooleanstrict
t2Jacket.filingStatus.subsidiaryWindupS88booleanstrict
t2Jacket.identification.isResidentOfCanadabooleanstrict
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
workpapers[]boolean | null | number | stringstrict
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.

Strict profile accepted values for schedule21
CellAccepted values
accounts[].accountCode0 to 20000 characters
accounts[].accountName0 to 20000 characters
accounts[].classification.adjustmentType0 to 20000 characters
accounts[].classification.assumption0 to 20000 characters
accounts[].classification.deductibility0 to 20000 characters
accounts[].classification.deductibilityPercentage-1000000000000000 to 1000000000000000; 0 to 20000 characters
accounts[].classification.deductibilityRule0 to 20000 characters
accounts[].classification.ruleId0 to 20000 characters
accounts[].classification.templateId0 to 20000 characters
accounts[].classification.treatment0 to 20000 characters
accounts[].currentYearBalance-1000000000000000 to 1000000000000000
accounts[].id0 to 20000 characters
accounts[].reviewStatus0 to 20000 characters
accounts[].userStatus0 to 20000 characters
daysInYear1 to 1000000000000000
fiscalEnddate (YYYY-MM-DD); 10 to 10 characters
fiscalStartdate (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[].country0 to 20000 characters
schedule21.part1Rows[].foreignAffiliateShareIncome0 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[].country0 to 20000 characters
schedule21.part3Rows[].col3l_originYearBreakdown[].originYearEnd0 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[].originYearEnd0 to 20000 characters
schedule21.part3Rows[].col3p_currentYearTaxPaidOverride-1000000000000000 to 1000000000000000
schedule21.part3Rows[].col3q_currentYearCreditDeductedOverride-1000000000000000 to 1000000000000000
schedule21.part3Rows[].country0 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[].country0 to 20000 characters
schedule21.part4Rows[].targetYearEvidence[].taxationYearEnd0 to 20000 characters
schedule21.part9Rows[].country0 to 20000 characters
schedule21.part9Rows[].province0 to 20000 characters
schedule21.part9Rows[].provinceTaxableIncomeAllocationOverride-1000000000000000 to 1000000000000000
schedule21.part9Rows[].provincialTaxRate-1000000000000000 to 1000000000000000
taxYearmatches ^\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.

Output cells for schedule21
CellTypes
batch_refinement.partITaxAppliedboolean
batch_refinement.phasestring
batch_refinement.s1FeedStableboolean
batch_refinement.schedule1Appliedboolean
batch_refinement.schedule3Appliedboolean
batch_refinement.schedule4Appliedboolean
batch_refinement.schedule5Appliedboolean
federal_fbi_credit_totalnumber
federal_fnbi_credit_totalnumber
federal_logging_tax_creditnumber
fired_gatesobject
isAuthorizedForeignBankboolean
line_100string
line_110number
line_120number
line_130number
line_180number
line_200string
line_210number
line_220number
line_230number
line_280number
line_345string
line_348number
line_350number
line_360number
line_380number
line_500number
line_510number
line_520number
line_530number
line_580number
line_600number
line_610number
line_620number
line_900string
line_901number
line_902number
line_903number
part_1_rows[].claimed_amountnumber
part_1_rows[].col_1bnumber
part_1_rows[].col_1cnumber
part_1_rows[].col_1dnumber
part_1_rows[].col_1enumber
part_1_rows[].col_1fnumber
part_1_rows[].col_1gnumber
part_1_rows[].col_1hnumber
part_1_rows[].col_1inumber
part_1_rows[].countrystring
part_2_rowsarray
part_3_rowsarray
part_4_rowsarray
part_5_rowsarray
part_6.line_600number
part_6.val_6anumber
part_6.val_6bnumber
part_6.val_6cnumber
part_6.val_6dnumber
part_6.val_6enumber
part_6.val_6fnumber
part_6.val_6gnumber
part_6.val_6hnumber
part_6.val_6inumber
part_6.val_6jnumber
part_6.val_6knumber
part_6.val_6lnumber
part_6.val_6mnumber
part_6.val_6nnumber
part_7.line_610number
part_7.val_7anumber
part_7.val_7bnumber
part_7.val_7cnumber
part_7.val_7dnumber
part_7.val_7enumber
part_7.val_7fnumber
part_7.val_7gnumber
part_7.val_7hnumber
part_7.val_7inumber
part_7.val_7jnumber
part_7.val_7knumber
part_8.line_620number
part_8.val_8anumber
part_8.val_8bnumber
part_8.val_8cnumber
part_8.val_8dnumber
part_8.val_8enumber
part_8.val_8fnumber
part_8.val_8gnumber
part_8.val_8hnumber
part_8.val_8inumber
part_8.val_8jnumber
part_9_rowsarray
provincial_ftc_application.appliedToProvincialTaxboolean
provincial_ftc_application.appliedToSchedule5boolean
provincial_ftc_application.calculatedTotalnumber
provincial_ftc_application.reasonarray | boolean | null | number | object | string
provincial_ftc_application.statusstring
provincial_ftc_totals_by_provobject
provisionalboolean
readyboolean
s1_feed_s20_12_deductionnumber
s1_feed_s20_12_deduction_by_countryarray
val_5gnumber
val_5hnumber
warnings[].boxnull | 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[].gate_idstring
warnings[].messagestring
warnings[].severitystring
warnings[].codestring
warnings[].producerstring
warnings[].targetstring
warnings[].manualValuenumber
warnings[].canonicalValuenumber
warnings[].amountnumber
canadianBankingBusinessDeterminationarray | boolean | null | number | object | string
federal_fbi_credit_total_without_s123_4number
federal_fnbi_credit_total_without_s123_3_and_s123_4number
part_7_without_s123_3_and_s123_4.line_610number
part_7_without_s123_3_and_s123_4.val_7anumber
part_7_without_s123_3_and_s123_4.val_7bnumber
part_7_without_s123_3_and_s123_4.val_7cnumber
part_7_without_s123_3_and_s123_4.val_7dnumber
part_7_without_s123_3_and_s123_4.val_7enumber
part_7_without_s123_3_and_s123_4.val_7fnumber
part_7_without_s123_3_and_s123_4.val_7gnumber
part_7_without_s123_3_and_s123_4.val_7hnumber
part_7_without_s123_3_and_s123_4.val_7inumber
part_7_without_s123_3_and_s123_4.val_7jnumber
part_7_without_s123_3_and_s123_4.val_7knumber
part_8_without_s123_4.line_620number
part_8_without_s123_4.val_8anumber
part_8_without_s123_4.val_8bnumber
part_8_without_s123_4.val_8cnumber
part_8_without_s123_4.val_8dnumber
part_8_without_s123_4.val_8enumber
part_8_without_s123_4.val_8fnumber
part_8_without_s123_4.val_8gnumber
part_8_without_s123_4.val_8hnumber
part_8_without_s123_4.val_8inumber
part_8_without_s123_4.val_8jnumber
Filemark | schedule21 cells