Saltar para o conteúdo principal
Didit angaria 7,5 milhões de dólares para construir a infraestrutura para identidade e fraude
Didit
Voltar ao blog
Blog · 6 de outubro de 2026

Como integrar uma API de eID: normas, código e boas práticas de segurança

Guia centrado em código para integrar eID nacionais através de uma API de eID: fluxos de redirecionamento, push na 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 processo de registo peça a um sistema nacional de identificação eletrónica (eID) que autentique uma pessoa e devolva atributos de identidade assinados. Todos os sistemas usam um de cinco padrões: um redirecionamento no navegador, uma notificação push na aplicação com um código de verificação, um código QR ou abertura da aplicação, um cartão com chip lido por comunicação de campo próximo (NFC) ou uma apresentação a partir da carteira europeia de identidade digital (EUDI Wallet) através do OpenID for Verifiable Presentations (OpenID4VP).[2][6][8][14]

  • Continua a ter de 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 destina-se a engenheiros que estão a integrar eID nacionais no processo de onboarding.

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

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

PadrãoO que o utilizador fazComo o seu backend recebe a respostaExemplo
Redirecionamento (OpenID Connect, OIDC)Sai da sua página para o início de sessão do sistema, autentica-se e regressaUm código de autorização, trocado por um ID token assinadoID Austria, cujo início de sessão OIDC suporta apenas o fluxo de código de autorização[6]
Notificação push na aplicação com um códigoIntroduz um código pessoal, compara o código no ecrã com o da aplicação e introduz o PIN na aplicaçãoAguarda ou consulta periodicamente até obter um resultado assinadoSmart-ID, Mobile-ID[10][20]
Código QR ou abertura da aplicaçãoLê um código QR animado num computador, ou a aplicação abre no mesmo telemóvelConsulta periodicamente o sistema até o pedido estar concluídoBankID Suécia[8]
Cartão e NFCAproxima o cartão com chip do telemóvel e introduz o PIN do cartãoUm servidor eID lê o chip e devolve os atributosCartão de identidade eletrónico alemão[14]
Apresentação a partir da carteira (OpenID4VP)Aprova, numa aplicação de carteira, os atributos que pretende partilharUma apresentação de atributos assinados e divulgados seletivamenteCarteira europeia de identidade digital (EUDI Wallet)[2]

Alguns sistemas estão por trás de um gateway público: o TARA da Estónia é um gateway de código de autorização à frente do cartão de identificação, do Smart-ID, do Mobile-ID e das eID da UE.[7] Consulte sistemas de eID por país para saber que padrão cada sistema utiliza.

O que desenvolve e o que um fornecedor assegura

O acesso vem antes do código. Na Dinamarca, todos os prestadores de serviços têm de passar por um intermediário MitID certificado.[12] Na Suécia, compra o BankID a um banco ou a um revendedor e encomenda um certificado de parte utilizadora.[15] Na Alemanha, opera o seu próprio servidor eID, utiliza um serviço eID alojado com o seu próprio certificado ou utiliza um serviço de identificação e não detém qualquer certificado.[13] Para a EUDI Wallet, uma parte utilizadora tem de se registar no Estado-Membro onde está estabelecida.[1]

CamadaDireto, sistema a sistemaAtravés de uma única API de eID
Contratos e certificadosUm por sistema, renovado no ciclo de cada sistemaO fornecedor detém-nos; o cliente detém um único contrato
Código de protocoloOIDC, APIs de polling, um servidor eID, OpenID4VPUma API de sessão e um formato de resultado
EcrãsSeletor, QR, código de comparação, erros, por sistemaFluxo alojado ou SDK
Verificação da assinaturaSua, por chave e formato de cada sistemaFeita pelo fornecedor, comunicada como veredicto
Nível de garantiaCabe-lhe a si pedir e verificarRegistado no resultado; a política continua a ser definida por si
Alternativa para pessoas sem eIDUm segundo fornecedor ou um processo manualUma via documental no mesmo fluxo
A decisão de integração do clienteSuaContinua a ser sua

