Skip to main content

FCA MiFIR

The UK Financial Conduct Authority (FCA) MiFIR transaction reporting regime governs the obligation for UK investment firms to report transactions in financial instruments to the FCA. Post-Brexit, the FCA operates a parallel regime to ESMA's RTS 22 with UK-specific fields (Transaction Reference Number format, UK National Section, FCA-specific action types). UK firms executing transactions against both UK and EU trading venues must file dual reports to ESMA and the FCA. Falcon Veritas Intelligence (FVI) handles both submissions from a single reconciled transaction state.

Scope and applicability​

FCA MiFIR applies to UK investment firms authorised under MiFID II that execute transactions in:

  • Transferable securities (UK Listing Authority listings, multilateral trading facilities)
  • UK and EU investment products admitted to trading on a UK-regulated venue
  • Branches of UK firms operating in the EEA (where the branch acts as the investment firm)

The reporting deadline is T+1. Firms must appoint an FCA-recognised ARM (Approved Reporting Mechanism) for submission. FVI supports all major UK ARMs: UBS Delta, Transaction Reporting GO, Cappitech, IHS Markit, and SimCorp.

Field mapping​

FCA MiFIR requires 65 fields (aligned with RTS 22) plus UK-specific fields:

  1. Transaction Reference Number (TRN) — UK-specific 52-character alphanumeric format. FVI's transactions.trn column allocates UK-compliant TRNs from a separate pool.

  2. UK National Section — required on all UK reports with the UK NCA identifier. FVI tags all UK reports with the FCA NCA code automatically.

  3. Trading venue identification — UK MIC codes (XLON, XLOM, CHIX, BATE, AQEU, etc.) plus the EU MIC for cross-venue trades. FVI maintains the full UK and EU MIC list.

  4. Buyer/seller identification — UK LEI, national ID for natural persons, or branch code. FVI's counterparty graph applies UK-specific CONCAT rules.

  5. HIN (Hemscott Identifier) — required for UK-listed equities. FVI's UK equity resolver applies HIN lookups at the symbol level.

How FVI supports FCA MiFIR​

FVI treats FCA MiFIR as a downstream consumer of the reconciled transaction ledger. The match engine pairs execution records from your OMS or EMS with venue confirmations and clearing records, producing a canonical transaction state. The FCA MiFIR pipeline then enriches each transaction with UK-specific fields, performs client-side validation against the FCA's MiFIR schema, and submits to the chosen ARM.

For firms that also report to ESMA, FVI runs both submissions in parallel, with one transaction state and two enriched submission packages. Field differences between FCA and ESMA schemas are handled automatically by the dual-reporting module.

Step-by-step: enabling FCA MiFIR reporting​

  1. Register the tenant. In FVI, navigate to Settings → Compliance → FCA and enter the firm FRN, the investment firm LEI, and the chosen ARM. FVI validates the FRN against the FCA register.

  2. Configure dual-reporting. Toggle the dual-reporting switch if your firm also reports to ESMA. FVI will create a separate submission pipeline for ESMA ARM.

  3. Configure identification rules. Choose the counterparty identification strategy (LEI-only, CONCAT with branch, national ID). FVI applies UK-specific CONCAT rules.

  4. Map venue execution flows. Connect each OMS, EMS, and UK trading venue to FVI's ingestion pipeline. FVI normalises FIX 4.2/4.4/5.0SP2 and FIXML into the canonical transaction record.

  5. Run a dry-run. FVI's compliance console supports a 30-day dry-run submission to your ARM's sandbox. Review the ARM validation report.

  6. Enable production. Once dry-run validation passes, flip the tenant to live. FVI begins the T+1 morning submission window.

  7. Monitor acknowledgements. FVI polls the ARM for ACK/NACK and surfaces unresolved validation errors as exceptions.

Code samples​

curl​

curl -X POST https://api.falconveritas.com/v1/compliance/fca-mifir/submissions \
-H "Authorization: Bearer $FVI_JWT" \
-H "Content-Type: application/json" \
-d '{
"tenantId": "'$FVI_TENANT_ID'",
"frn": "123456",
"lei": "529900T8BM49AURSDO55",
"arm": "ubs-delta-uk",
"dualReport": true,
"fromDate": "2026-08-01",
"toDate": "2026-08-22",
"idempotencyKey": "fca-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.fcaMifir.submit({
frn: '123456',
lei: '529900T8BM49AURSDO55',
arm: 'ubs-delta-uk',
dualReport: true,
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.fca_mifir.submit(
frn="123456",
lei="529900T8BM49AURSDO55",
arm="ubs-delta-uk",
dual_report=True,
from_date="2026-08-01",
to_date="2026-08-22",
)
print("Submission ID:", submission.id)

Troubleshooting​

Last updated: 2026-08-22 · Page owner: Documentation · Source: src/lib/compliance/fca-mifir/.