shareholder_loan

T2 Corporation Income Tax Return

Kind
batch
Supported tax years
2023–2027
Strict profile
shareholder_loan_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": [
    "shareholder_loan"
  ],
  "inputs": {
    "taxYear": 2025,
    "fiscalStart": "2025-01-01",
    "fiscalEnd": "2025-12-31",
    "shareholderLoan": {
      "analysisDate": "2026-09-08",
      "rows": []
    }
  }
}

Input cells (36)

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 shareholder_loan
CellTypesRequired
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
shareholderLoanDated shareholder-loan facts and analysis assumptions.null | object
shareholderLoan.analysisDateDate on which the loan analysis is prepared.null | string
shareholderLoan.interestPaidByRowInterest paid, keyed by loan row identifier.null | object
shareholderLoan.prescribedRateOverrideAn evidenced prescribed-rate override for the stated period.null | object
shareholderLoan.prescribedRateOverride.effectiveFromstring
shareholderLoan.prescribedRateOverride.effectiveTostring
shareholderLoan.prescribedRateOverride.ratenumber
shareholderLoan.prescribedRateOverride.sourcestring
shareholderLoan.priorYearEndsActual prior taxation-period end dates.null | array
shareholderLoan.priorYearEnds[]One actual prior taxation-period end date.string
shareholderLoan.rowsShareholder loans and their dated advances and repayments.null | array
shareholderLoan.rows[].actualInterestRatenull | number
shareholderLoan.rows[].amountCYnull | number
shareholderLoan.rows[].amountPYnull | number
shareholderLoan.rows[].backToBackAttestationnull | string
shareholderLoan.rows[].borrowerTypenull | string
shareholderLoan.rows[].capacitynull | string
shareholderLoan.rows[].dateAdvancednull | string
shareholderLoan.rows[].descriptionnull | string
shareholderLoan.rows[].employmentBenefitIndividualNamenull | string
shareholderLoan.rows[].exceptionnull | string
shareholderLoan.rows[].exceptionConditionsnull | string
shareholderLoan.rows[].homePurchaseLoannull | string
shareholderLoan.rows[].interestPaidnull | number
shareholderLoan.rows[].interestPaidDatenull | string
shareholderLoan.rows[].loanIdentifiernull | string
shareholderLoan.rows[].originalPrincipalnull | number
shareholderLoan.rows[].personalServicesBusinessServicesnull | string
shareholderLoan.rows[].repaidStatusnull | string
shareholderLoan.rows[].seriesTestnull | string
shareholderLoan.rows[].transactions[].amountnumber
shareholderLoan.rows[].transactions[].datestring
shareholderLoan.rows[].transactions[].typestring
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.null | number | stringalways
Strict profile accepted values (31 of 36 cells)

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

Strict profile accepted values for shareholder_loan
CellAccepted values
fiscalEnddate (YYYY-MM-DD); 10 to 10 characters
fiscalStartdate (YYYY-MM-DD); 10 to 10 characters
shareholderLoan.analysisDate0 to 20000 characters
shareholderLoan.prescribedRateOverride.effectiveFrom0 to 20000 characters
shareholderLoan.prescribedRateOverride.effectiveTo0 to 20000 characters
shareholderLoan.prescribedRateOverride.rate-60600000000000 to 60600000000000
shareholderLoan.prescribedRateOverride.source0 to 20000 characters
shareholderLoan.priorYearEnds[]0 to 20000 characters
shareholderLoan.rows[].actualInterestRate-1000000000000000 to 1000000000000000
shareholderLoan.rows[].amountCY-1000000000000000 to 1000000000000000
shareholderLoan.rows[].amountPY-1000000000000000 to 1000000000000000
shareholderLoan.rows[].backToBackAttestation0 to 20000 characters
shareholderLoan.rows[].borrowerType0 to 20000 characters
shareholderLoan.rows[].capacity0 to 20000 characters
shareholderLoan.rows[].dateAdvanced0 to 20000 characters
shareholderLoan.rows[].description0 to 20000 characters
shareholderLoan.rows[].employmentBenefitIndividualName0 to 20000 characters
shareholderLoan.rows[].exception0 to 20000 characters
shareholderLoan.rows[].exceptionConditions0 to 20000 characters
shareholderLoan.rows[].homePurchaseLoan0 to 20000 characters
shareholderLoan.rows[].interestPaid-1000000000000000 to 1000000000000000
shareholderLoan.rows[].interestPaidDate0 to 20000 characters
shareholderLoan.rows[].loanIdentifier0 to 20000 characters
shareholderLoan.rows[].originalPrincipal-1000000000000000 to 1000000000000000
shareholderLoan.rows[].personalServicesBusinessServices0 to 20000 characters
shareholderLoan.rows[].repaidStatus0 to 20000 characters
shareholderLoan.rows[].seriesTest0 to 20000 characters
shareholderLoan.rows[].transactions[].amount-60600000000000 to 60600000000000
shareholderLoan.rows[].transactions[].date0 to 20000 characters
shareholderLoan.rows[].transactions[].type0 to 20000 characters
taxYearmatches ^\s*(?:1[0-9]{3}|2(?:0(?:[0-1][0-9]{1}|2[0-7])))\s*$; 1000 to 2027

Output cells (46)

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

Output cells for shareholder_loan
CellTypes
perRow[].descriptionstring
perRow[].loanIdentifiernull | string
perRow[].dateAdvancednull | string
perRow[].borrowerTypenull | string
perRow[].capacitynull | string
perRow[].employmentBenefitIndividualNamenull | string
perRow[].repaidStatusnull | string
perRow[].seriesTestnull | string
perRow[].exceptionnull | string
perRow[].amountCYnumber
perRow[].amountPYnumber
perRow[].s15_2.potentialInclusionnumber
perRow[].s15_2.deadlinenull | string
perRow[].s15_2.deadlinePassedboolean
perRow[].s15_2.repaymentRequiredboolean
perRow[].s15_2.rationalestring
perRow[].s15_2.originalPrincipalnull | number
perRow[].s15_2.principalBasisstring
perRow[].s15_2.inclusionYearinteger | null
perRow[].s15_2.chargingProvisionAppliesboolean
perRow[].s15_2.determinationWithheldboolean
perRow[].s15_2.partXIII.deemedDividendnumber
perRow[].s15_2.partXIII.statutoryRatenumber
perRow[].s15_2.partXIII.statutoryWithholdingnumber
perRow[].s15_2.partXIII.treatyRateDeterminationRequiredboolean
perRow[].s15_2.partXIIInull
perRow[].s80_4.deemedInterestnumber
perRow[].s80_4.imputedInterestnumber
perRow[].s80_4.actualInterestnumber
perRow[].s80_4.statedInterestPaidnumber
perRow[].s80_4.rationalestring
perRow[].s80_4.methodstring
totalS15Inclusionnumber
totalS80_4DeemedInterestnumber
totalS80_4Imputednumber
totalActualInterestPaidnumber
totalPartXIIIWithholdingnumber
prescribedRateUsednumber
fiscalStartstring
fiscalEndstring
todaystring
deadlinePassedCountinteger
warnings[].codestring
warnings[].severitystring
warnings[].messagestring
provisionalboolean
Filemark | shareholder_loan cells