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.

Input cells for schedule50
CellTypesRequired
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 | stringstrict
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 | stringstrict
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 | numberstrict
schedule50.rows[].percentPreferredSharesLegacy field name mapped to CRA line 500. This reviewed branch fixes the preferred-share vote percentage at zero.null | numberstrict
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 | stringstrict
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.booleanstrict
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.stringstrict
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 | stringalways
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.

Strict profile accepted values for schedule50
CellAccepted values
schedule50.rows[].businessNumber0 to 20000 characters
schedule50.rows[].namematches ^(?=\S)(?:[^\r\n]*\S)?$; 1 to 10000 characters
schedule50.rows[].percentCommonShares10 to 100
schedule50.rows[].percentPreferredShares-1000000000000000 to 1000000000000000
schedule50.rows[].shareholderTypeone of "corporation", "partnership", "individual", "trust", null
schedule50.rows[].socialInsuranceNumber0 to 20000 characters
schedule50.rows[].trustNumber0 to 20000 characters
t2Jacket.identification.typeChangeEffectiveDate0 to 20000 characters
t2Jacket.identification.typeOfCorporation0 to 20000 characters
taxYearmatches ^\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.

Output cells for schedule50
CellTypes
rows_countinteger
rows[].row_labelinteger
rows[].namenull | string
rows[].shareholderTypenull | string
rows[].nameWithTypenull | string
rows[].businessNumbernull | string
rows[].socialInsuranceNumbernull | string
rows[].trustNumbernull | string
rows[].percentCommonSharesnull | number
rows[].percentPreferredSharesnull | number
column_totals.400number
column_totals.500number
shareholder_breakdown.corporationinteger
shareholder_breakdown.partnershipinteger
shareholder_breakdown.individualinteger
shareholder_breakdown.trustinteger
warningsarray
fired_gates.filing_required_when_private_corporationobject
provisionalboolean
readyboolean
coverageStatusstring
coverageReasonstring
formIdstring
formRevisionstring
taxYearinteger
missing_requiredarray
warnings[].codestring
warnings[].severitystring
warnings[].messagestring
warnings[].notesstring
warnings[].sectionstring
warnings[].taxYearinteger
warnings[].boxnull | string
warnings[].citation.applies_to_boxes[]string
warnings[].citation.cra_text_verbatimstring
warnings[].citation.form_idstring
warnings[].citation.form_revisionstring
warnings[].citation.gate_idstring
warnings[].citation.rulestring
warnings[].citation.sourcestring
warnings[].citation.source_urlstring
warnings[].citation.verified_atstring
warnings[].gate_idstring
fired_gates.box_100_name_required.applies_to_boxes[]string
fired_gates.box_100_name_required.cra_text_verbatimstring
fired_gates.box_100_name_required.form_idstring
fired_gates.box_100_name_required.form_revisionstring
fired_gates.box_100_name_required.gate_idstring
fired_gates.box_100_name_required.rulestring
fired_gates.box_100_name_required.sourcestring
fired_gates.box_100_name_required.source_urlstring
fired_gates.box_100_name_required.verified_atstring
fired_gates.box_100_shareholder_type_indicator.applies_to_boxes[]string
fired_gates.box_100_shareholder_type_indicator.cra_text_verbatimstring
fired_gates.box_100_shareholder_type_indicator.form_idstring
fired_gates.box_100_shareholder_type_indicator.form_revisionstring
fired_gates.box_100_shareholder_type_indicator.gate_idstring
fired_gates.box_100_shareholder_type_indicator.rulestring
fired_gates.box_100_shareholder_type_indicator.sourcestring
fired_gates.box_100_shareholder_type_indicator.source_urlstring
fired_gates.box_100_shareholder_type_indicator.verified_atstring
fired_gates.box_200_format_bn_or_nr.applies_to_boxes[]string
fired_gates.box_200_format_bn_or_nr.cra_text_verbatimstring
fired_gates.box_200_format_bn_or_nr.form_idstring
fired_gates.box_200_format_bn_or_nr.form_revisionstring
fired_gates.box_200_format_bn_or_nr.gate_idstring
fired_gates.box_200_format_bn_or_nr.rulestring
fired_gates.box_200_format_bn_or_nr.sourcestring
fired_gates.box_200_format_bn_or_nr.source_urlstring
fired_gates.box_200_format_bn_or_nr.verified_atstring
fired_gates.box_300_format_sin_nine_digits.applies_to_boxes[]string
fired_gates.box_300_format_sin_nine_digits.cra_text_verbatimstring
fired_gates.box_300_format_sin_nine_digits.form_idstring
fired_gates.box_300_format_sin_nine_digits.form_revisionstring
fired_gates.box_300_format_sin_nine_digits.gate_idstring
fired_gates.box_300_format_sin_nine_digits.rulestring
fired_gates.box_300_format_sin_nine_digits.sourcestring
fired_gates.box_300_format_sin_nine_digits.source_urlstring
fired_gates.box_300_format_sin_nine_digits.verified_atstring
fired_gates.box_300_modulus_10.applies_to_boxes[]string
fired_gates.box_300_modulus_10.cra_text_verbatimstring
fired_gates.box_300_modulus_10.form_idstring
fired_gates.box_300_modulus_10.form_revisionstring
fired_gates.box_300_modulus_10.gate_idstring
fired_gates.box_300_modulus_10.rulestring
fired_gates.box_300_modulus_10.sourcestring
fired_gates.box_300_modulus_10.source_urlstring
fired_gates.box_300_modulus_10.verified_atstring
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_verbatimstring
fired_gates.box_350_format_trust_t_plus_eight_digits.form_idstring
fired_gates.box_350_format_trust_t_plus_eight_digits.form_revisionstring
fired_gates.box_350_format_trust_t_plus_eight_digits.gate_idstring
fired_gates.box_350_format_trust_t_plus_eight_digits.rulestring
fired_gates.box_350_format_trust_t_plus_eight_digits.sourcestring
fired_gates.box_350_format_trust_t_plus_eight_digits.source_urlstring
fired_gates.box_350_format_trust_t_plus_eight_digits.verified_atstring
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_verbatimstring
fired_gates.boxes_200_300_350_exactly_one_per_row.form_idstring
fired_gates.boxes_200_300_350_exactly_one_per_row.form_revisionstring
fired_gates.boxes_200_300_350_exactly_one_per_row.gate_idstring
fired_gates.boxes_200_300_350_exactly_one_per_row.rulestring
fired_gates.boxes_200_300_350_exactly_one_per_row.sourcestring
fired_gates.boxes_200_300_350_exactly_one_per_row.source_urlstring
fired_gates.boxes_200_300_350_exactly_one_per_row.verified_atstring
fired_gates.boxes_400_500_at_least_one_positive.applies_to_boxes[]string
fired_gates.boxes_400_500_at_least_one_positive.cra_text_verbatimstring
fired_gates.boxes_400_500_at_least_one_positive.form_idstring
fired_gates.boxes_400_500_at_least_one_positive.form_revisionstring
fired_gates.boxes_400_500_at_least_one_positive.gate_idstring
fired_gates.boxes_400_500_at_least_one_positive.rulestring
fired_gates.boxes_400_500_at_least_one_positive.sourcestring
fired_gates.boxes_400_500_at_least_one_positive.source_urlstring
fired_gates.boxes_400_500_at_least_one_positive.verified_atstring
fired_gates.boxes_400_500_range_0_to_100.applies_to_boxes[]string
fired_gates.boxes_400_500_range_0_to_100.cra_text_verbatimstring
fired_gates.boxes_400_500_range_0_to_100.form_idstring
fired_gates.boxes_400_500_range_0_to_100.form_revisionstring
fired_gates.boxes_400_500_range_0_to_100.gate_idstring
fired_gates.boxes_400_500_range_0_to_100.rulestring
fired_gates.boxes_400_500_range_0_to_100.sourcestring
fired_gates.boxes_400_500_range_0_to_100.source_urlstring
fired_gates.boxes_400_500_range_0_to_100.verified_atstring
fired_gates.column_sums_at_most_100.applies_to_boxes[]string
fired_gates.column_sums_at_most_100.cra_text_verbatimstring
fired_gates.column_sums_at_most_100.form_idstring
fired_gates.column_sums_at_most_100.form_revisionstring
fired_gates.column_sums_at_most_100.gate_idstring
fired_gates.column_sums_at_most_100.rulestring
fired_gates.column_sums_at_most_100.sourcestring
fired_gates.column_sums_at_most_100.source_urlstring
fired_gates.column_sums_at_most_100.verified_atstring
fired_gates.disclosure_threshold_10_percent.applies_to_boxes[]string
fired_gates.disclosure_threshold_10_percent.cra_text_verbatimstring
fired_gates.disclosure_threshold_10_percent.form_idstring
fired_gates.disclosure_threshold_10_percent.form_revisionstring
fired_gates.disclosure_threshold_10_percent.gate_idstring
fired_gates.disclosure_threshold_10_percent.rulestring
fired_gates.disclosure_threshold_10_percent.sourcestring
fired_gates.disclosure_threshold_10_percent.source_urlstring
fired_gates.disclosure_threshold_10_percent.verified_atstring
fired_gates.filing_required_when_private_corporation.applies_to_boxes[]string
fired_gates.filing_required_when_private_corporation.cra_text_verbatimstring
fired_gates.filing_required_when_private_corporation.form_idstring
fired_gates.filing_required_when_private_corporation.form_revisionstring
fired_gates.filing_required_when_private_corporation.gate_idstring
fired_gates.filing_required_when_private_corporation.rulestring
fired_gates.filing_required_when_private_corporation.sourcestring
fired_gates.filing_required_when_private_corporation.source_urlstring
fired_gates.filing_required_when_private_corporation.verified_atstring
fired_gates.identifier_matches_shareholder_type.applies_to_boxes[]string
fired_gates.identifier_matches_shareholder_type.cra_text_verbatimstring
fired_gates.identifier_matches_shareholder_type.form_idstring
fired_gates.identifier_matches_shareholder_type.form_revisionstring
fired_gates.identifier_matches_shareholder_type.gate_idstring
fired_gates.identifier_matches_shareholder_type.rulestring
fired_gates.identifier_matches_shareholder_type.sourcestring
fired_gates.identifier_matches_shareholder_type.source_urlstring
fired_gates.identifier_matches_shareholder_type.verified_atstring
fired_gates.no_duplicate_identifiers.applies_to_boxes[]string
fired_gates.no_duplicate_identifiers.cra_text_verbatimstring
fired_gates.no_duplicate_identifiers.form_idstring
fired_gates.no_duplicate_identifiers.form_revisionstring
fired_gates.no_duplicate_identifiers.gate_idstring
fired_gates.no_duplicate_identifiers.rulestring
fired_gates.no_duplicate_identifiers.sourcestring
fired_gates.no_duplicate_identifiers.source_urlstring
fired_gates.no_duplicate_identifiers.verified_atstring
fired_gates.rows_over_10_need_supplementary.applies_to_boxes[]string
fired_gates.rows_over_10_need_supplementary.cra_text_verbatimstring
fired_gates.rows_over_10_need_supplementary.form_idstring
fired_gates.rows_over_10_need_supplementary.form_revisionstring
fired_gates.rows_over_10_need_supplementary.gate_idstring
fired_gates.rows_over_10_need_supplementary.rulestring
fired_gates.rows_over_10_need_supplementary.sourcestring
fired_gates.rows_over_10_need_supplementary.source_urlstring
fired_gates.rows_over_10_need_supplementary.verified_atstring
Filemark | schedule50 cells