Pular para o conteúdo principal
Didit levanta US$ 7,5 milhões para construir a infraestrutura para identidade e fraude
Didit
Voltar para o blog
Blog · 6 de outubro de 2026

Guia de integração de API de eID: padrões, código e segurança

Guia com foco em código para integrar eIDs nacionais via API de eID: fluxos de redirecionamento, push no app, QR, cartão NFC e OpenID4VP, o que construir, campos de resultado, alternativas e checklist de segurança.

Por DiditAtualizado
eid-api-integration-guide-cover.png

Em resumo

Uma API de eID permite que o seu cadastro peça a um sistema nacional de identificação eletrônica (eID) que autentique uma pessoa e devolva atributos de identidade assinados. Todo sistema usa um de cinco padrões: um redirecionamento no navegador, uma notificação push no aplicativo com um código de comparação, um QR code ou a abertura de um aplicativo, a leitura de um cartão com chip por comunicação por campo de proximidade (NFC) ou uma apresentação pela carteira europeia de identidade digital (EUDI Wallet) via OpenID for Verifiable Presentations (OpenID4VP).[2][6][8][14]

  • Você ainda precisa verificar a assinatura e o nível de garantia.
  • A maioria dos sistemas exige um contrato, um certificado ou um intermediário certificado antes da primeira chamada.[12][13][15]

Última revisão: 5 de outubro de 2026 · Não constitui aconselhamento jurídico

Este guia, centrado em código, é para engenheiros que estão adicionando eIDs nacionais ao onboarding.

Como funciona uma API de eID: cinco padrões de interação

O seu sistema é a parte confiante (RP). Ele nunca vê a credencial em si, apenas uma resposta assinada sobre a pessoa.

PadrãoO que o usuário fazComo o seu backend recebe a respostaExemplo
Redirecionamento (OpenID Connect, OIDC)Sai da sua página para o login do sistema, faz login e voltaUm código de autorização, trocado por um ID token assinadoID Austria, cujo login OIDC aceita apenas o fluxo de código de autorização[6]
Push no aplicativo com um códigoDigita um código pessoal, compara o código na tela com o do aplicativo e digita o PIN no aplicativoVocê aguarda ou consulta periodicamente até receber um resultado assinadoSmart-ID, Mobile-ID[10][20]
QR code ou abertura do aplicativoEscaneia um QR code animado em um computador, ou o aplicativo abre no mesmo celularVocê consulta o sistema periodicamente até o pedido ser concluídoBankID da Suécia[8]
Cartão e NFCAproxima o cartão com chip do celular e digita o PIN do cartãoUm servidor de eID lê o chip e devolve os atributosDocumento de identidade alemão com eID[14]
Apresentação pela carteira (OpenID4VP)Aprova em um aplicativo de carteira quais atributos compartilharUma apresentação de atributos assinados, com divulgação seletivaCarteira europeia de identidade digital (EUDI Wallet)[2]

Alguns esquemas ficam atrás de um gateway público: o TARA da Estônia é um gateway de código de autorização à frente do cartão de identidade, do Smart-ID, do Mobile-ID e das eIDs da UE.[7] Veja esquemas de eID por país para saber qual padrão cada esquema usa.

O que você constrói e o que um provedor resolve

O acesso vem antes do código. Na Dinamarca, todo prestador de serviços precisa passar por um broker de MitID certificado.[12] Na Suécia, você adquire o BankID de um banco ou de um revendedor e solicita um certificado de parte confiante.[15] Na Alemanha, você opera seu próprio servidor de eID, usa um serviço de eID hospedado com seu próprio certificado ou usa um serviço de identificação sem ter nenhum certificado próprio.[13] Para a EUDI Wallet, uma parte confiante precisa se registrar no Estado-Membro onde está estabelecida.[1]

