💰 Finance

finance-fintech-compliance-checker

Vérification de conformité pour applications fintech — PCI-DSS, KYC/AML, PSD2, RGPD appliqué aux données financières.

⚡ Installation & lancement en 1 commande

Copiez-collez dans votre terminal : le skill s'installe dans ~/.claude/skills et Claude Code se lance directement dessus.

macOS / Linux
curl -fsSL https://raw.githubusercontent.com/khalilbenaz/claude-skills-collection/main/install.sh | sh -s -- finance-fintech-compliance-checker --launch
Windows (PowerShell)
iex "& { $(iwr -useb https://raw.githubusercontent.com/khalilbenaz/claude-skills-collection/main/install.ps1) } finance-fintech-compliance-checker -Launch"

🚀 Déjà installé ?

claude "/finance-fintech-compliance-checker"

Ou tapez /finance-fintech-compliance-checker dans une session Claude Code, ou décrivez simplement votre besoin — le skill se déclenche automatiquement via le skill-router.

🔑 Déclencheurs automatiques

Le skill s'active automatiquement quand votre demande contient :

PCI-DSSKYCAMLPSD2conformité paiementcompliance fintechdonnées bancairescarte de crédit sécurité

📦 Installation manuelle

git clone https://github.com/khalilbenaz/claude-skills-collection.git cp -r claude-skills-collection/skills/finance-fintech-compliance-checker ~/.claude/skills/

Payload du plugin : skills/finance-fintech-compliance-checker · source éditable : finance-skills/fintech-compliance-checker

📖 Manuel

Vérificateur de Conformité Fintech

Workflow en 5 étapes

  1. Cartographier le périmètre : identifier les flux de données financières (carte, virement, wallet, crypto) et les marchés cibles (UE, US, MENA…).
  2. Sélectionner les référentiels : croiser type de service × géographie → liste des normes applicables (tableau ci-dessous).
  3. Auditer point par point : pour chaque norme, dérouler la checklist correspondante ; noter les gaps avec niveau de risque (critique / élevé / moyen).
  4. Corriger et prioriser : implémenter les contrôles manquants critiques en premier ; documenter chaque décision (ADR ou ticket).
  5. Maintenir la preuve : logs d'audit, scans périodiques, enregistrement des consentements — tout doit être traçable et exportable.

1. Sélection des référentiels applicables

ServiceRéglementations applicables
Paiement par cartePCI-DSS v4, PSD2, RGPD
Wallet / compte de paiementKYC/AML (DLTF/5AMLD), PSD2, RGPD
Transfert d'argent (remittance)Règlement UE 2015/847, KYC/AML, RGPD
Prêt / crédit consommationDirective 2023/2225, RGPD
Crypto-actifsMiCA (applicable depuis déc. 2024), KYC/AML, RGPD
Open Banking / AISP-PISPPSD2, Berlin Group API, RGPD

2. PCI-DSS v4 — Checklist développeur

Données de carte : ce qui est interdit

INTERDIT (même chiffré) :
  - Stocker le CVV/CVC après autorisation
  - Stocker le contenu de la piste magnétique
  - Logger le PAN complet dans les fichiers de log

INTERDIT :
  - Envoyer des données de carte par email, chat, SMS
  - Recevoir le numéro de carte sur vos propres serveurs si scope SAQ A possible

Tokenisation — flux recommandé

# Stripe / Adyen / Braintree
Client (browser/app)
  └─► Stripe.js / Hosted Fields
        └─► PSP (hors scope PCI)
              └─► token  tok_live_xxxxx  → votre backend
                          ↓
              api.stripe.com/v1/charges { source: tok_live_xxxxx }

Votre backend ne voit jamais le PAN. Scope réduit à SAQ A ou SAQ A-EP.

Niveaux PCI-DSS et obligations

NiveauVolume annuelExigence minimale
1> 6 M transactionsAudit QSA sur site + ASV scan trimestriel
21–6 MSAQ + ASV scan trimestriel
320 K–1 M (e-commerce)SAQ A-EP ou SAQ D
4< 20 K (e-commerce)SAQ A (si full-redirect PSP)

Exigences techniques PCI-DSS v4 nouvelles (2025+)

# Vérifier TLS d'un endpoint
openssl s_client -connect api.monservice.com:443 -tls1_2 </dev/null 2>&1 | grep "Protocol"
# Ou avec testssl.sh (outil open source)
./testssl.sh --protocols api.monservice.com

3. KYC/AML — Approche basée sur le risque

Niveaux de due diligence (5AMLD / DLTF)

NiveauSeuil indicatif UEVérifications requises
Simplifié (SDD)< 150 €/mois, produit à faible risque listéEmail + téléphone (profil limité)
Standard (CDD)Usage courantPièce d'identité + preuve d'adresse + screening sanctions
Renforcé (EDD)> 2 500 €/mois, PEP, pays à haut risque FATFIdentité + source des fonds + justificatif patrimoine + revue périodique

Screening sanctions — intégration code

# Exemple avec l'API Comply Advantage / ComplyLaunch
import requests

