schedule512
T2 Corporation Income Tax Return
- Kind
- batch
- Supported tax years
- 2009 and later
- Strict profile
- schedule512_v1
- Payload schema version
- 0.1.0
- Dependencies (run automatically)
- schedule513
Example request
Send this body to POST /api/v1/computations/batch. This example works with or without payloadContract.
{
"compute": [
"schedule512"
],
"inputs": {
"taxYear": 2025,
"fiscalStart": "2025-01-01",
"fiscalEnd": "2025-12-31",
"schedule512": {
"isLifeInsuranceCorporation": false
},
"daysInYear": 365,
"isCCPC": true
}
}Input cells (76)
Paths are relative to the request's inputs object. [] marks an array element.
Cells marked always require a non-null value in every request. Cells marked strict are required when you supply this target's payloadContract. See Run computations.
Unknown cells and JSON type mismatches return 400 with the affected cells in the error details.
| Cell | Types | Required |
|---|---|---|
| businessNumberFiling corporation CRA business number, as a nine-digit root or full 15-character program account, used to match corporation-specific allocations such as Schedule 23. Other root-level aliases and the jacket or GIFI schedule identities may supply it when omitted. Missing, malformed or conflicting roots prevent an allocation match. | null | string | |
| daysInYearNumber of days in the taxation year, as a positive whole number, driving the ITA s.125(5)(b) short-year proration of the business limit. The third member of the canonical taxation-period trio with fiscalStart and fiscalEnd: all three are mandatory whenever the request reaches Part I through its dependency closure, which most targets do. A missing member is refused before any computation, and a day count that disagrees with the two dates is an error. | null | number | |
| entityIdIdentifier of the filing corporation, used by Schedule 42 and predecessor-continuity checks to match authenticated evidence, and to identify statutory proration periods. The identifier does not authorize access to another corporation. Omission prevents predecessor evidence from matching; proration labels may fall back to the filing BN or tax-year identifier. | null | string | |
| filerBnFiling corporation CRA business number, as a nine-digit root or full 15-character program account, used to match corporation-specific allocations such as Schedule 23. Other root-level aliases and the jacket or GIFI schedule identities may supply it when omitted. Missing, malformed or conflicting roots prevent an allocation match. | null | string | |
| filingCorpBnFiling corporation CRA business number, as a nine-digit root or full 15-character program account, used to match corporation-specific allocations such as Schedule 23. Other root-level aliases and the jacket or GIFI schedule identities may supply it when omitted. Missing, malformed or conflicting roots prevent an allocation match. | null | string | |
| fiscalEndThe last day of the taxation year in ISO YYYY-MM-DD form, which bounds every disposition date. Send it with fiscalStart and daysInYear: the three are the canonical taxation-period trio, and all three are mandatory whenever the request reaches Part I through its dependency closure. Strict YYYY-MM-DD, and not before fiscalStart. | null | string | strict |
| fiscalStartThe first day of the taxation year (ISO YYYY-MM-DD). With fiscalEnd and daysInYear it is the canonical taxation-period trio, and all three are mandatory whenever the request reaches Part I through its dependency closure — the request is refused before any computation when one is missing. The bounds also drive Schedule 8's Reg 1100(3) short-year CCA proration and the Reg 1104(3.5)(b) immediate-expensing limit proration. | null | string | strict |
| isCCPC | boolean | |
| schedule100 | object | |
| schedule101 | object | |
| schedule101.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 | object | |
| 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 | |
| schedule510Ontario Schedule 510 corporate minimum tax inputs, including assets, revenue, association facts and loss or credit continuity. When omitted, the engine still tests CMT liability if Schedule 5 establishes an Ontario permanent establishment; missing required facts remain unresolved. | null | object | |
| schedule510.has_associated_corporationsWhether the filer has associated corporations; an unanswered value remains unresolved. | boolean | null | |
| schedule512.capitalAllowanceForFirstTaxYearEndingInCalendarYear | null | number | |
| schedule512.carriesOnBusinessInCanada | boolean | null | |
| schedule512.carriesOnBusinessInOntario | boolean | null | |
| schedule512.foreignInsuranceSubsidiaries | array | |
| schedule512.foreignInsuranceSubsidiaries[].capitalStockInvested | null | number | |
| schedule512.foreignInsuranceSubsidiaries[].capitalStockOrMembersContributions | null | number | |
| schedule512.foreignInsuranceSubsidiaries[].deferredTaxDebitOrFutureTaxAssets | null | number | |
| schedule512.foreignInsuranceSubsidiaries[].deficitDeductedInShareholdersEquity | null | number | |
| schedule512.foreignInsuranceSubsidiaries[].longTermDebt | null | number | |
| schedule512.foreignInsuranceSubsidiaries[].longTermDebtInvested | null | number | |
| schedule512.foreignInsuranceSubsidiaries[].name | string | |
| schedule512.foreignInsuranceSubsidiaries[].otherContributedSurplus | null | number | |
| schedule512.foreignInsuranceSubsidiaries[].retainedEarnings | null | number | |
| schedule512.foreignInsuranceSubsidiaries[].surpluses | null | number | |
| schedule512.foreignInsuranceSubsidiaries[].totalReserveLiabilities | null | number | |
| schedule512.isLifeInsuranceCorporation | boolean | null | |
| schedule512.line110 | null | number | |
| schedule512.line112 | null | number | |
| schedule512.line114 | null | number | |
| schedule512.line116 | null | number | |
| schedule512.line118 | null | number | |
| schedule512.line130 | null | number | |
| schedule512.line132 | null | number | |
| schedule512.line164 | null | number | |
| schedule512.line168 | null | number | |
| schedule512.line180 | null | number | |
| schedule512.line210 | null | number | |
| schedule512.line214 | null | number | |
| schedule512.line218 | null | number | |
| schedule512.line222 | null | number | |
| schedule512.line226 | null | number | |
| schedule512.line310 | boolean | null | |
| schedule512.line315 | string | |
| schedule512.line320 | string | |
| schedule512.line325 | string | |
| schedule512.moreThanOneTaxYearEndingInCalendarYearWhileRelated | boolean | null | |
| schedule512.ontarioCorporateIncomeTaxPayableDivisionB | null | number | |
| schedule512.ontarioCorporateMinimumTaxPayableDivisionC | null | number | |
| schedule512.ontarioTaxableIncome | null | number | |
| schedule512.relatedSolelyViaCrownControl | boolean | null | |
| schedule512.relatedSolelyViaS251_5_bRight | boolean | null | |
| schedule512.residentInCanada | boolean | null | |
| schedule512.s251_5_bRightAcquiredToAvoidCapitalAllowanceLimit | boolean | null | |
| schedule512.s63_10AllocationAgreementFiled | boolean | null | |
| schedule512.s63_10AmountsAllocatedToThisMember | array | |
| schedule512.s63_10AmountsAllocatedToThisMember[]One entered amount. | null | number | string | |
| schedule512.s63_10GroupTaxableCapitalEmployedInCanada | null | number | |
| schedule512.s63_10TotalAllocatedToAllMembers | null | number | |
| schedule512.taxableIncomeEarnedInAllProvinces | null | number | |
| schedule512.taxableIncomeEarnedInCanada | null | number | |
| schedule512.taxableIncomeT2Line360 | null | number | |
| schedule513.currentYearIsFirstTaxYearEndingInCalendarYearWhether this is the first tax year ending in that calendar year. Only relevant when the Note applies: for the first such year the deemed allowance is this year's own column 400 allocation, and a later year is held because the earlier year's allowance is not carried. | boolean | null | |
| schedule513.members[].allocations[] | integer | null | number | string | |
| schedule513.members[].businessNumberBox 300. This member's Business Number, or "NR" when the corporation is not registered. | null | string | |
| schedule513.members[].lifeInsuranceCorporationCarryingOnBusinessInCanadaWhether this row is a life insurance corporation carrying on business in Canada. Only such a corporation is a member of the related group, and only its taxable capital sizes the line 410 ceiling. An unanswered row is held rather than assumed. | boolean | null | |
| schedule513.members[].nameBox 200. Name of this member of the related group. | null | string | |
| schedule513.members[].taxableCapitalEmployedInCanadaFootnote **. This member's taxable capital employed in Canada, being the amount from line 190 or line 290 on its own Schedule 512, whichever applies. | integer | null | number | |
| schedule513.multipleTaxYearsEndingInCalendarYearThe Schedule 513 Note. Whether a member has more than one tax year ending in this calendar year and is, in two or more of them, related to another life insurance corporation with a tax year ending in that calendar year. Unanswered is held, never read as No. | boolean | null | |
| t2Jacket | object | |
| 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 |
| taxYearId | string |
Strict profile accepted values (54 of 76 cells)
These constraints apply when you supply this target's payloadContract. Cells marked pinned must equal the listed value.
| Cell | Accepted values |
|---|---|
| businessNumber | 0 to 20000 characters |
| daysInYear | 1 to 1000000000000000 |
| entityId | 0 to 20000 characters |
| filerBn | 0 to 20000 characters |
| filingCorpBn | 0 to 20000 characters |
| fiscalEnd | date (YYYY-MM-DD); 10 to 10 characters |
| fiscalStart | date (YYYY-MM-DD); 10 to 10 characters |
| schedule101.insuranceUnderwritingType | 0 to 20000 characters |
| schedule125.insuranceUnderwritingType | 0 to 20000 characters |
| schedule512.capitalAllowanceForFirstTaxYearEndingInCalendarYear | -1000000000000000 to 1000000000000000 |
| schedule512.foreignInsuranceSubsidiaries[].capitalStockInvested | -1000000000000000 to 1000000000000000 |
| schedule512.foreignInsuranceSubsidiaries[].capitalStockOrMembersContributions | -1000000000000000 to 1000000000000000 |
| schedule512.foreignInsuranceSubsidiaries[].deferredTaxDebitOrFutureTaxAssets | -1000000000000000 to 1000000000000000 |
| schedule512.foreignInsuranceSubsidiaries[].deficitDeductedInShareholdersEquity | -1000000000000000 to 1000000000000000 |
| schedule512.foreignInsuranceSubsidiaries[].longTermDebt | -1000000000000000 to 1000000000000000 |
| schedule512.foreignInsuranceSubsidiaries[].longTermDebtInvested | -1000000000000000 to 1000000000000000 |
| schedule512.foreignInsuranceSubsidiaries[].name | 0 to 20000 characters |
| schedule512.foreignInsuranceSubsidiaries[].otherContributedSurplus | -1000000000000000 to 1000000000000000 |
| schedule512.foreignInsuranceSubsidiaries[].retainedEarnings | -1000000000000000 to 1000000000000000 |
| schedule512.foreignInsuranceSubsidiaries[].surpluses | -1000000000000000 to 1000000000000000 |
| schedule512.foreignInsuranceSubsidiaries[].totalReserveLiabilities | -1000000000000000 to 1000000000000000 |
| schedule512.line110 | -1000000000000000 to 1000000000000000 |
| schedule512.line112 | -1000000000000000 to 1000000000000000 |
| schedule512.line114 | -1000000000000000 to 1000000000000000 |
| schedule512.line116 | -1000000000000000 to 1000000000000000 |
| schedule512.line118 | -1000000000000000 to 1000000000000000 |
| schedule512.line130 | -1000000000000000 to 1000000000000000 |
| schedule512.line132 | -1000000000000000 to 1000000000000000 |
| schedule512.line164 | -1000000000000000 to 1000000000000000 |
| schedule512.line168 | -1000000000000000 to 1000000000000000 |
| schedule512.line180 | -1000000000000000 to 1000000000000000 |
| schedule512.line210 | -1000000000000000 to 1000000000000000 |
| schedule512.line214 | -1000000000000000 to 1000000000000000 |
| schedule512.line218 | -1000000000000000 to 1000000000000000 |
| schedule512.line222 | -1000000000000000 to 1000000000000000 |
| schedule512.line226 | -1000000000000000 to 1000000000000000 |
| schedule512.line315 | 0 to 20000 characters |
| schedule512.line320 | 0 to 20000 characters |
| schedule512.line325 | 0 to 20000 characters |
| schedule512.ontarioCorporateIncomeTaxPayableDivisionB | -1000000000000000 to 1000000000000000 |
| schedule512.ontarioCorporateMinimumTaxPayableDivisionC | -1000000000000000 to 1000000000000000 |
| schedule512.ontarioTaxableIncome | -1000000000000000 to 1000000000000000 |
| schedule512.s63_10AmountsAllocatedToThisMember[] | -1000000000000000 to 1000000000000000; 0 to 20000 characters |
| schedule512.s63_10GroupTaxableCapitalEmployedInCanada | -1000000000000000 to 1000000000000000 |
| schedule512.s63_10TotalAllocatedToAllMembers | -1000000000000000 to 1000000000000000 |
| schedule512.taxableIncomeEarnedInAllProvinces | -1000000000000000 to 1000000000000000 |
| schedule512.taxableIncomeEarnedInCanada | -1000000000000000 to 1000000000000000 |
| schedule512.taxableIncomeT2Line360 | -1000000000000000 to 1000000000000000 |
| schedule513.members[].allocations[] | -1000000000000000 to 1000000000000000; 0 to 20000 characters |
| schedule513.members[].businessNumber | 0 to 20000 characters |
| schedule513.members[].name | 0 to 20000 characters |
| schedule513.members[].taxableCapitalEmployedInCanada | -1000000000000000 to 1000000000000000 |
| taxYear | matches ^\s*(?:1[0-9]{3}|2(?:0(?:[0-1][0-9]{1}|2[0-7])))\s*$; 1000 to 2027 |
| taxYearId | 0 to 20000 characters |
Output cells (168)
Paths are relative to this target's result object in the response.
| Cell | Types |
|---|---|
| schedule | string |
| cra_form_ref | string |
| status | string |
| s5_receiver_box | string |
| sch510_cmt_credit_feed_note | string |
| s5_division_b_source | string |
| s5_division_c_source | string |
| ready | boolean |
| provisional | boolean |
| sat_payable | null | number |
| s5_receiver_amount | null | number |
| sat_added_to_cmt_credit_carryforward | null | number |
| capital_allowance.line_330 | number |
| capital_allowance.source | string |
| capital_allowance.taxable_capital_employed_in_canada | number |
| capital_allowance.s63_10_group_taxable_capital_employed_in_canada | null | number |
| capital_allowance.s63_10_group_ceiling | null | number |
| capital_allowance.s63_10_total_allocated_to_all_members | null | number |
| capital_allowance.uncovered_band[] | number |
| capital_allowance.tiers[].citation | string |
| capital_allowance.tiers[].label | string |
| capital_allowance.tiers[].fraction | null | string |
| capital_allowance.tiers[].floor | null | number |
| capital_allowance.tiers[].ceiling | null | number |
| capital_allowance.tiers[].base | null | number |
| capital_allowance.tiers[].amount | number |
| capital_allowance | null |
| computed.amount_a | number |
| computed.amount_b | number |
| computed.amount_c | number |
| computed.amount_d | number |
| computed.amount_e | number |
| computed.amount_g | number |
| computed.amount_h | number |
| computed.amount_j | number |
| computed.amount_l | number |
| computed.amount_n | number |
| computed.amount_o_sat_payable | number |
| computed.line_150 | number |
| computed.line_160 | number |
| computed.line_166 | number |
| computed.line_170 | number |
| computed.line_180 | number |
| computed.line_190 | number |
| computed.line_290 | number |
| computed.line_330 | number |
| computed.line_350 | number |
| computed.line_460 | number |
| computed.amount_k_ontario_domestic_factor | number |
| computed.sat_rate | number |
| computed.days_in_tax_year | integer |
| computed.ontario_domestic_factor_basis | string |
| computed.foreign_insurance_subsidiaries[].name | string |
| computed.foreign_insurance_subsidiaries[].capital_q | number |
| computed.foreign_insurance_subsidiaries[].excluded_investments_r | number |
| computed.foreign_insurance_subsidiaries[].capital_s63_6 | number |
| computed.foreign_insurance_subsidiaries[].total_reserve_liabilities_s63_7 | number |
| audit.amount_a | string |
| audit.amount_b | string |
| audit.amount_c | string |
| audit.amount_d | string |
| audit.amount_e | string |
| audit.amount_g | string |
| audit.amount_h | string |
| audit.amount_j | string |
| audit.amount_l | string |
| audit.amount_n | string |
| audit.amount_o_sat_payable | string |
| audit.line_150 | string |
| audit.line_160 | string |
| audit.line_166 | string |
| audit.line_170 | string |
| audit.line_180 | string |
| audit.line_190 | string |
| audit.line_290 | string |
| audit.line_330 | string |
| audit.line_350 | string |
| audit.line_460 | string |
| audit.amount_k_ontario_domestic_factor | string |
| audit.sat_rate | string |
| audit.days_in_tax_year | string |
| audit.ontario_domestic_factor_basis | string |
| fired_gates[] | string |
| warnings[].codeStable machine identity of the disclosure, independent of its prose. | string |
| warnings[].findingCode | string |
| warnings[].severity | string |
| warnings[].message | string |
| warnings[].subsection | string |
| warnings[].authority | string |
| warnings[].gate_id | null | string |
| 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[].notesWhat the rate manifest records against the year, including what is still outstanding before the year can be verified. | string |
| warnings[].sourceModuleThe module that emitted the disclosure. | string |
| warnings[].sources[] | string |
| warnings[].taxYearThe taxation year whose rate tables are unverified. | integer |
| warnings[].taxYears[] | integer |
| warnings[].reason | string |
| warnings[].source | string |
| warnings[].upstreamSource | string |
| warnings[].kind | string |
| warnings[].key | string |
| warnings[].section | string |
| warnings[].box_form | string |
| warnings[].target | string |
| warnings[].field | string |
| warnings[].templateId | null | string |
| warnings[].workpaperId | string |
| warnings[].status | string |
| warnings[].payerName | string |
| warnings[].accountCode | string |
| warnings[].accountName | string |
| warnings[].producer | string |
| warnings[].sourceState | string |
| warnings[].openingFamily | string |
| warnings[].inputPath | string |
| warnings[].openingLabel | string |
| warnings[].manualValue | null | number |
| warnings[].canonicalValue | null | number |
| warnings[].amount | null | number |
| warnings[].accountBalance | null | number |
| warnings[].rowIndex | null | number |
| warnings[].accountId | boolean | null | number | string |
| warnings[].expected | array | boolean | null | number | object | string |
| warnings[].actual | array | boolean | null | number | object | string |
| warnings[].citation | array | boolean | null | number | object | string |
| warnings[].producers[] | string |
| warnings[].affectedOutputs[] | string |
| warnings[].calculationUsable | boolean |
| warnings[].isNil | boolean | null |
| warnings[].adjustmentAmountThe dollar amount the finding is about, on the routing and slip-reconciliation notices that name one. Absent on every notice that does not. | number |
| warnings[].competingS1Lines[] | string |
| warnings[].competingTemplateIds[] | string |
| warnings[].computedDirectionThe addition/deduction direction the workpaper or classification computed, on the routing findings that refuse it against the registered direction of the line. | null | string |
| warnings[].conditionalOnThe statutory fact a conditional classification turns on and that the return has not resolved. Nothing is posted while it is open. | string |
| warnings[].conflictingLines[] | string |
| warnings[].controlledAffiliateCountThe number of box 300 code 1 selections Schedule 25 reports, on the ITA 91(1) foreign accrual property income finding. | integer |
| warnings[].coveredByPostedAjeTrue on the reconciliation finding raised when a posted adjusting entry already moved the accounts a GL-built workpaper measures, so letting both amounts post would reconcile the same item twice. | boolean |
| warnings[].gifiCodes[] | string |
| warnings[].incomeAmountCountHow many foreign accrual income amounts share the affiliate class the prior-year claim was recorded against. | integer |
| warnings[].incomeAmountIdThe foreign accrual income amount the finding is about, as the engine keys it. | string |
| warnings[].inferredCategoryThe Schedule 1 category the engine inferred for an amount whose classification named no line. | string |
| warnings[].itaReferences[] | string |
| warnings[].lineThe Schedule 1 line whose amount a canonical producer replaced, on the cross-schedule finding that names the replacement. | string |
| warnings[].lineDefaultTaxThe default tax treatment the chosen Schedule 1 line registers. Null when the line registers none, or when no line was chosen. | null | string |
| warnings[].ownerThe schedule that owns the replaced Schedule 1 line, on the cross-schedule replacement finding. | string |
| warnings[].pairedLineThe opposite-direction Schedule 1 line registered for the same concept, when one exists. Null when the registry pairs none. | null | string |
| warnings[].pairedLineFeedsScheduleThe schedule the paired line is printed as sourced from, which is why the amount cannot simply be re-anchored there. Null when the registry pairs no line. | null | string |
| warnings[].postedAjeAccountIds[] | string |
| warnings[].producerKeyThe canonical producer whose amount replaced the account-derived one, on the cross-schedule replacement finding. | string |
| warnings[].receiverThe canonical receiver that must carry this concept's opposite-direction amount, on the canonical-receiver refusal. | string |
| warnings[].registeredDirectionThe direction the Schedule 1 line registry records for the line the amount was routed to. Null when the line is not in the registry. | null | string |
| warnings[].replacedTotalThe account-derived total the canonical producer's amount replaced. | number |
| warnings[].schedule1LineThe Schedule 1 line the finding is about. Null where the classification or the registry names none, which is itself the subject of several of these findings. | null | string |
| warnings[].taxTreatmentThe tax treatment the classification states. Null when it states none. | null | string |
| warnings[].treatmentThe classification's Schedule 1 treatment verdict. Null when the classification states none. | null | string |
| warnings[].unfundedAccountIds[] | string |
| warnings[].unreadableEntryCountHow many foreign accrual ledger entries could not be read, on the coverage finding that refuses to treat them as absent. | integer |
| computed | object |
| audit | object |