foreign_affiliate_analysis

T2 Corporation Income Tax Return

Kind
batch
Supported tax years
—
Strict profile
foreign_affiliate_analysis_v1
Payload schema version
0.1.0
Dependencies (run automatically)
none

Example request

Send this body to POST /api/v1/computations/batch. This example works with or without payloadContract.

{
  "compute": [
    "foreign_affiliate_analysis"
  ],
  "inputs": {
    "taxYear": 2025,
    "fiscalStart": "2025-01-01",
    "fiscalEnd": "2025-12-31",
    "workpapers": [
      {
        "templateId": "foreign-affiliate-ledger",
        "rows": []
      }
    ],
    "isCCPC": true
  }
}

Input cells (23)

Paths are relative to the request's inputs object. [] marks an array element.

Cells marked always require a non-null value in every request. Cells marked strict are required when you supply this target's payloadContract. See Run computations.

Unknown cells and JSON type mismatches return 400 with the affected cells in the error details.

Input cells for foreign_affiliate_analysis
CellTypesRequired
corpTypenull | number
corpTypeChangeEffectiveDatenull | string
daysInYearinteger
fiscalEndThe last day of the taxation year in ISO YYYY-MM-DD form, which bounds every disposition date. Send it with fiscalStart and daysInYear: the three are the canonical taxation-period trio, and all three are mandatory whenever the request reaches Part I through its dependency closure. Strict YYYY-MM-DD, and not before fiscalStart.null | stringstrict
fiscalStartThe first day of the taxation year (ISO YYYY-MM-DD). With fiscalEnd and daysInYear it is the canonical taxation-period trio, and all three are mandatory whenever the request reaches Part I through its dependency closure — the request is refused before any computation when one is missing. The bounds also drive Schedule 8's Reg 1100(3) short-year CCA proration and the Reg 1104(3.5)(b) immediate-expensing limit proration.null | stringstrict
isCCPCboolean
schedule25Schedule 25 Investment in Foreign Affiliates input object, including hasForeignAffiliates and affiliateRows. It supplies the affiliate roster used by foreign-affiliate analysis and related schedules. Omission adds no input roster; a computed Schedule 25 may supply one, otherwise affiliate presence remains unknown rather than an answered no.null | object
schedule25.section212_3ForeignAffiliateInvestmentMadeWhether the corporation made an investment in a foreign affiliate, one of the two charging facts in ITA s.212.3(1). Answer it true or false whenever an affiliate roster is open: absence cannot default to No, so the request is rejected rather than computed.boolean
substantiveCCPCAnytimeWhether the corporation was a substantive CCPC at any time in the taxation year, used for dividend-pool status and refundable-tax treatment. The answer must reconcile with the T2 additional-information field. Omission falls back to that canonical answer; if neither is answered, substantive-CCPC status remains unknown.boolean | null
t2Jacketobject
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
workpapersobject
workpapers[].adjustmentAmountnumber
workpapers[].adjustmentTypestring
workpapers[].assumptionstring
workpapers[].customNamestring
workpapers[].expectedTotalnumber
workpapers[].idstring
workpapers[].linkedAccountIds[]string
workpapers[].linkedAccountsMetadataobject
workpapers[].rows[]objectstrict
workpapers[].sectionRowsobject
workpapers[].templateIdstringstrict
Strict profile accepted values (14 of 23 cells)

These constraints apply when you supply this target's payloadContract. Cells marked pinned must equal the listed value.