CamadaDireto, esquema por esquemaPor meio de uma única API de eID
Contratos e certificadosUm por esquema, renovado no ciclo de cada esquemaO provedor os mantém; você mantém um contrato
Código de protocoloOIDC, APIs de polling, um servidor de eID, OpenID4VPUma API de sessão e um formato de resultado
TelasSeletor, QR, código de comparação, erros, por esquemaFluxo hospedado ou SDK
Verificação de assinaturaPor sua conta, por chave e formato de cada esquemaFeita pelo provedor, informada como um veredito
Nível de garantiaCabe a você solicitar e verificarRegistrado no resultado; a política continua sendo definida por você
Alternativa para pessoas sem eIDUm segundo fornecedor ou um caminho manualUma rota por documento no mesmo fluxo
A decisão de onboardingSuaContinua sendo sua

Existem brokers certificados para a maioria dos esquemas nórdicos e bálticos. Vá direto para um único esquema com alto volume; use uma API quando os usuários vierem de vários países.

O fluxo de redirecionamento, passo a passo

Este é o fluxo de código de autorização do OIDC. Seu backend redireciona o navegador com um state e um nonce aleatórios, depois troca o código retornado por um token de ID e o verifica.

Usuário Seu backend Provedor de eID
1Inicia o cadastro
2Redirecionamento com state e nonce

O usuário faz login com o eID

3Código para o seu callback
4Troca do código por tokens
5Token de ID assinado

Verifica state, nonce, assinatura e acr

6Conta aberta

Um login por redirecionamento. Brokers e gateways acrescentam saltos na etapa 2, não novas etapas para você.

A verificação após a etapa 5 é a mais importante. Segundo a documentação do ID-porten da Digdir, o cliente "DEVE validar que o nível de segurança (acr) é suficientemente alto".[5] Interprete o acr como o nível de garantia (LoA) que o esquema declara e recuse qualquer valor abaixo da sua política.

O fluxo por notificação no app com código de comparação

Com Smart-ID e Mobile-ID, o usuário nunca sai da sua página. O usuário digita um código de identificação pessoal (o Mobile-ID também pede o número de telefone), sua página mostra um código curto e o mesmo código aparece no app. O usuário aprova com o PIN no celular somente quando os códigos coincidem.[20] O Smart-ID também pode mostrar três códigos e pedir que o usuário escolha o correto.[10]

Verifique sua identidade

Escolha como verificar

Faça login com a identidade eletrônica que você já usa.

Smart-ID

1O usuário escolhe um eID entre os que você aceita.

Verifique sua identidade

Confira o código

4821

O mesmo código aparece no seu app Smart-ID.

2Sua página de verificação, no dispositivo em uso, mostra um código de comparação. O mesmo código aparece no app.

Smart-ID

Digite seu PIN

Somente se o código for igual ao da tela.

3O usuário digita o PIN no app, nunca na sua página.

Verifique sua identidade

Você está verificado

  • Nome completoCompartilhado
  • Data de nascimentoCompartilhado
  • Código pessoalCompartilhado
  • EndereçoNão compartilhado

4Os atributos assinados chegam ao seu backend.

O BankID Sweden segue o mesmo formato, com um QR no lugar de um código digitado. O usuário abre o app no mesmo dispositivo com um token de autostart ou escaneia um QR animado exibido no outro dispositivo. Seu backend consulta /collect até o pedido ser concluído. O pedido concluído traz o número pessoal, o nome, o prenome e o sobrenome, além de campos de dispositivo, de assinatura e campos opcionais de risco.[8] O Smart-ID+ leva o Smart-ID para esse modelo (QR dinâmico no desktop, app-to-app no celular), e assim os usuários deixam de digitar um código pessoal em um site.[11]

Usuário Seu backend API do esquema App do esquema
1Digita o código pessoal
2Exibe o código de comparação
3Inicia a solicitação de autenticação
4Push para o celular

O app exibe o mesmo código, e o usuário digita o PIN

5Consulta o resultado
6Resultado assinado

