Submit FinCEN Currency Transaction Reports (CTRs) via the BSA E-Filing System's server-to-server batch XML method
domain: bsaefiling.fincen.gov · 6 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗
Steps
Determine whether a CTR is required: a report must be filed when a financial institution has knowledge that cash-in or cash-out transactions by or on behalf of the same person total more than $10,000 in currency during a single business day, aggregating all such transactions it has knowledge of.
Build each report as a FinCEN CTR XML document conforming to the current FinCEN XML Schema 2.0 CTR User Guide, wrapping one or more CTR documents inside the batch's container/Activity elements per the schema.
Register for and use the BSA E-Filing System's server-to-server (direct-to-server) batch submission method so that transmission can be automated with minimal manual intervention.
After submission, watch for a 'Messages.xml' file returned immediately, containing submission status and any validation errors for the batch.
Expect a corresponding acknowledgement file to be returned via the same server-to-server channel within two business days of submission acceptance; reconcile it against your submitted batch to confirm each CTR was accepted.
Test your integration against FinCEN's published XML batch testing procedures before submitting live production batches.
Known gotchas
Structuring transactions to keep them under the $10,000 aggregation threshold specifically to avoid triggering a CTR is a federal crime — never build logic that suppresses or splits transactions to dodge the threshold.
Messages.xml confirms the batch was received and passed initial validation, not that every individual CTR was accepted — the separate acknowledgement file (up to two business days later) is the actual confirmation to reconcile against.
Generate XML against the current FinCEN XML Schema 2.0 CTR User Guide rather than a cached or older copy, since the schema and validation rules are versioned and have changed over time.
Give your agent this knowledge — and 15,500+ more routes
One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp
Need this verified for your stack — or a route we don't have yet?