Skip to main content

EU Fintech Pack

The eu-fintech pack provides a production-ready set of constraints for financial services operating under EU regulation. It covers MiFID II order handling requirements, PSD2 strong customer authentication, GDPR data minimization, and EU AI Act Article 9 obligations.

Apply the pack

vyb init --pack eu-fintech

Regulatory coverage

RegulationCoverage
MiFID IIOrder handling, best execution records, audit trail requirements
PSD2Strong customer authentication (SCA), open banking API security
GDPRData minimization, PII logging prohibition, retention annotations
EU AI ActArticle 9 (risk management), Article 10 (data quality), Annex III
SOC 2CC6.1, CC6.7, CC7.1, CC7.2 trust service criteria

What the pack enforces

Security rules (all at block severity)

Rule IDNameWhat it catches
sec-001no-evaleval() and Function() constructor
sec-002no-hardcoded-secretsInline API keys, JWT secrets, passwords
sec-003no-md5-sha1Use of MD5 or SHA-1 for cryptography
sec-004no-http-externalHTTP (non-TLS) calls to external services
sec-005require-content-security-policyMissing CSP header in server responses
sec-006no-prototype-pollution__proto__, constructor.prototype assignments

Data rules (block severity)

Rule IDNameWhat it catches
dat-001no-pii-loggingEmail, phone, IBAN, SSN in console.log
dat-002no-raw-pii-storeStoring PII without encryption annotation
dat-003require-retention-annotationData models without @retention JSDoc tag
dat-004no-client-side-pii-cacheStoring PII in localStorage or sessionStorage

LLM rules (EU AI Act compliance)

Rule IDNameSeverityWhat it catches
llm-001require-ai-output-schemawarnAI calls without structured output schema
llm-002no-raw-ai-dom-outputblockUnsanitized AI output written to DOM
llm-003require-ai-audit-logblockAI-generated decisions without audit log
llm-004no-autonomous-financial-actionblockAI code paths that execute financial actions without human approval

Dependency rules

Rule IDNameSeverityWhat it catches
pkg-001no-gpl-packagesblockGPL-licensed dependencies
pkg-002pin-major-versionswarnDependencies with ^ or ~ on major version
pkg-003no-outdated-cryptoblocknode-forge < 1.3.0, elliptic < 6.5.4

Compliance mappings

The EU Fintech pack maps all block rules to specific regulatory controls. These mappings appear in the Evidence Pack PDF and JSON:

# Example of a pack rule with EU AI Act mapping
- id: llm-003
name: require-ai-audit-log
severity: block
pattern: "(openai|anthropic|claude|gpt).*\\.(create|invoke|run)"
maps-to:
- framework: eu-ai-act
control: Art.9.2 # Risk management system
- framework: eu-ai-act
control: Art.12.1 # Record-keeping obligations
- framework: soc2
control: CC7.2 # System monitoring

Customizing the pack

After applying the pack, open .vyb/spec.yaml and adjust for your stack:

.vyb/spec.yaml (after vyb init --pack eu-fintech)
# These rules come from the pack. You can override any of them:

categories:
data:
rules:
# Pack default: warn. We upgrade to block for our regulated context:
- id: dat-003
severity: block

# Add our own rule on top of the pack:
- id: dat-010
name: require-iban-mask
description: IBANs displayed in UI must be masked
severity: block
pattern: "IBAN[0-9]{15,34}"
remediation: Mask IBANs to show only the last 4 digits in UI.

Key date reminder

EU AI Act enforcement begins August 2, 2026. The llm-* rules in this pack address the core Article 9 and Article 12 obligations. Every passing vyb check produces a signed Evidence Pack that can be presented to regulators as proof of technical risk management compliance.


Next: US Healthtech PHI Pack