schedule50
T2 Corporation Income Tax Return
- Kind
- batch
- Supported tax years
- 2006 and later
- Strict profile
- s50_versioned_profile_target_value_v1
- Payload schema version
- 0.3.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": [
"schedule50"
],
"inputs": {
"taxYear": 2025,
"t2Jacket": {
"identification": {
"typeOfCorporation": "2"
},
"applicability": {
"privateShareholders10pct": true
}
},
"schedule50": {
"rows": [
{
"name": "Cedar Ridge USA Holdings Inc.",
"shareholderType": "corporation",
"businessNumber": "NR",
"percentCommonShares": 10,
"percentPreferredShares": 0
}
]
}
}
}Input cells (12)
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 |
|---|---|---|
| schedule50.rowsCurrent T4012 says to provide a maximum of the 10 top shareholders. Empty rows (all fields null) are allowed and remain no-ops. Rows beyond 10 trigger roster review; Filemark does not infer a supplementary- attachment procedure from the printed-grid capacity. | array | |
| schedule50.rows[].businessNumberThe printed form permits NR when not registered. This branch restriction does not prove that NR is factually appropriate for the supplied row. | null | string | strict |
| schedule50.rows[].nameA single-line name with at least one character and no leading or trailing whitespace. The 10,000-character ceiling is a Filemark limit, not a CRA field maximum. | null | string | strict |
| schedule50.rows[].percentCommonSharesLegacy field name mapped to CRA line 400. Current T4012 describes line 400 as percentage of votes. This narrow candidate accepts only integer values from 10 through 100. | null | number | strict |
| schedule50.rows[].percentPreferredSharesLegacy field name mapped to CRA line 500. This reviewed branch fixes the preferred-share vote percentage at zero. | null | number | strict |
| schedule50.rows[].shareholderTypeBracketed type indicator from box 100 — stored as an enum on the row so the validator can cross-check identifier-type consistency (corp/partnership → BN; individual → SIN; trust → trust number). | null | string | strict |
| schedule50.rows[].socialInsuranceNumberBox 300 — SIN (9 digits). Populated only when shareholderType is individual; null otherwise. | null | string | |
| schedule50.rows[].trustNumberBox 350 — Trust number (T followed by 8 digits). Populated only when shareholderType is trust; null otherwise. | null | string | |
| t2Jacket.applicability.privateShareholders10pctSubmitted T2 line-173 branch restriction. This assertion is not independently verified by the Schedule 50 leaf builder. | boolean | strict |
| t2Jacket.identification.typeChangeEffectiveDateThis narrow branch excludes a submitted corporation-type change date. | null | string | |
| t2Jacket.identification.typeOfCorporationSubmitted T2 line-040 branch restriction: code 2, Other private corporation. | string | 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 (10 of 12 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 |
|---|---|
| schedule50.rows[].businessNumber | 0 to 20000 characters |
| schedule50.rows[].name | matches ^(?=\S)(?:[^\r\n]*\S)?$; 1 to 10000 characters |
| schedule50.rows[].percentCommonShares | 10 to 100 |
| schedule50.rows[].percentPreferredShares | -1000000000000000 to 1000000000000000 |
| schedule50.rows[].shareholderType | one of "corporation", "partnership", "individual", "trust", null |
| schedule50.rows[].socialInsuranceNumber | 0 to 20000 characters |
| schedule50.rows[].trustNumber | 0 to 20000 characters |
| t2Jacket.identification.typeChangeEffectiveDate | 0 to 20000 characters |
| t2Jacket.identification.typeOfCorporation | 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 (178)
Paths are relative to this target’s result object in the response.
| Cell | Types |
|---|---|
| rows_count | integer |
| rows[].row_label | integer |
| rows[].name | null | string |
| rows[].shareholderType | null | string |
| rows[].nameWithType | null | string |
| rows[].businessNumber | null | string |
| rows[].socialInsuranceNumber | null | string |
| rows[].trustNumber | null | string |
| rows[].percentCommonShares | null | number |
| rows[].percentPreferredShares | null | number |
| column_totals.400 | number |
| column_totals.500 | number |
| shareholder_breakdown.corporation | integer |
| shareholder_breakdown.partnership | integer |
| shareholder_breakdown.individual | integer |
| shareholder_breakdown.trust | integer |
| warnings | array |
| fired_gates.filing_required_when_private_corporation | object |
| provisional | boolean |
| ready | boolean |
| coverageStatus | string |
| coverageReason | string |
| formId | string |
| formRevision | string |
| taxYear | integer |
| missing_required | array |
| warnings[].code | string |
| warnings[].severity | string |
| warnings[].message | string |
| warnings[].notes | string |
| warnings[].section | string |
| warnings[].taxYear | integer |
| warnings[].box | null | 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 |
| fired_gates.box_100_name_required.applies_to_boxes[] | string |
| fired_gates.box_100_name_required.cra_text_verbatim | string |
| fired_gates.box_100_name_required.form_id | string |
| fired_gates.box_100_name_required.form_revision | string |
| fired_gates.box_100_name_required.gate_id | string |
| fired_gates.box_100_name_required.rule | string |
| fired_gates.box_100_name_required.source | string |
| fired_gates.box_100_name_required.source_url | string |
| fired_gates.box_100_name_required.verified_at | string |
| fired_gates.box_100_shareholder_type_indicator.applies_to_boxes[] | string |
| fired_gates.box_100_shareholder_type_indicator.cra_text_verbatim | string |
| fired_gates.box_100_shareholder_type_indicator.form_id | string |
| fired_gates.box_100_shareholder_type_indicator.form_revision | string |
| fired_gates.box_100_shareholder_type_indicator.gate_id | string |
| fired_gates.box_100_shareholder_type_indicator.rule | string |
| fired_gates.box_100_shareholder_type_indicator.source | string |
| fired_gates.box_100_shareholder_type_indicator.source_url | string |
| fired_gates.box_100_shareholder_type_indicator.verified_at | string |
| fired_gates.box_200_format_bn_or_nr.applies_to_boxes[] | string |
| fired_gates.box_200_format_bn_or_nr.cra_text_verbatim | string |
| fired_gates.box_200_format_bn_or_nr.form_id | string |
| fired_gates.box_200_format_bn_or_nr.form_revision | string |
| fired_gates.box_200_format_bn_or_nr.gate_id | string |
| fired_gates.box_200_format_bn_or_nr.rule | string |
| fired_gates.box_200_format_bn_or_nr.source | string |
| fired_gates.box_200_format_bn_or_nr.source_url | string |
| fired_gates.box_200_format_bn_or_nr.verified_at | string |
| fired_gates.box_300_format_sin_nine_digits.applies_to_boxes[] | string |
| fired_gates.box_300_format_sin_nine_digits.cra_text_verbatim | string |
| fired_gates.box_300_format_sin_nine_digits.form_id | string |
| fired_gates.box_300_format_sin_nine_digits.form_revision | string |
| fired_gates.box_300_format_sin_nine_digits.gate_id | string |
| fired_gates.box_300_format_sin_nine_digits.rule | string |
| fired_gates.box_300_format_sin_nine_digits.source | string |
| fired_gates.box_300_format_sin_nine_digits.source_url | string |
| fired_gates.box_300_format_sin_nine_digits.verified_at | string |
| fired_gates.box_300_modulus_10.applies_to_boxes[] | string |
| fired_gates.box_300_modulus_10.cra_text_verbatim | string |
| fired_gates.box_300_modulus_10.form_id | string |
| fired_gates.box_300_modulus_10.form_revision | string |
| fired_gates.box_300_modulus_10.gate_id | string |
| fired_gates.box_300_modulus_10.rule | string |
| fired_gates.box_300_modulus_10.source | string |
| fired_gates.box_300_modulus_10.source_url | string |
| fired_gates.box_300_modulus_10.verified_at | string |
| fired_gates.box_350_format_trust_t_plus_eight_digits.applies_to_boxes[] | string |
| fired_gates.box_350_format_trust_t_plus_eight_digits.cra_text_verbatim | string |
| fired_gates.box_350_format_trust_t_plus_eight_digits.form_id | string |
| fired_gates.box_350_format_trust_t_plus_eight_digits.form_revision | string |
| fired_gates.box_350_format_trust_t_plus_eight_digits.gate_id | string |
| fired_gates.box_350_format_trust_t_plus_eight_digits.rule | string |
| fired_gates.box_350_format_trust_t_plus_eight_digits.source | string |
| fired_gates.box_350_format_trust_t_plus_eight_digits.source_url | string |
| fired_gates.box_350_format_trust_t_plus_eight_digits.verified_at | string |
| fired_gates.boxes_200_300_350_exactly_one_per_row.applies_to_boxes[] | string |
| fired_gates.boxes_200_300_350_exactly_one_per_row.cra_text_verbatim | string |
| fired_gates.boxes_200_300_350_exactly_one_per_row.form_id | string |
| fired_gates.boxes_200_300_350_exactly_one_per_row.form_revision | string |
| fired_gates.boxes_200_300_350_exactly_one_per_row.gate_id | string |
| fired_gates.boxes_200_300_350_exactly_one_per_row.rule | string |
| fired_gates.boxes_200_300_350_exactly_one_per_row.source | string |
| fired_gates.boxes_200_300_350_exactly_one_per_row.source_url | string |
| fired_gates.boxes_200_300_350_exactly_one_per_row.verified_at | string |
| fired_gates.boxes_400_500_at_least_one_positive.applies_to_boxes[] | string |
| fired_gates.boxes_400_500_at_least_one_positive.cra_text_verbatim | string |
| fired_gates.boxes_400_500_at_least_one_positive.form_id | string |
| fired_gates.boxes_400_500_at_least_one_positive.form_revision | string |
| fired_gates.boxes_400_500_at_least_one_positive.gate_id | string |
| fired_gates.boxes_400_500_at_least_one_positive.rule | string |
| fired_gates.boxes_400_500_at_least_one_positive.source | string |
| fired_gates.boxes_400_500_at_least_one_positive.source_url | string |
| fired_gates.boxes_400_500_at_least_one_positive.verified_at | string |
| fired_gates.boxes_400_500_range_0_to_100.applies_to_boxes[] | string |
| fired_gates.boxes_400_500_range_0_to_100.cra_text_verbatim | string |
| fired_gates.boxes_400_500_range_0_to_100.form_id | string |
| fired_gates.boxes_400_500_range_0_to_100.form_revision | string |
| fired_gates.boxes_400_500_range_0_to_100.gate_id | string |
| fired_gates.boxes_400_500_range_0_to_100.rule | string |
| fired_gates.boxes_400_500_range_0_to_100.source | string |
| fired_gates.boxes_400_500_range_0_to_100.source_url | string |
| fired_gates.boxes_400_500_range_0_to_100.verified_at | string |
| fired_gates.column_sums_at_most_100.applies_to_boxes[] | string |
| fired_gates.column_sums_at_most_100.cra_text_verbatim | string |
| fired_gates.column_sums_at_most_100.form_id | string |
| fired_gates.column_sums_at_most_100.form_revision | string |
| fired_gates.column_sums_at_most_100.gate_id | string |
| fired_gates.column_sums_at_most_100.rule | string |
| fired_gates.column_sums_at_most_100.source | string |
| fired_gates.column_sums_at_most_100.source_url | string |
| fired_gates.column_sums_at_most_100.verified_at | string |
| fired_gates.disclosure_threshold_10_percent.applies_to_boxes[] | string |
| fired_gates.disclosure_threshold_10_percent.cra_text_verbatim | string |
| fired_gates.disclosure_threshold_10_percent.form_id | string |
| fired_gates.disclosure_threshold_10_percent.form_revision | string |
| fired_gates.disclosure_threshold_10_percent.gate_id | string |
| fired_gates.disclosure_threshold_10_percent.rule | string |
| fired_gates.disclosure_threshold_10_percent.source | string |
| fired_gates.disclosure_threshold_10_percent.source_url | string |
| fired_gates.disclosure_threshold_10_percent.verified_at | string |
| fired_gates.filing_required_when_private_corporation.applies_to_boxes[] | string |
| fired_gates.filing_required_when_private_corporation.cra_text_verbatim | string |
| fired_gates.filing_required_when_private_corporation.form_id | string |
| fired_gates.filing_required_when_private_corporation.form_revision | string |
| fired_gates.filing_required_when_private_corporation.gate_id | string |
| fired_gates.filing_required_when_private_corporation.rule | string |
| fired_gates.filing_required_when_private_corporation.source | string |
| fired_gates.filing_required_when_private_corporation.source_url | string |
| fired_gates.filing_required_when_private_corporation.verified_at | string |
| fired_gates.identifier_matches_shareholder_type.applies_to_boxes[] | string |
| fired_gates.identifier_matches_shareholder_type.cra_text_verbatim | string |
| fired_gates.identifier_matches_shareholder_type.form_id | string |
| fired_gates.identifier_matches_shareholder_type.form_revision | string |
| fired_gates.identifier_matches_shareholder_type.gate_id | string |
| fired_gates.identifier_matches_shareholder_type.rule | string |
| fired_gates.identifier_matches_shareholder_type.source | string |
| fired_gates.identifier_matches_shareholder_type.source_url | string |
| fired_gates.identifier_matches_shareholder_type.verified_at | string |
| fired_gates.no_duplicate_identifiers.applies_to_boxes[] | string |
| fired_gates.no_duplicate_identifiers.cra_text_verbatim | string |
| fired_gates.no_duplicate_identifiers.form_id | string |
| fired_gates.no_duplicate_identifiers.form_revision | string |
| fired_gates.no_duplicate_identifiers.gate_id | string |
| fired_gates.no_duplicate_identifiers.rule | string |
| fired_gates.no_duplicate_identifiers.source | string |
| fired_gates.no_duplicate_identifiers.source_url | string |
| fired_gates.no_duplicate_identifiers.verified_at | string |
| fired_gates.rows_over_10_need_supplementary.applies_to_boxes[] | string |
| fired_gates.rows_over_10_need_supplementary.cra_text_verbatim | string |
| fired_gates.rows_over_10_need_supplementary.form_id | string |
| fired_gates.rows_over_10_need_supplementary.form_revision | string |
| fired_gates.rows_over_10_need_supplementary.gate_id | string |
| fired_gates.rows_over_10_need_supplementary.rule | string |
| fired_gates.rows_over_10_need_supplementary.source | string |
| fired_gates.rows_over_10_need_supplementary.source_url | string |
| fired_gates.rows_over_10_need_supplementary.verified_at | string |