schedule11
T2 Corporation Income Tax Return
- Kind
- batch
- Supported tax years
- 1998 and later
- Strict profile
- s11_versioned_profile_target_value_v1
- Payload schema version
- 0.4.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": [
"schedule11"
],
"inputs": {
"taxYear": 2025,
"schedule11": {
"rows": [
{
"relationshipCode": 1,
"payments": 50000,
"reimbursement": null,
"loansReceivable": 0,
"assetsSoldOrPurchased": 300000,
"section85Applies": "Yes",
"section85TransferorType": "taxpayer"
}
]
}
}
}Input cells (9)
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 |
|---|---|---|
| schedule11.rowsThe printed form has 12 rows. Empty rows (all fields null) are allowed; the engine treats them as no-op. Filemark preserves rows beyond 12 and blocks readiness for filing-method review because the current S11 page and PDF do not prescribe an overflow procedure. | array | |
| schedule11.rows[].assetsSoldOrPurchasedA JSON number or explicit null. Numeric strings, blanks, booleans, non-finite values, and magnitudes beyond the existing public guard are rejected. | null | number | |
| schedule11.rows[].loansReceivableA JSON number or explicit null. Numeric strings, blanks, booleans, non-finite values, and magnitudes beyond the existing public guard are rejected. | null | number | |
| schedule11.rows[].paymentsA JSON number or explicit null. Numeric strings, blanks, booleans, non-finite values, and magnitudes beyond the existing public guard are rejected. | null | number | |
| schedule11.rows[].reimbursementA JSON number or explicit null. Numeric strings, blanks, booleans, non-finite values, and magnitudes beyond the existing public guard are rejected. | null | number | |
| schedule11.rows[].relationshipCodeCRA box 100: 1 shareholder, 2 officer, or 3 employee. | integer | null | object | strict |
| schedule11.rows[].section85AppliesCRA box 550. Null or omission remains an unanswered semantic state; the engine returns an unready target when a non-zero box 500 amount lacks an answer. | null | string | |
| schedule11.rows[].section85TransferorTypeIdentifies the section 85 transferor so the prescribed election form can be determined: 'taxpayer' gives the subsection 85(1) joint election on Form T2057, 'partnership' gives the subsection 85(2) election on Form T2058. When section85Applies is 'Yes' and this fact is null, omitted, or unrecognized, the engine returns an unready target with an error-severity warning on box 550. It is never inferred from relationshipCode, because a partnership can be a shareholder. | null | string | |
| 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 (8 of 9 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 |
|---|---|
| schedule11.rows[].assetsSoldOrPurchased | -1000000000000000 to 1000000000000000 |
| schedule11.rows[].loansReceivable | -1000000000000000 to 1000000000000000 |
| schedule11.rows[].payments | -1000000000000000 to 1000000000000000 |
| schedule11.rows[].reimbursement | -1000000000000000 to 1000000000000000 |
| schedule11.rows[].relationshipCode | one of 1, 2, 3 |
| schedule11.rows[].section85Applies | one of "Yes", "No", null |
| schedule11.rows[].section85TransferorType | one of "taxpayer", "partnership", null |
| taxYear | matches ^\s*(?:1[0-9]{3}|2(?:0(?:[0-1][0-9]{1}|2[0-7])))\s*$; 1000 to 2027 |
Output cells (49)
Paths are relative to this target’s result object in the response.
| Cell | Types |
|---|---|
| rows_count | integer |
| rows[].row_label | integer |
| rows[].relationshipCode | null | number |
| rows[].payments | null | number |
| rows[].reimbursement | null | number |
| rows[].loansReceivable | null | number |
| rows[].assetsSoldOrPurchased | null | number |
| rows[].section85Applies | null | string |
| column_totals.200The engine's total over at most twelve inputs, each bounded to 1e15. | number |
| column_totals.300The engine's total over at most twelve inputs, each bounded to 1e15. | number |
| column_totals.400The engine's total over at most twelve inputs, each bounded to 1e15. | number |
| column_totals.500The engine's total over at most twelve inputs, each bounded to 1e15. | number |
| relationship_breakdown.1 | integer |
| relationship_breakdown.2 | integer |
| relationship_breakdown.3 | integer |
| s85_election_rows[] | integer |
| s85_prescribed_formsMaps each printed row label to the prescribed section 85 election form, resolved from the row's explicit transferor-type fact: 'taxpayer' gives T2057 under subsection 85(1), 'partnership' gives T2058 under subsection 85(2). Object keys are strings, even where the row labels are numbers. A box 550 Yes row with no resolvable transferor fact appears in warnings at error severity instead of in this map. | object |
| warnings[].boxThe form box the finding is about, or null when the finding is about the return rather than a printed box. | null | string |
| warnings[].severity | string |
| warnings[].message | string |
| warnings[].gate_id | null | string |
| warnings[].citation | null | object |
| fired_gates.box_200_payments_not_remuneration | object |
| fired_gates.box_300_reimbursement_other_than_expenses | object |
| fired_gates.box_400_loans_not_repaid_by_year_end | object |
| fired_gates.box_500_assets_sold_or_purchased | object |
| fired_gates.box_550_section_85_election_applies | object |
| provisional | boolean |
| ready | boolean |
| coverageStatus | string |
| coverageReason | string |
| formId | string |
| formRevision | string |
| taxYear | integer |
| missing_required | array |
| warnings[].code | string |
| warnings[].notes | string |
| warnings[].section | string |
| warnings[].taxYear | integer |
| 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 |
| fired_gatesEvery registered gate this result raised, keyed by gate identifier. | object |