Definição
FAPI (Financial-grade API) é um perfil de segurança do OAuth 2.0 e do OpenID Connect projetado para APIs financeiras.
Padronizado pela OpenID Foundation, é o padrão de referência mundial para a segurança do Open Banking. Ele endurece o OAuth/OIDC ao impor algoritmos fortes (PS256, ES256), um binding estrito dos tokens (mTLS, DPoP), mecanismos anti-tampering (JAR, PAR), respostas assinadas e uma certificação rigorosa.
Duas versões principais coexistem: o FAPI 1.0 (final em março de 2021, com os perfis Read-Only e Read-Write) e o FAPI 2.0 Security Profile (final em fevereiro de 2025), que simplifica e integra nativamente o PAR e o DPoP/mTLS.
Por que o FAPI
O OAuth 2.0 é flexível demais para as finanças: implementações variáveis, ataques conhecidos (CSRF, mix-up, code injection), tokens não vinculados. O FAPI aperta os parafusos:
- token vinculado ao cliente (mTLS ou DPoP) — um token roubado é inutilizável;
- request assinado (JAR) — impossível alterar um consentimento em trânsito;
- PAR — o request_uri é curto e não vazável nos logs;
- algoritmos fortes apenas;
- ID Token assinado — verificável do lado do cliente.
FAPI 1.0 vs FAPI 2.0
| Aspecto | FAPI 1.0 (Advanced) | FAPI 2.0 (Security Profile) |
|---|---|---|
| Perfis | Baseline (leitura) + Advanced (escrita) | Um único |
| Token binding | mTLS ou OAuth Token Binding | mTLS ou DPoP (à escolha) |
| Request | JARM exigido | PAR + JAR exigidos |
| Algoritmos | PS256, ES256 | PS256, ES256 (simplificado) |
| Hybrid flow | Exigido (Advanced) | Removido (o PAR o substitui) |
| Adoção | Massiva (2021-2024) | Em curso (2024-2027) |
O FAPI 2.0 é mais simples de implementar corretamente, mais seguro por padrão e mais interoperável.
Componentes técnicos
- mTLS: o cliente se autentica por certificado X.509 (frequentemente um QWAC na UE); o token é vinculado a esse certificado.
- DPoP: alternativa ao mTLS, baseada em um JWT assinado por uma chave privada, mais simples para o mobile e as SPA (adotado no FAPI 2.0).
- PAR: o cliente envia seu pedido de autorização via uma API back-channel e recebe um
request_uriopaco — anti-tampering, anti-leak. - JAR: a requisição OAuth é encapsulada em um JWT assinado, impossível de alterar em trânsito.
- JARM: resposta OAuth assinada em um JWT, verificável do lado do cliente.
O fluxo FAPI 2.0 típico
Adoção
- Reino Unido (OBIE): FAPI 1.0 Advanced, com bancos e TPP todos conformes — o modelo de referência mundial.
- Brasil (Open Finance Brasil): FAPI 1.0 Advanced (depois 2.0), mandatado pelo BCB, mais de 800 instituições — o maior ecossistema de Open Finance.
- Austrália (CDR): FAPI 1.0 Advanced, mandatado pela ACCC e pelo Treasury.
- Em outros lugares: o Berlin Group e o STET se inspiram nele, mas são menos estritos (mTLS e JAR frequentemente opcionais). A UE continua sendo a zona mais permissiva, daí os debates recorrentes sobre impor o FAPI na DSP3.
FAPI vs Berlin Group / STET
| Aspecto | FAPI 1.0 Advanced | Berlin Group XS2A |
|---|---|---|
| Perfil OAuth | Estrito (mTLS + JAR + JARM) | Mais flexível (mTLS opcional) |
| Auth do cliente | QWAC mTLS obrigatório | QWAC frequentemente (variável) |
| Assinatura das mensagens | Banco + cliente (QSealC) | QSealC frequentemente exigido |
| Token binding | Vinculado por mTLS | Não vinculado (bearer) |
| Certificação | FAPI Conformance | Sem certificação global |
A DSP2/DSP3 é, portanto, menos "FAPI" do que o Reino Unido, o Brasil e a Austrália, o que dificulta a interoperabilidade internacional.
Conformance e certificação
A OpenID Foundation oferece uma suíte de testes FAPI Conformance (para AS e clientes). Em caso de sucesso, a certificação é publicada em seu site, com a lista dos bancos e TPP conformes — um passaporte de qualidade para integrar os ecossistemas OBIE, CDR ou OFB.
O que o FAPI não é
- Não é um padrão de API de negócio: ele cobre a segurança OAuth, não o formato dos endpoints
/accountsou/payments(definido por OBIE, Berlin Group, STET, FDX). - Não é obrigatório na DSP2 / DSP3: recomendado, não imposto pelos RTS.
- Não é exclusivo do Open Banking: aplicável a qualquer API financeira.
- Não é um substituto do OAuth: é um perfil reforçado do OAuth 2.0 + OIDC.
No ecossistema PSD2 / Open Finance
O FAPI é o padrão-ouro mundial da segurança do Open Banking: referência fora da UE (Reino Unido, Brasil, Austrália), menos estrito na UE (Berlin Group, STET), com uma convergência para o FAPI 2.0 esperada via DSP3 e FIDA. Acoplado à EUDI Wallet, ele forma o combo identidade + API segura do Open Finance ampliado.
Exemplos concretos
- OBIE UK: implementação FAPI madura, com bancos e TPP certificados.
- Plaid, TrueLayer, Tink: FAPI 1.0 Advanced (Tink certificada pela OpenID Foundation).
- Bridge: STET + Berlin Group, sem FAPI estrito.
- Banco do Brasil, Bradesco, Itaú: certificados FAPI no OFB.
- Ferramentas: Authlete (JP), Curity (SE), ForgeRock (EUA) suportam FAPI nativamente.
- Migração FAPI 2.0: o OFB prevê uma transição 2025-2027, o OBIE a estuda.
- Custo: para um banco, o suporte ao FAPI 2.0 representa um projeto de 2 a 5 M€ (vs ~200 mil € para um OAuth básico), justificado pela segurança e pela interoperabilidade internacional.