Um login com Smart-ID ou Mobile-ID, na ordem em que o usuário o vê: código pessoal, código de comparação na sua página, o mesmo código no app e, por fim, o PIN.[20] Na variante com QR do BankID, a etapa 1 desaparece e a etapa 2 exibe um QR code.

Cartão e NFC, e a carteira europeia de identidade digital (EUDI Wallet) via OpenID4VP

Com a carteira de identidade eletrônica alemã, o usuário aproxima o cartão de um celular com NFC no AusweisApp. Antes de o PIN ser digitado, a lei exige que o app mostre o nome e o endereço do provedor e as categorias de dados solicitadas. Somente essas categorias são enviadas.[14]

Segundo a OpenID Foundation, o OpenID4VP 1.0 é uma especificação final.[16] O Architecture and Reference Framework (ARF) lista como formas de apresentação remota o OpenID4VP via redirecionamentos e esquemas de URI personalizados, como openid4vp://, o OpenID4VP via W3C Digital Credentials API ou a ISO/IEC 18013-7 via essa mesma API.[2][17] Antes de compartilhar qualquer dado, a carteira autentica o seu certificado de acesso, verifica se você não pede mais atributos do que registrou e permite que o usuário aprove cada um deles.[2] A foto só passa a ser obrigatória nos dados de identificação pessoal (PID) a partir de 11 de agosto de 2028, exceto quando o usuário recusa expressamente.[18]

  1. 23 de julho de 2026ARF v3.0.0Versão atual do framework da carteira.
  2. 24 de dezembro de 2026Prazo das carteirasCada Estado-Membro oferece pelo menos uma carteira.
  3. 24 de dezembro de 2027AceitaçãoPartes confiantes privadas obrigadas por lei ou contrato a usar autenticação forte do usuário passam a aceitá-la a pedido do usuário. Microempresas e pequenas empresas estão isentas.
  4. 11 de agosto de 2028FotoA foto nos PID passa a ser obrigatória, salvo se o usuário recusar.

Datas da EUDI Wallet que definem o roadmap de uma API de eID.[1][2][18]

O guia da EUDI Wallet trata do registro de partes confiantes e da prontidão por país.

Erros, alternativas e novas tentativas

Um login termina como concluído, cancelado, expirado ou com falha. Trate os três últimos casos da mesma forma e decida, por país, o que acontece em seguida.

1Ofereça os eIDs do país do usuário

Lista de eIDs aceitos por país, e o usuário escolhe.

O login foi concluído com assinatura válida e no nível exigido

Sim

Armazenar os atributos assinados

Nome, data de nascimento, identificador, nível.

Não

Recorrer ao fallback ou recusar

Documento com leitura de chip, ou encerrar a sessão.

2Triagem e decisão

Aplique suas próprias regras de risco aos dados verificados.

Nunca repita automaticamente um login cancelado. Torne o callback idempotente, para que uma atualização da página ou um evento duplicado não abra duas contas. Mantenha uma rota para pessoas sem eID, geralmente um documento de identidade com leitura do chip por NFC, prova de vida (liveness) e correspondência facial. Verificação de eID por NFC e segurança do chip trata dessa rota.

Checklist de segurança para uma integração de API de eID

  • Gere um state e um nonce novos a cada login e rejeite um callback que não corresponda a eles.
  • Verifique a assinatura de cada token ou resultado antes de ler qualquer atributo.
  • Confira o nível de garantia no resultado, não apenas na requisição.[5]
  • Exija nível substancial ou elevado quando a rota de eID do AMLR se aplicar a você.[3]
  • Nunca colete o PIN do eID na sua página; ele pertence ao app do esquema.[20]
  • Prefira QR code ou abertura app-to-app a códigos digitados em logins entre dispositivos.[11]
  • Solicite apenas os atributos que você registrou e de que precisa.[1]
  • Verifique as assinaturas e os carimbos de data/hora dos webhooks antes de confiar em um resultado.