def screen_customer(name: str, dob: str) -> dict:
    resp = requests.post(
        "https://api.complyadvantage.com/searches",
        headers={"Authorization": f"Token {API_KEY}"},
        json={
            "search_term": name,
            "filters": {"birth_year": dob[:4]},
            "share_url": False,
            "types": ["sanction", "pep", "warning", "adverse-media"],
        },
        timeout=10,
    )
    resp.raise_for_status()
    hits = resp.json()["content"]["data"]["hits"]
    return {"clear": len(hits) == 0, "hits": hits}

Alternatives : Refinitiv World-Check, Dow Jones Risk & Compliance, listes publiques OFAC/EU/ONU (CSV téléchargeables).

Checklist AML

Red flags à coder comme règles de détection

STRUCTURING : montant < seuil déclaration sur N transactions proches dans le temps
VELOCITY    : > X transactions en 24 h sur un même compte
GEOGRAPHY   : destination dans pays FATF liste grise/noire
ROUND_TRIP  : dépôt → retrait immédiat sans utilisation intermédiaire
NEW_ACCOUNT : volume élevé les 48 h suivant la création du compte

4. PSD2 / SCA — Authentification Forte

Règle SCA

Transaction > 30 € → 2 facteurs obligatoires parmi :
  - Connaissance  : mot de passe, PIN
  - Possession    : téléphone (OTP SMS/TOTP), carte physique
  - Inhérence     : biométrie (empreinte, face ID)

Exemptions applicables (à documenter)

ExemptionConditionResponsabilité du risque
Low-value< 30 € (cumul < 100 € ou < 5 tx)Émetteur
Trusted beneficiaryBénéficiaire whitelisté par le payeurÉmetteur
RecurringMême montant + même bénéficiaireÉmetteur
TRA (Transaction Risk Analysis)Taux fraude < seuil EBA + scoring basAcquéreur ou émetteur
Corporate / B2BComptes d'entreprise dédiésÉmetteur

Implémentation 3DS2 (Stripe exemple)

// Côté client — gérer le défi SCA
const { error, paymentIntent } = await stripe.confirmCardPayment(clientSecret, {
  payment_method: { card: cardElement },
});
if (error?.code === "authentication_required") {
  // Redemander la SCA via stripe.handleNextAction(clientSecret)
}

5. RGPD — Données financières

Durées de conservation légales

DonnéeDuréeBase légale
Transactions / pièces comptables10 ansObligation légale (Code commerce)
Dossiers KYC5 ans après fin de relationLCB-FT / 5AMLD
Données de carte tokeniséesDurée mandat + 13 moisContrat / Consentement
Logs d'accès et connexion12 moisIntérêt légitime / LCEN
Consentements marketingJusqu'au retrait + 3 ansConsentement

Droits des utilisateurs — implémentation minimale

# Pseudonymisation irréversible pour données hors conservation légale
import hashlib, os

def pseudonymize(value: str, salt: bytes = None) -> str:
    salt = salt or os.urandom(16)
    return hashlib.blake2b(value.encode(), key=salt, digest_size=32).hexdigest()

6. Garde-fous et anti-patterns fréquents

Anti-patternRisqueCorrection
Logger request.body sur un endpoint de paiementPCI-DSS violation, amende + perte certificationFiltrer les champs sensibles avant log (pan, cvv, card_number)
KYC "one-shot" sans re-screeningPasser à côté d'une sanction ajoutée après onboardingCron de re-screening hebdomadaire sur la base clients active
SCA contournée côté backend pour "améliorer l'UX"Fraude, responsabilité acquéreur, amende ABEUtiliser les exemptions officielles PSD2, documenter le choix
Conservation infinie des données "au cas où"RGPD — amende CNIL jusqu'à 4 % du CA mondialMettre en place une politique de purge automatique par type de donnée
Secrets d'API PSP dans le code sourceCompromission PSP, fraude directeVault (HashiCorp / AWS Secrets Manager) + rotation automatique
Validation KYC uniquement côté clientContournement trivialToujours re-valider côté serveur, renvoyer le statut KYC depuis le backend

7. Commandes d'audit utiles

# Scanner les secrets dans le code (clés API, PANs…)
trufflehog git file://. --only-verified

# Vérifier les headers de sécurité d'un endpoint
curl -I https://api.monservice.com/v1/payments | grep -E "Strict-Transport|Content-Security|X-Frame"

# Tester les ciphers TLS (rejeter TLS < 1.2)
nmap --script ssl-enum-ciphers -p 443 api.monservice.com

# Vérifier l'inventaire des scripts de paiement (PCI v4 req. 6.4.3)
# Générer les SRI hashes pour les scripts tiers
curl -s https://cdn.js.stripe.com/v3/ | openssl dgst -sha384 -binary | openssl base64 -A

Ce skill fournit des orientations techniques et opérationnelles. Pour des décisions de conformité engageant la responsabilité légale de l'entreprise, consulter un juriste spécialisé en droit financier et/ou un QSA PCI certifié.