schedule29
T2 Corporation Income Tax Return
- Kind
- batch
- Supported tax years
- 1998 and later
- Strict profile
- s29_versioned_profile_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": [
"schedule29"
],
"inputs": {
"taxYear": 2025,
"schedule29": {
"rows": [
{
"name": "Cedar Ridge Software LLC",
"address": "123 Market Street, Boston, MA 02110, USA",
"paymentCode": 1,
"partXiiiDetermination": "withholding-required",
"informationReturnConfirmed": true,
"amount": 50000
}
]
}
}
}Input cells (8)
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 |
|---|---|---|
| schedule29.rowsRows of non-resident payees. Empty rows are elided by the backend. | array | |
| schedule29.rows[].addressA string with at least one non-whitespace character. The engine trims surrounding whitespace. The 10,000-character ceiling is a Filemark limit, not a CRA form limit. | null | string | strict |
| schedule29.rows[].amountA positive JSON number for box 400. Numeric strings, blanks, booleans, zero, negative values, non-finite values, and magnitudes above 1e15 are rejected. No rule about cents precision is implied. | null | number | strict |
| schedule29.rows[].informationReturnConfirmedConfirmation that the separate Regulation 202 information-return workflow was handled outside Filemark when the payment code requires it. | boolean | |
| schedule29.rows[].nameA string with at least one non-whitespace character. The engine trims surrounding whitespace. The 10,000-character ceiling is a Filemark limit, not a CRA form limit. | null | string | strict |
| schedule29.rows[].partXiiiDeterminationPractitioner Part XIII conclusion. Required for every payment code whose Note 1 label names a category ITA s.212 charges on its face: 1 and 2 (s.212(1)(d) rent, royalty or similar payment), 3 (s.212(1)(a) management or administration fee or charge), 6 (s.212(1)(b) interest), 7 (s.212(2) dividends) and 8 (s.212(5) film payments). Codes 4, 5 and 9 reach Part XIII only through s.212(1)(d)(ii)/(iii), whose contingency test the form label does not establish, so no determination is demanded on them. A row the canonical Part XIII workpaper already concludes on may leave this null. Filemark does not compute a withholding rate, exclusion, waiver or treaty result from this field. | null | string | |
| schedule29.rows[].paymentCodeCRA box 300 payment code from Note 1 on T2 SCH 29 (99). | integer | null | object | strict |
| 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 (6 of 8 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 |
|---|---|
| schedule29.rows[].address | matches \S; 1 to 10000 characters |
| schedule29.rows[].amount | -1000000000000000 to 1000000000000000 |
| schedule29.rows[].name | matches \S; 1 to 10000 characters |
| schedule29.rows[].partXiiiDetermination | one of "withholding-required", "reduced-or-exempt", null |
| schedule29.rows[].paymentCode | one of 1, 2, 3, 4, 5, 6, 7, 8, 9 |
| taxYear | matches ^\s*(?:1[0-9]{3}|2(?:0(?:[0-1][0-9]{1}|2[0-7])))\s*$; 1000 to 2027 |
Output cells (40)
Paths are relative to this target’s result object in the response.
| Cell | Types |
|---|---|
| rows[].name | null | string |
| rows[].address | null | string |
| rows[].paymentCode | integer | null |
| rows[].amount | null | number |
| rows[].partXiiiDeterminationNormalized practitioner Part XIII conclusion; null for rows where no conclusion was supplied. Payment codes 1, 2, 3, 6, 7 and 8 name categories ITA s.212 charges on their face, so a null there is a blocking finding rather than a settled nil. | null | string |
| rows[].informationReturnConfirmedNormalized boolean confirmation for the separate Regulation 202 information-return workflow. | boolean |
| total_amountA positive amount, returned as a string in ordinary or scientific notation. | string |
| warnings | array |
| fired_gatesEvery registered gate this result raised, keyed by gate identifier. | object |
| provisional | boolean |
| ready | boolean |
| 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[].messageOne finding per payee, not per row. The message opens with the repr-quoted normalized payee name and the merged row numbers, and adds the explicit aggregation note whenever more than one row was merged into one payee. | string |
| warnings[].gate_id | string |
| warnings[].citation | object |
| fired_gates.box_400_de_minimis_under_100 | object |
| fired_gates.filing_required_for_reg_202_or_105_payments | object |
| 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[]Any finding this held branch can publish. | any |
| fired_gates.code_7_part_xiii_determination_required | object |
| fired_gates.reg_202_information_return_confirmation_required | object |
| 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 |