schedule100

T2 Corporation Income Tax Return

Kind
batch
Supported tax years
1998 and later
Strict profile
schedule100_exact_2025_default_branch_v1
Payload schema version
7.0.0
Dependencies (run automatically)
schedule1

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": [
    "schedule100"
  ],
  "inputs": {
    "schedule100": {},
    "taxYear": 2025,
    "fiscalStart": "2025-01-01",
    "fiscalEnd": "2025-12-31",
    "isCCPC": true,
    "daysInYear": 365
  }
}

Input cells (21)

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 schedule100
CellTypesRequired
daysInYearInclusive day count of the taxation year. It must equal the fiscalStart-to-fiscalEnd span, counting both end days, so a leap year states 366. Required for the same reason as fiscalStart; the count reconciles the bounds and never constructs them.integerstrict
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.stringstrict
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.stringstrict
functionalCurrencyIsoT2 jacket box 079 ISO-4217 currency code for an ITA s.261 functional-currency election. Send it only when the return is reported in a currency other than CAD, in which case Schedule 100 will not compute until schedule100.functionalCurrencyT1296OnFile is true and the T1296 acceptance letter is on file.null | string
isCCPCThe corporation was a Canadian-controlled private corporation (ITA s.125(7) definition) throughout the taxation year.boolean
schedule100object
schedule100.businessNumber9-digit BN or 15-char RC account (e.g. "123456789RC0001").null | string
schedule100.corporationNameCorporation legal name (header line in .gfi handoff).null | string
schedule100.currentYearGIFI code → amount map in VALIDATOR-SIGN convention: ordinary assets, liabilities and equity match natural sign, while retained-earnings reductions 3700/3701/3702/3741 are positive magnitudes because S100 subtracts them.object
schedule100.currentYearEndTY-end date YYYY-MM-DD.null | string
schedule100.functionalCurrencyT1296OnFileITA s.261 functional-currency election evidence flag. When the T2 jacket box 079 functionalCurrencyIso is set to any non-CAD currency (USD/GBP/EUR/JPY/AUD), the engine STRICT-BLOCKS S100 / S101 / S125 / S141 compute unless this flag is true AND the practitioner has uploaded the T1296 acceptance letter to the binder. Functional-currency returns are exempt from mandatory e-file per CRA — they must be paper-filed as bar-code returns; the engine therefore also flips the export-mode flag downstream when this gate fires. CAD-functional corps leave this null.boolean | null
schedule100.insuranceUnderwritingTypeNarrower underwriter subtype per the 2026-05-24 RC4088 + vendor survey. Only the four underwriter categories trigger the PDF F/S supplement warning; "non_underwriting" (brokerage / MGA / agency sub / non-underwriting HoldCo) gets treated as an ordinary GIFI filer. Null when isInsuranceCorp is null/false.null | string
schedule100.isAmalgamationSuccessors.87 amalgamation successor — no prior BS to carry.boolean | null
schedule100.isFinancialInstitutionBank / credit union / trust — specialised GIFI codes apply.boolean | null
schedule100.isFirstYearT2First T2 — must also file Schedule 101 (opening BS).boolean | null
schedule100.isInactiveCorpT2 line 280 inactive flag — abbreviated GIFI permitted.boolean | null
schedule100.isInsuranceCorpRC4088 p.5 insurance carve-out (broad category — does the corp operate in the insurance industry at all?). Combined with insuranceUnderwritingType to determine whether the PDF F/S supplement advisory fires.boolean | null
schedule100.isPartnershipPartnership (T5013) — uses 3575/3585 instead of 3620/3640.boolean | null
schedule100.priorYearClosingManualOverrideOptional practitioner-entered prior-year closing balances used ONLY when no carryforward sidecar is available (new engagement migrated from TaxCycle / Taxprep / iFirm, no prior Filemark filing). A linked prior-year Filemark return's carryforward sidecar wins when both are present. Empty record / null = no manual override. Codes map directly to RC4088 (e.g., {"2599": 1500000, "3499": 600000, "3620": 900000, "3849": 850000}). Only the four mandatory anchors (2599 / 3499 / 3620 / 3849) are practically needed for the RE-start continuity check; detail codes are accepted but optional.null | object
schedule100.priorYearRetainedEarningsEvidenceWhy no prior-year GIFI 3849 reached the engine. Send "linked" when the prior-year Filemark return is linked and supplies the carryforward sidecar, "manual" when there is no linked prior year and the closing anchors are keyed into `priorYearClosingManualOverride` above, or "explicitly-none" to attest there is no prior-year GIFI 3849 to reconcile against. null is unanswered and blocks filing readiness; "linked" and "manual" block too when the named channel then delivers nothing, so only "explicitly-none" leaves the return filable without a prior-year closing balance sheet.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.number | stringalways
Strict profile accepted values (6 of 21 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 schedule100
CellAccepted values
daysInYear1 to 1000000000000000
fiscalEnddate (YYYY-MM-DD); 10 to 10 characters
fiscalStartdate (YYYY-MM-DD); 10 to 10 characters
schedule100.insuranceUnderwritingTypeone of "life", "deposit", "p_and_c", "reinsurance_underwriter", "non_underwriting"
schedule100.priorYearRetainedEarningsEvidenceone of "linked", "manual", "explicitly-none", null
taxYearmatches ^\s*(?:1[0-9]{3}|2(?:0(?:[0-1][0-9]{1}|2[0-7])))\s*$; 1000 to 2027

Output cells (53)

Paths are relative to this target’s result object in the response.

Output cells for schedule100
CellTypes
bs_tie_out_delta_cynumber
businessNumberarray | boolean | null | number | object | string
corporationNamearray | boolean | null | number | object | string
currentYearobject
currentYearEndarray | boolean | null | number | object | string
fired_gatesobject
form.assetsTablearray
form.equityTablearray
form.formWarningsarray
form.liabilitiesTablearray
form.line_2599number
form.line_3499number
form.line_3620number
form.line_3640number
form.line_3640_codestring
form.line_3849number
form.retainedEarningsTablearray
isAmalgamationSuccessorarray | boolean | null | number | object | string
isFinancialInstitutionarray | boolean | null | number | object | string
isFirstYearT2array | boolean | null | number | object | string
isInactiveCorparray | boolean | null | number | object | string
isInsuranceCorparray | boolean | null | number | object | string
line_2599_total_assets_cynumber
line_3499_total_liabilities_cynumber
line_3620_total_shareholder_equity_cynumber
line_3640_total_liab_and_equity_cynumber
line_3680_net_income_cynumber
line_3849_re_end_cynumber
missing_required[]string
provisionalboolean
re_continuity_delta_cynumber
re_expected_end_cynumber
readyboolean
section_sum_assets_cynumber
section_sum_equity_cynumber
section_sum_liabilities_cynumber
warnings[].boxarray | boolean | null | number | object | string
warnings[].box_formThe form the box code belongs to when it is not Schedule 100 itself. The s.261 functional-currency finding cites T2 jacket line 079.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[].codeStable machine identity of the finding, independent of its prose. Present on a finding a consumer is expected to branch on; absent on a prose-only review finding.string
warnings[].gate_idIdentifier of the registered T4012 gate that raised the finding; travels with `citation`.string
warnings[].gifiCodes[]string
warnings[].messagestring
warnings[].producers[]string
warnings[].severitystring
Filemark | schedule100 cells