Existem intermediários certificados para a maioria dos sistemas nórdicos e bálticos. Opte pela ligação direta para um único sistema com volume elevado; utilize uma única API quando os utilizadores vêm de vários países.

O fluxo de redirecionamento, passo a passo

Este é o fluxo de código de autorização OIDC. O seu backend reencaminha o navegador com um state e um nonce aleatórios. Depois, troca o código devolvido por um token de ID e verifica-o.

Utilizador O seu backend Fornecedor de eID
1Inicia o registo
2Redirecionamento com state, nonce

O utilizador autentica-se com o eID

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

Verificar state, nonce, assinatura, acr

6Conta aberta

Um início de sessão por redirecionamento. Intermediários e gateways acrescentam saltos no passo 2, não passos novos para si.

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

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

O Smart-ID e o Mobile-ID nunca saem da sua página. O utilizador introduz um código de identificação pessoal (o Mobile-ID pede também o número de telefone). A sua página mostra um código curto e o mesmo código aparece na app. O utilizador aprova com o PIN no telemóvel apenas quando os códigos coincidem.[20] O Smart-ID pode também mostrar três códigos e pedir ao utilizador que escolha o correto.[10]

Verifique a sua identidade

Escolha como verificar

Inicie sessão com a identificação eletrónica que já utiliza.

Smart-ID

1O utilizador escolhe um eID entre os que aceita.

Verifique a sua identidade

Verifique o código

4821

O mesmo código aparece na sua app Smart-ID.

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

Smart-ID

Introduza o seu PIN

Apenas se o código corresponder ao que está no ecrã.

3O utilizador introduz o PIN na app, nunca na sua página.

Verifique a sua identidade

Está verificado

  • Nome completoPartilhado
  • Data de nascimentoPartilhada
  • Código pessoalPartilhado
  • MoradaNão partilhada

4Os atributos assinados chegam ao seu backend.

O BankID Sweden segue o mesmo modelo, com um QR em vez de um código digitado: o utilizador abre a aplicação no mesmo dispositivo com um token de arranque automático, ou lê um QR animado apresentado no outro dispositivo, e o seu backend consulta /collect até a ordem ficar concluída. A ordem concluída contém o número pessoal, o nome, o nome próprio e o apelido, bem como campos de dispositivo e de assinatura e campos de risco opcionais.[8] O Smart-ID+ passa o Smart-ID para este modelo (QR dinâmico no computador, app-to-app no telemóvel), pelo que os utilizadores deixam de digitar um código pessoal num site.[11]

Utilizador O seu backend API do esquema Aplicação do esquema
1Introduz o código pessoal
2Mostra o código de comparação
3Inicia o pedido de autenticação
4Notificação push para o telemóvel

A aplicação mostra o mesmo código; o utilizador introduz o PIN

5Consulta o resultado
6Resultado assinado

Um início de sessão com Smart-ID ou Mobile-ID, pela ordem em que o utilizador o vê: código pessoal, código de comparação na sua página, o mesmo código na aplicação e, por fim, o PIN.[20] Na variante QR do BankID, o passo 1 desaparece e o passo 2 mostra um código QR.

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

Com o cartão eID alemão, o utilizador aproxima o cartão de um telemóvel com NFC na AusweisApp. Antes de o PIN ser introduzido, a lei exige que a aplicação mostre o nome e a morada do prestador e as categorias de dados pedidas, e só 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) enumera como formas de apresentação remota o OpenID4VP através de redirecionamentos e de esquemas de URI personalizados, como openid4vp://, o OpenID4VP através da W3C Digital Credentials API, ou a ISO/IEC 18013-7 através dessa API.[2][17] Antes de partilhar o que quer que seja, a carteira autentica o seu certificado de acesso, verifica que não pede mais atributos do que os que registou e permite ao utilizador aprovar cada um deles.[2] O retrato só passa a ser obrigatório nos dados de identificação pessoal (PID) a partir de 11 de agosto de 2028, exceto quando o utilizador opte expressamente por não o incluir.[18]

  1. 23 de julho de 2026ARF v3.0.0Versão atual do quadro da carteira.
  2. 24 de dezembro de 2026Prazo das carteirasCada Estado-Membro disponibiliza pelo menos uma carteira.
  3. 24 de dezembro de 2027AceitaçãoAs partes utilizadoras privadas obrigadas por lei ou por contrato a utilizar autenticação forte do utilizador aceitam-na a pedido do utilizador. As micro e pequenas empresas estão isentas.
  4. 11 de agosto de 2028RetratoO retrato do PID passa a ser obrigatório, salvo se o utilizador optar por não o incluir.

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

