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.
| Cell | Types | Required |
|---|---|---|
| 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. | integer | strict |
| 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. | string | strict |
| 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. | string | strict |
| 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 | |
| schedule100 | object | |
| 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 | string | always |
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.
| Cell | Accepted values |
|---|---|
| daysInYear | 1 to 1000000000000000 |
| fiscalEnd | date (YYYY-MM-DD); 10 to 10 characters |
| fiscalStart | date (YYYY-MM-DD); 10 to 10 characters |
| schedule100.insuranceUnderwritingType | one of "life", "deposit", "p_and_c", "reinsurance_underwriter", "non_underwriting" |
| schedule100.priorYearRetainedEarningsEvidence | one of "linked", "manual", "explicitly-none", null |
| taxYear | matches ^\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.
| Cell | Types |
|---|---|
| bs_tie_out_delta_cy | number |
| businessNumber | array | boolean | null | number | object | string |
| corporationName | array | boolean | null | number | object | string |
| currentYear | object |
| currentYearEnd | array | boolean | null | number | object | string |
| fired_gates | object |
| form.assetsTable | array |
| form.equityTable | array |
| form.formWarnings | array |
| form.liabilitiesTable | array |
| form.line_2599 | number |
| form.line_3499 | number |
| form.line_3620 | number |
| form.line_3640 | number |
| form.line_3640_code | string |
| form.line_3849 | number |
| form.retainedEarningsTable | array |
| isAmalgamationSuccessor | array | boolean | null | number | object | string |
| isFinancialInstitution | array | boolean | null | number | object | string |
| isFirstYearT2 | array | boolean | null | number | object | string |
| isInactiveCorp | array | boolean | null | number | object | string |
| isInsuranceCorp | array | boolean | null | number | object | string |
| line_2599_total_assets_cy | number |
| line_3499_total_liabilities_cy | number |
| line_3620_total_shareholder_equity_cy | number |
| line_3640_total_liab_and_equity_cy | number |
| line_3680_net_income_cy | number |
| line_3849_re_end_cy | number |
| missing_required[] | string |
| provisional | boolean |
| re_continuity_delta_cy | number |
| re_expected_end_cy | number |
| ready | boolean |
| section_sum_assets_cy | number |
| section_sum_equity_cy | number |
| section_sum_liabilities_cy | number |
| warnings[].box | array | 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_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[].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[].message | string |
| warnings[].producers[] | string |
| warnings[].severity | string |