A base legal é o Regulamento Antilavagem de Dinheiro (AMLR), aplicável a partir de 10 de julho de 2027: o Artigo 22(6)(b) admite "meios de identificação eletrônica que cumpram os requisitos do Regulamento (UE) n.º 910/2014 no que diz respeito aos níveis de garantia 'substancial' ou 'elevado'".[3] Nem todo esquema é notificado: o MitID consta da lista da UE de esquemas notificados, o Smart-ID não.[4]

Atenção

A ARF alerta que fluxos entre dispositivos com URI personalizado "são vulneráveis a ataques de phishing e de retransmissão" e não recomenda esquemas de URI personalizados para apresentação entre dispositivos.[2] Segundo a Computer Sweden, a polícia informou em julho de 2019 uma queda de 90% nos golpes telefônicos com BankID após a introdução dos QR codes.[9]

Como a Didit ajuda na integração de API de eID

A Didit reúne cinco eIDs em produção em uma única API de sessão (MitID, BankID Sweden, Finnish Trust Network, Smart-ID e Mobile-ID, em sete países), com uma rota por documento no mesmo fluxo. Outros esquemas estão no roadmap da Didit, e a aceitação da carteira europeia de identidade digital (EUDI Wallet) chega em breve. A Didit nunca pede o PIN. Saiba mais na página de carteiras de identidade digital e na documentação de carteiras.[19]

Ative por país os eIDs em produção

No console: Workflows, a etapa ID Verification, Countries, "Wallets accepted". Pela API, o recurso ID Verification (OCR) recebe um objeto methods indexado pelo código de país ISO 3166-1 alpha-3, enviado com POST /v3/workflows/. O trecho documentado para a Dinamarca:[21]

{ "feature": "OCR", "config": { "methods": { "DNK": { "document": { "enabled": true }, "wallet": { "enabled": true, "providers": ["mitid"], "on_failure": "fallback_to_document" } } } } }

E para a Estônia, aceitando os dois eIDs baseados em celular:[20]

{ "EST": { "document": { "enabled": true }, "wallet": { "enabled": true, "providers": ["smart_id", "mobile_id"], "on_failure": "fallback_to_document" } } }

providers é uma lista de aceitação, não um ranking. on_failure é fallback_to_document ou decline. Uma carteira que não está disponível no seu ambiente faz com que todo o salvamento seja rejeitado, então consulte o catálogo antes.[21]

Captura de tela pendente: console-wallets-accepted

Escolha das eIDs aceitas para um país no console da Didit.

Crie uma sessão e leia o resultado

POST /v3/session/ com o seu workflow_id (e, opcionalmente, vendor_data e um callback) retorna session_id, url e session_token. Abra a URL ou use o SDK.[24] O resultado chega por webhook ou por GET /v3/session/{id}/decision/, com verification_method: "wallet", assurance: "cryptographic" e um objeto wallet_verification.[19]

CampoExemploO que ele informa
providermitidQual eID o usuário escolheu
issuing_authorityDanish Agency for Digital GovernmentQuem está por trás da identidade
issuing_countryDNKA via de identificação, não a nacionalidade
level_of_assurancesubstantialO nível de garantia declarado pelo esquema
signature_validtrueA declaração assinada foi validada
attributesfull_name, date_of_birth, cpr_aliasDados validados, os nomes variam conforme a eID
portrait, face_match_scorenullNenhuma eID em operação compartilha retrato

Um nível inferior ao solicitado faz o login falhar. Só são cobrados os logins concluídos.[19] Preços: MitID, Finnish Trust Network $0.25; BankID Sweden, Smart-ID, Mobile-ID $0.20.

Webhooks e sandbox

Verifique o X-Signature-V2 com o segredo do seu destino, rejeite um X-Timestamp com mais de 300 segundos e use o event_id como chave de idempotência. Uma entrega com falha é reenviada até duas vezes.[22] Uma aplicação de sandbox pode ativar todas as carteiras, aprova sem um login real e oferece wallet_cancelled, wallet_timeout e wallet_provider_error para testar o seu fallback.[23]

