schedule17
T2 Corporation Income Tax Return
- Kind
- batch
- Supported tax years
- 2022 and later
- Strict profile
- s17_2022_single_part1_rows_target_value_v1
- Payload schema version
- 0.5.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": [
"schedule17"
],
"inputs": {
"taxYear": 2025,
"fiscalStart": "2025-01-01",
"fiscalEnd": "2025-12-31",
"daysInYear": 365,
"isCCPC": true,
"schedule17": {
"isCreditUnion": true,
"part1AllocationRows": [
{
"line_100_interest_payable_by_members": 5000,
"line_200_money_borrowed_by_members": 100000,
"line_300_allocation_in_proportion_to_borrowing": 2000
}
],
"part1BonusInterestRows": [
{
"line_110_interest_payable_to_members": 8000,
"line_210_money_on_deposit_by_members": 150000,
"line_310_bonus_interest_payments": 4000
}
]
}
}
}Input cells (46)
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 |
|---|---|---|
| daysInYearInclusive day count for the canonical fiscalStart/fiscalEnd period. TXE-680 routed the single-target schedule17 request through the same two-phase SBD seam as the filing batch, whose Part I closure requires the complete canonical taxation-period trio. | 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 |
| isCCPCCanadian-controlled private corporation status, the T2 box 040 fact the SBD closure requires. The witness credit union is a CCPC; s.137(7) deems a credit union not a private corporation except for the enumerated provisions, and the s.125 deduction reaches it through s.137(4)/(3). | boolean | strict |
| schedule17.amount_1a_part1_total_deductionPart 1 amount 1A, line 305 plus line 315, the credit union's total payments-to-members deduction flowing to Schedule 1 line 315. The engine computes it from the per-class rows, so send it only to reconcile an imported total. | null | number | string | |
| schedule17.amount_2a_pra_opening_on_bcAmount 2A — PRA at end of PY incl. transfers (= 2E from PY S17, or zero if first-time ON/BC PE filer). Carries forward from line 801 via carryforward_schedule17. | null | number | |
| schedule17.amount_2f_sbd_for_tax_yearAmount 2F — SBD claimed for tax year (= T2 line 430). | null | number | |
| schedule17.amount_3a_pra_opening_mbAmount 3A — MB opening PRA incl. transfers. | null | number | |
| schedule17.amount_3d_s383_amount_1eAmount 3D — MB SBD claimed (= S383 amount 1E). | null | number | |
| schedule17.amount_3j_s383_amount_1fAmount 3J — = S383 amount 1F. | null | number | |
| schedule17.hasPermanentEstablishmentBritishColumbiaTrue iff the corp has a permanent establishment in British Columbia. | boolean | null | |
| schedule17.hasPermanentEstablishmentManitobaTrue iff the corp has a permanent establishment in Manitoba. Drives Part 3 applicability. | boolean | null | |
| schedule17.hasPermanentEstablishmentOntarioTrue iff the corp has a permanent establishment in Ontario. Drives Part 2 applicability (along with hasPermanentEstablishmentBritishColumbia). | boolean | null | |
| schedule17.isCreditUnionWhether the filer is a credit union (ITA s.137). Used when this target runs on its own, standing in for the T2 jacket's credit-union status. If the two disagree, the engine blocks. | boolean | null | strict |
| schedule17.line_305Line 305 — Total allocations in proportion to borrowing (sum of col 300 across rows). Practitioner may override the computed sum or leave null to defer to the engine. | null | number | |
| schedule17.line_315Line 315 — Total bonus interest payments (sum of col 310 across rows). Practitioner may override or defer to engine. | null | number | |
| schedule17.line_501Line 501 — Taxable income for tax year (= T2 line 360). | null | number | |
| schedule17.line_502Line 502 — MB taxable income (= S383 amount 1A). | null | number | |
| schedule17.line_601Line 601 — 4/3 × maximum cumulative reserve at end of tax year. MCR per s.137(6) is 5% × (debts to members + members' shares). | null | number | |
| schedule17.line_602Line 602 — 4/3 × MCR at end of tax year (typically equal to line 601). | null | number | |
| schedule17.line_626Line 626 — Min of T2 lines 400, 405, 410, 428 (federal SBD-eligibility floor that grinds the year's PRA addition). | null | number | |
| schedule17.line_651Line 651 — Amount 2D × 19% (engine-computed; override allowed). | null | number | |
| schedule17.line_652Line 652 — Amount 3H × 12% (engine-computed; feeds S383 amount 2B). | null | number | |
| schedule17.line_701Line 701 — PRA at end of PY (= PY line 801). | null | number | |
| schedule17.line_702Line 702 — MB PRA at end of PY (= PY line 802). | null | number | |
| schedule17.line_751Line 751 — PRA transferred on amalgamation or wind-up (s.87 / s.88 continuity; default zero). | null | number | |
| schedule17.line_752Line 752 — MB PRA transferred on amalgamation or wind-up. | null | number | |
| schedule17.line_801Line 801 — PRA at end of tax year (= 2E + 2I, engine-computed). | null | number | |
| schedule17.line_802Line 802 — MB PRA at end of tax year (= 3I + 3J + 3K, engine-computed). | null | number | |
| schedule17.part1AllocationRowsPer-class rows for allocations in proportion to borrowing. Each row's col 300 sums into line 305. | array | |
| schedule17.part1AllocationRows[].classDescriptionOptional practitioner notes for this class row. | null | string | |
| schedule17.part1AllocationRows[].line_100_interest_payable_by_membersCol 100 — Interest payable BY all members of class (reference input). | null | number | strict |
| schedule17.part1AllocationRows[].line_200_money_borrowed_by_membersCol 200 — Amount of money borrowed BY all members of class (reference input). | null | number | strict |
| schedule17.part1AllocationRows[].line_300_allocation_in_proportion_to_borrowingCol 300 — Allocation in proportion to borrowing for the class (deductible). | null | number | string | strict |
| schedule17.part1AllocationRows[].paymentDateDate the payment was made to members (ISO YYYY-MM-DD). ITA s.137(2) deducts only payments "made by the credit union within the year or within 12 months thereafter". null = unanswered. | null | string | |
| schedule17.part1AllocationRows[].sameRateAttestationWere the payments to members of this class computed at the SAME RATE? ITA s.137(6) "allocation in proportion to borrowing" admits only same-rate classes. false excludes the row from the total; null = unanswered. | boolean | null | |
| schedule17.part1AllocationRows[].wasDeductibleInPriorYearWas this amount DEDUCTIBLE in computing income for a preceding tax year? ITA s.137(2) opening words. true removes the row from this year's total whether or not it was actually claimed; null = unanswered. | boolean | null | |
| schedule17.part1BonusInterestRowsPer-class rows for bonus interest payments. Each row's col 310 sums into line 315. | array | |
| schedule17.part1BonusInterestRows[].classDescriptionOptional practitioner notes for this class row. | null | string | |
| schedule17.part1BonusInterestRows[].line_110_interest_payable_to_membersCol 110 — Interest payable TO all members of class (reference input). | null | number | strict |
| schedule17.part1BonusInterestRows[].line_210_money_on_deposit_by_membersCol 210 — Amount of money on deposit BY all members of class (reference input). | null | number | strict |
| schedule17.part1BonusInterestRows[].line_310_bonus_interest_paymentsCol 310 — Bonus interest payment for the class (deductible). | null | number | strict |
| schedule17.part1BonusInterestRows[].paymentDateDate the bonus interest was paid to members (ISO YYYY-MM-DD). ITA s.137(2) year-or-12-months window. null = unanswered. | null | string | |
| schedule17.part1BonusInterestRows[].sameRateAttestationWere the bonus interest payments to this class computed at the SAME RATE? ITA s.137(6). null = unanswered. | boolean | null | |
| schedule17.part1BonusInterestRows[].wasDeductibleInPriorYearWas this amount DEDUCTIBLE in computing income for a preceding tax year? ITA s.137(2). null = unanswered. | boolean | null | |
| 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 (10 of 46 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 |
|---|---|
| daysInYear | 1 to 1000000000000000 |
| fiscalEnd | date (YYYY-MM-DD); 10 to 10 characters |
| fiscalStart | date (YYYY-MM-DD); 10 to 10 characters |
| schedule17.part1AllocationRows[].line_100_interest_payable_by_members | -1000000000000000 to 1000000000000000 |
| schedule17.part1AllocationRows[].line_200_money_borrowed_by_members | -1000000000000000 to 1000000000000000 |
| schedule17.part1AllocationRows[].line_300_allocation_in_proportion_to_borrowing | -1000000000000000 to 1000000000000000; 0 to 20000 characters |
| schedule17.part1BonusInterestRows[].line_110_interest_payable_to_members | -1000000000000000 to 1000000000000000 |
| schedule17.part1BonusInterestRows[].line_210_money_on_deposit_by_members | -1000000000000000 to 1000000000000000 |
| schedule17.part1BonusInterestRows[].line_310_bonus_interest_payments | -1000000000000000 to 1000000000000000 |
| taxYear | matches ^\s*(?:1[0-9]{3}|2(?:0(?:[0-1][0-9]{1}|2[0-7])))\s*$; 1000 to 2027 |
Output cells (110)
Paths are relative to this target’s result object in the response.
| Cell | Types |
|---|---|
| amount_1a_part1_total_deduction | string |
| amount_2a_pra_opening_on_bc | string |
| amount_2b_remaining_mcr_on_bc | string |
| amount_2c_feeds_s500_line_4a_or_s427_line_1f | string |
| amount_2c_lesser_ti_or_2b | string |
| amount_2d_2c_less_626 | string |
| amount_2e_701_plus_751 | string |
| amount_2f_sbd_for_tax_year | string |
| amount_2g_line_651 | string |
| amount_2h_2f_plus_2g | string |
| amount_2i_2h_div_19pct | string |
| amount_3a_pra_opening_mb | string |
| amount_3b_remaining_mcr_mb | string |
| amount_3c_lesser_mb_ti_or_3b | string |
| amount_3d_s383_amount_1e | string |
| amount_3e_3c_less_3d | string |
| amount_3f_2021_days_at_40pct | string |
| amount_3g_2022_days_at_20pct | string |
| amount_3h_3f_plus_3g | string |
| amount_3i_702_plus_752 | string |
| amount_3j_s383_amount_1f | string |
| amount_3k_amount_3h | string |
| fired_gates | object |
| form.amount_1a | number |
| form.amount_2a | number |
| form.amount_2b | number |
| form.amount_2c | number |
| form.amount_2d | number |
| form.amount_2e | number |
| form.amount_2f | number |
| form.amount_2g | number |
| form.amount_2h | number |
| form.amount_2i | number |
| form.amount_3a | number |
| form.amount_3b | number |
| form.amount_3c | number |
| form.amount_3d | number |
| form.amount_3e | number |
| form.amount_3f | number |
| form.amount_3g | number |
| form.amount_3h | number |
| form.amount_3i | number |
| form.amount_3j | number |
| form.amount_3k | number |
| form.days_2021 | number |
| form.days_2022 | number |
| form.formWarnings | array |
| form.line_305 | number |
| form.line_315 | number |
| form.line_501 | number |
| form.line_502 | number |
| form.line_601 | number |
| form.line_602 | number |
| form.line_626 | number |
| form.line_651 | number |
| form.line_652 | number |
| form.line_701 | number |
| form.line_702 | number |
| form.line_751 | number |
| form.line_752 | number |
| form.line_801 | number |
| form.line_802 | number |
| form.part1AllocationContinuationTable | array |
| form.part1AllocationTable[].col_100 | number |
| form.part1AllocationTable[].col_200 | number |
| form.part1AllocationTable[].col_300 | number |
| form.part1BonusContinuationTable | array |
| form.part1BonusTable[].col_110 | number |
| form.part1BonusTable[].col_210 | number |
| form.part1BonusTable[].col_310 | number |
| form.total_days | number |
| has_pe_british_columbia | boolean | null |
| has_pe_manitoba | boolean | null |
| has_pe_ontario | boolean | null |
| is_credit_union | boolean | null |
| line_305 | string |
| line_315 | string |
| line_501 | string |
| line_502 | string |
| line_601 | string |
| line_602 | string |
| line_626 | string |
| line_651 | string |
| line_652 | string |
| line_701 | string |
| line_702 | string |
| line_751 | string |
| line_752 | string |
| line_801 | string |
| line_802 | string |
| manitoba_credit_flows_to_s383_amount_2b | string |
| manitoba_day_counts.days_in_2021 | integer |
| manitoba_day_counts.days_in_2022 | integer |
| manitoba_day_counts.total_days_in_tax_year | integer |
| part1_deduction_flows_to_s1_line_315 | string |
| provisional | boolean |
| ready | boolean |
| warnings[].box | 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 |