schedule125
T2 Corporation Income Tax Return
- Kind
- batch
- Supported tax years
- 2010 and later
- Strict profile
- s125_2025_synthetic_balanced_income_statement_v1
- Payload schema version
- 0.9.0
- Dependencies (run automatically)
- schedule1, schedule100
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": [
"schedule125"
],
"inputs": {
"schedule125": {
"businessNumber": "123456782",
"corporationName": "Cedar Ridge Manufacturing Inc.",
"currentYear": {
"8000": 100000,
"8520": 30000,
"8523": 10000,
"8670": 10000,
"9970": 50000,
"9990": 5000,
"9999": 45000
},
"currentYearEnd": "2025-12-31",
"priorYear": {
"8000": 80000,
"8520": 25000,
"8523": 9000,
"8670": 8000,
"9970": 38000,
"9990": 4000,
"9999": 34000
},
"priorYearEnd": "2024-12-31"
},
"schedule1BookNetIncome": 45000,
"taxYear": 2025,
"fiscalStart": "2025-01-01",
"fiscalEnd": "2025-12-31",
"daysInYear": 365,
"isCCPC": true
}
}Input cells (42)
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 tied to fiscalStart/fiscalEnd for the settled Part I dependency closure. | integer | strict |
| fiscalEndCanonical taxation-year end required by the settled Part I dependency closure. | string | strict |
| fiscalStartCanonical taxation-year start required by the settled Part I dependency closure. | string | strict |
| isCCPCExact corporation-status fact carried by this positive witness. | boolean | |
| schedule125 | object | |
| schedule125.businessNumber9-digit BN or 15-char RC account (e.g. "123456789RC0001"). | null | string | strict |
| schedule125.corporationNameCorporation legal name (header line in .gfi handoff). | null | string | strict |
| schedule125.currentYearGIFI 8000-9999 code → validator-sign amount map for the current year. In the S125 range this is numerically identical to natural sign. | object | |
| schedule125.currentYear.8000 | integer | strict |
| schedule125.currentYear.8520 | integer | strict |
| schedule125.currentYear.8523 | integer | strict |
| schedule125.currentYear.8670 | integer | strict |
| schedule125.currentYear.9970GIFI 9970, net income or loss before taxes and extraordinary items, equal to GIFI 9369 plus 9899. A mandatory form-face anchor: RC4088 requires it even at nil, so enter 0 rather than leaving it out. | null | number | string | strict |
| schedule125.currentYear.9975GIFI 9975, extraordinary items, in the net income summary block between GIFI 9970 and 9999. | null | number | string | |
| schedule125.currentYear.9976GIFI 9976, legal settlements, in the net income summary block between GIFI 9970 and 9999. | null | number | string | |
| schedule125.currentYear.9980GIFI 9980, unrealized gains and losses, in the net income summary block between GIFI 9970 and 9999. | null | number | string | |
| schedule125.currentYear.9985GIFI 9985, unusual items, in the net income summary block between GIFI 9970 and 9999. | null | number | string | |
| schedule125.currentYear.9990 | integer | null | number | strict |
| schedule125.currentYear.9995GIFI 9995, deferred income tax expense, in the net income summary block between GIFI 9970 and 9999. | null | number | string | |
| schedule125.currentYear.9998GIFI 9998, total other comprehensive income, the sum of GIFI 7000 through 7020. | null | number | string | |
| schedule125.currentYear.9999 | integer | strict |
| schedule125.currentYearEndCY end date YYYY-MM-DD. | null | string | strict |
| schedule125.insuranceUnderwritingTypeThe insurance underwriting subtype, read with isInsuranceCorp to decide whether the RC4088 Rev.23 p.5 PDF financial statement supplement advisory fires. Send it whenever isInsuranceCorp is true, using non_underwriting for brokerages, MGAs, agency subsidiaries and non-underwriting holding companies. No enum is published because the engine routes every unrecognized string to the ordinary-filer branch rather than rejecting it. | null | string | |
| schedule125.internetAttributableGifiCodesPractitioner-tagged GIFI codes deemed internet-attributable, for the S88 cross-feed. Must be revenue-range codes (8000-8299, exclusive of subtotals 8089/8299). Every code is opted in explicitly; nothing is tagged by default. | array | |
| schedule125.isAmalgamationSuccessorLegacy compatibility metadata; inert in the S125 calculation. | boolean | null | |
| schedule125.isFarmCorpFarm corp — GIFI 9370-9899 farm bands are populated. Advisory. | boolean | null | |
| schedule125.isFinancialInstitutionBank / credit union / trust — specialised GIFI codes apply. | boolean | null | |
| schedule125.isFirstYearT2Legacy compatibility metadata; inert in the S125 calculation. | boolean | null | |
| schedule125.isInactiveCorpT2 line 280 inactive flag — abbreviated GIFI permitted. | boolean | null | |
| schedule125.isInsuranceCorpRC4088 p.5 insurance carve-out — file F/S as PDF instead. | boolean | null | |
| schedule125.isPartnershipPartnership (T5013) — uses partnership IS GIFI layout. | boolean | null | |
| schedule125.priorYearOptional Filemark prior-period comparative map, same validator-sign convention. It is not rendered as a second CRA S125 amount column and never gates readiness. | object | |
| schedule125.priorYear.8000 | integer | strict |
| schedule125.priorYear.8520 | integer | strict |
| schedule125.priorYear.8523 | integer | strict |
| schedule125.priorYear.8670 | integer | strict |
| schedule125.priorYear.9970 | integer | strict |
| schedule125.priorYear.9990 | integer | strict |
| schedule125.priorYear.9999 | integer | strict |
| schedule125.priorYearEndOptional Filemark comparative period end; not a CRA S125 field. | null | string | strict |
| schedule1BookNetIncome | integer | null | number | 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. | number | string | always |
Strict profile accepted values (23 of 42 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 |
| schedule125.businessNumber | 0 to 20000 characters |
| schedule125.corporationName | 0 to 20000 characters |
| schedule125.currentYear.8000 | -1000000000000000 to 1000000000000000 |
| schedule125.currentYear.8520 | -1000000000000000 to 1000000000000000 |
| schedule125.currentYear.8523 | -1000000000000000 to 1000000000000000 |
| schedule125.currentYear.8670 | -1000000000000000 to 1000000000000000 |
| schedule125.currentYear.9970 | -1000000000000000 to 1000000000000000; 0 to 20000 characters |
| schedule125.currentYear.9990 | -1000000000000000 to 1000000000000000 |
| schedule125.currentYear.9999 | -1000000000000000 to 1000000000000000 |
| schedule125.currentYearEnd | 0 to 20000 characters |
| schedule125.priorYear.8000 | -1000000000000000 to 1000000000000000 |
| schedule125.priorYear.8520 | -1000000000000000 to 1000000000000000 |
| schedule125.priorYear.8523 | -1000000000000000 to 1000000000000000 |
| schedule125.priorYear.8670 | -1000000000000000 to 1000000000000000 |
| schedule125.priorYear.9970 | -1000000000000000 to 1000000000000000 |
| schedule125.priorYear.9990 | -1000000000000000 to 1000000000000000 |
| schedule125.priorYear.9999 | -1000000000000000 to 1000000000000000 |
| schedule125.priorYearEnd | 0 to 20000 characters |
| schedule1BookNetIncome | -1000000000000000 to 1000000000000000; 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 (98)
Paths are relative to this target’s result object in the response.
| Cell | Types |
|---|---|
| businessNumberSchedule 125's header cell for the corporation's CRA program account. Null when the request did not supply it; the finding that names the cell is then raised and the cell name is listed in `missing_required`. | null | string |
| corporationNameSchedule 125's header cell for the corporation's name. Null when the request did not supply it; the finding that names the cell is then raised and the cell name is listed in `missing_required`. | null | string |
| currentYear.8000 | integer |
| currentYear.8520 | integer |
| currentYear.8523 | integer |
| currentYear.8670 | integer |
| currentYear.9970 | integer |
| currentYear.9990 | integer |
| currentYear.9999 | integer |
| currentYearEndSchedule 125's header cell for the current tax year-end (YYYY-MM-DD). Null when the request did not supply it; the finding that names the cell is then raised and the cell name is listed in `missing_required`. | null | string |
| fired_gates | object |
| form.cogsTable | array |
| form.extraordinaryTable[].amount | number |
| form.extraordinaryTable[].code | string |
| form.farmExpensesTable | array |
| form.farmRevenueTable | array |
| form.formWarnings | array |
| form.line_8299 | number |
| form.line_9368 | number |
| form.line_9369 | number |
| form.line_9659 | number |
| form.line_9898 | number |
| form.line_9899 | number |
| form.line_9970 | number |
| form.line_9998 | number |
| form.line_9999 | number |
| form.operatingExpensesTable[].amount | number |
| form.operatingExpensesTable[].code | string |
| form.revenueTable[].amount | number |
| form.revenueTable[].code | string |
| form.ociTable | array |
| form.schedule140Line9970 | array | boolean | null | number | object | string |
| form.schedule140Line9999 | array | boolean | null | number | object | string |
| form.schedule140Table | array |
| formula_9999_delta_cy | null | number |
| formula_9999_expected_cy | number |
| gifi_9998 | number |
| gifi_9999 | number |
| impairment_candidate_ni_sum_cy | number |
| impairment_candidate_oci_sum_cy | number |
| internet_attributable_gifi_codes | array | boolean | null | number | object | string |
| internet_revenue_cy | number |
| internet_revenue_pct_cy | null | number |
| isAmalgamationSuccessor | array | boolean | null | number | object | string |
| isFarmCorp | 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_8089_total_sales_cy | number |
| line_8299_total_revenue_cy | number |
| line_8518_cost_of_sales_cy | number |
| line_8519_gross_profit_cy | number |
| line_9367_total_operating_expenses_cy | number |
| line_9368_total_expenses_cy | number |
| line_9369_net_nonfarm_cy | number |
| line_9659_total_farm_revenue_cy | number |
| line_9898_total_farm_expenses_cy | number |
| line_9899_net_farm_cy | number |
| line_9970_net_income_before_tax_cy | number |
| line_9998_oci_total_cy | number |
| line_9999_net_income_after_tax_cy | number |
| missing_required[] | string |
| net_income_after_tax | number |
| oci_total | number |
| priorYear.8000 | integer |
| priorYear.8520 | integer |
| priorYear.8523 | integer |
| priorYear.8670 | integer |
| priorYear.9970 | integer |
| priorYear.9990 | integer |
| priorYear.9999 | integer |
| priorYearEndSchedule 125's header cell for the prior tax year-end (YYYY-MM-DD). Null when the request did not supply it; the finding that names the cell is then raised and the cell name is listed in `missing_required`. | null | string |
| provisional | boolean |
| ready | boolean |
| section_sum_cogs_cy | number |
| section_sum_farm_expenses_cy | number |
| section_sum_farm_revenue_cy | number |
| section_sum_operating_expenses_cy | number |
| section_sum_operating_expenses_py | number |
| section_sum_revenue_cy | number |
| section_sum_revenue_py | number |
| 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[].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[].message | string |
| warnings[].producers[] | string |
| warnings[].severity | string |
| warnings[].kindThe finding family, on the findings that publish one. The form projection integrity finding carries `form_projection`. | string |