eIDPaísesNível na DiditStatus na Didit
MitIDDinamarcaSubstancialAtivo
BankID SwedenSuéciaSubstancialAtivo
Finnish Trust NetworkFinlândiaSubstancialAtivo
Smart-IDEstônia, Letônia, Lituânia, BélgicaElevadoAtivo
Mobile-IDEstônia, LituâniaElevadoAtivo
BankID NorwayNoruegaNão definidoEm breve
Freja eIDSuéciaNão definidoEm breve
itsmeBélgicaNão definidoEm breve
iDINPaíses BaixosNão definidoEm breve
Carteira de identidade eletrônica alemãAlemanhaNão definidoEm breve
FranceConnectFrançaNão definidoEm breve
ID AustriaÁustriaNão definidoSob solicitação
Cl@veEspanhaNão definidoSob solicitação
SPIDItáliaNão definidoSob solicitação
Swiss E-IDSuíçaNão definidoSob solicitação
Carteira europeia de identidade digital (EUDI Wallet)UE e EEENão definidoEm breve

A Didit fornece

  • Acesso aos esquemas, certificados e verificação da assinatura
  • Uma API de sessão, fluxo hospedado e SDKs
  • A via documental com leitura do chip por NFC para usuários sem eID

Fica com você

  • Quais eIDs aceitar em cada país
  • O nível de garantia que a sua política exige
  • A decisão de onboarding e a responsabilidade

Uma API de eID para todos os países que você atende

Ative as eIDs já em operação por país, mantenha os documentos como alternativa e pague apenas pelos logins concluídos.

Comece grátisFale conoscoLeia a documentação

Principais conclusões

  • Toda eID usa um de cinco padrões: redirecionamento, notificação push no app com código, QR code ou abertura do app, cartão e NFC, ou OpenID4VP.
  • O acesso vem primeiro: intermediários, contratos, certificados ou cadastro.
  • Verifique a assinatura e o nível de garantia em todo resultado.
  • As partes utilizadoras privadas obrigadas por lei ou por contrato a usar autenticação forte do usuário devem aceitar a carteira europeia de identidade digital (EUDI Wallet) a pedido do usuário até 24 de dezembro de 2027 (microempresas e pequenas empresas estão isentas).

Perguntas frequentes

O que é uma API de eID?

É uma interface que permite à sua aplicação pedir a um esquema nacional de identificação eletrônica, ou a um provedor que se conecta a vários, que autentique uma pessoa e devolva atributos de identidade assinados. Você ainda precisa verificar a assinatura e o nível de garantia da resposta.

Preciso de uma integração separada para cada esquema de eID?

Na integração direta, sim: cada esquema tem o próprio contrato, certificado e protocolo. Na Dinamarca, é obrigatório usar um intermediário MitID certificado, e o BankID da Suécia é contratado junto a um banco ou a um revendedor.[12][15] Uma única API de eID esconde essas diferenças atrás de uma sessão e de um formato de resultado.

Qual protocolo as eIDs nacionais usam?

Muitos usam OpenID Connect, frequentemente por meio de um gateway como ID-porten ou TARA.[5][7] Outros usam suas próprias APIs de polling (BankID Sweden, Smart-ID) ou um servidor eID que lê um cartão com chip (Alemanha).[8][13] A carteira europeia de identidade digital (EUDI Wallet) usa OpenID4VP ou ISO/IEC 18013-7.[2]

Quais dados um login com eID retorna?

Depende do esquema. O BankID Sweden retorna o número pessoal, o nome completo, o nome e o sobrenome.[8] A carteira de identidade eletrônica alemã envia apenas as categorias de dados indicadas no certificado do provedor (§ 18(5)), e não o número de identificação nacional do cartão, que a lista do § 18(3) não inclui.[14]