Strict profile accepted values for foreign_affiliate_analysis
CellAccepted values
corpType-1000000000000000 to 1000000000000000
corpTypeChangeEffectiveDate0 to 20000 characters
daysInYear1 to 1000000000000000
fiscalEnddate (YYYY-MM-DD); 10 to 10 characters
fiscalStartdate (YYYY-MM-DD); 10 to 10 characters
taxYearmatches ^\s*(?:1[0-9]{3}|2(?:0(?:[0-1][0-9]{1}|2[0-7])))\s*$; 1000 to 2027
workpapers[].adjustmentAmount-1000000000000000 to 1000000000000000
workpapers[].adjustmentType0 to 20000 characters
workpapers[].assumption0 to 20000 characters
workpapers[].customName0 to 20000 characters
workpapers[].expectedTotal-1000000000000000 to 1000000000000000
workpapers[].id0 to 20000 characters
workpapers[].linkedAccountIds[]0 to 20000 characters
workpapers[].templateId0 to 20000 characters

Output cells (275)

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

Output cells for foreign_affiliate_analysis
CellTypes
presentboolean
readyboolean
ledger.presentboolean
ledger.readyboolean
ledger.errors[]string
ledger.affiliates[].affiliateIdstring
ledger.affiliates[].affiliateNamestring
ledger.affiliates[].affiliateTaxationYearStartstring
ledger.affiliates[].affiliateTaxationYearEndstring
ledger.affiliates[].residenceCountryCurrencystring
ledger.affiliates[].calculatingCurrencystring
ledger.affiliates[].taxReportingCurrencystring
ledger.affiliates[].openingBalances.exemptSurplusnumber
ledger.affiliates[].openingBalances.exemptDeficitnumber
ledger.affiliates[].openingBalances.hybridSurplusnumber
ledger.affiliates[].openingBalances.hybridDeficitnumber
ledger.affiliates[].openingBalances.taxableSurplusnumber
ledger.affiliates[].openingBalances.taxableDeficitnumber
ledger.affiliates[].openingBalances.preAcquisitionSurplusnumber
ledger.affiliates[].openingBalances.preAcquisitionDeficitnumber
ledger.affiliates[].openingBalances.hybridUnderlyingTaxnumber
ledger.affiliates[].openingBalances.underlyingForeignTaxnumber
ledger.affiliates[].annualMovementLedger[].eventIdstring
ledger.affiliates[].annualMovementLedger[].affiliateTaxationYearEndstring
ledger.affiliates[].annualMovementLedger[].movementTypestring
ledger.affiliates[].annualMovementLedger[].earningsCountrystring
ledger.affiliates[].annualMovementLedger[].activeBusinessIdstring
ledger.affiliates[].annualMovementLedger[].earningsAmountnumber
ledger.affiliates[].annualMovementLedger[].netEarningsAmountnumber
ledger.affiliates[].annualMovementLedger[].lossAmountnumber
ledger.affiliates[].annualMovementLedger[].netLossAmountnumber
ledger.affiliates[].annualMovementLedger[].postings.exemptAdditionnumber
ledger.affiliates[].annualMovementLedger[].postings.exemptDeductionnumber
ledger.affiliates[].annualMovementLedger[].postings.hybridAdditionnumber
ledger.affiliates[].annualMovementLedger[].postings.hybridDeductionnumber
ledger.affiliates[].annualMovementLedger[].postings.taxableAdditionnumber
ledger.affiliates[].annualMovementLedger[].postings.taxableDeductionnumber
ledger.affiliates[].annualMovementLedger[].postings.preAcquisitionAdditionnumber
ledger.affiliates[].annualMovementLedger[].postings.preAcquisitionDeductionnumber
ledger.affiliates[].annualMovementLedger[].postings.hybridUnderlyingTaxAdditionnumber
ledger.affiliates[].annualMovementLedger[].postings.hybridUnderlyingTaxDeductionnumber
ledger.affiliates[].annualMovementLedger[].postings.underlyingForeignTaxAdditionnumber
ledger.affiliates[].annualMovementLedger[].postings.underlyingForeignTaxDeductionnumber
ledger.affiliates[].yearClosings[].exemptSurplusnumber
ledger.affiliates[].yearClosings[].exemptDeficitnumber
ledger.affiliates[].yearClosings[].hybridSurplusnumber
ledger.affiliates[].yearClosings[].hybridDeficitnumber
ledger.affiliates[].yearClosings[].taxableSurplusnumber
ledger.affiliates[].yearClosings[].taxableDeficitnumber
ledger.affiliates[].yearClosings[].preAcquisitionSurplusnumber
ledger.affiliates[].yearClosings[].preAcquisitionDeficitnumber
ledger.affiliates[].yearClosings[].hybridUnderlyingTaxnumber
ledger.affiliates[].yearClosings[].underlyingForeignTaxnumber
ledger.affiliates[].yearClosings[].affiliateTaxationYearEndstring
ledger.affiliates[].yearClosings[].calculatingCurrencystring
ledger.affiliates[].yearClosings[].netSurplusnumber
ledger.dividendDerivations[].affiliateIdstring
ledger.dividendDerivations[].affiliateNamestring
ledger.dividendDerivations[].dividendIdstring
ledger.dividendDerivations[].sourceDividendKeystring
ledger.dividendDerivations[].datestring
ledger.dividendDerivations[].calculatingCurrencystring
ledger.dividendDerivations[].taxReportingCurrencystring
ledger.dividendDerivations[].taxReportingCurrencyPerCalculatingCurrencyUnitnumber
ledger.dividendDerivations[].wholeDividendAmountCalculatingCurrencynumber
ledger.dividendDerivations[].receivedAmountCalculatingCurrencynumber
ledger.dividendDerivations[].wholeDividendAmountnumber
ledger.dividendDerivations[].receivedAmountnumber
ledger.dividendDerivations[].exemptSurplusPortionnumber
ledger.dividendDerivations[].hybridSurplusPortionnumber
ledger.dividendDerivations[].taxableSurplusPortionnumber
ledger.dividendDerivations[].preAcquisitionSurplusPortionnumber
ledger.dividendDerivations[].hybridForeignTaxPrescribednumber
ledger.dividendDerivations[].taxableForeignTaxPrescribednumber
ledger.dividendDerivations[].hybridNonBusinessIncomeTaxnumber
ledger.dividendDerivations[].taxableNonBusinessIncomeTaxnumber
ledger.dividendDerivations[].section91_5Deductionnumber
ledger.dividendDerivations[].section113_2HistoricCapacitynumber
ledger.dividendDerivations[].section113_2Deductionnumber
ledger.dividendDerivations[].section113_2HistoricShareIdnull | string
ledger.dividendDerivations[].reg5901_1_1ElectionAppliedboolean
ledger.dividendDerivations[].reg5901_2_aYearEndReallocationAppliedboolean
ledger.dividendDerivations[].reg5901_2_bElectionAppliedboolean
ledger.dividendDerivations[].section93_1.partnershipIdstring
ledger.dividendDerivations[].section93_1.partnershipDividendnumber
ledger.dividendDerivations[].section93_1.memberFmvProportionnumber
ledger.dividendDerivations[].section93_1.deemedReceivednumber
ledger.dividendDerivations[].section93_1.authoritystring
ledger.dividendDerivations[].section93_1null
ledger.dividendDerivations[].authorities[]string
ledger.historicShareClosings[].affiliateIdstring
ledger.historicShareClosings[].shareIdstring
ledger.historicShareClosings[].authoritystring
ledger.historicShareClosings[].adjustedCostBaseAtEndOf1975TaxationYearnumber
ledger.historicShareClosings[].closingSection113_1_dDeductionsnumber
ledger.historicShareClosings[].closingPucReductionsBefore2011_08_20number
ledger.historicShareClosings[].closingQualifyingReturnsAfter2011_08_19number
ledger.historicShareClosings[].closingSection113_2Deductionsnumber
ledger.historicShareClosings[].remainingSection113_2Capacitynumber
ledger.ownershipSnapshots[].datestring
ledger.ownershipSnapshots[].affiliateIdstring
ledger.ownershipSnapshots[].surplusEntitlementBasisstring
ledger.ownershipSnapshots[].authoritystring
ledger.ownershipSnapshots[].directEquityPercentnumber
ledger.ownershipSnapshots[].equityPercentnumber
ledger.ownershipSnapshots[].surplusEntitlementPercentnumber
ledger.ownershipSnapshots[].chainProducts[].chain[]string
ledger.ownershipSnapshots[].chainProducts[].productPercentnumber
ledger.ownershipSnapshots[].surplusEntitlementChainProducts[].chain[]string
ledger.ownershipSnapshots[].surplusEntitlementChainProducts[].productPercentnumber
ledger.reg5902Elections[].affiliateIdstring
ledger.reg5902Elections[].electionIdstring
ledger.reg5902Elections[].dividendTimestring
ledger.reg5902Elections[].calculatingCurrencystring
ledger.reg5902Elections[].taxReportingCurrencystring
ledger.reg5902Elections[].authoritystring
ledger.reg5902Elections[].electionFiledDatenull | string
ledger.reg5902Elections[].section93_1_11DeemedElectionboolean
ledger.reg5902Elections[].capitalGainOtherwiseDeterminednull | number
ledger.reg5902Elections[].electedDividendAmountnumber
ledger.reg5902Elections[].capitalGainOtherwiseDeterminedTaxReportingCurrencynumber
ledger.reg5902Elections[].electedDividendAmountTaxReportingCurrencynumber
ledger.reg5902Elections[].downstreamNetSurplusnumber
ledger.reg5902Elections[].deemedWholeDividendnumber
ledger.reg5902Elections[].wholeDividendMultipliernumber
ledger.reg5902Elections[].reg5902DenominatorDnumber
ledger.reg5902Elections[].specifiedAdjustmentFactornumber
ledger.reg5902Elections[].preAcquisitionPortionNoAccountAdjustmentnumber
ledger.reg5902Elections[].hybridUnderlyingTaxAdjustmentnumber
ledger.reg5902Elections[].underlyingForeignTaxAdjustmentnumber
ledger.reg5902Elections[].accountAdjustments.exemptnumber
ledger.reg5902Elections[].accountAdjustments.hybridnumber
ledger.reg5902Elections[].accountAdjustments.taxablenumber
ledger.currencyTranslationReceipts[].datestring
ledger.currencyTranslationReceipts[].fromCurrencystring
ledger.currencyTranslationReceipts[].toCurrencystring
ledger.currencyTranslationReceipts[].usestring
ledger.currencyTranslationReceipts[].ratenumber
ledger.currencyTranslationReceipts[].rateIds[]string
ledger.schedule25EquityReconciliation[].affiliateIdstring
ledger.schedule25EquityReconciliation[].datestring
ledger.schedule25EquityReconciliation[].equityPercentnumber
ledger.schedule25EquityReconciliation[].foreignAffiliateOwnLimbMetboolean
upstreamLoans.readyboolean
upstreamLoans.rows[].loanIdstring
upstreamLoans.rows[].datestring
upstreamLoans.rows[].taxReportingCurrencystring
upstreamLoans.rows[].loanAmountnumber
upstreamLoans.rows[].creditorPercentagenumber
upstreamLoans.rows[].debtorPercentagenumber
upstreamLoans.rows[].specifiedAmountnumber
upstreamLoans.rows[].section90_6Inclusionnumber
upstreamLoans.rows[].section90_9Deductionnumber
upstreamLoans.rows[].section90_12Addbacknumber
upstreamLoans.rows[].section90_14RepaymentDeductionnumber
upstreamLoans.rows[].closingOutstandingLoannumber
upstreamLoans.rows[].closingSection90_6Inclusionnumber
upstreamLoans.rows[].closingPriorYearSection90_9Deductionnumber
upstreamLoans.rows[].closingSection90_14DeductionsForSamePortionnumber
upstreamLoans.rows[].closingRepaymentsnumber
upstreamLoans.rows[].section90_6Appliesboolean
upstreamLoans.rows[].section90_9Components.exemptnumber
upstreamLoans.rows[].section90_9Components.hybridnumber
upstreamLoans.rows[].section90_9Components.taxablenumber
upstreamLoans.rows[].section90_9Components.section91_5number
upstreamLoans.rows[].section90_9Components.preAcquisitionnumber
upstreamLoans.rows[].section90_9Components.totalnumber
upstreamLoans.rows[].section90_8Exceptionnull | string
upstreamLoans.rows[].authorities[]string
upstreamLoans.incomeAdditionsnumber
upstreamLoans.incomeDeductionsnumber
upstreamLoans.affiliateSection90_6Statusobject
section212_3.appliesboolean
section212_3.readyboolean
section212_3.rows[].investmentIdstring
section212_3.rows[].subjectCorporationIdstring
section212_3.rows[].investmentTimestring
section212_3.rows[].dividendTimestring
section212_3.rows[].paragraph10Typestring
section212_3.rows[].authoritystring
section212_3.rows[].applicationTests.subjectCorporationForeignAffiliateboolean
section212_3.rows[].applicationTests.section15ControlRulesReviewedboolean
section212_3.rows[].applicationTests.paragraph1_b_iThresholdMetboolean
section212_3.rows[].applicationTests.paragraph1_b_iiPreferredShareConditionboolean
section212_3.rows[].applicationTests.paragraph1_b_iiiRiskArrangementboolean
section212_3.rows[].applicationTests.testedCanadianCorporationIdstring
section212_3.rows[].applicationTests.testedCanadianCorporationRolestring
section212_3.rows[].applicationTests.parentControlBasisstring
section212_3.rows[].applicationTests.authoritystring
section212_3.rows[].applicationTests.parentTests[].parentIdstring
section212_3.rows[].applicationTests.parentTests[].votePercentnumber
section212_3.rows[].applicationTests.parentTests[].issuedShareFmvPercentnumber
section212_3.rows[].applicationTests.parentTests[].paragraph1_b_iThresholdMetboolean
section212_3.rows[].baseComponents.propertyTransferredFmvnumber
section212_3.rows[].baseComponents.obligationAssumedOrIncurrednumber
section212_3.rows[].baseComponents.benefitOtherwiseConferrednumber
section212_3.rows[].baseComponents.propertyReceivedReducingCrICDebtnumber
section212_3.rows[].subsection5_1Reductionnumber
section212_3.rows[].baseAmountAnumber
section212_3.rows[].subsection7Reductionnumber
section212_3.rows[].deemedDividendnumber
section212_3.rows[].lateFormDeemedDividendnumber
section212_3.rows[].lateSubstitutionElectionPenaltyRequirednumber
section212_3.rows[].exceptionnull | string
section212_3.rows[].exceptionDetail.businessException16boolean
section212_3.rows[].exceptionDetail.reorganizationException18null | string
section212_3.rows[].exceptionDetail.subsection18_1Overrideboolean
section212_3.rows[].exceptionDetail.subsection19PreferredShareRuleboolean
section212_3.rows[].exceptionDetail.subsection20Amountnumber
section212_3.rows[].subsection7_1ElectionAppliedboolean
section212_3.rows[].dividendSubstitutionElectionAppliedboolean
section212_3.rows[].parentDividends[].parentIdstring
section212_3.rows[].parentDividends[].payorIdstring
section212_3.rows[].parentDividends[].recipientIdstring
section212_3.rows[].parentDividends[].allocationPercentnumber
section212_3.rows[].parentDividends[].deemedDividendnumber
section212_3.rows[].parentDividends[].lateFormDeemedDividendnumber
section212_3.rows[].parentDividends[].lateSubstitutionElectionPenaltyRequirednumber
section212_3.rows[].parentDividends[].dividendSubstitutionElectionAppliedboolean
section212_3.rows[].pucClasses[].corporationIdstring
section212_3.rows[].pucClasses[].shareClassIdstring
section212_3.rows[].pucClasses[].paragraph7Branchstring
section212_3.rows[].pucClasses[].openingPucnumber
section212_3.rows[].pucClasses[].paragraph2bDeductionnumber
section212_3.rows[].pucClasses[].paragraph7aDeductionnumber
section212_3.rows[].pucClasses[].paragraph7bcDeductionnumber
section212_3.rows[].pucClasses[].subsection8Adjustmentnumber
section212_3.rows[].pucClasses[].subsection9Reinstatementnumber
section212_3.rows[].pucClasses[].subsection9OutstandingClassAmountnumber
section212_3.rows[].pucClasses[].subsection9AllClassDenominatornumber
section212_3.rows[].pucClasses[].closingPucnumber
section212_3.rows[].pucClasses[].subsection6AntiAvoidanceAppliedboolean
section212_3.rows[].pucClasses[].subsection7_1ElectionAppliedboolean
section212_3.rows[].authorities[]string
section212_3.deemedDividendnumber
section212_3.lateFormDeemedDividendnumber
section212_3.pucDeductionsnumber
section212_3.pucAdditionsnumber
section212_3.nonResidentControlAtInvestmentboolean | null
offshoreInvestmentFundProperty.presentboolean
offshoreInvestmentFundProperty.readyboolean
offshoreInvestmentFundProperty.rows[].propertyIdstring
offshoreInvestmentFundProperty.rows[].propertyNamestring
offshoreInvestmentFundProperty.rows[].nonResidentEntityIdstring
offshoreInvestmentFundProperty.rows[].nonResidentEntityTypestring
offshoreInvestmentFundProperty.rows[].propertyTypestring
offshoreInvestmentFundProperty.rows[].portfolioInvestmentCategorystring
offshoreInvestmentFundProperty.rows[].prescribedOffshoreInvestmentFundPropertyboolean
offshoreInvestmentFundProperty.rows[].section94_1_3LegacyYearinteger | null
offshoreInvestmentFundProperty.rows[].componentDnumber
offshoreInvestmentFundProperty.rows[].grossPrescribedReturnnumber
offshoreInvestmentFundProperty.rows[].nonCapitalIncomenumber
offshoreInvestmentFundProperty.rows[].incomeInclusionnumber
offshoreInvestmentFundProperty.rows[].acbAdditionnumber
offshoreInvestmentFundProperty.rows[].monthlyAmounts[].monthEndstring
offshoreInvestmentFundProperty.rows[].monthlyAmounts[].designatedCostnumber
offshoreInvestmentFundProperty.rows[].monthlyAmounts[].prescribedRatenumber
offshoreInvestmentFundProperty.rows[].monthlyAmounts[].ratePlusTwoPercentnumber
offshoreInvestmentFundProperty.rows[].monthlyAmounts[].imputedAmountnumber
offshoreInvestmentFundProperty.rows[].authorities[]string
offshoreInvestmentFundProperty.incomeInclusionnumber
offshoreInvestmentFundProperty.acbAdditionnumber
offshoreInvestmentFundProperty.acbAdjustments[].propertyIdstring
offshoreInvestmentFundProperty.acbAdjustments[].taxationYearEndstring
offshoreInvestmentFundProperty.acbAdjustments[].additionnumber
offshoreInvestmentFundProperty.acbAdjustments[].authoritystring
offshoreInvestmentFundProperty.errors[]string
errors[]string
warnings[].codestring
warnings[].severitystring
warnings[].messagestring
warnings[].rowinteger
warnings[].rowIndexinteger
warnings[].templateIdstring
warnings[].columnstring
Filemark | foreign_affiliate_analysis cells