O guia da EUDI Wallet aborda o registo das partes utilizadoras e o grau de preparação por país.

Erros, alternativas e novas tentativas

Um início de sessão termina como concluído, cancelado, expirado ou falhado. Trate os três últimos da mesma forma e decida, por país, o que acontece a seguir.

1Disponibilize os eID do país do utilizador

Lista de aceitação por país; o utilizador escolhe.

O início de sessão foi concluído com uma assinatura válida e o nível exigido

Sim

Guardar os atributos assinados

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

Não

Recorrer à alternativa ou recusar

Documento com leitura do chip, ou terminar a sessão.

2Fazer a triagem e decidir

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

Nunca repita automaticamente um início de sessão cancelado. Torne o callback idempotente, para que uma atualização da página ou um evento duplicado não possa abrir duas contas. Mantenha uma via para pessoas sem eID, normalmente um documento de identificação com leitura do chip por NFC, deteção de vivacidade e correspondência facial. O artigo verificação de eID por NFC e segurança do chip trata dessa via.

Lista de verificação de segurança para uma integração de API de eID

  • Gere um state e um nonce novos em cada início de sessão e rejeite um callback que não lhes corresponda.
  • Verifique a assinatura de cada token ou resultado antes de ler qualquer atributo.
  • Verifique o nível de garantia no resultado, e não apenas no pedido.[5]
  • Exija nível substancial ou elevado quando a via de eID do AMLR se aplicar a si.[3]
  • Nunca recolha o PIN do eID na sua página. Esse PIN pertence à aplicação do esquema.[20]
  • Prefira o código QR ou a abertura de aplicação para aplicação em vez de códigos digitados nos inícios de sessão entre dispositivos.[11]
  • Peça apenas os atributos que registou e de que precisa.[1]
  • Verifique as assinaturas e os carimbos temporais dos webhooks antes de confiar num resultado.

