CFTC Part 43/45
The Commodity Futures Trading Commission (CFTC) regulations Parts 43 and 45 govern swap data reporting for swaps executed by US persons and non-US persons whose swaps are guaranteed by a US person or cleared through a US-registered derivatives clearing organization. Part 43 governs real-time public dissemination of swap transaction and pricing data; Part 45 governs the full swap record stored in a registered Swap Data Repository (SDR). Falcon Veritas Intelligence (FVI) provides a unified Part 43/45 reporting pipeline for cleared and uncleared swaps.
Scope and applicability
Part 43/45 applies to swap dealers, major swap participants, and any other entity that is a counterparty to a swap that must be reported. Asset classes include interest rate swaps, credit default swaps, equity swaps, FX swaps and forwards (with limited exceptions), commodity swaps, and non-deliverable forwards.
Reporting deadlines vary by event:
- Primary economic terms (PET) — at execution, real-time for Part 43; T+2 for Part 45
- Confirmation — T+1 (electronically confirmed) or T+2 (non-electronically)
- Continuation data — daily valuation, weekly lifecycle updates
FVI's Part 43/45 module supports all major SDRs: DTCC Data Repository (DDR), CME Group SDR, ICE Trade Vault, Bloomberg VCON, and Regis-TR (for cross-border swaps).
Field mapping
The CFTC's swap data fields are split across Part 43 (15 fields, real-time public) and Part 45 (65+ fields, SDR). The high-impact fields for reconciliation teams are:
-
Unique Swap Identifier (USI) — 32-byte random unique identifier. FVI generates USIs from a cryptographically-secure random pool per asset class with collision detection across all tenants.
-
Unique Product Identifier (UPI) — alphanumeric code based on ISO 4914. FVI maintains the full UPI list and rejects submissions with deprecated UPIs.
-
Execution timestamp — UTC at nanosecond precision. FVI's
swaps.execution_atcolumn is stored at nanosecond precision and converted to UTC at submission. -
Valuation data — current mark-to-market with source (model, dealer quote, mid). FVI stores daily valuation snapshots and threads them through the continuation data flow.
-
Counterparty classification — swap dealer, major swap participant, financial entity, non-financial entity. FVI's counterparty graph resolves the classification based on the LEI and CFTC registration.
How FVI supports Part 43/45
FVI treats Part 43/45 reporting as a downstream consumer of the reconciled swap ledger. The match engine pairs execution records from your swaps system with confirmation messages and SDR acknowledgements, producing a canonical swap state. The Part 43/45 pipeline then enriches each swap with the required fields, performs client-side validation against the CFTC's swap data dictionary, and submits to the chosen SDR.
Step-by-step: enabling Part 43/45 reporting
-
Register the tenant. In FVI, navigate to Settings → Compliance → CFTC and enter the LEI, the swap dealer/MSP classification, and the relevant SDR. FVI validates the LEI against GLEIF.
-
Configure swap classification. Add the asset class, the clearing status (cleared via DCO or uncleared), and the cross-border election. FVI applies the appropriate submission profile based on these inputs.
-
Map source systems. Connect each swap execution platform, confirmation system, and clearing house to FVI's ingestion pipeline. FVI normalizes FpML 4.x/5.x and FIX 5.0SP2 into the canonical swap record.
-
Run a dry-run. FVI's compliance console supports a 30-day dry-run submission to your SDR's sandbox. Review the validation report and iterate.
-
Enable production submission. Once dry-run passes, flip the tenant to live. FVI begins the real-time Part 43 stream and the T+2 Part 45 batch.
-
Monitor acknowledgements. FVI polls the SDR for ACK/NACK and surfaces unresolved validation errors as exceptions.
Code samples
curl
curl -X POST https://api.falconveritas.com/v1/compliance/cftc/submissions \
-H "Authorization: Bearer $FVI_JWT" \
-H "Content-Type: application/json" \
-d '{
"tenantId": "'$FVI_TENANT_ID'",
"lei": "529900T8BM49AURSDO55",
"sdr": "dtcc-ddr",
"assetClass": "IRS",
"fromDate": "2026-08-01",
"toDate": "2026-08-22",
"idempotencyKey": "cftc-fvi-$RANDOM"
}'
TypeScript
import { FVI } from '@falconveritas/sdk';
const fvi = new FVI({
baseUrl: 'https://api.falconveritas.com',
bearer: process.env.FVI_JWT!,
tenantId: process.env.FVI_TENANT_ID!,
});
const submission = await fvi.compliance.cftc.submit({
lei: '529900T8BM49AURSDO55',
sdr: 'dtcc-ddr',
assetClass: 'IRS',
fromDate: '2026-08-01',
toDate: '2026-08-22',
});
console.log('Submission ID:', submission.id);
Python
from falconveritas import FVI
client = FVI(
bearer=os.environ["FVI_JWT"],
tenant_id=os.environ["FVI_TENANT_ID"],
)
submission = client.compliance.cftc.submit(
lei="529900T8BM49AURSDO55",
sdr="dtcc-ddr",
asset_class="IRS",
from_date="2026-08-01",
to_date="2026-08-22",
)
print("Submission ID:", submission.id)
Troubleshooting
- Common Compliance errors
- RLS denied on cross-tenant reads
- Performance issues for large compliance jobs
- API error codes
Related articles
Last updated: 2026-08-22 · Page owner: Documentation · Source: src/lib/compliance/cftc/.