End-to-End Requirements Document
Chief Compliance Officer · Version 1.5 — Draft for review — 5 August 2026
| Field | Value |
|---|---|
| Document ID | AML-REQ-001 |
| Version | 1.5 (Draft for review) |
| Date | 3 August 2026 |
| Owner | Chief Compliance Officer (CCO) |
| Approvers | CCO, CTO, Senior Management, External AML Counsel |
| Classification | Internal — Confidential |
Legal disclaimer. This document is a technical and operational requirements specification. It is not legal advice. Every obligation cited below must be validated against current FINTRAC guidance and confirmed by qualified Canadian AML counsel before go-live. FINTRAC revoked 86+ MSB registrations in Q1 2026 alone, disproportionately in the virtual currency sector — sign-off by counsel is not optional.
| Area | v1.0 assumption | v1.1 position |
|---|---|---|
| Travel Rule | No solution — build or procure | Sumsub is the Travel Rule provider. Downgraded from “absent” to “present but unconfigured for Canadian requirements” |
| Sanctions screening | Vendor unknown; possibly Sumsub AML module | Marble Screening is the chosen solution. Not yet implemented. Carries a licensing dependency (§4.3) |
| Rule engine | Assumed integrated | Confirmed integrated — this work is done |
| Alert management | Assumed to exist within case management | Does not exist. Rule engine decisions are not being captured. New blocking gap |
| Case management | Assumed connected to monitoring | Exists but is not linked to the compliance stack. New blocking gap |
| Area | v1.1 assumption | v1.2 position |
|---|---|---|
| KYB / beneficial ownership | Not built — blocking gap | Built. Sumsub KYB is live in production and traces ownership through holding companies to ultimate natural persons. Removed as a gap |
The residual issue is not collection but handoff: beneficial owner names sit in Sumsub and are not yet reaching Marble Screening. Until screening is live and that feed is built, no beneficial owner is checked against any sanctions list. See RSK-09 and FR-316.
The most important revision is not any single module. It is that the platform currently detects without capturing. The Marble rule engine is integrated and producing decisions, but there is no alert management layer to receive them and no link into case management. Detection output is being generated and discarded.
From an examiner’s perspective this is a worse posture than having no monitoring at all. A firm with no monitoring has a capability gap. A firm whose system identifies risk and then drops it on the floor has a documented, timestamped record of having known something and done nothing with it. The alert-to-STR chain in §7.3 is the single most heavily examined path in any AML programme, and yours is currently severed in two places.
Phase 1 of the roadmap has therefore been reordered to close this loop before anything else is built.
Define the complete set of business, functional, technical and operational requirements necessary for the platform to operate lawfully as a FINTRAC-registered MSB dealing in virtual currency, and to survive a FINTRAC examination.
Compliance, Engineering, Product, Internal Audit, external AML counsel, and FINTRAC examiners.
| Instrument | Relevance |
|---|---|
| Proceeds of Crime (Money Laundering) and Terrorist Financing Act (PCMLTFA) | Primary AML/CTF statute |
| PCMLTFR (Regulations) | Prescribed identification methods, records, report contents |
| Special Economic Measures Act (SEMA) | Country/person sanctions programmes |
| United Nations Act (UN Act) regulations | UN Security Council listings |
| Justice for Victims of Corrupt Foreign Officials Act (JVCFOA) | Corrupt foreign official listings |
| Criminal Code s.83.05 | Listed terrorist entities |
| Ministerial Directives (Iran, and others in force) | Enhanced measures and mandatory reporting for specified jurisdictions |
| Retail Payment Activities Act (RPAA) | Likely applicable — see §4.1 |
Every requirement in this document traces back to one of these. FINTRAC examines all five.
| # | Pillar | Evidence artefact |
|---|---|---|
| P1 | Appointment of a Compliance Officer | Board/senior management appointment record, job description, reporting line |
| P2 | Written policies and procedures | Approved P&P manual, version controlled, signed off by senior management |
| P3 | Risk assessment | Documented ML/TF risk assessment covering products, customers, geographies, delivery channels, technology |
| P4 | Ongoing training programme | Training plan, materials, attendance records, testing scores |
| P5 | Biennial effectiveness review | Independent review with sampling, walkthroughs, gap analysis, remediation plan, senior management sign-off |
Note on P5. A one-page memo will not pass. FINTRAC expects a testing programme with documented sampling methodology, control walkthroughs, findings, and a tracked remediation plan.
| ID | Report | Trigger | Deadline (verify against current FINTRAC guidance) |
|---|---|---|---|
| REP-1 | LVCTR — Large Virtual Currency Transaction Report | Receipt of virtual currency equivalent to CAD 10,000 or more in a single transaction, or via the 24-hour aggregation rule | Within 5 working days |
| REP-2 | LCTR — Large Cash Transaction Report | Receipt of CAD 10,000 or more in cash, single or 24-hour rule | Within 15 calendar days |
| REP-3 | EFTR — Electronic Funds Transfer Report | International EFT of CAD 10,000 or more, sent or received | Within 5 working days |
| REP-4 | STR — Suspicious Transaction Report | Reasonable grounds to suspect a transaction (completed or attempted) is related to ML/TF | As soon as practicable after measures are completed |
| REP-5 | TPR — Terrorist Property Report | Knowledge of property owned/controlled by a terrorist group or listed person | Immediately |
| REP-6 | LPEPR — Listed Person or Entity Property Report | Property of a listed person under the Criminal Code / UN regulations | Per FINTRAC guidance |
| REP-7 | Sanctions evasion STR | Suspicion of sanctions circumvention | Same as STR |
| REP-8 | Ministerial Directive reports | Any transaction originating from or bound for a directive-designated jurisdiction (e.g. Iran) — regardless of amount | Per directive |
Critical. Each obligation is independent. Filing an STR does not discharge the LVCTR, LCTR or EFTR obligation. If a transaction triggers both, both must be filed. The single largest publicly reported crypto penalty in Canada (C$176.96M, October 2024) involved 1,068 unreported STRs in one month, 1,518 missed LVCTRs, and 7,557 unflagged Iran-linked transfers.
| Threshold | Amount | Applies to |
|---|---|---|
| Travel Rule (VCTR) | CAD 1,000 | Virtual currency transfers — originator & beneficiary information |
| VC identification / record | CAD 1,000 | Client identification and transaction record |
| Large VC transaction report | CAD 10,000 | LVCTR |
| Large cash / EFT | CAD 10,000 | LCTR / EFTR |
| Beneficial ownership | 25% ownership or control | Entity customers |
| Record retention | 5 years | From last transaction or account closure |
| FINTRAC information request | 30 days | Hard response deadline |
| Capability | Owner | Build status | Assessment |
|---|---|---|---|
| Identity verification | Sumsub | Built | Must be mapped explicitly to FINTRAC-prescribed methods and evidenced per customer |
| Travel Rule | Sumsub | Built | Vendor capability is strong; Canadian threshold logic, missing-information policy and record retention need configuration and proof |
| Crypto / address risk | AMLBot | Built | Covers on-chain only; thresholds and action mapping need documenting |
| Transaction monitoring rules | Marble | Integrated | Core engine working — the main remaining work is rule coverage and tuning evidence, not integration |
| Name / sanctions screening | Marble Screening | Not built | Selected but not implemented. Licensing dependency — see §4.3 |
| Alert management | — | Not built | Rule engine output is not being captured. Blocking |
| Case management | Internal build | Exists, not linked | No connection to monitoring, screening or reporting. Blocking |
| 24-hour aggregation | — | Not built | Blocking for LVCTR/LCTR/EFTR |
| Regulatory reporting | — | Not built | Blocking |
| KYB / beneficial ownership | Sumsub | Built | Live in production, traced to ultimate natural persons. Remaining work is feeding those names into screening, not collecting them |
| Customer risk rating | — | Not built | Blocking — drives EDD and monitoring thresholds |
Figure 1. Current-state architecture — red nodes are unbuilt or unconfirmed and block go-live
Red nodes are unbuilt. The amber node exists but is disconnected. The critical observation is the chain across the middle of the diagram: Marble Rule Engine → Alert Management → Case Management → FINTRAC Reporting is broken at every link. Rules fire, and nothing downstream receives the output.
Where two vendors sit adjacent to each other, obligations fall into the seam between them. This matrix exists to make every seam explicit and assign it an owner.
| Control | Owner | Seam risk |
|---|---|---|
| Individual identity verification | Sumsub | Prescribed-method mapping is yours, not Sumsub’s — Sumsub verifies, you must evidence which FINTRAC method was satisfied |
| Entity existence verification | Sumsub (KYB) | Built |
| Beneficial ownership identification | Sumsub (KYB) | Built and traced to natural persons. The seam is downstream: those names must be pushed into Marble Screening. Collection is solved; screening of what was collected is not |
| Name / sanctions / PEP screening | Marble Screening | Must receive names from Sumsub (customers, BOs, directors, signatories) and from transaction counterparties |
| Address / on-chain risk | AMLBot | Result must be an input to Marble decisioning, not a parallel silo |
| Travel Rule data exchange | Sumsub | Critical seam — Sumsub holds the messages, but the 5-year retention obligation is yours. Requires export into your own archive |
| Counterparty VASP due diligence | Sumsub directory + your assessment | Vendor directory is a starting point, not a substitute for your own risk rating |
| Transaction monitoring | Marble rule engine | Integrated |
| Alert capture and triage | Unassigned — to build | Currently nothing owns this |
| Investigation and STR decision | Internal case management | Currently disconnected |
| Reporting to FINTRAC | Unassigned — to build | Currently nothing owns this |
| 24-hour aggregation | Unassigned — to build | Cannot be delegated to any current vendor |
| Record retention | You | No vendor discharges this for you |
The rule to hold onto: a vendor performs a function; it never assumes your obligation. FINTRAC examines you, not Sumsub, Marble or AMLBot.
Your FINTRAC MSB registration covers AML obligations only. Because you operate a CAD fiat on/off-ramp and merchant payment settlement, and hold end-user fiat balances, you very likely also require registration as a Payment Service Provider with the Bank of Canada under the Retail Payment Activities Act. The RPAA is activity-based: purely crypto-to-crypto services are generally out of scope, but fiat on/off-ramps and wallets that hold fiat balances bring an entity into scope.
The RPAA operates entirely separately from FINTRAC — a valid MSB registration provides no defence. Registration requires an operational risk and incident response framework, an end-user funds safeguarding plan (safeguarded account with a qualified Canadian banking partner, plus insurance or guarantee), and ongoing reporting. Penalties for unregistered operation are severe.
Action: Legal determination required within 2 weeks. If in scope, this drives the critical path, not the AML build.
| ID | Gap | Severity | Notes |
|---|---|---|---|
| GAP-02 | No FINTRAC reporting capability | Blocker | No LVCTR/EFTR/STR generation or submission. Requires FINTRAC API enrolment (application + secret via the FINTRAC API portal) or FWR for low volume |
| GAP-02b | No alert management layer | Blocker | Marble decisions are not captured. Detection output is generated and discarded. Highest-priority item in this document |
| GAP-02c | Case management not linked | Blocker | No path from alert to investigation to STR. The chain FINTRAC examines most closely does not exist end to end |
| GAP-03 | Travel Rule present but unconfigured for Canada | High | Sumsub provides the capability. What is unproven: CAD 1,000 threshold routing, missing-information policy, unhosted wallet handling, and retention of exchanged messages in your own archive |
| GAP-04 | Sanctions screening selected but not implemented | Blocker | Marble Screening chosen. Not built. Licensing dependency and Canadian list coverage both unresolved — see §4.3 |
| GAP-05 | No 24-hour aggregation logic | Blocker | Required for LVCTR/LCTR. Must aggregate across same conductor/beneficiary within rolling 24h |
| GAP-06 | No documented customer risk rating model | Blocker | Required input to EDD and monitoring thresholds |
| GAP-07 | — | Sumsub KYB live and tracing to natural persons. Verify against FR-201 to FR-206 and retain the evidence; no build required | |
| GAP-07b | Beneficial owner names not reaching screening | Blocker | The names exist in Sumsub. Nothing screens them. Fails silently — every dashboard looks healthy while a required control does not run |
| GAP-08 | No Ministerial Directive handling | Blocker | Iran MD applies to all reporting entities as of 15 Nov 2025; all Iran-linked transactions reportable regardless of amount |
| GAP-09 | Case management lacks regulatory workflow | High | No SLA clock, no four-eyes approval, no STR decision record, no immutable audit trail |
| GAP-10 | Canadian list coverage in Marble Screening unproven | High | OpenSanctions carries the Canadian datasets, but coverage must be verified dataset-by-dataset against the authoritative government sources — see §4.3 |
| GAP-11 | No retrospective/lookback screening | High | List updates must re-screen the existing book |
| GAP-12 | No compliance MI and audit reporting | High | Examination readiness |
| GAP-13 | Five-pillar documentation not evidenced | Blocker | Risk assessment, P&P, training, effectiveness review |
| GAP-14 | No merchant/OTC-specific controls | High | Merchant underwriting, settlement monitoring, source of funds |
| GAP-15 | No CARF/RCASP data capture | Medium | CRA reporting from 2027 for calendar year 2026 — data must be captured now |
Choosing Marble for screening is sound: it keeps screening and rules in one platform, one audit trail, one alert stream. But it introduces a three-link dependency chain, and every link must be resolved before screening can go live. This is a procurement item as much as an engineering one, which is why it sits in Phase 0 of the roadmap.
Link 1 — Marble Screening is a licensed feature. Screening is a premium offering within Marble and requires a licence key; it is not enabled by default in the open-source deployment you are already running. Deployment also has its own infrastructure requirements distinct from the rule engine.
Link 2 — the underlying data is OpenSanctions, which requires a commercial licence. Marble Screening is built on OpenSanctions data and matching. OpenSanctions is free for non-commercial use only; commercial users must hold a data licence or an API subscription. As an MSB you are unambiguously a commercial user.
Link 3 — Canadian dataset coverage must be explicitly verified. OpenSanctions does carry the Canadian lists, including the Consolidated Canadian Autonomous Sanctions List (SEMA and JVCFOA designations) and Criminal Code listed terrorist entities. But a global screening product does not necessarily enable Canadian datasets by default, and coverage must be confirmed list by list rather than assumed from a marketing claim of global coverage.
One caveat that must be written into the policy. The Consolidated Canadian Autonomous Sanctions List published by Global Affairs Canada is maintained for administrative purposes; it is not itself a regulation and does not carry force of law, and the published version may lag the regulations. The regulations are the law. Your procedures must therefore state that the consolidated list is a screening aid, and that a match — or a near-miss on a recently amended regulation — is resolved against the regulations themselves.
Screening frequency benchmark. OSFI supervises federally regulated financial institutions rather than MSBs, so its expectations do not bind you directly. They are nonetheless the clearest published Canadian benchmark, and an examiner will recognise them: screening at minimum weekly and daily for larger institutions, new client names checked at or as soon as reasonably possible after onboarding, the same measures applied to recorded beneficial owners and third parties, and screening integrated into transaction monitoring rather than run as a separate exercise. Marble refreshes sanctions data several times per day, so daily screening is achievable — adopt it, and document the choice.
Figure 2. Target logical architecture
Do not point every service directly at every vendor. Introduce a single orchestration layer that:
This is what makes the system explainable to an examiner: one place holds “what did we know, when did we know it, and what did we do”.
Figure 3. Deployment view
Data residency: host in a Canadian region. Confirm where Sumsub and AMLBot process and store personal data, and paper it in the vendor agreement — PIPEDA applies and FINTRAC expects records to be producible in Canada within 30 days.
Requirement convention: MUST = regulatory obligation or go-live blocker. SHOULD = strongly recommended. MAY = optional enhancement.
| ID | Requirement | Priority |
|---|---|---|
| FR-101 | The system MUST verify the identity of every individual customer using a FINTRAC-prescribed method: (a) government-issued photo ID, (b) credit file method, or (c) dual-process method. The method used MUST be recorded per customer. | MUST |
| FR-102 | The system MUST record, at minimum: full legal name, date of birth, residential address, occupation or nature of principal business. | MUST |
| FR-103 | For the photo ID method, the system MUST record document type, issuing jurisdiction, document number, expiry, and confirmation the document was authentic, valid and current at the time of verification. | MUST |
| FR-104 | Where the dual-process method is used, the system MUST record both independent, reliable sources and the information each confirmed. | MUST |
| FR-105 | The system MUST determine whether the customer is a Politically Exposed Person (domestic or foreign), Head of an International Organisation, or a family member/close associate of one. | MUST |
| FR-106 | A foreign PEP determination MUST trigger mandatory senior management approval before the relationship proceeds, plus source of wealth and source of funds establishment. | MUST |
| FR-107 | The system MUST make a third-party determination — is the customer acting on behalf of another person or entity? Result recorded either way. | MUST |
| FR-108 | The system MUST re-verify or refresh customer information on a cycle driven by risk rating (see FR-401). | MUST |
| FR-109 | The system MUST capture the customer’s declared purpose and intended nature of the business relationship. | MUST |
| FR-110 | The system MUST support onboarding rejection with a recorded, coded reason, and MUST retain records of rejected applicants. | MUST |
| FR-111 | The system MUST NOT tip off a customer that an STR has been or may be filed. Rejection reason codes shown to customers MUST be sanitised. | MUST |
| FR-112 | The system SHOULD support step-up verification (re-KYC) triggered by behavioural change rather than only by calendar. | SHOULD |
Status: built. Sumsub KYB is live and traces ownership to ultimate natural persons. The requirements below therefore serve as a verification checklist rather than a build specification — walk the live flow against each one and retain the evidence, since an examiner will test the control, not the vendor’s capability. FR-207 is the exception: it depends on screening, which is not yet live.
| ID | Requirement | Priority |
|---|---|---|
| FR-201 | The system MUST verify the existence of every entity customer using a prescribed record (certificate of incorporation, annual return, partnership agreement, or equivalent). | MUST |
| FR-202 | The system MUST capture entity legal name, registered and operating addresses, business number, nature of business, and jurisdiction of incorporation. | MUST |
| FR-203 | The system MUST identify and record beneficial owners holding, directly or indirectly, 25% or more of ownership or control, traced to the ultimate natural person. | MUST |
| FR-204 | The system MUST record the ownership/control structure, including intermediate layers, and MUST take reasonable measures to confirm its accuracy. | MUST |
| FR-205 | Where beneficial ownership cannot be determined, the system MUST record that fact, treat the entity as high risk, and apply enhanced measures. | MUST |
| FR-206 | The system MUST identify and verify directors and authorised signatories/persons authorised to give instructions on the account. | MUST |
| FR-207 | The system MUST screen all beneficial owners, directors and signatories against sanctions and PEP lists (FR-300 series). | MUST |
| FR-208 | For merchant customers, the system MUST capture expected monthly volume, average ticket size, settlement currency, customer geography and business model, and MUST use these as the baseline for FR-500 monitoring. | MUST |
| FR-209 | The system MUST support periodic KYB refresh with automatic detection of registry changes where available. | SHOULD |
| ID | Requirement | Priority |
|---|---|---|
| FR-301 | The system MUST screen every customer, beneficial owner, director, signatory and transaction counterparty by name against, at minimum: OSFI Consolidated List, UN Security Council lists, SEMA regulations, JVCFOA listings, and Criminal Code s.83.05 listed terrorist entities. | MUST |
| FR-302 | The system SHOULD additionally screen against OFAC SDN/Consolidated, EU, and UK OFSI lists, given USD/EUR correspondent exposure and counterparty risk. | SHOULD |
| FR-303 | Screening MUST occur at onboarding, before every transaction above the identification threshold, and continuously on list updates. | MUST |
| FR-304 | Sanctions lists MUST be refreshed at least daily, with automated delta detection and alerting on new or amended listings. | MUST |
| FR-305 | Any list update MUST trigger retrospective re-screening of the entire existing customer book within 24 hours. | MUST |
| FR-306 | Matching MUST use fuzzy logic covering transliteration variants, name order permutation, date-of-birth proximity and known aliases. Thresholds MUST be documented, tuned and version-controlled. | MUST |
| FR-307 | A confirmed true match against a listed person MUST immediately: freeze the account, block the transaction, prevent asset disposal, escalate to the CCO, and trigger TPR/LPEPR assessment. | MUST |
| FR-308 | Every match disposition (true/false positive) MUST be recorded with reviewer identity, timestamp, rationale and supporting evidence. False positives MUST be whitelisted with an expiry and a review owner. | MUST |
| FR-309 | The system MUST screen for PEP/HIO/RCA status at onboarding and periodically thereafter, per FR-105. | MUST |
| FR-310 | The system SHOULD perform adverse media screening for high-risk and business customers. | SHOULD |
| FR-311 | The system MUST maintain a complete, replayable history: which list version was used to screen which subject at what time, with the result. | MUST |
| FR-312 | Screening MUST fail closed — if the screening service is unreachable, transactions above threshold MUST be held, not released. | MUST |
| ID | Requirement | Priority |
|---|---|---|
| FR-313 | The Marble Screening licence and an OpenSanctions commercial data licence MUST both be in place before screening goes live (§4.3). | MUST |
| FR-314 | Canadian datasets MUST be explicitly enabled and verified list by list: Consolidated Canadian Autonomous Sanctions List (SEMA and JVCFOA), UN Act listings, and Criminal Code listed terrorist entities. Verification MUST be evidenced by reconciling record counts and spot-checking entries against the authoritative government sources. | MUST |
| FR-315 | Procedures MUST record that the consolidated list is an administrative aid without force of law, and that matches and near-misses are resolved against the underlying regulations. | MUST |
| FR-316 | Screening MUST receive names from all upstream sources: customers and beneficial owners, directors and signatories from Sumsub KYB, and transaction counterparties from the core platform. Coverage MUST be reconciled — every name held in Sumsub MUST be screened in Marble. | MUST |
| FR-317 | Screening frequency MUST be at least daily, given Marble refreshes sanctions data several times per day. The chosen frequency MUST be documented with its rationale. | MUST |
| FR-318 | Screening alerts MUST flow into the same alert management layer as rule-engine alerts (FR-850), giving analysts one consolidated queue rather than two systems to watch. | MUST |
| FR-319 | Matching thresholds MUST be configured, documented and tuned against a test corpus before go-live, and MUST NOT be left at vendor defaults without a recorded assessment. | MUST |
| FR-320 | Any AI-assisted match filtering or noise reduction MUST be evidenced: what was suppressed, on what basis, and with what measured effect on false negatives. Suppression that cannot be explained to an examiner MUST NOT be enabled. | MUST |
On false-positive reduction. Screening tools market noise reduction as a headline benefit, and the operational case for it is real. But every suppressed match is a decision not to look at something. Tune for precision only after you have measured recall against a known test corpus, and never let a false-positive target drive configuration — the regulatory asymmetry is total, since a missed true match is a sanctions breach and a false positive is only analyst time.
| ID | Requirement | Priority |
|---|---|---|
| FR-401 | The system MUST screen every deposit address and every withdrawal destination address through AMLBot before crediting or releasing funds. | MUST |
| FR-402 | The system MUST capture and store the full AMLBot response: risk score, exposure categories, attributed entity, and the analysis timestamp. | MUST |
| FR-403 | Risk thresholds MUST be configurable, documented, and mapped to actions: auto-approve / hold for review / auto-reject. | MUST |
| FR-404 | Direct exposure to sanctioned addresses, darknet markets, ransomware, child exploitation material, or terrorist financing categories MUST result in an automatic block and immediate escalation. | MUST |
| FR-405 | The system MUST distinguish direct from indirect (hop-based) exposure and apply differentiated thresholds. | MUST |
| FR-406 | The system MUST detect and flag mixer, tumbler, privacy-protocol and cross-chain bridge interaction. | MUST |
| FR-407 | Withdrawal address screening MUST occur at the moment of withdrawal, not only at whitelist creation. | MUST |
| FR-408 | The system MUST support periodic re-screening of previously seen addresses, as attribution data changes retroactively. | SHOULD |
| FR-409 | Address screening results MUST be passed into Marble as decision inputs (see FR-505). | MUST |
| FR-410 | Where AMLBot is unavailable, the system MUST hold the transaction rather than release it. | MUST |
| FR-411 | The system MUST support manual analyst override with mandatory documented rationale and four-eyes approval. | MUST |
| ID | Requirement | Priority |
|---|---|---|
| FR-451 | The system MUST assign every customer a risk rating derived from a documented, weighted model. | MUST |
| FR-452 | The model MUST consider at minimum: customer type, PEP status, geography (residence, nationality, transaction counterparties), product usage, delivery channel, expected vs actual activity, on-chain exposure profile, and adverse information. | MUST |
| FR-453 | Ratings MUST be recalculated on a schedule and on trigger events (adverse screening hit, alert, threshold breach, KYC change). | MUST |
| FR-454 | Risk rating MUST drive: review frequency, monitoring thresholds, EDD requirements, and approval authority. | MUST |
| FR-455 | High-risk customers MUST be subject to enhanced ongoing monitoring and review at least every 12 months. | MUST |
| FR-456 | Manual rating overrides MUST require senior compliance approval and a recorded rationale. | MUST |
| FR-457 | The model MUST be version-controlled; every rating MUST record which model version produced it. | MUST |
| ID | Requirement | Priority |
|---|---|---|
| FR-501 | All transaction events MUST be ingested into Marble via the Ingestion API in near real time (target < 5 seconds). | MUST |
| FR-502 | The ingestion payload MUST include the full canonical event schema (§9) — partial payloads MUST be rejected, not silently accepted. | MUST |
| FR-503 | The system MUST call the Marble Decision API synchronously for all transactions requiring a pre-execution decision (withdrawals, transfers, merchant settlements). | MUST |
| FR-504 | Decision outcomes MUST be one of: APPROVE, REVIEW, BLOCK. Each MUST map to a defined system action. | MUST |
| FR-505 | Decision inputs MUST include customer risk rating, KYC status, sanctions screening result, AMLBot address risk, and historical behavioural aggregates. | MUST |
| FR-506 | The system MUST run both real-time rules and scheduled batch/behavioural scenarios (velocity, structuring, dormancy-then-burst, peer-group deviation). | MUST |
| FR-507 | Every rule MUST be version-controlled, with an owner, documented rationale, effective dates, and a link to the ML/TF risk it mitigates. | MUST |
| FR-508 | The system MUST support shadow/parallel rule deployment to measure alert volume and precision before a rule goes live. | MUST |
| FR-509 | The system MUST retain the complete decision record: rule version, all input values, output, and timestamp — replayable for examination. | MUST |
| FR-510 | Rule tuning MUST be evidenced: alert volumes, true/false positive rates, and tuning decisions logged and reviewed at least quarterly. | MUST |
| FR-511 | The system MUST monitor attempted transactions, including those rejected by the platform. Attempted suspicious transactions are STR-reportable. | MUST |
| FR-512 | Monitoring MUST cover both fiat and virtual currency legs of on/off-ramp transactions as a single linked activity. | MUST |
| FR-513 | If Marble is unavailable, the system MUST fail closed for above-threshold and high-risk transactions and queue events for replay. No event may be lost. | MUST |
| ID | Requirement | Priority |
|---|---|---|
| FR-551 | The system MUST aggregate virtual currency receipts totalling CAD 10,000 or more within a rolling 24-hour window from or on behalf of the same person/entity, and generate an LVCTR obligation. | MUST |
| FR-552 | Equivalent logic MUST apply to cash (LCTR) and to international EFTs (EFTR). | MUST |
| FR-553 | Aggregation MUST link by customer identity, and additionally by beneficiary, conductor, and third party on whose behalf the transaction is conducted. | MUST |
| FR-554 | The system MUST apply a documented, consistent FX/crypto valuation methodology to determine CAD equivalence, recording the rate, source and timestamp used. | MUST |
| FR-555 | The valuation rate MUST be the rate at the time of the transaction, from a documented reliable source, retained for audit. | MUST |
| FR-556 | Aggregation windows MUST be rolling, not calendar-day buckets. | MUST |
| FR-557 | The system MUST generate a dashboard of pending, near-threshold and breached aggregations with report status. | SHOULD |
Sumsub is the Travel Rule provider and the capability is in place. The requirements below are therefore about configuration, Canadian specificity and evidence, not about building or procuring. The vendor solves counterparty reach; it does not solve your obligation.
| ID | Requirement | Priority |
|---|---|---|
| FR-601 | For every outbound virtual currency transfer of CAD 1,000 or more, the system MUST include originator information: name, address, and account/reference number. | MUST |
| FR-602 | Outbound transfers MUST include beneficiary name and account/reference number where obtainable. | MUST |
| FR-603 | For inbound transfers of CAD 1,000 or more, the system MUST take reasonable measures to obtain missing originator/beneficiary information and MUST record those measures. | MUST |
| FR-604 | The system MUST have a documented, risk-based policy for handling transfers with missing or incomplete information: accept with EDD, hold, return, or reject. Decisions MUST be recorded. | MUST |
| FR-605 | Travel Rule data MUST be transmitted as IVMS101 through Sumsub, which selects the wire protocol and routes to the counterparty. Payload construction MUST be built once against the IVMS101 model so protocol changes do not force a rewrite. | MUST |
| FR-606 | The system MUST perform counterparty VASP due diligence before exchanging Travel Rule data, and maintain a counterparty register with risk ratings. Sumsub’s VASP directory MAY seed this register but MUST NOT substitute for your own assessment. | MUST |
| FR-607 | Transfers to unhosted/self-hosted wallets MUST be identified and subject to a documented enhanced control set, including ownership attestation where risk warrants. | MUST |
| FR-608 | All Travel Rule messages sent and received MUST be exported from Sumsub into your own archive, retained for 5 years, and linked to the underlying transaction record. Retention held only in a vendor platform does not discharge the obligation — see FR-612. | MUST |
| FR-609 | Missing-information patterns MUST feed into transaction monitoring as a risk signal. | SHOULD |
| FR-610 | Threshold routing MUST be configured to the Canadian CAD 1,000 trigger. Jurisdictional rule bundles configured for other regimes (for example the EU’s zero-threshold TFR) MUST NOT be assumed to satisfy FINTRAC, and the configuration actually in force MUST be evidenced. | MUST |
| FR-611 | Counterparties reachable only via protocols Sumsub does not natively support (TRISA being the known case) MUST have a documented manual or email fallback path, with the same data content and the same retention. Reachability gaps MUST NOT silently become unsent Travel Rule data. | MUST |
| FR-612 | Travel Rule records MUST be producible to FINTRAC within 30 days independently of vendor availability. An export and restoration test MUST be performed before go-live and repeated annually. | MUST |
| FR-613 | Travel Rule outcomes — sent, received, incomplete, fallback — MUST be surfaced in compliance MI, so systemic counterparty failures are visible rather than buried in per-transaction records. | SHOULD |
| ID | Requirement | Priority |
|---|---|---|
| FR-701 | The system MUST generate LVCTR, LCTR, EFTR and STR in FINTRAC-accepted format, satisfying all field-level validation rules published for API submission. | MUST |
| FR-702 | The system MUST submit reports via FINTRAC’s API report submission channel. Enrolment requires an application and secret obtained through the FINTRAC API portal; contact [email protected] to initiate. FWR web submission MUST be maintained as a documented fallback. | MUST |
| FR-703 | The system MUST pre-validate every report against FINTRAC validation rules before submission and surface field-level errors for correction. | MUST |
| FR-704 | The system MUST record submission confirmations, FINTRAC-assigned identifiers, rejections and resubmissions. | MUST |
| FR-705 | The system MUST track reporting deadlines per report type with escalating alerts at defined intervals before expiry. | MUST |
| FR-706 | STR narratives MUST be structured to cover: who, what, when, where, why suspicious, and how the transaction was conducted. Templates SHOULD be provided; the analyst MUST retain authorship and control. | MUST |
| FR-707 | STR filing decisions — including decisions not to file — MUST be recorded with full rationale, reviewer identity and timestamp. | MUST |
| FR-708 | The system MUST support STR extensions attached to LCTR/LVCTR/EFTR records where the same activity triggers both. | SHOULD |
| FR-709 | The system MUST support report amendment and correction workflows. | MUST |
| FR-710 | The system MUST enforce that each obligation is evaluated independently — filing one report type MUST NOT suppress evaluation of others. | MUST |
| FR-711 | The system MUST implement Ministerial Directive logic: transactions originating from or destined for a directive-designated jurisdiction (currently including Iran) MUST be flagged, treated as high risk, and reported per the directive regardless of amount. | MUST |
| FR-712 | The system MUST provide a reporting register showing every reportable event, its report status, deadline, and submission evidence — the primary examination artefact. | MUST |
| FR-713 | The system MUST support Terrorist Property Reports and Listed Person or Entity Property Reports, including manual/paper submission paths where required. | MUST |
| FR-714 | Reports and supporting evidence MUST be retained for 5 years in immutable storage. | MUST |
| ID | Requirement | Priority |
|---|---|---|
| FR-801 | Every alert MUST create a case with a unique identifier, source rule, triggering event and full context snapshot. | MUST |
| FR-802 | Cases MUST support prioritisation, assignment, queues by type and risk, and workload balancing. | MUST |
| FR-803 | Each case type MUST have a defined SLA with an automatic clock and breach escalation. | MUST |
| FR-804 | Investigators MUST be able to view the complete customer profile: KYC data, risk rating, transaction history, prior alerts and outcomes, screening results, on-chain exposure — without leaving the case. | MUST |
| FR-805 | Cases MUST support evidence attachment, structured investigation notes, and linkage of related cases and customers. | MUST |
| FR-806 | Case closure MUST require a coded disposition and free-text rationale. Closure without rationale MUST be blocked. | MUST |
| FR-807 | STR recommendations MUST route to a reviewer with appropriate authority — four-eyes principle, and the recommender MUST NOT be the approver. | MUST |
| FR-808 | The system MUST support escalation to the Compliance Officer and to senior management with recorded decisions. | MUST |
| FR-809 | All case actions MUST be captured in an append-only audit log recording actor, action, timestamp, before/after state. Records MUST NOT be deletable or editable in place. | MUST |
| FR-810 | The system MUST enforce role-based access control implementing the roles in §12.1a, the authority matrix in §12.1b, and the segregation rules SOD-01 to SOD-08. Segregation MUST be enforced by the system and MUST be visible in the interface — a disabled control that explains why is a demonstrable control; a silently missing one is not. | MUST |
| FR-811 | The system MUST support account restriction actions from within a case: freeze, withdrawal block, transaction limit, offboard. | MUST |
| FR-812 | The system MUST manage customer offboarding with exit reason, retention of all records, and a re-onboarding block list. | MUST |
| FR-813 | The system MUST support FINTRAC information requests and production orders, with 30-day response tracking and export packaging. | MUST |
| FR-816 | The system MUST support customer information requests (RFI/EDD) raised from an alert or case: source of funds, source of wealth, transaction purpose, counterparty relationship, updated identity documents, business documentation, beneficial ownership confirmation, wallet ownership attestation. | MUST |
| FR-817 | RFI wording MUST be drawn from a pre-approved template library. Free text MUST pass a tipping-off check warning on references to monitoring, rules, thresholds, suspicion, alerts, investigations or reporting. Where an STR is in progress for the same customer, free text MUST be disabled and only templates permitted. | MUST |
| FR-818 | Customers MUST NOT be able to infer which rule fired, what amount triggered review, or that a case exists. | MUST |
| FR-819 | Documents supplied in response MUST attach automatically to the originating case, be individually markable as satisfied or insufficient, and support repeat requests. | MUST |
| FR-820 | Each RFI MUST carry a response deadline with escalating reminders. Non-response MUST be recorded as a risk signal and MUST present documented options: restrict, escalate, or proceed on available information. | MUST |
| FR-821 | The internal case SLA MAY pause while genuinely awaiting a customer response, provided the paused duration is displayed separately. The regulatory clock MUST NOT pause — an STR is filed as soon as practicable regardless of whether the customer replied. Both clocks MUST be visible and distinct. | MUST |
| FR-822 | A customer under RFI MUST move to RESTRICTED, not FROZEN — deposits remain open so funds are not stranded, withdrawals held. |
MUST |
| FR-814 | The system MUST enforce tipping-off controls: STR-related case content MUST be segregated from any customer-facing view. | MUST |
| FR-815 | The system SHOULD provide analyst productivity and quality metrics: throughput, cycle time, SLA adherence, QA sampling scores. | SHOULD |
This module does not exist today. The Marble rule engine is integrated and producing decisions; nothing captures them. Until this layer is built, every other detection control in this document is inert — a rule that fires into nothing has no compliance value, and the record that it fired is evidence against you rather than for you.
| ID | Requirement | Priority |
|---|---|---|
| FR-851 | Every REVIEW or BLOCK decision from the Marble rule engine MUST generate an alert record. No decision may be dropped, and delivery MUST be guaranteed, not best-effort. | MUST |
| FR-852 | Screening matches (FR-300) MUST generate alerts into the same queue as rule-engine alerts, giving one consolidated worklist rather than parallel systems. | MUST |
| FR-853 | Alerts MUST carry a full context snapshot at the moment of generation: triggering rule and version, all input values, customer profile, risk rating, screening result, AMLBot result and relevant transaction history. Analysts MUST NOT have to reconstruct context by hand. | MUST |
| FR-854 | Alerts MUST be deduplicated — repeated firings of the same rule on the same customer within a configurable window MUST group into one alert with an occurrence count, not flood the queue. | MUST |
| FR-855 | Alerts MUST be prioritised by a documented scoring model combining rule severity, customer risk rating and transaction value. | MUST |
| FR-856 | Alerts MUST be assignable, with queues by type and risk, and workload balancing across analysts. | MUST |
| FR-857 | Each alert type MUST carry an SLA with an automatic clock starting at generation and escalation on breach. | MUST |
| FR-858 | Alerts MUST promote to a case in the internal case management system (FR-870) with full context carried across, and no re-keying. | MUST |
| FR-859 | Alert outcomes MUST be recorded with coded dispositions and fed back into rule performance metrics, so tuning is evidence-driven (FR-510). | MUST |
| FR-860 | Alert backlog, ageing and SLA breach MUST be visible on the CCO dashboard in real time. A growing backlog is an early warning of under-capacity and MUST be treated as a compliance issue, not an operational one. | MUST |
| FR-861 | Alert generation MUST be resilient: if the alert store is unavailable, decisions MUST queue for replay with zero loss and MUST NOT be silently discarded. | MUST |
| FR-862 | No alert may be closed in bulk without individual review. Bulk closure MUST be blocked at the system level, not merely discouraged by policy. | MUST |
Case management exists but is not connected to the compliance stack. These requirements cover the linkage; §6.10 covers the workflow the linked system must then support.
| ID | Requirement | Priority |
|---|---|---|
| FR-871 | Case management MUST receive cases automatically from alert management (FR-858). Manual case creation MUST remain available but MUST NOT be the primary path. | MUST |
| FR-872 | Cases MUST resolve a single, consistent customer identifier across Sumsub, Marble, AMLBot and the core ledger, so an investigator sees one customer rather than four fragments (DQ-05). | MUST |
| FR-873 | Case management MUST be able to retrieve, at investigation time: KYC and KYB records from Sumsub, screening results and match history from Marble, address risk and exposure from AMLBot, Travel Rule messages, and full transaction history. | MUST |
| FR-874 | Case outcomes MUST write back to the customer profile — risk rating changes, restrictions, offboarding — and those changes MUST take effect in monitoring and screening. A case that changes nothing downstream is not a control. | MUST |
| FR-875 | Case management MUST hand off to the report builder (FR-700) on an STR decision, carrying the investigation record and narrative. | MUST |
| FR-876 | The full chain — event, decision, alert, case, disposition, report, submission confirmation — MUST be traceable end to end from any single identifier, in one query. This traceability is what an examiner will ask for first. | MUST |
| FR-877 | Where the internal build cannot meet the §6.10 workflow requirements within the roadmap, procurement MUST be reassessed rather than the requirements relaxed. | MUST |
Regulators and independent reviewers need access to evidence. They must not be given a login to the operational platform. Direct production access exposes data outside the scope of the examination — including unrelated customers — with no way to withdraw what has been seen, and no record of the boundary having been respected.
| ID | Requirement | Priority |
|---|---|---|
| FR-881 | The system MUST provide a scoped examination workspace separate from the operational interface. | MUST |
| FR-882 | Each examination MUST be created by the CCO with a named requesting authority, an explicit scope (named customers, date range, report types or case identifiers), a start date and a mandatory expiry date. | MUST |
| FR-883 | Data outside the defined scope MUST be inaccessible, not merely hidden from the interface. Scope MUST be enforced at the data access layer. | MUST |
| FR-884 | Examination access MUST be read-only. Write controls MUST be absent rather than disabled. | MUST |
| FR-885 | Within scope, the workspace MUST expose: customer files and verification evidence, transaction and decision records, alerts and cases with dispositions, submitted reports with confirmations, and the audit trail. | MUST |
| FR-886 | The workspace MUST answer “what controls were operating on a given date” — the rule versions, sanctions list versions and screening frequency in force at any selected point in time. | MUST |
| FR-887 | Every examination view MUST be logged and visible to the CCO in real time. | MUST |
| FR-888 | Exports MUST be watermarked with the examination reference and generation timestamp. | MUST |
| FR-889 | The CCO MUST be able to revoke access immediately. Access MUST auto-expire on the set date with prior warning. | MUST |
| FR-890 | The same mechanism MUST serve the Independent Reviewer for the biennial effectiveness review, scoped to the review period. | MUST |
| ID | Requirement | Priority |
|---|---|---|
| FR-901 | All prescribed records MUST be retained for 5 years from the last transaction or account closure, whichever is later. | MUST |
| FR-902 | Records MUST be retrievable and producible within 30 days of a FINTRAC request. | MUST |
| FR-903 | Audit logs MUST be immutable (WORM / object lock) and tamper-evident. | MUST |
| FR-904 | The system MUST retain: client identification records, transaction records, Travel Rule messages, screening results, risk ratings, decisions, case files, reports, submission confirmations, policy versions and training records. | MUST |
| FR-905 | Retention MUST be enforced automatically, including legal hold to suspend deletion. | MUST |
| FR-906 | The system MUST support a full evidence export package for examination, scoped by date range, customer or case. | MUST |
| FR-907 | Personal data MUST be encrypted at rest and in transit, with access logged. | MUST |
| ID | Requirement | Priority |
|---|---|---|
| FR-951 | The system MUST provide a CCO dashboard covering alert volumes, case ageing, SLA breaches, reporting status and deadline risk, screening hit rates, and high-risk customer counts. | MUST |
| FR-952 | The system MUST produce a monthly compliance report for senior management. | MUST |
| FR-953 | The system MUST support QA sampling of closed cases with scoring and feedback loops. | MUST |
| FR-954 | The system MUST evidence rule performance to support tuning and the effectiveness review. | MUST |
| FR-955 | The system MUST support data extraction for the biennial effectiveness review, including sampling frames. | MUST |
Figure 4. Customer onboarding flow
Figure 5. Real-time transaction decisioning sequence
Figure 6. Alert to STR workflow
Independence check. The “No” branch at H closes the STR question only. LVCTR/LCTR/EFTR obligations for the same transaction are evaluated separately and are unaffected.
Figure 7. Travel Rule — outbound transfer
Figure 8. LVCTR aggregation and filing
Thresholds below are illustrative starting points. Every one must be calibrated against your actual risk assessment and customer base, then tuned with evidence.
| Rule ID | Scenario | Logic | Action |
|---|---|---|---|
| R-001 | Large VC receipt | Single receipt ≥ CAD 10,000 | LVCTR obligation |
| R-002 | 24h VC aggregation | Rolling 24h receipts ≥ CAD 10,000 | LVCTR obligation |
| R-003 | Structuring — just under | ≥3 transactions between CAD 8,000–9,999 in 7 days | Alert, high priority |
| R-004 | Threshold avoidance pattern | Repeated activity 85–99% of any reporting threshold | Alert |
| R-005 | Cash-equivalent structuring | Multiple fiat deposits under threshold, same beneficiary | Alert |
| Rule ID | Scenario | Logic | Action |
|---|---|---|---|
| R-010 | Rapid in-out (pass-through) | Deposit followed by ≥90% withdrawal within 60 minutes | Alert |
| R-011 | Volume vs declared | Actual 30d volume > 300% of declared expected | Alert + KYC refresh |
| R-012 | Dormancy burst | No activity 90+ days, then >CAD 25,000 in 48h | Alert, high priority |
| R-013 | New account velocity | >CAD 50,000 within 7 days of onboarding | Alert |
| R-014 | Peer group deviation | Activity >3 standard deviations from risk-segment peers | Alert |
| R-015 | Round-amount pattern | ≥5 identical round-value transactions in 30 days | Alert |
| Rule ID | Scenario | Logic | Action |
|---|---|---|---|
| R-020 | Sanctioned address | Direct exposure to sanctioned entity | Block + freeze + escalate |
| R-021 | Severe category exposure | Darknet / ransomware / CSAM / terrorist financing, direct | Block + escalate |
| R-022 | Mixer interaction | Direct exposure to mixing service | Hold for review |
| R-023 | Indirect high-risk | Indirect exposure above threshold within N hops | Alert |
| R-024 | Bridge / chain-hopping | Cross-chain movement with obfuscation pattern | Alert |
| R-025 | High-risk exchange counterparty | Counterparty VASP with weak AML rating | Alert |
| R-026 | New unhosted wallet, high value | First transfer to unhosted wallet > CAD 10,000 | Hold + attestation |
| Rule ID | Scenario | Logic | Action |
|---|---|---|---|
| R-030 | Ministerial Directive jurisdiction | Any transaction from/to Iran or other MD-designated jurisdiction, any amount | Report + high risk + escalate |
| R-031 | FATF call-for-action jurisdiction | Counterparty in FATF blacklist jurisdiction | Alert + EDD |
| R-032 | FATF increased-monitoring | Counterparty in FATF greylist jurisdiction | Enhanced monitoring |
| R-033 | Geographic inconsistency | Login/IP geography inconsistent with declared residence | Alert |
| R-034 | Sanctions nexus | Counterparty with ownership links to designated persons | Escalate |
| Rule ID | Scenario | Logic | Action |
|---|---|---|---|
| R-040 | Merchant volume spike | Settlement volume >250% of trailing 3-month average | Alert |
| R-041 | Refund anomaly | Refund ratio >15% of settlement volume | Alert |
| R-042 | Customer concentration | >40% of merchant volume from a single payer | Alert |
| R-043 | Merchant business mismatch | Transaction pattern inconsistent with declared MCC/business model | Alert + review |
| R-044 | OTC large trade | Single OTC trade above defined threshold | Pre-trade compliance approval |
| R-045 | Third-party settlement | Settlement instructions to a party other than the verified merchant | Hold + investigate |
| Rule ID | Scenario | Logic | Action |
|---|---|---|---|
| R-050 | Shared device/IP cluster | ≥3 unrelated accounts sharing device fingerprint or IP | Alert — possible mule network |
| R-051 | Shared bank account | Same fiat funding instrument across multiple accounts | Alert |
| R-052 | Common address cluster | Multiple customers transacting with the same on-chain cluster | Alert |
| R-053 | Rapid credential change | Bank details or withdrawal address changed then immediate large withdrawal | Hold |
Figure 9. Core compliance data model
Every business event MUST be normalised to this shape before entering the compliance layer. This is the contract between core platform and compliance.
{
"event_id": "uuid",
"event_type": "DEPOSIT|WITHDRAWAL|TRANSFER|EXCHANGE|SETTLEMENT|ATTEMPT",
"event_timestamp": "ISO8601",
"customer": {
"customer_id": "string",
"customer_type": "INDIVIDUAL|ENTITY",
"kyc_status": "VERIFIED|PENDING|EXPIRED|REJECTED",
"risk_rating": "LOW|STANDARD|HIGH",
"risk_model_version": "string",
"pep_status": "NONE|DOMESTIC|FOREIGN|HIO|RCA",
"jurisdiction": "ISO3166",
"onboarding_date": "ISO8601"
},
"transaction": {
"transaction_id": "string",
"direction": "INBOUND|OUTBOUND|INTERNAL",
"asset": "BTC|ETH|USDT|CAD|...",
"amount": "decimal",
"amount_cad": "decimal",
"fx_rate": "decimal",
"fx_source": "string",
"fx_timestamp": "ISO8601",
"status": "PENDING|COMPLETED|REJECTED|ATTEMPTED"
},
"counterparty": {
"type": "VASP|UNHOSTED|INTERNAL|BANK|MERCHANT",
"name": "string|null",
"vasp_id": "string|null",
"address": "string|null",
"chain": "string|null",
"bank_details": "object|null"
},
"screening": {
"sanctions_status": "CLEAR|POTENTIAL_MATCH|CONFIRMED_MATCH|NOT_SCREENED",
"sanctions_list_version": "string",
"address_risk_score": "number|null",
"address_risk_categories": ["string"],
"address_exposure_type": "DIRECT|INDIRECT|NONE",
"screening_timestamp": "ISO8601"
},
"travel_rule": {
"required": "boolean",
"status": "SENT|RECEIVED|INCOMPLETE|NOT_REQUIRED",
"originator": "object|null",
"beneficiary": "object|null"
},
"channel": {
"source": "WEB|MOBILE|API|OTC",
"ip": "string",
"device_fingerprint": "string",
"geo": "ISO3166"
},
"aggregates": {
"rolling_24h_cad": "decimal",
"rolling_7d_cad": "decimal",
"rolling_30d_count": "integer",
"declared_expected_monthly_cad": "decimal"
}
}
| ID | Requirement |
|---|---|
| DQ-01 | Mandatory fields MUST be validated at ingestion. Events failing validation go to a dead-letter queue with alerting — never silently dropped. |
| DQ-02 | Every event MUST carry an idempotency key; duplicate ingestion MUST NOT create duplicate alerts or duplicate reports. |
| DQ-03 | Completeness MUST be monitored: daily reconciliation of ledger transaction count against ingested event count, with variance alerting at zero tolerance. |
| DQ-04 | FX/valuation sources MUST be documented, consistent, and retained. |
| DQ-05 | Customer identifiers MUST be stable and consistent across Sumsub, Marble, AMLBot and case management. |
| # | Integration | Direction | Mode | Criticality |
|---|---|---|---|---|
| I-1 | Core → Compliance Orchestrator | Push | Async queue | Critical |
| I-2 | Orchestrator → Sumsub (KYC/KYB) | Request/response + webhook | Sync + async | Critical — built |
| I-2b | Orchestrator ↔ Sumsub Travel Rule | Bidirectional + webhook | Sync + async | Critical — built, needs Canadian config |
| I-2c | Sumsub → your archive (Travel Rule + KYC export) | Pull | Scheduled | Critical — not built |
| I-3 | Orchestrator → AMLBot | Request/response | Sync | Critical — built |
| I-4 | Orchestrator → Marble Ingestion API | Push | Async, near real time | Critical — built |
| I-5 | Orchestrator → Marble Decision API | Request/response | Sync | Critical — built |
| I-5b | Orchestrator → Marble Screening API | Request/response | Sync | Critical — not built |
| I-6 | Marble → Alert Management | Push/poll | Async | Critical — not built |
| I-6b | Alert Management → Case Management | Push | Async | Critical — not built |
| I-7 | Marble Screening → OpenSanctions data | Pull | Vendor-managed, multiple times daily | Critical — licence required |
| I-8 | Report Builder → FINTRAC API | Push | Sync | Critical — not built |
| I-9 | Sumsub Travel Rule ↔ Counterparty VASPs | Bidirectional | Sync | Critical — vendor-managed |
| I-9b | Manual/email Travel Rule fallback (e.g. TRISA-only counterparties) | Bidirectional | Manual | High — not built |
| I-10 | All components → Immutable Audit Log | Push | Async, guaranteed delivery | Critical |
| ID | Requirement |
|---|---|
| INT-01 | All external calls MUST use TLS 1.2+ with certificate pinning where supported. |
| INT-02 | Credentials MUST be stored in a secrets manager, rotated on a defined schedule, never in code or config files. |
| INT-03 | Every integration MUST implement timeout, retry with exponential backoff, and circuit breaking. |
| INT-04 | Circuit-breaker open state MUST trigger the documented fail-closed policy for above-threshold transactions and page the on-call compliance contact. |
| INT-05 | All requests and responses MUST be logged with correlation IDs traceable end to end. |
| INT-06 | Every integration MUST have a documented, tested manual fallback procedure. |
| INT-07 | Vendor SLAs, uptime and support escalation paths MUST be contractually defined and monitored. |
| INT-08 | A sandbox/test environment MUST exist for every integration, including FINTRAC’s test submission environment. |
| INT-09 | Personal data transmitted to vendors MUST be minimised to what each vendor genuinely needs. |
| INT-10 | Vendor risk assessments MUST be completed before go-live and reviewed annually — including data residency and sub-processor disclosure. |
| ID | Requirement |
|---|---|
| CM-01 | Ingestion API MUST receive the full canonical event including all enrichment; Marble MUST NOT need to call back for context. |
| CM-02 | Data model in Marble MUST mirror §9.1 entities so scenarios can reference customer, transaction and counterparty attributes. |
| CM-03 | Scenario versions MUST be managed as code with peer review and change approval. |
| CM-04 | Decision API responses MUST be persisted in full, including the rule/scenario version that produced them. |
| CM-05 | Decision latency MUST be monitored; p99 target defined in §11. |
| CM-06 | Scenario changes MUST be tested in a non-production environment against replayed historical data before promotion. |
| CM-07 | If Marble Screening is used for sanctions (it is), its Canadian list coverage MUST be validated per FR-314 before reliance, and the licence chain in §4.3 MUST be complete. |
| ID | Category | Requirement |
|---|---|---|
| NFR-01 | Availability | Compliance decisioning path: 99.9% monthly uptime |
| NFR-02 | Latency | Real-time decision p95 < 500 ms, p99 < 2 s |
| NFR-03 | Throughput | Sized to 10× current peak transaction volume |
| NFR-04 | Ingestion lag | Event to Marble < 5 s at p95 |
| NFR-05 | Screening refresh | Sanctions lists refreshed at least daily; full book re-screen within 24h of a list change |
| NFR-06 | Durability | Zero event loss — guaranteed delivery with dead-letter capture and replay |
| NFR-07 | Recovery | RPO ≤ 15 min, RTO ≤ 4 h for compliance systems |
| NFR-08 | Retention | 5 years minimum, immutable, with legal hold |
| NFR-09 | Encryption | AES-256 at rest, TLS 1.2+ in transit |
| NFR-10 | Access control | RBAC + MFA for all compliance systems; least privilege |
| NFR-11 | Audit | Every read and write of customer compliance data logged |
| NFR-12 | Data residency | Canadian hosting; vendor processing locations documented and contracted |
| NFR-13 | Segregation | Non-production environments MUST use masked or synthetic data |
| NFR-14 | Observability | Alerting on decision failures, ingestion lag, queue depth, vendor errors, SLA breaches |
| NFR-15 | Change management | All rule, threshold and model changes through documented approval with rollback |
| NFR-16 | Capacity | Alert volumes forecast and analyst staffing modelled against them before go-live |
| NFR-17 | Privacy | PIPEDA compliance; privacy impact assessment completed; retention aligned to the 5-year obligation |
| ID | Artefact | Owner | Blocking? |
|---|---|---|---|
| DOC-01 | Compliance Officer appointment record + job description + reporting line to senior management | Senior Mgmt | Yes |
| DOC-02 | AML/CTF Policies & Procedures Manual | CCO | Yes |
| DOC-03 | Enterprise ML/TF Risk Assessment (products, customers, geographies, channels, technology) | CCO | Yes |
| DOC-04 | Customer Risk Rating Methodology | CCO | Yes |
| DOC-05 | KYC/KYB Procedures incl. prescribed methods | CCO | Yes |
| DOC-06 | EDD Procedures | CCO | Yes |
| DOC-07 | Sanctions Compliance Policy | CCO | Yes |
| DOC-08 | Transaction Monitoring Rule Rationale Document (every rule → risk it mitigates) | CCO/Eng | Yes |
| DOC-09 | STR Decision Procedures + narrative standards | CCO | Yes |
| DOC-10 | Reporting Procedures (all report types, deadlines, escalation) | CCO | Yes |
| DOC-11 | Travel Rule Policy incl. missing-information handling | CCO | Yes |
| DOC-12 | Record Retention Policy | CCO | Yes |
| DOC-13 | Training Programme + materials + attendance records | CCO | Yes |
| DOC-14 | Biennial Effectiveness Review plan and methodology | CCO/Independent | Yes |
| DOC-15 | Ministerial Directive Procedures | CCO | Yes |
| DOC-16 | Vendor/Outsourcing Risk Assessments | CCO/Ops | Yes |
| DOC-17 | Model Validation & Tuning Procedures | CCO/Eng | Yes |
| DOC-18 | Business Continuity for compliance functions | Ops | Yes |
| DOC-19 | RPAA operational risk framework + end-user funds safeguarding plan (if in scope) | CTO/CCO | If applicable |
| DOC-20 | Sanctions disclosure procedures — RCMP and CSIS channels, distinct from FINTRAC reporting | Sanctions Officer | Yes |
| DOC-21 | Internal suspicion escalation procedure, communicated to all staff | Nominated Escalation Officer | Yes |
| DOC-22 | Privacy policy and privacy impact assessment (PIPEDA) | Privacy Officer | Yes |
| DOC-23 | On-call compliance rota and outage response procedure | CCO | Yes |
| DOC-24 | Independent model validation report | Model Validator | Yes |
FINTRAC requires an appointed Compliance Officer. It does not prescribe the rest of the structure — but it does examine whether decisions were made by people with appropriate authority and independence. The roles below are the minimum functional set; on a small team one person may hold several, subject to the prohibited combinations in §12.1c.
| Role | Owns | Key functions | Prohibited from |
|---|---|---|---|
| Chief Compliance Officer | The programme | Appointed under PCMLTFA and named to FINTRAC. Final STR sign-off. Approves risk assessment, P&P, risk rating model, foreign-PEP relationships. Owns FINTRAC examinations and information requests. Reports to senior management | Conducting the independent effectiveness review of their own programme |
| Deputy Compliance Officer | Continuity | Acts with full CCO authority when delegated; delegation recorded with dates and scope | Operating permanently without recorded delegation |
| KYC / Onboarding Analyst | Onboarding decisions | Reviews referrals not auto-cleared by Sumsub. Verifies KYB ownership structures and beneficial owner tracing. Collects source of wealth and source of funds for EDD | Self-approving high-risk or PEP onboarding |
| Sanctions / Screening Analyst | Match disposition | Dispositions potential matches with recorded evidence. Maintains whitelist with expiry and named owner. Monitors list deltas and retrospective re-screening. Escalates confirmed matches directly to the CCO | Whitelisting a high-similarity match without second review |
| Transaction Monitoring Analyst (L1) | Alert triage | Works alerts within SLA. Closes false positives with coded disposition and rationale. Escalates to L2 | Bulk closure; making a suspicion determination |
| Senior Investigator (L2) | Investigations | Full investigation, on-chain tracing, RFIs conducted without tipping off. Drafts STR narratives. Recommends account actions | Approving an STR they drafted |
| STR Reviewer | Four-eyes control | Independent review of narrative, sufficiency and rationale before CCO sign-off | Reviewing an STR they drafted |
| Reporting Officer | The reporting register | LVCTR/LCTR/EFTR queue and deadline management. Field validation, submission, rejection handling, amendments, submission evidence | Suppressing an obligation raised by the system |
| QA Reviewer | Decision quality | Samples closed alerts and cases, scores against documented standards, feeds findings into training | Sampling their own work |
| Rule / Model Owner | Detection logic | Rule library, thresholds, version control, tuning evidence, model validation | Deploying a rule change without separate approval |
| Senior Management | Resourcing and approval | Approves P&P, risk assessment and compliance headcount. Receives monthly MI. Approves foreign PEP relationships | Delegating accountability to the CCO and disengaging |
| Independent Reviewer | Biennial effectiveness review | Sampling methodology, control walkthroughs, gap analysis, remediation plan | Having designed or operated the programme under review |
| Auditor / Examiner | Read-only access | Full read access for audit and examination; every view logged | Any write action |
A note on terminology. Other jurisdictions use Money Laundering Reporting Officer (MLRO — UK, EU, Singapore, UAE, Cayman) or Chief Anti-Money Laundering Officer (CAMLO — used by Canadian federally regulated financial institutions). Under the PCMLTFA the statutory role is simply the Compliance Officer, which is the CCO above. If the business later operates under another regime, expect the MLRO title and its specific nominated-officer duties to apply there in addition, not instead.
The roles above are almost entirely second-line. A compliance programme that exists only in the second line fails examination, because the first line is where risk is actually seen and the third line is what proves the whole thing works.
| Role | Line | Owns | Key functions |
|---|---|---|---|
| Customer-facing staff / OTC dealers / merchant onboarding | First | Day-to-day risk identification | Apply pre-trade and pre-onboarding checks. Escalate anything unusual to the nominated officer. Never tip off. Complete role-specific training. This is where most suspicion originates |
| Nominated Escalation Officer | Second | The internal reporting channel | The single named individual to whom any employee reports suspicion, via a documented channel available to every member of staff. Logs every internal report, including those not escalated further, with rationale. Usually the CCO or Deputy, but the role MUST be named and communicated |
| Sanctions Officer | Second | The sanctions programme | Owns obligations under SEMA, the UN Act and the JVCFOA — separate statutes from the PCMLTFA. Owns the duty to disclose designated-person property to the RCMP and CSIS, which is a distinct channel and deadline from FINTRAC reporting. Owns asset-freeze execution, licence and permit applications, and sanctions risk assessment. May be held by the CCO, but the distinct obligation set MUST be documented |
| Privacy Officer | Second | PIPEDA accountability | The designated individual accountable for personal information. Owns the privacy impact assessment, vendor data-residency positions, retention alignment, breach response, and access-request handling |
| Vendor / Outsourcing Owner | Second | Third-party risk | Owns Sumsub, Marble and AMLBot relationships: SLAs, uptime, support escalation, data residency and sub-processor changes, annual risk reassessment, and exit planning. A vendor performs a function; it never assumes your obligation |
| Records / Information Governance Owner | Second | Retention and production | 5-year retention enforcement, legal hold, immutability, and the 30-day FINTRAC production clock. Owns the evidence export capability and tests restoration annually |
| On-Call Compliance Contact | Second | Out-of-hours coverage | Receives circuit-breaker pages when a compliance service fails. Decides whether to hold, restrict or suspend activity. Documents outage duration — an examiner will ask which controls were operating on a given date |
| Independent Model Validator | Third | Model assurance | Validates the risk rating model and rule logic independently of the Rule/Model Owner. Validation performed by the person who built the model is not validation |
| CARF / RCASP Reporting Owner | Second | CRA tax reporting | Owns crypto-asset reporting to the Canada Revenue Agency from 2027 on calendar-2026 data. A different regulator and a different data set from FINTRAC — see §16.3 O-09 |
| Board / Board Risk Committee | Governance | Ultimate oversight | Approves risk appetite. Receives the biennial effectiveness review and the remediation plan. Distinct from day-to-day senior management |
| Operational Risk & Incident Officer | Second | RPAA, if in scope | Owns the operational risk management framework, incident response and reporting to the Bank of Canada, and the end-user funds safeguarding plan. Applies only if the RPAA determination in §4.1 is positive |
Why the Sanctions Officer is called out separately. It is tempting to fold sanctions into AML because the screening tooling is shared. The obligations are not. Sanctions arise under different statutes, are strict liability, require disclosure to the RCMP and CSIS rather than FINTRAC, and carry an immediate rather than a scheduled deadline. Filing a Terrorist Property Report to FINTRAC does not discharge the SEMA disclosure duty, and vice versa. If one person holds both roles — which is reasonable at your scale — the two obligation sets MUST still be separately documented and separately evidenced.
| Decision | Recommends | Approves |
|---|---|---|
| Standard onboarding | System | System |
| High-risk onboarding | KYC Analyst | CCO |
| Foreign PEP relationship | KYC Analyst | Senior Management |
| Sanctions match disposition — false positive | Screening Analyst | Second reviewer where similarity is high |
| Sanctions match disposition — true match | Screening Analyst | CCO (immediate) |
| Alert closure as false positive | L1 Analyst | L1 Analyst |
| Escalation to investigation | L1 Analyst | L2 Investigator |
| STR filing | L2 Investigator | STR Reviewer, then CCO |
| Decision not to file an STR | L2 Investigator | Senior Investigator or CCO, recorded with rationale |
| Account freeze — sanctions | System (automatic) | CCO notified immediately |
| Account restriction or offboarding | L2 Investigator | CCO |
| Regulatory report submission | System raises obligation | Reporting Officer |
| Disclosure of designated-person property to RCMP / CSIS | Sanctions Officer | CCO — immediate, separate from any FINTRAC filing |
| Internal suspicion report from any employee | Any staff member | Nominated Escalation Officer logs and triages |
| Compliance service outage response | On-call Compliance Contact | CCO where activity is suspended |
| Vendor change or sub-processor addition | Vendor Owner | CCO |
| Risk model validation sign-off | Independent Model Validator | CCO and Senior Management |
| Rule or threshold change | Rule Owner | CCO |
| Risk model change | Rule Owner | CCO and Senior Management |
These MUST be enforced by the system, not by policy alone. Policy-only segregation fails under workload pressure and cannot be evidenced to an examiner.
| ID | Rule |
|---|---|
| SOD-01 | The STR drafter MUST NOT be able to approve or sign off that STR. The control MUST be visible in the interface, not silently applied |
| SOD-02 | A QA reviewer MUST NOT be able to sample a case they worked |
| SOD-03 | A rule change requester MUST NOT be able to approve their own change |
| SOD-04 | Bulk closure of alerts MUST be blocked at system level |
| SOD-05 | The independent reviewer MUST have no operational role in the programme |
| SOD-06 | Auditor accounts MUST have no write capability of any kind |
| SOD-07 | Where one person necessarily holds two roles, the conflicting pair MUST be escalated to a second individual for that transaction, and the arrangement documented in the P&P |
| SOD-08 | The system MUST warn on role assignment that creates a prohibited combination |
| SOD-09 | The Independent Model Validator MUST NOT be the Rule/Model Owner |
| SOD-10 | The Vendor Owner MUST NOT be the sole approver of a vendor risk assessment they authored |
| SOD-11 | The Nominated Escalation Officer MUST be reachable by every employee through a channel that does not route through their line manager |
On small teams. A firm at your stage may reasonably run with a CCO, a deputy, two analysts, and outsourced QA and independent review. That is defensible. What is not defensible is one person drafting and approving the same STR, however small the team — that pair always requires a second individual.
| ID | Requirement |
|---|---|
| TRN-01 | All employees, agents and mandataries who deal with customers, handle transactions, or implement the programme MUST be trained. |
| TRN-02 | Training MUST cover: PCMLTFA obligations, ML/TF and sanctions typologies specific to virtual currency, red flag indicators, reporting duties, tipping-off prohibition, escalation, and their own role’s procedures. |
| TRN-03 | Training MUST occur at onboarding and at least annually thereafter, with refreshers on material regulatory change. |
| TRN-04 | Comprehension MUST be tested and scores recorded. |
| TRN-05 | Attendance, materials and version history MUST be retained as examination evidence. |
| TRN-06 | Role-specific deep training MUST be provided to compliance analysts. |
| TRN-07 | Training MUST be mapped to the roles in §12.1a, so each person’s curriculum matches the decisions they are authorised to make. |
| Frequency | Activity |
|---|---|
| Daily | Sanctions list delta review; alert queue and SLA monitoring; reporting deadline check |
| Weekly | Case ageing review; escalation review; rule performance snapshot |
| Monthly | Compliance MI to senior management; QA sampling of closed cases; reporting completeness reconciliation |
| Quarterly | Rule tuning review; risk rating model review; vendor performance review |
| Annually | Risk assessment refresh; training cycle; policy review; vendor risk reassessment |
| Biennially | Independent effectiveness review with sampling, walkthroughs, gap analysis, remediation plan, senior management sign-off |
| ID | Test area | Approach |
|---|---|---|
| T-01 | KYC prescribed methods | Positive/negative cases per method; expired, altered and mismatched documents |
| T-02 | Beneficial ownership tracing | Multi-layer structures, circular ownership, undeterminable ownership |
| T-03 | Sanctions matching | Known-list test entities; transliteration, name-order, alias and DOB-proximity variants; measure false positive and false negative rates |
| T-03b | Screening coverage reconciliation | Assert every name held in Sumsub — customers, beneficial owners, directors, signatories — has a corresponding screening record in Marble. Any unmatched name is a defect |
| T-03c | Canadian dataset verification | Reconcile Marble/OpenSanctions record counts against Global Affairs Canada and Criminal Code sources; spot-check recent designations appear within the refresh window |
| T-03d | Alert capture completeness | Generate N rule-engine decisions; assert exactly N alerts exist. Zero tolerance for loss — this is the control that does not exist today |
| T-03e | Alert-to-case-to-report chain | End-to-end traceability from a single transaction identifier through alert, case, disposition, report and submission confirmation |
| T-04 | Retrospective re-screening | Add a test entity to a list; verify full-book re-screen completes within 24h |
| T-05 | Address screening | Known-risk test addresses across categories; direct vs indirect exposure |
| T-06 | Rule firing | Synthetic transaction sets designed to trigger each rule in §8; verify exactly the expected rules fire |
| T-07 | 24-hour aggregation | Boundary cases: 23h59m, 24h01m, multi-currency, multi-account same beneficial owner |
| T-08 | FX valuation | Verify rate selection, source and retention; verify CAD equivalence at boundaries |
| T-09 | Report generation | Every report type against FINTRAC field validation rules; deliberate invalid-field cases |
| T-10 | FINTRAC submission | End-to-end in FINTRAC test environment incl. rejection and resubmission |
| T-11 | Travel Rule | Send/receive, missing information, unhosted wallet, unresponsive counterparty |
| T-12 | Case workflow | SLA clock, escalation, four-eyes enforcement, closure-without-rationale blocked |
| T-13 | Tipping-off controls | Verify no STR-related content is reachable from customer-facing surfaces |
| T-14 | Fail-closed behaviour | Simulate outage of each vendor; verify holds, queuing, replay, and zero event loss |
| T-15 | Audit immutability | Attempt record modification and deletion; verify prevention and alerting |
| T-16 | Access control | Every role against every function; privilege escalation attempts |
| T-17 | Retention & retrieval | 5-year retention enforcement; legal hold; 30-day production simulation |
| T-18 | Ministerial Directive | Iran-linked transactions at all amounts including well below thresholds |
| T-19 | Load | 10× peak volume with latency and queue-depth measurement |
| T-20 | Recovery | Failover, backup restore, RPO/RTO validation |
Figure 10. Delivery roadmap
Sequencing logic. Three things drive this order.
Phase 0 is cheap and slow. Legal determinations, FINTRAC API enrolment and the Marble/OpenSanctions licences all have external lead times you cannot compress by adding engineers. Start them in week 1 even though none of them produce visible progress.
Phase 1 closes the detection loop before anything else is built. This is the change from v1.0. Alert management, case management linkage and screening now precede the reporting stack, because reporting has nothing to report from until alerts are captured and investigated. Building the report builder first would produce a submission pipeline with an empty intake.
Phase 3 is lighter than in v1.0. The rule engine is integrated and Sumsub already provides Travel Rule, so what remains there is configuration, evidence and tuning rather than construction.
On the go-live date. 15 March 2027 assumes Phase 0 starts immediately and RPAA does not apply. If RPAA is in scope, the Bank of Canada review adds roughly 60–90 days for a complete application on top of 3–6 months building the operational risk framework and end-user funds safeguarding plan — and that becomes the binding constraint, not this AML build.
| ID | Risk | Impact | Mitigation |
|---|---|---|---|
| RSK-01 | RPAA registration required but not obtained | Unlawful operation, penalties up to CAD 10M per violation, potential officer liability | Legal determination in week 1; if in scope, this leads the critical path |
| RSK-02 | FINTRAC registration revoked for programme inadequacy | Business termination | Counsel review; 86+ revocations in Q1 2026 alone, concentrated in crypto |
| RSK-03 | Missed reporting obligations at launch | Direct penalty exposure — the largest Canadian crypto penalty involved missed LVCTRs and unreported STRs | Reporting register as primary control; deadline alerting; parallel run |
| RSK-04 | Alert volume exceeds analyst capacity | Backlog, SLA breach, late STRs | Forecast during parallel run; staff before go-live; tune with evidence, never suppress to reduce volume |
| RSK-04b | Detection without capture continues | The rule engine records that risk was identified while no one acted. This is affirmatively worse than no monitoring — it creates a timestamped record of knowledge without response | Phase 1 closes the loop. Until it does, treat the current rule output as an unmonitored liability and consider manual review of decisions in the interim |
| RSK-04c | Marble/OpenSanctions licensing not secured in time | Screening cannot go live; the whole Phase 1 chain stalls | Commercial negotiation started week 1, in parallel with engineering rather than after it |
| RSK-04d | Canadian list coverage assumed rather than verified | Screening runs and appears healthy while missing Canadian designations entirely — a silent failure mode | FR-314 dataset-by-dataset verification with record-count reconciliation against government sources |
| RSK-04e | Travel Rule configured to the wrong jurisdiction’s thresholds | Non-compliance despite a working vendor integration | FR-610; evidence the Canadian CAD 1,000 configuration actually in force, not the vendor’s default bundle |
| RSK-05 | Sanctions screening false negatives | Sanctions breach — strict liability | Test corpus with known entities; independent validation; zero-tolerance on false negatives |
| RSK-06 | Vendor outage blocks transactions | Customer impact | Fail-closed with clear customer messaging and rapid manual review path |
| RSK-07 | Ministerial Directive transactions missed | Direct precedent for enforcement | Explicit rule R-030 with any-amount reporting; test at low values |
| RSK-08 | Data quality gaps produce incomplete reports | Report rejection; examination findings | Daily ledger-to-ingestion reconciliation at zero variance tolerance |
| RSK-09 | Beneficial owners never reach the screening engine | BOs collected in Sumsub, screening performed in Marble — if the handoff is missed, an entire category of required screening silently does not happen | FR-316 coverage reconciliation: every name in Sumsub screened in Marble, tested explicitly (T-03b) |
| RSK-10 | Programme not updated for regulatory change | Registration eligibility is a continuous obligation, not a point-in-time one | Regulatory change monitoring with an owner and a defined update cycle |
| # | Item | Owner | Needed by |
|---|---|---|---|
| O-01 | RPAA applicability — legal opinion | Counsel | Week 1 |
| O-02 | Marble Screening licence key + OpenSanctions commercial data licence — commercial terms and cost | Ops/CCO | Week 1 |
| O-02b | Interim control while the detection loop is open: manual review of Marble decisions, or restrict volumes until Phase 1 lands? | CCO | Immediately |
| O-03 | Travel Rule solution selection | CCO/CTO | Week 3 |
| O-04 | Sanctions list data source (direct vs vendor) | CCO | Week 3 |
| O-05 | Case management: harden internal build vs procure — decide against the §6.10 workflow requirements, not against effort already spent | CTO | Week 4 |
| O-05b | Confirm which Travel Rule protocols your actual counterparty corridors need, and whether any are TRISA-only (fallback path required) | CCO/Product | Week 3 |
| O-06 | Chains and assets supported at launch | Product | Week 2 |
| O-07 | Quebec residents in scope? | Product/Counsel | Week 2 |
| O-08 | Are any listed assets securities? (CSA/CIRO exposure) | Counsel | Week 2 |
| O-09 | CARF/RCASP data capture — CRA reporting begins 2027 for calendar 2026 data, so capture must start now | CCO/Eng | Week 4 |
| O-10 | Compliance team target headcount and hiring plan | CCO | Week 4 |
| Term | Definition |
|---|---|
| CCO | Chief Compliance Officer — the appointed compliance officer under PCMLTFA |
| CDD / EDD | Customer Due Diligence / Enhanced Due Diligence |
| CARF / RCASP | Crypto-Asset Reporting Framework / Reporting Crypto-Asset Service Provider — CRA tax reporting regime |
| EFTR | Electronic Funds Transfer Report |
| FINTRAC | Financial Transactions and Reports Analysis Centre of Canada |
| FWR | FINTRAC Web Reporting — the web submission portal |
| HIO | Head of an International Organisation |
| IVMS101 | InterVASP Messaging Standard for Travel Rule data |
| JVCFOA | Justice for Victims of Corrupt Foreign Officials Act |
| LCTR / LVCTR | Large Cash / Large Virtual Currency Transaction Report |
| LPEPR | Listed Person or Entity Property Report |
| MSB | Money Services Business |
| OSFI | Office of the Superintendent of Financial Institutions — maintains the Consolidated List |
| PCMLTFA | Proceeds of Crime (Money Laundering) and Terrorist Financing Act |
| PEP / RCA | Politically Exposed Person / Relative or Close Associate |
| RPAA | Retail Payment Activities Act — Bank of Canada PSP regime |
| SEMA | Special Economic Measures Act |
| STR | Suspicious Transaction Report |
| TPR | Terrorist Property Report |
| VASP | Virtual Asset Service Provider |
| VC / VCTR | Virtual Currency / Virtual Currency Travel Rule |
End of document. Version 1.0 — Draft for review.