Como faço para exigir o nível de garantia?

Solicite o nível de que você precisa e verifique o nível declarado no resultado, como o claim acr no OIDC. O ID-porten afirma que os clientes devem validar se o nível de segurança é alto o suficiente.[5] Trate qualquer nível abaixo da sua política como insuficiente e não abra a conta.

O que deve acontecer quando o usuário não tem eID ou cancela?

Decida, por país, entre uma alternativa e uma recusa. Não repita automaticamente um login cancelado.

Como testar uma integração de eID sem usuários reais?

Simule aprovações, cancelamentos e expirações de tempo no sandbox do provedor. Uma aprovação simulada não prova que uma identidade real consegue fazer login: faça um teste autorizado com dispositivo real antes da implantação.[20]

Quando as empresas devem aceitar a EUDI Wallet?

As partes utilizadoras privadas obrigadas por lei ou por contrato a usar autenticação forte do usuário devem aceitá-la, a pedido do usuário, até 24 de dezembro de 2027. Microempresas e pequenas empresas estão isentas.[1]

Fontes

  1. Regulamento (UE) 2024/1183 (eIDAS 2), EUR-Lex, Jornal Oficial de 30 de abril de 2024, artigos 5a, 5b e 5f.
  2. Architecture and Reference Framework v3.0.0, projeto EUDI Wallet da Comissão Europeia, publicado em 23 de julho de 2026, seções 4.4.3, 5.7.1 e 6.6.3.
  3. Regulamento (UE) 2024/1624 (AMLR), EUR-Lex, artigo 22(6).
  4. Panorama dos esquemas de eID pré-notificados e notificados no âmbito do eIDAS, Comissão Europeia, consultado em 5 de outubro de 2026.
  5. ID token do ID-porten, Agência Norueguesa de Digitalização (Digdir).
  6. Anbindung mit OpenID Connect, documentação para desenvolvedores do ID Austria.
  7. Especificação técnica do TARA, Autoridade do Sistema de Informação da Estônia (RIA).
  8. Auth and sign: collect, documentação para desenvolvedores do BankID.
  9. QR-koden gjorde susen: BankID-bedrägerierna ned med 90 procent, Computer Sweden, 3 de julho de 2019 (fonte secundária).
  10. Por que às vezes vejo um código de confirmação e às vezes três, Smart-ID.
  11. Como o novo Smart-ID me protege contra fraudes, Smart-ID.
  12. Brokers do MitID, Agência Dinamarquesa para o Governo Digital.
  13. Torne-se um provedor de serviços, AusweisApp, governo federal alemão.
  14. Seção 18 da Lei do Passaporte e da Carteira de Identidade (PAuswG), Gesetze im Internet.
  15. Conecte sua empresa ao BankID, BankID.
  16. Especificação final do OpenID for Verifiable Presentations 1.0 aprovada, OpenID Foundation.
  17. Digital Credentials, W3C.
  18. Regulamento de Execução (UE) 2026/1731 da Comissão, EUR-Lex, retrato no PID a partir de 11 de agosto de 2028.
  19. Carteiras de identidade digital, documentação da Didit.
  20. Integração com Smart-ID e Mobile-ID, documentação da Didit.
  21. Configurações de recursos do fluxo de trabalho, documentação da Didit.
  22. Webhooks, documentação da Didit.
  23. Sandbox e dados de teste, documentação da Didit.
  24. Início rápido, documentação da Didit.

Veja cada eID nacional, seu nível e seu status na página de verificação por eID.

Lance o login com eID sem um contrato por esquema

Comece com as eIDs já ativas, adicione esquemas conforme seus usuários precisarem e mantenha os documentos para todos os demais.

Comece grátisFale conosco

Infraestrutura para identidade e fraude.

Uma API para KYC, KYB, Monitoramento de Transações e Análise de Carteiras. Integre em 5 minutos.

Peça para uma IA resumir esta página