schedule45
T2 Corporation Income Tax Return
- Kind
- batch
- Supported tax years
- 2005 and later
- Strict profile
- s45_single_transfer_agreement_profile_target_value_v1
- Payload schema version
- 0.7.0
- Dependencies (run automatically)
- schedule43
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": [
"schedule45"
],
"inputs": {
"taxYear": 2025,
"schedule43": {
"line1BPriorYearNonExcludedDividendsPaid": 0,
"line220StpsDividendsPaid": 700000
},
"schedule45": {
"isFilingAsTransferor": true,
"relatedCorporationConfirmed": true,
"relatedOnlyByS251_5_b_OptionRight": false,
"relatedOnlyByGovernmentControl": false,
"transfereeIsTaxableCanadianCorp": true,
"directorsResolutionsAttached": true,
"relatedMainPurposeWasTransfer": false,
"isAmendingAgreement": false,
"line105TotalPartVi1TaxTransferred": 50000,
"line110TransferorName": "Cedar Ridge Holdings Inc.",
"line115TransferorBusinessNumber": "333333334RC0001",
"line120TransferorTaxYearEnd": "2025-12-31",
"transferees": [
{
"name": "Cedar Ridge Manufacturing Inc.",
"businessNumber": "333333334RC0001",
"transferredAmount": 50000,
"transfereeTaxYearEnd": "2025-12-31"
}
]
}
}
}Input cells (22)
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 |
|---|---|---|
| schedule43.line1BPriorYearNonExcludedDividendsPaid | integer | strict |
| schedule43.line220StpsDividendsPaid | integer | strict |
| schedule45.directorsResolutionsAttacheds.191.3(2) filing condition: certified copies of the directors' resolutions authorizing the Part VI.1 tax transfer agreement are attached. | boolean | null | strict |
| schedule45.isAmendingAgreementThis Schedule 45 is an amending agreement; s.191.3(2)(d) makes the latest otherwise-compliant agreement operative. | boolean | null | strict |
| schedule45.isFilingAsTransferorWhether this return files the s.191.3 agreement as the transferor; true ties the agreement to Schedule 43 line 260, false to the filer's transferee row and line 250. | boolean | null | strict |
| schedule45.line101DateFiledBox 101 — Date filed ("do not use this area" per CRA prompt; reserved for CRA's date-stamp on receipt). Filemark accepts a practitioner value for internal audit but does NOT transmit. | null | string | |
| schedule45.line105TotalPartVi1TaxTransferredBox 105: the Part VI.1 tax the filed agreement itself specifies as transferred. A distinct required operand since the box gained its own input path; the column-233 sum is capped by it, never substituted for it. | null | number | |
| schedule45.line110TransferorNameBox 110 — Name of the transferor corporation. | null | string | strict |
| schedule45.line115TransferorBusinessNumberBox 115 — Full 15-character CRA program account. | null | string | strict |
| schedule45.line120TransferorTaxYearEndBox 120 — Tax year-end of the transferor corporation (YYYY-MM-DD). | null | string | strict |
| schedule45.relatedCorporationConfirmedConfirms s.191.3(1)(a) and (b): the transferee was related to the transferor throughout the transferor's taxation year and throughout the transferee's last taxation year ending in it. | boolean | null | strict |
| schedule45.relatedMainPurposeWasTransfers.191.3(4) anti-avoidance: the main purpose of the corporations becoming related was to permit the transfer, so the specified amount is deemed nil. | boolean | null | strict |
| schedule45.relatedOnlyByGovernmentControlThe corporations are related only through government control; that relation does not count for the s.191.3 agreement, which is then invalid. | boolean | null | strict |
| schedule45.relatedOnlyByS251_5_b_OptionRightThe corporations are related only through a s.251(5)(b) option right; that relation does not count for the s.191.3 agreement, which is then invalid. | boolean | null | strict |
| schedule45.transfereeIsTaxableCanadianCorpForm preamble condition: the transferee must be a related taxable Canadian corporation; false or unset blocks the s.191.3 agreement. | boolean | null | strict |
| schedule45.transfereesTransferee rows (box 225 / 230 / 233 / 235 per row). | array | |
| schedule45.transferees[].businessNumberBox 230 — Full 15-character CRA program account (9 digits, 2 letters, and 4 digits). The form does not authorize an "NR" alternative. | null | string | strict |
| schedule45.transferees[].nameBox 225 — Name of the transferee corporation. | null | string | strict |
| schedule45.transferees[].transfereeTaxYearEndBox 235 — Tax year end (YYYY-MM-DD) to which this agreement applies for the transferee. Per s.191.3(1)(b) this is the transferee's last taxation year ending at or before the end of the transferor's taxation year. | null | string | strict |
| schedule45.transferees[].transferredAmountBox 233 — Part VI.1 tax transferred to this transferee, in CAD. Must be positive. Sum of column 233 across rows feeds box 105 and must not exceed the transferor's gross Part VI.1 tax per s.191.3(1)(c). | null | number | string | strict |
| schedule45.transferorGrossPartVi1TaxOtherwisePayableThe TRANSFEROR's Part VI.1 tax otherwise payable for the agreement year — its Schedule 43 amounts 3C + 3I + 3Q, excluding tax it owes under another s.191.3 agreement. Required on a transferee copy, where it is a fact about a different corporation that this return cannot derive; null blocks rather than accepting the agreement's own figure. On a transferor copy the canonical Schedule 43 figure governs and a stated value that disagrees with it is a contradiction. | null | number | |
| 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 (11 of 22 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 |
|---|---|
| schedule43.line1BPriorYearNonExcludedDividendsPaid | -1000000000000000 to 1000000000000000 |
| schedule43.line220StpsDividendsPaid | -1000000000000000 to 1000000000000000 |
| schedule45.line105TotalPartVi1TaxTransferred | -1000000000000000 to 1000000000000000 |
| schedule45.line110TransferorName | 0 to 20000 characters |
| schedule45.line115TransferorBusinessNumber | 0 to 20000 characters |
| schedule45.line120TransferorTaxYearEnd | 0 to 20000 characters |
| schedule45.transferees[].businessNumber | 0 to 20000 characters |
| schedule45.transferees[].name | 0 to 20000 characters |
| schedule45.transferees[].transfereeTaxYearEnd | 0 to 20000 characters |
| schedule45.transferees[].transferredAmount | -1000000000000000 to 1000000000000000; 0 to 20000 characters |
| taxYear | matches ^\s*(?:1[0-9]{3}|2(?:0(?:[0-1][0-9]{1}|2[0-7])))\s*$; 1000 to 2027 |
Output cells (44)
Paths are relative to this target’s result object in the response.
| Cell | Types |
|---|---|
| directorsResolutionsAttached | boolean | null |
| fired_gates | object |
| isFilingAsTransferor | boolean | null |
| line_101 | array | boolean | null | number | object | string |
| line_105 | number |
| line_110 | null | string |
| line_115 | null | string |
| line_120 | null | string |
| line_225 | null | string |
| line_230 | null | string |
| line_233 | number |
| line_235 | null | string |
| missing_required[] | string |
| provisional | boolean |
| ready | boolean |
| relatedCorporationConfirmed | boolean | null |
| total_transferred | number |
| transfereeIsTaxableCanadianCorp | boolean | null |
| transferees[].line_225 | string |
| transferees[].line_230 | string |
| transferees[].line_233 | number |
| transferees[].line_235 | string |
| warnings[].box | null | string |
| warnings[].citation.display | string |
| warnings[].citation.kind | string |
| warnings[].citation.section | 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[].codeStable machine identity of the disclosure, independent of its prose. | string |
| warnings[].notesWhat the rate manifest records against the year, including what is still outstanding before the year can be verified. | string |
| warnings[].sectionThe module that emitted the disclosure. | string |
| warnings[].sources[] | string |
| warnings[].taxYearThe taxation year whose rate tables are unverified. | integer |
| warnings[].taxYears[] | integer |