A base jurídica é o Regulamento Antibranqueamento de Capitais (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 respeita aos níveis de garantia "substancial" ou "elevado"».[3] Nem todos os esquemas estão notificados: o MitID consta da lista da UE de esquemas notificados, o Smart-ID não.[4]

Atenção

A ARF alerta para o facto de os fluxos entre dispositivos com URI personalizados «serem vulneráveis a ataques de phishing e de retransmissão» e não recomenda esquemas de URI personalizados para a apresentação entre dispositivos.[2] Segundo a Computer Sweden, a polícia registou em julho de 2019 uma descida de 90% nas burlas telefónicas com BankID após a introdução dos códigos QR.[9]

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

A Didit reúne cinco eIDs disponíveis numa única API de sessões (MitID, BankID Sweden, Finnish Trust Network, Smart-ID e Mobile-ID, em sete países), com uma via por documento no mesmo fluxo de trabalho. Há mais esquemas no roteiro da Didit, e a aceitação da carteira europeia de identidade digital (EUDI Wallet) chega brevemente. A Didit nunca pede o PIN. Mais informação na página de carteiras de identidade digital e na documentação das carteiras.[19]

Ativar eIDs disponíveis por país

Na consola: Workflows, o passo ID Verification, Countries, «Wallets accepted». Através da API, a funcionalidade 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 fragmento 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 no telemóvel:[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 uma ordem de prioridade. on_failure assume o valor fallback_to_document ou decline. Uma carteira que não esteja disponível no seu ambiente faz rejeitar toda a gravação, por isso consulte primeiro o catálogo.[21]

Captura de ecrã pendente: console-wallets-accepted

Escolha dos eID aceites para um país na consola da Didit.

Criar uma sessão e ler o resultado

POST /v3/session/ com o seu workflow_id (e, opcionalmente, vendor_data e um callback) devolve session_id, url e session_token. Abra o URL ou utilize 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 indica
providermitidO eID que o utilizador escolheu
issuing_authorityDanish Agency for Digital GovernmentQuem garante a identidade
issuing_countryDNKA via de identificação, não a nacionalidade
level_of_assurancesubstantialO nível de garantia declarado pelo esquema
signature_validtrueA asserção assinada foi validada
attributesfull_name, date_of_birth, cpr_aliasAtributos validados, os nomes variam consoante o eID
portrait, face_match_scorenullNenhum eID disponível partilha um retrato

Um nível inferior ao pedido faz falhar o início de sessão. Só são faturados os inícios de sessão concluídos.[19] Preços: MitID, Finnish Trust Network $0.25; BankID Sweden, Smart-ID, Mobile-ID $0.20.

Webhooks e sandbox

Verifique X-Signature-V2 com o segredo do seu destino, rejeite um X-Timestamp com mais de 300 segundos e baseie a idempotência em event_id. Uma entrega falhada é repetida até duas vezes.[22] Uma aplicação sandbox pode ativar todas as carteiras, aprova sem uma autenticação real e disponibiliza wallet_cancelled, wallet_timeout e wallet_provider_error para testar a sua alternativa.[23]

eIDPaísesNível DiditEstado Didit
MitIDDinamarcaSubstancialDisponível
BankID SwedenSuéciaSubstancialDisponível
Finnish Trust NetworkFinlândiaSubstancialDisponível
Smart-IDEstónia, Letónia, Lituânia, BélgicaElevadoDisponível
Mobile-IDEstónia, LituâniaElevadoDisponível
BankID NorwayNoruegaNão definidoBrevemente
Freja eIDSuéciaNão definidoBrevemente
itsmeBélgicaNão definidoBrevemente
iDINPaíses BaixosNão definidoBrevemente
Cartão de identidade eletrónico alemãoAlemanhaNão definidoBrevemente
FranceConnectFrançaNão definidoBrevemente
ID AustriaÁustriaNão definidoMediante pedido
Cl@veEspanhaNão definidoMediante pedido
SPIDItáliaNão definidoMediante pedido
Swiss E-IDSuíçaNão definidoMediante pedido
Carteira europeia de identidade digital (EUDI Wallet)UE e EEENão definidoBrevemente

A Didit fornece

  • Acesso aos sistemas, certificados e verificação da assinatura
  • Uma API de sessão, fluxo alojado e SDKs
  • A via documental com leitura do chip NFC para utilizadores sem eID

Fica a seu cargo

  • Que eID aceitar em cada país
  • O nível de garantia exigido pela sua política
  • A decisão de onboarding e a responsabilidade

Uma API de eID para todos os países onde opera

Ative as eID disponíveis em cada país, mantenha os documentos como alternativa e pague apenas pelos inícios de sessão concluídos.

Começar grátisFale connoscoLer a documentação

Pontos-chave

  • Todas as eID usam um de cinco padrões: redirecionamento, notificação push na app com um código, QR ou abertura da app, cartão e NFC, ou OpenID4VP.
  • O acesso vem primeiro: intermediários, contratos, certificados ou registo.
  • Verifique a assinatura e o nível de garantia em cada resultado.
  • As partes utilizadoras privadas obrigadas por lei ou por contrato a utilizar autenticação forte do utilizador têm de aceitar a EUDI Wallet a pedido do utilizador até 24 de dezembro de 2027 (as micro e pequenas empresas estão isentas).

Perguntas frequentes

O que é uma API de eID?

É uma interface que permite à sua aplicação pedir a um sistema nacional de identificação eletrónica, ou a um fornecedor que se liga a vários, que autentique uma pessoa e devolva atributos de identidade assinados. Continua a ter de verificar a assinatura e o nível de garantia da resposta.

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

Numa ligação direta, sim: cada sistema tem o seu próprio contrato, certificado e protocolo. Na Dinamarca, tem de usar um intermediário MitID certificado, e o BankID Sweden é adquirido a um banco ou a um revendedor.[12][15] Uma única API de eID esconde essas diferenças por detrás de uma sessão e de um formato de resultado.

Que protocolo usam as eID nacionais?

Muitos utilizam OpenID Connect, frequentemente através de um gateway como o ID-porten ou o TARA.[5][7] Outros utilizam as 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) utiliza OpenID4VP ou ISO/IEC 18013-7.[2]

Que dados devolve um início de sessão com eID?

Depende do esquema. O BankID Sweden devolve o número pessoal, o nome, o nome próprio e o apelido.[8] O cartão eID alemão envia apenas as categorias de dados indicadas no certificado do prestador (§ 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 garanto o cumprimento do nível de garantia?

Solicite o nível de que necessita e verifique o nível declarado no resultado, como a claim acr no OIDC. O ID-porten indica que os clientes têm de validar que o nível de segurança é suficientemente elevado.[5] Trate qualquer nível abaixo da sua política como insuficiente e não abra a conta.

O que deve acontecer quando um utilizador não tem eID ou cancela?

Decida, por país, entre uma via alternativa e uma recusa. Não repita automaticamente um início de sessão cancelado.

Como testo uma integração de eID sem utilizadores reais?

Simule aprovações, cancelamentos e tempos esgotados na sandbox do prestador. Uma aprovação simulada não prova que uma identidade real consegue iniciar sessão: realize um teste autorizado num dispositivo real antes da implementação.[20]

Quando têm as empresas de aceitar a EUDI Wallet?

As partes utilizadoras privadas obrigadas por lei ou por contrato a utilizar autenticação forte do utilizador têm de aceitá-la a pedido do utilizador até 24 de dezembro de 2027. As micro 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, secções 4.4.3, 5.7.1 e 6.6.3.
  3. Regulamento (UE) 2024/1624 (AMLR), EUR-Lex, Artigo 22(6).
  4. Overview of pre-notified and notified eID schemes under eIDAS, Comissão Europeia, consultado em 5 de outubro de 2026.
  5. ID-porten ID token, Agência Norueguesa de Digitalização (Digdir).
  6. Anbindung mit OpenID Connect, documentação para programadores do ID Austria.
  7. TARA technical specification, Autoridade dos Sistemas de Informação da Estónia (RIA).
  8. Auth and sign: collect, documentação para programadores 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. Why do I sometimes see one confirmation code and sometimes three, Smart-ID.
  11. How does the new Smart-ID protect me from fraud, Smart-ID.
  12. MitID brokers, Agência Dinamarquesa para o Governo Digital.
  13. Become a service provider, AusweisApp, Governo federal alemão.
  14. Secção 18 da Lei dos Passaportes e Bilhetes de Identidade (PAuswG), Gesetze im Internet.
  15. Connect your business to BankID, BankID.
  16. OpenID for Verifiable Presentations 1.0 final specification approved, OpenID Foundation.
  17. Digital Credentials, W3C.
  18. Regulamento de Execução (UE) 2026/1731 da Comissão, EUR-Lex, retrato nos PID a partir de 11 de agosto de 2028.
  19. Carteiras de identidade digital, documentação da Didit.
  20. Integração de Smart-ID e Mobile-ID, documentação da Didit.
  21. Configurações de funcionalidades 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.

Consulte cada eID nacional, o seu nível e o seu estado na página de verificação de eID.

Lance o início de sessão com eID sem um contrato por sistema

Comece pelas eID disponíveis, acrescente sistemas à medida que os seus utilizadores precisarem deles e mantenha os documentos para todos os outros.

Começar gratuitamenteFale connosco

Infraestrutura para identidade e fraude.

Uma API para KYC, KYB, Monitorização de Transações e Rastreio de Carteiras. Integre em 5 minutos.

Peça a uma IA para resumir esta página