Official must-be-blank (364) keeps typeCode is-not; 24-hour dateBetween uses periodEnd; virtual-currency list now rejects unknown codes (300).
~ updated122772Entity name must be blank when holders.typeCode is not 2 (official LCTR table).
when typeCode is not 2 AND typeCode is 2 (never fired).
when typeCode is not 2, a provided entity name rejects (364).
~ updated122752Same official is-not gate as 122772 for the sibling holder entity field.
when typeCode is not 2 AND typeCode is 2 (never fired).
when typeCode is not 2, a provided value rejects (364).
~ updated122762Same official is-not gate as 122772 for the sibling holder entity field.
when typeCode is not 2 AND typeCode is 2 (never fired).
when typeCode is not 2, a provided value rejects (364).
~ updated122742Same official is-not gate as 122772 for the sibling holder entity field.
when typeCode is not 2 AND typeCode is 2 (never fired).
when typeCode is not 2, a provided value rejects (364).
~ updated122892Same official is-not gate as 122772 for the sibling involvement entity field.
when typeCode is not 2 AND typeCode is 2 (never fired).
when typeCode is not 2, a provided value rejects (364).
~ updated122872Same official is-not gate as 122772 for the sibling involvement entity field.
when typeCode is not 2 AND typeCode is 2 (never fired).
when typeCode is not 2, a provided value rejects (364).
~ updated122882Same official is-not gate as 122772 for the sibling involvement entity field.
when typeCode is not 2 AND typeCode is 2 (never fired).
when typeCode is not 2, a provided value rejects (364).
~ updated122862Same official is-not gate as 122772 for the sibling involvement entity field.
when typeCode is not 2 AND typeCode is 2 (never fired).
when typeCode is not 2, a provided value rejects (364).
~ updated121211Same official is-not gate as 122772 for the sibling source-of-cash entity field.
when typeCode is not 2 AND typeCode is 2 (never fired).
when typeCode is not 2, a provided value rejects (364).
~ updated121191Same official is-not gate as 122772 for the sibling source-of-cash entity field.
when typeCode is not 2 AND typeCode is 2 (never fired).
when typeCode is not 2, a provided value rejects (364).
~ updated121200Same official is-not gate as 122772 for the sibling source-of-cash entity field.
when typeCode is not 2 AND typeCode is 2 (never fired).
when typeCode is not 2, a provided value rejects (364).
~ updated121181Same official is-not gate as 122772 for the sibling source-of-cash entity field.
when typeCode is not 2 AND typeCode is 2 (never fired).
when typeCode is not 2, a provided value rejects (364).
~ updated121083Posting datetime is compared to periodEnd, not periodEnd. leftover punctuation.
endField pointed at periodEnd. and the window check never ran.
endField is periodEnd; a posting date outside the window rejects (302).
~ updated122613Unknown virtual-currency codes now reject against FINTRAC's list (300).
virtualCurrencyType list missing — inList passed every value.
Bitcoin/Ethereum/Other are accepted; other codes reject.
v1.0.1 · 2026-09-23
Aggregation type 4 now requires above-threshold AND ministerial directive; incorporation number only when all three jurisdiction fields are blank; blank FX rate cannot evaluate at 1:1.
~ updated120043Type 4 now requires above-threshold AND MD (was OR).
Type 4 passed if above-threshold or MD was set.
Type 4 (Not applicable) is rejected unless there is an above-threshold transaction and a ministerial directive.
~ updatedlctr-ben-incorpRequiredIncorporation number required only when all three jurisdiction fields are blank (121790/123470).
Required for every entity party.
Required only when jurisdiction of issue country, province/state code, and province/state name are all blank.
~ updatedlctr-con-incorpRequiredConductor incorporation number mirrors 121790.
Required for every entity conductor.
Required only when all three jurisdiction-of-issue fields are blank.
~ updatedlctr-ben-givenBlankPerson-field mustBeBlank on entities downgraded to a warning.
Reject when an entity party has a given name.
Warning only — not a FINTRAC (330) reject.
+ addedlctr-fx-cannot-evaluateBlank FX rate is cannot-evaluate — never 1:1.
Foreign-currency amount with a blank or invalid exchange rate cannot be converted.
Checks against published rules. Every rule lists its source. Findings show pass, warn, or fail before you submit to the regulator yourself. Does not file.
civic and municipal public holidays under Interpretation Act s. 35(1)(b) (city-council days; Natal Day NS and Gold Cup Parade Day PEI are not provincial statutes we can cite) and employer-specific closures, in the EFTR working-day count
FINTRAC CDR CAD-equivalent upper limit (341) after currency conversion — published API table has no exchangeRate field (valueInCanadianDollars is mutually exclusive with amount)
rules that need a regulator data feed we don't have yet