Définition
FAPI (Financial-grade API) est un profil de sécurité d'OAuth 2.0 et OpenID Connect conçu pour les API financières.
Standardisé par l'OpenID Foundation, c'est le standard de référence mondial pour la sécurité de l'Open Banking. Il durcit OAuth/OIDC en imposant des algorithmes forts (PS256, ES256), un binding strict des tokens (mTLS, DPoP), des mécanismes anti-tampering (JAR, PAR), des réponses signées et une certification rigoureuse.
Deux versions majeures coexistent : FAPI 1.0 (final en mars 2021, profils Read-Only et Read-Write) et FAPI 2.0 Security Profile (final en février 2025), qui simplifie et intègre nativement PAR et DPoP/mTLS.
Pourquoi FAPI
OAuth 2.0 est trop souple pour la finance : implémentations variables, attaques connues (CSRF, mix-up, code injection), tokens non bindés. FAPI resserre les vis :
- token bindé au client (mTLS ou DPoP) — un token volé est inutilisable ;
- request signé (JAR) — impossible de modifier un consentement en route ;
- PAR — le request_uri est court et non leakable dans les logs ;
- algorithmes forts uniquement ;
- ID Token signé — vérifiable côté client.
FAPI 1.0 vs FAPI 2.0
| Aspect | FAPI 1.0 (Advanced) | FAPI 2.0 (Security Profile) |
|---|---|---|
| Profils | Baseline (read) + Advanced (write) | Un seul |
| Token binding | mTLS ou OAuth Token Binding | mTLS ou DPoP (au choix) |
| Request | JARM requis | PAR + JAR requis |
| Algorithmes | PS256, ES256 | PS256, ES256 (simplifié) |
| Hybrid flow | Requis (Advanced) | Supprimé (PAR le remplace) |
| Adoption | Massive (2021-2024) | En cours (2024-2027) |
FAPI 2.0 est plus simple à implémenter correctement, plus sûr par défaut et plus interopérable.
Composants techniques
- mTLS : le client s'authentifie par certificat X.509 (souvent un QWAC en EU) ; le token est bindé à ce certificat.
- DPoP : alternative à mTLS, basée sur un JWT signé par une clé privée, plus simple pour le mobile et les SPA (adopté en FAPI 2.0).
- PAR : le client pousse sa demande d'autorisation via une API back-channel et reçoit un
request_uriopaque — anti-tampering, anti-leak. - JAR : la requête OAuth est encapsulée dans un JWT signé, impossible à modifier en transit.
- JARM : réponse OAuth signée dans un JWT, vérifiable côté client.
Le flow FAPI 2.0 type
Adoption
- Royaume-Uni (OBIE) : FAPI 1.0 Advanced, banques et TPP tous conformes — le modèle de référence mondial.
- Brésil (Open Finance Brazil) : FAPI 1.0 Advanced (puis 2.0), mandaté par la BCB, plus de 800 institutions — le plus grand écosystème Open Finance.
- Australie (CDR) : FAPI 1.0 Advanced, mandaté par l'ACCC et le Treasury.
- Ailleurs : Berlin Group et STET s'en inspirent mais sont moins stricts (mTLS et JAR souvent optionnels). L'EU reste la zone la plus permissive, d'où des débats récurrents sur l'imposition de FAPI en DSP3.
FAPI vs Berlin Group / STET
| Aspect | FAPI 1.0 Advanced | Berlin Group XS2A |
|---|---|---|
| Profil OAuth | Strict (mTLS + JAR + JARM) | Plus souple (mTLS optionnel) |
| Auth client | QWAC mTLS obligatoire | QWAC souvent (variable) |
| Signature messages | Banque + client (QSealC) | QSealC souvent requis |
| Binding token | mTLS-bound | Non bindé (bearer) |
| Certification | FAPI Conformance | Pas de certification globale |
La DSP2/DSP3 est donc moins « FAPI » que UK, BR et AU, ce qui complique l'interopérabilité internationale.
Conformance et certification
L'OpenID Foundation propose une suite de tests FAPI Conformance (pour AS et clients). En cas de succès, la certification est publiée sur son site, avec la liste des banques et TPP conformes — un passeport de qualité pour intégrer les écosystèmes OBIE, CDR ou OFB.
Ce que FAPI n'est pas
- Pas un standard d'API métier : il couvre la sécurité OAuth, pas le format des endpoints
/accountsou/payments(défini par OBIE, Berlin Group, STET, FDX). - Pas obligatoire en DSP2 / DSP3 : recommandé, non imposé par les RTS.
- Pas réservé à l'Open Banking : applicable à toute API financière.
- Pas un remplacement d'OAuth : c'est un profil renforcé d'OAuth 2.0 + OIDC.
Dans l'écosystème PSD2 / Open Finance
FAPI est le gold standard mondial de la sécurité Open Banking : référence hors EU (UK, BR, AU), moins strict en EU (Berlin Group, STET), avec une convergence FAPI 2.0 attendue via DSP3 et FIDA. Couplé à l'EUDI Wallet, il forme le combo identité + API sécurisée de l'Open Finance étendue.
Exemples concrets
- OBIE UK : implémentation FAPI mature, banques et TPP certifiés.
- Plaid, TrueLayer, Tink : FAPI 1.0 Advanced (Tink certifié OpenID Foundation).
- Bridge : STET + Berlin Group, pas FAPI strict.
- Banco do Brasil, Bradesco, Itaú : certifiés FAPI dans l'OFB.
- Outils : Authlete (JP), Curity (SE), ForgeRock (US) supportent FAPI nativement.
- Migration FAPI 2.0 : l'OFB prévoit une transition 2025-2027, l'OBIE l'étudie.
- Coût : pour une banque, le support de FAPI 2.0 représente un projet de 2 à 5 M€ (vs ~200 K€ pour un OAuth basique), justifié par la sécurité et l'interopérabilité internationale.