Execute a verificação de eID com cinco eIDs nacionais, já disponíveis em sete países: MitID, BankID Sweden, Finnish Trust Network, Smart-ID e Mobile-ID. Cada um devolve um nome assinado, data de nascimento e identificador do sistema, como o personnummer sueco (o MitID devolve um pseudonimizado). Quem não tiver um eID conclui o processo com uma verificação de documento em mais de 220 países e territórios, no mesmo fluxo de trabalho.
Não partilhamos morada nem fotografia. Adicione prova de vida e correspondência facial se precisar de uma selfie.
O que um início de sessão eID lhe oferece
Assinado pelo emissor. Verificado pela Didit.
Um início de sessão eID (identificação eletrónica) substitui uma fotografia de um documento por dados assinados pelo sistema. A Didit verifica a assinatura e coloca o resultado na sessão.
01Nome completo e data de nascimento, assinados pelo sistema
02Um identificador do sistema: personnummer, código de identidade pessoal ou código pessoal (o MitID devolve um identificador pseudonimizado)
03O nível de garantia indicado pelo sistema
04Uma verificação de assinatura em cada resultado: signature_valid
05Sem foto de documento, sem PIN partilhado com a Didit, e sem custos a menos que o início de sessão seja concluído
Como funciona
De eID nacional a cliente verificado em quatro passos.
Passo 01 / 04
01
Escolha os eIDs por país
No construtor de fluxos de trabalho, abra o passo de Verificação de ID, escolha um país e selecione os eIDs que aceita em "Carteiras aceites". Depois, escolha o que acontece quando um início de sessão falha: voltar à captura de documentos ou recusar.
Envie o utilizador para o fluxo
Crie uma sessão com uma chamada de API e redirecione para o fluxo alojado, ou abra-o no SDK Web, iOS, Android, React Native ou Flutter. O seletor mostra apenas os eIDs que aceitou para o país do utilizador.
O utilizador aprova na sua app eID
Transferência no mesmo dispositivo ou um código QR no desktop para MitID, BankID e Finnish Trust Network, ou um código de comparação aprovado no telemóvel para Smart-ID e Mobile-ID. O PIN permanece na app eID.
Recebe o resultado assinado
Um webhook assinado informa-o de que o estado mudou. A decisão inclui o sistema, os atributos assinados, o nível de garantia e a verificação da assinatura, com verification_method definido como wallet.
Verificação eID · Seis partes
eIDs nacionais e um percurso de documento, num só fluxo de trabalho.
Cada linha é uma parte do mesmo fluxo de trabalho. Ative o que o seu onboarding precisa, país a país, e mantenha uma única integração.
MitID na Dinamarca, BankID na Suécia, Finnish Trust Network na Finlândia, Smart-ID na Estónia, Letónia, Lituânia e Bélgica, e Mobile-ID na Estónia e Lituânia. Cada um devolve um nome completo, uma data de nascimento e o identificador próprio do sistema: o personnummer sueco, o código de identidade pessoal finlandês, o código pessoal báltico, ou um alias CPR pseudonimizado para MitID. Nenhum eID ativo partilha um endereço ou um retrato.
Um fluxo de trabalho, com um percurso de documento para todos os outros.
Nem todos têm um eID, e muitos clientes vivem onde nenhum está ativo ainda. Defina o fallback por país e a mesma sessão passa para uma verificação de documento: mais de 14.000 tipos de documentos, leitura de chip (NFC) de passaportes eletrónicos e cartões eID por $0.15, prova de vida passiva e correspondência facial. Uma verificação KYC (know your customer) completa com um documento custa $0.33.
Art. 22(6)(b)eID nacionalMitIDInício de sessão eIDAtributos assinadosCarteira EUDI: em breve
Art. 22(6)(a)Documento de identidadePassaporteLeitura de chipProva de vidaCorrespondência facialPara pessoas sem um eID ativo
Identidade verificadaNome · data de nascimento · identificadorVia utilizadaMitID
03 · Dados assinados
Dados assinados sobre os quais pode agir.
Cada resultado eID é colocado num objeto wallet_verification na sessão: o sistema, o país emissor, o nível de garantia, os atributos e signature_valid. Se um sistema devolver um nível de garantia mais fraco do que o solicitado, o início de sessão falha em vez de ser silenciosamente rebaixado. Apenas os inícios de sessão concluídos são faturados. Os cancelados, expirados e falhados são gratuitos.
Comprove a idade a partir de uma data de nascimento assinada.
Um início de sessão eID devolve uma data de nascimento assinada pelo sistema, comprovando a idade sem necessidade de uma fotografia do documento. Para grandes volumes, um design recomendado é a estimativa de idade primeiro, a $0.10 por verificação com prova de vida passiva, e uma verificação eID ou de documento apenas para resultados limítrofes.
Faça o screening da pessoa que acabou de verificar.
Adicione o rastreio AML (anti-branqueamento de capitais) após a etapa eID e o nome e a data de nascimento verificados entram diretamente nas verificações de sanções, PEP (pessoa politicamente exposta) e listas de vigilância em mais de 1.300 listas, por $0.20 por verificação. A monitorização contínua faz um novo rastreio todos os dias por $0.07 por pessoa por ano. Uma possível correspondência é enviada para o seu revisor.
iDIN, o cartão eID alemão, Freja eID, o cartão de identificação estónio, eParaksts, BankID Norway, Vipps, Buypass, itsme, OneID, ConnectID, UAE PASS, gov.br, GOV.UK Wallet, Bank iD, MojeID, Diia, FranceConnect e Auðkenni estão no nosso roadmap, e a aceitação da EUDI Wallet (EU Digital Identity Wallet) estará disponível em breve. Para qualquer outro sistema, fale connosco: a Didit adiciona sistemas a pedido, e a rota de documentos já funciona nesse país.
A cobertura segue o catálogo país a país. Uma bandeira aqui significa que uma carteira está listada para esse país, não que esteja ativa.
Cobertura eID
Todos os eIDs nacionais, país a país.
Os eIDs nacionais e bancários em toda a Europa e os principais sistemas de ID digital noutros locais: o que cada um pede ao utilizador, o seu nível de garantia e o que devolve. O estado e os preços provêm do catálogo de carteiras em tempo real da Didit.
136 de 136 sistemas
Sistema
País
Estado Didit
Nível de garantia
O que o utilizador faz
Dados devolvidos
Preço por início de sessão
MitID
País
Dinamarca
Estado Didit
Disponível
Nível de garantia
Substancial, Alto · Notificado pela UE
O que o utilizador faz
Aprova na app eID
Dados devolvidos
Nome, data de nascimento, alias CPR pseudonimizado, nível de garantia, verificação de assinatura
Preço por início de sessão
$0.25
Mobile-ID
País
Estónia
Estado Didit
Disponível
Nível de garantia
Alto · Notificado pela UE
O que o utilizador faz
Confirma um código no telemóvel
Dados devolvidos
Nome, data de nascimento, código pessoal, verificação de assinatura
Preço por início de sessão
$0.20
Smart-ID
País
Estónia
Estado Didit
Disponível
Nível de garantia
Alto · não notificado na UE
O que o utilizador faz
Confirma um código no telemóvel
Dados devolvidos
Nome, data de nascimento, código pessoal, verificação de assinatura
Preço por início de sessão
$0.20
Estonian ID card and Digi-ID
País
Estónia
Estado Didit
Brevemente
Nível de garantia
Alto · Notificado pela UE
O que o utilizador faz
Toca no cartão de identificação (NFC) ou usa um leitor de cartões
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
Finnish Trust Network (bank IDs)
País
Finlândia
Estado Didit
Disponível
Nível de garantia
Substancial · não notificado na UE
O que o utilizador faz
Inicia sessão na página do sistema
Dados devolvidos
Nome, data de nascimento, código de identificação pessoal, verificação de assinatura
Preço por início de sessão
$0.25
FINeID citizen certificate (ID card)
País
Finlândia
Estado Didit
A pedido
Nível de garantia
Alto · Notificado pela UE
O que o utilizador faz
Toca no cartão de identificação (NFC) ou usa um leitor de cartões
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
Mobiilivarmenne
País
Finlândia
Estado Didit
A pedido
Nível de garantia
Substancial · não notificado na UE
O que o utilizador faz
Confirma um código no telemóvel
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
Auðkenni (app, SIM and card)
País
Islândia
Estado Didit
Brevemente
Nível de garantia
não notificado na UE
O que o utilizador faz
Aprova na app eID
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
Mobile-ID
País
Lituânia
Estado Didit
Disponível
Nível de garantia
Alto · não notificado na UE
O que o utilizador faz
Confirma um código no telemóvel
Dados devolvidos
Nome, data de nascimento, código pessoal, verificação de assinatura
Preço por início de sessão
$0.20
Smart-ID
País
Lituânia
Estado Didit
Disponível
Nível de garantia
Alto · não notificado na UE
O que o utilizador faz
Confirma um código no telemóvel
Dados devolvidos
Nome, data de nascimento, código pessoal, verificação de assinatura
Preço por início de sessão
$0.20
Asmens tapatybės kortelė (identity card)
País
Lituânia
Estado Didit
A pedido
Nível de garantia
Alto · Notificado pela UE
O que o utilizador faz
Toca no cartão de identificação (NFC) ou usa um leitor de cartões
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
Smart-ID
País
Letónia
Estado Didit
Disponível
Nível de garantia
não notificado na UE
O que o utilizador faz
Confirma um código no telemóvel
Dados devolvidos
Nome, data de nascimento, código pessoal, verificação de assinatura
Preço por início de sessão
$0.20
eParaksts mobile
País
Letónia
Estado Didit
Brevemente
Nível de garantia
Substancial, Alto · Notificado pela UE
O que o utilizador faz
Aprova na app eID
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
eID karte (identity card)
País
Letónia
Estado Didit
A pedido
Nível de garantia
Substancial, Alto · Notificado pela UE
O que o utilizador faz
Toca no cartão de identificação (NFC) ou usa um leitor de cartões
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
eParaksts karte
País
Letónia
Estado Didit
A pedido
Nível de garantia
Substancial, Alto · Notificado pela UE
O que o utilizador faz
Toca no cartão de identificação (NFC) ou usa um leitor de cartões
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
BankID (Norway)
País
Noruega
Estado Didit
Brevemente
Nível de garantia
Alto · Notificado pela UE
O que o utilizador faz
Aprova na app eID
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
Buypass ID
País
Noruega
Estado Didit
Brevemente
Nível de garantia
Alto · Notificado pela UE
O que o utilizador faz
Aprova na app eID
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
Vipps
País
Noruega
Estado Didit
Brevemente
Nível de garantia
Não declarado
O que o utilizador faz
Aprova na app eID
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
Commfides eID
País
Noruega
Estado Didit
A pedido
Nível de garantia
Alto · não notificado na UE
O que o utilizador faz
Toca no cartão de identificação (NFC) ou usa um leitor de cartões
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
MinID
País
Noruega
Estado Didit
A pedido
Nível de garantia
Substancial · não notificado na UE
O que o utilizador faz
Palavra-passe mais um código de uso único
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
BankID Sweden
País
Suécia
Estado Didit
Disponível
Nível de garantia
Substancial · Notificado pela UE
O que o utilizador faz
Aprova na app eID
Dados devolvidos
Nome, data de nascimento, personnummer, verificação de assinatura
Preço por início de sessão
$0.20
Freja eID
País
Suécia
Estado Didit
Brevemente
Nível de garantia
Substancial · Notificado pela UE (apenas Freja+ obtido através de um agente ATG)
O que o utilizador faz
Aprova na app eID
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
SverigeID
Ainda não lançado
País
Suécia
Estado Didit
A pedido
Nível de garantia
não notificado na UE
O que o utilizador faz
Toca no cartão de identificação (NFC) ou usa um leitor de cartões
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
ID Austria
País
Áustria
Estado Didit
A pedido
Nível de garantia
Alto · Notificado pela UE
O que o utilizador faz
Aprova na app eID
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
Smart-ID
País
Bélgica
Estado Didit
Disponível
Nível de garantia
Alto · não notificado na UE
O que o utilizador faz
Confirma um código no telemóvel
Dados devolvidos
Nome, data de nascimento, código pessoal, verificação de assinatura
Preço por início de sessão
$0.20
itsme
País
Bélgica
Estado Didit
Brevemente
Nível de garantia
Alto · Notificado pela UE
O que o utilizador faz
Aprova na app eID
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
Belgian eID card
País
Bélgica
Estado Didit
A pedido
Nível de garantia
Alto · Notificado pela UE
O que o utilizador faz
Toca no cartão de identificação (NFC) ou usa um leitor de cartões
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
MyGov.be key
País
Bélgica
Estado Didit
A pedido
Nível de garantia
não notificado na UE
O que o utilizador faz
Aprova na app eID
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
Swiss E-ID (swiyu)
Ainda não lançado
País
Suíça
Estado Didit
A pedido
Nível de garantia
não notificado na UE
O que o utilizador faz
Digitaliza um código QR com a app
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
SwissID
País
Suíça
Estado Didit
A pedido
Nível de garantia
não notificado na UE
O que o utilizador faz
Palavra-passe mais um código de uso único
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
Online-Ausweisfunktion (Personalausweis)
País
Alemanha
Estado Didit
Brevemente
Nível de garantia
Alto · Notificado pela UE
O que o utilizador faz
Toca no cartão de identificação (NFC) ou usa um leitor de cartões
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
d-you
Ainda não lançado
País
Alemanha
Estado Didit
A pedido
Nível de garantia
Não declarado
O que o utilizador faz
Aprova na app eID
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
FranceConnect
País
França
Estado Didit
Brevemente
Nível de garantia
Não declarado
O que o utilizador faz
Inicia sessão na página do sistema
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
France Identité
País
França
Estado Didit
A pedido
Nível de garantia
Alto · Notificado pela UE
O que o utilizador faz
Toca no cartão de identificação (NFC) ou usa um leitor de cartões
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
L'Identité Numérique La Poste
País
França
Estado Didit
A pedido
Nível de garantia
Substancial · Notificado pela UE
O que o utilizador faz
Aprova na app eID
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
eID.li
País
Listenstaine
Estado Didit
A pedido
Nível de garantia
Substancial, Alto · Notificado pela UE
O que o utilizador faz
Aprova na app eID
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
itsme
País
Luxemburgo
Estado Didit
Brevemente
Nível de garantia
Não declarado
O que o utilizador faz
Aprova na app eID
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
Luxembourg eID card
País
Luxemburgo
Estado Didit
A pedido
Nível de garantia
Alto · Notificado pela UE
O que o utilizador faz
Toca no cartão de identificação (NFC) ou usa um leitor de cartões
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
LuxTrust
País
Luxemburgo
Estado Didit
A pedido
Nível de garantia
não notificado na UE
O que o utilizador faz
Aprova na app eID
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
iDIN
País
Países Baixos
Estado Didit
Brevemente
Nível de garantia
não notificado na UE
O que o utilizador faz
Inicia sessão na página do sistema
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
itsme
País
Países Baixos
Estado Didit
Brevemente
Nível de garantia
Não declarado
O que o utilizador faz
Aprova na app eID
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
DigiD
País
Países Baixos
Estado Didit
A pedido
Nível de garantia
Substancial, Alto · Notificado pela UE
O que o utilizador faz
Aprova na app eID
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
eHerkenning (business login)
País
Países Baixos
Estado Didit
A pedido
Nível de garantia
Substancial, Alto · Notificado pela UE
O que o utilizador faz
Palavra-passe mais um código de uso único
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
Yivi
País
Países Baixos
Estado Didit
A pedido
Nível de garantia
não notificado na UE
O que o utilizador faz
Digitaliza um código QR com a app
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
GOV.UK Wallet
País
Reino Unido
Estado Didit
Brevemente
Nível de garantia
Não declarado
O que o utilizador faz
Aprova na app eID
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
OneID
País
Reino Unido
Estado Didit
Brevemente
Nível de garantia
Não declarado
O que o utilizador faz
Inicia sessão na página do sistema
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
GOV.UK One Login
País
Reino Unido
Estado Didit
A pedido
Nível de garantia
não notificado na UE · GPG 45 medium
O que o utilizador faz
Inicia sessão na página do sistema
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
Government Digital Wallet
Ainda não lançado
País
Irlanda
Estado Didit
A pedido
Nível de garantia
não notificado na UE
O que o utilizador faz
Digitaliza um código QR com a app
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
MyGovID
País
Irlanda
Estado Didit
A pedido
Nível de garantia
não notificado na UE · SAFE 2
O que o utilizador faz
Palavra-passe mais um código de uso único
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
Digital Identity (IdentiTek)
Ainda não lançado
País
Albânia
Estado Didit
A pedido
Nível de garantia
Não declarado
O que o utilizador faz
Aprova na app eID
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
e-Albania
País
Albânia
Estado Didit
A pedido
Nível de garantia
não notificado na UE
O que o utilizador faz
Palavra-passe mais um código de uso único
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
B-Trust Mobile
País
Bulgária
Estado Didit
A pedido
Nível de garantia
não notificado na UE
O que o utilizador faz
Aprova na app eID
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
eAuth
País
Bulgária
Estado Didit
A pedido
Nível de garantia
não notificado na UE
O que o utilizador faz
Inicia sessão na página do sistema
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
Electronic identity certificate (identity card)
Ainda não lançado
País
Bulgária
Estado Didit
A pedido
Nível de garantia
não notificado na UE
O que o utilizador faz
Toca no cartão de identificação (NFC) ou usa um leitor de cartões
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
Evrotrust eID
País
Bulgária
Estado Didit
A pedido
Nível de garantia
Substancial, Alto · Notificado pela UE
O que o utilizador faz
Aprova na app eID
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
Cyprus national eID
País
Chipre
Estado Didit
A pedido
Nível de garantia
Alto · Notificado pela UE
O que o utilizador faz
Aprova na app eID
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
Bank iD
País
Chéquia
Estado Didit
Brevemente
Nível de garantia
não notificado na UE
O que o utilizador faz
Inicia sessão na página do sistema
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
MojeID
País
Chéquia
Estado Didit
Brevemente
Nível de garantia
Baixo, Substancial, Alto · Notificado pela UE
O que o utilizador faz
Palavra-passe mais um código de uso único
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
eDoklady
País
Chéquia
Estado Didit
A pedido
Nível de garantia
não notificado na UE
O que o utilizador faz
Aprova na app eID
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
eObčanka (identity card)
País
Chéquia
Estado Didit
A pedido
Nível de garantia
Alto · Notificado pela UE
O que o utilizador faz
Toca no cartão de identificação (NFC) ou usa um leitor de cartões
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
Identita občana (NIA)
País
Chéquia
Estado Didit
A pedido
Nível de garantia
Não declarado
O que o utilizador faz
Inicia sessão na página do sistema
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
Mobilní klíč eGovernmentu
País
Chéquia
Estado Didit
A pedido
Nível de garantia
Baixo, Substancial, Alto · Notificado pela UE
O que o utilizador faz
Digitaliza um código QR com a app
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
Cartera Digital Beta
Ainda não lançado
País
Espanha
Estado Didit
A pedido
Nível de garantia
não notificado na UE
O que o utilizador faz
Digitaliza um código QR com a app
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
Cl@ve
País
Espanha
Estado Didit
A pedido
Nível de garantia
não notificado na UE
O que o utilizador faz
Aprova na app eID
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
DNIe (DNI 3.0 and 4.0)
País
Espanha
Estado Didit
A pedido
Nível de garantia
Alto · Notificado pela UE
O que o utilizador faz
Toca no cartão de identificação (NFC) ou usa um leitor de cartões
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
MiDNI
País
Espanha
Estado Didit
A pedido
Nível de garantia
não notificado na UE
O que o utilizador faz
Digitaliza um código QR com a app
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
Gov.gr Wallet
País
Grécia
Estado Didit
A pedido
Nível de garantia
não notificado na UE
O que o utilizador faz
Digitaliza um código QR com a app
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
TAXISnet credentials
País
Grécia
Estado Didit
A pedido
Nível de garantia
não notificado na UE
O que o utilizador faz
Palavra-passe mais um código de uso único
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
Certilia mobile.ID
País
Croácia
Estado Didit
A pedido
Nível de garantia
não notificado na UE
O que o utilizador faz
Aprova na app eID
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
eOI (identity card)
País
Croácia
Estado Didit
A pedido
Nível de garantia
Alto · Notificado pela UE
O que o utilizador faz
Toca no cartão de identificação (NFC) ou usa um leitor de cartões
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
NIAS (e-Građani)
País
Croácia
Estado Didit
A pedido
Nível de garantia
não notificado na UE (utiliza a eOI, notificada pela UE no nível Alto)
O que o utilizador faz
Inicia sessão na página do sistema
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
DÁP (Digitális Állampolgárság)
País
Hungria
Estado Didit
A pedido
Nível de garantia
não notificado na UE
O que o utilizador faz
Digitaliza um código QR com a app
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
Ügyfélkapu+
País
Hungria
Estado Didit
A pedido
Nível de garantia
não notificado na UE
O que o utilizador faz
Palavra-passe mais um código de uso único
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
CIE and CieID
País
Itália
Estado Didit
A pedido
Nível de garantia
Baixo, Substancial, Alto · Notificado pela UE
O que o utilizador faz
Toca no cartão de identificação (NFC) ou usa um leitor de cartões
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
IT-Wallet
País
Itália
Estado Didit
A pedido
Nível de garantia
não notificado na UE
O que o utilizador faz
Aprova na app eID
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
SPID
País
Itália
Estado Didit
A pedido
Nível de garantia
Baixo, Substancial, Alto · Notificado pela UE
O que o utilizador faz
Palavra-passe mais um código de uso único
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
Carte de identitate (identity card)
País
Moldávia
Estado Didit
A pedido
Nível de garantia
não notificado na UE
O que o utilizador faz
Toca no cartão de identificação (NFC) ou usa um leitor de cartões
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
EVO
País
Moldávia
Estado Didit
A pedido
Nível de garantia
não notificado na UE
O que o utilizador faz
Digitaliza um código QR com a app
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
EVOSign
País
Moldávia
Estado Didit
A pedido
Nível de garantia
não notificado na UE
O que o utilizador faz
Aprova na app eID
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
MPass
País
Moldávia
Estado Didit
A pedido
Nível de garantia
não notificado na UE
O que o utilizador faz
Inicia sessão na página do sistema
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
Semnătura Mobilă
País
Moldávia
Estado Didit
A pedido
Nível de garantia
não notificado na UE
O que o utilizador faz
Confirma um código no telemóvel
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
Evrotrust eID
País
Macedónia do Norte
Estado Didit
A pedido
Nível de garantia
Alto · não notificado na UE
O que o utilizador faz
Aprova na app eID
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
m.Uslugi
Ainda não lançado
País
Macedónia do Norte
Estado Didit
A pedido
Nível de garantia
Não declarado
O que o utilizador faz
Aprova na app eID
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
OneID (KIBS)
País
Macedónia do Norte
Estado Didit
A pedido
Nível de garantia
Alto · não notificado na UE
O que o utilizador faz
Aprova na app eID
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
uslugi.gov.mk eID
País
Macedónia do Norte
Estado Didit
A pedido
Nível de garantia
não notificado na UE
O que o utilizador faz
Palavra-passe mais um código de uso único
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
Maltese e-ID
País
Malta
Estado Didit
A pedido
Nível de garantia
Alto · Notificado pela UE (apenas cartão eID e documentos eletrónicos de residência)
O que o utilizador faz
Toca no cartão de identificação (NFC) ou usa um leitor de cartões
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
e-dowód (identity card)
País
Polónia
Estado Didit
A pedido
Nível de garantia
Substancial, Alto · Notificado pela UE
O que o utilizador faz
Toca no cartão de identificação (NFC) ou usa um leitor de cartões
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
login.gov.pl
País
Polónia
Estado Didit
A pedido
Nível de garantia
Não declarado
O que o utilizador faz
Inicia sessão na página do sistema
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
mObywatel
País
Polónia
Estado Didit
A pedido
Nível de garantia
não notificado na UE
O que o utilizador faz
Digitaliza um código QR com a app
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
Profil Zaufany
País
Polónia
Estado Didit
A pedido
Nível de garantia
Substancial, Alto · Notificado pela UE
O que o utilizador faz
Palavra-passe mais um código de uso único
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
Autenticação.gov
País
Portugal
Estado Didit
A pedido
Nível de garantia
Não declarado
O que o utilizador faz
Inicia sessão na página do sistema
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
Cartão de Cidadão
País
Portugal
Estado Didit
A pedido
Nível de garantia
Alto · Notificado pela UE
O que o utilizador faz
Toca no cartão de identificação (NFC) ou usa um leitor de cartões
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
Chave Móvel Digital
País
Portugal
Estado Didit
A pedido
Nível de garantia
Alto · Notificado pela UE
O que o utilizador faz
Confirma um código no telemóvel
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
Carte electronică de identitate
País
Roménia
Estado Didit
A pedido
Nível de garantia
não notificado na UE
O que o utilizador faz
Toca no cartão de identificação (NFC) ou usa um leitor de cartões
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
ROeID
País
Roménia
Estado Didit
A pedido
Nível de garantia
Substancial · Notificado pela UE
O que o utilizador faz
Aprova na app eID
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
eID.gov.rs (ConsentID)
País
Sérvia
Estado Didit
A pedido
Nível de garantia
Alto · não notificado na UE
O que o utilizador faz
Aprova na app eID
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
Lična karta (identity card)
País
Sérvia
Estado Didit
A pedido
Nível de garantia
Alto · não notificado na UE
O que o utilizador faz
Toca no cartão de identificação (NFC) ou usa um leitor de cartões
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
eOI and eOsebna
País
Eslovénia
Estado Didit
A pedido
Nível de garantia
Alto · Notificado pela UE (apenas o cartão de identidade)
O que o utilizador faz
Toca no cartão de identificação (NFC) ou usa um leitor de cartões
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
SI-PASS
País
Eslovénia
Estado Didit
A pedido
Nível de garantia
Não declarado
O que o utilizador faz
Inicia sessão na página do sistema
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
eID karta (identity card)
País
Eslováquia
Estado Didit
A pedido
Nível de garantia
Alto · Notificado pela UE
O que o utilizador faz
Toca no cartão de identificação (NFC) ou usa um leitor de cartões
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
MeID
País
Eslováquia
Estado Didit
A pedido
Nível de garantia
Não declarado
O que o utilizador faz
Aprova na app eID
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
Slovensko v mobile
País
Eslováquia
Estado Didit
A pedido
Nível de garantia
Não declarado
O que o utilizador faz
Digitaliza um código QR com a app
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
e-Devlet
País
Turquia
Estado Didit
A pedido
Nível de garantia
não notificado na UE
O que o utilizador faz
Palavra-passe mais um código de uso único
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
T.C. Kimlik Kartı (identity card)
País
Turquia
Estado Didit
A pedido
Nível de garantia
não notificado na UE
O que o utilizador faz
Toca no cartão de identificação (NFC) ou usa um leitor de cartões
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
Diia
País
Ucrânia
Estado Didit
Brevemente
Nível de garantia
não notificado na UE
O que o utilizador faz
Aprova na app eID
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
BankID NBU
País
Ucrânia
Estado Didit
A pedido
Nível de garantia
não notificado na UE
O que o utilizador faz
Inicia sessão na página do sistema
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
UAE PASS
País
Emirados Árabes Unidos
Estado Didit
Brevemente
Nível de garantia
Basic, Verified
O que o utilizador faz
Aprova na app eID
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
Kuwait Mobile ID (Hawyti)
País
Koweit
Estado Didit
A pedido
Nível de garantia
Não declarado
O que o utilizador faz
Aprova na app eID
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
Absher
País
Arábia Saudita
Estado Didit
A pedido
Nível de garantia
Não declarado
O que o utilizador faz
Aprova na app eID
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
Nafath
País
Arábia Saudita
Estado Didit
A pedido
Nível de garantia
Não declarado
O que o utilizador faz
Aprova na app eID
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
ConnectID
País
Austrália
Estado Didit
Brevemente
Nível de garantia
Não declarado
O que o utilizador faz
Inicia sessão na página do sistema
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
myID
País
Austrália
Estado Didit
A pedido
Nível de garantia
Conforme as regras do sistema
O que o utilizador faz
Aprova na app eID
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
National Online Identity Authentication
País
China
Estado Didit
A pedido
Nível de garantia
Não declarado
O que o utilizador faz
Aprova na app eID
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
Identitas Kependudukan Digital (IKD)
País
Indonésia
Estado Didit
A pedido
Nível de garantia
Não declarado
O que o utilizador faz
Aprova na app eID
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
Aadhaar e-KYC
País
Índia
Estado Didit
A pedido
Nível de garantia
Não declarado
O que o utilizador faz
Confirma um código no telemóvel
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
DigiLocker
País
Índia
Estado Didit
A pedido
Nível de garantia
Não declarado
O que o utilizador faz
Aprova na app eID
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
My Number Card (JPKI)
País
Japão
Estado Didit
A pedido
Nível de garantia
Não declarado
O que o utilizador faz
Toca no cartão de identificação (NFC) ou usa um leitor de cartões
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
Mobile ID
País
Coreia do Sul
Estado Didit
A pedido
Nível de garantia
Não declarado
O que o utilizador faz
Aprova na app eID
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
RealMe verified identity
País
Nova Zelândia
Estado Didit
A pedido
Nível de garantia
Não declarado
O que o utilizador faz
Inicia sessão na página do sistema
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
PhilSys (PhilID, ePhilID)
País
Filipinas
Estado Didit
A pedido
Nível de garantia
Não declarado
O que o utilizador faz
Digitaliza um código QR com a app
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
Singpass (Myinfo)
País
Singapura
Estado Didit
A pedido
Nível de garantia
Não declarado
O que o utilizador faz
Aprova na app eID
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
NDID
País
Tailândia
Estado Didit
A pedido
Nível de garantia
Não declarado
O que o utilizador faz
Aprova na app eID
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
ThaID
País
Tailândia
Estado Didit
A pedido
Nível de garantia
Não declarado
O que o utilizador faz
Aprova na app eID
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
Mi Argentina
País
Argentina
Estado Didit
A pedido
Nível de garantia
Não declarado
O que o utilizador faz
Aprova na app eID
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
gov.br
País
Brasil
Estado Didit
Brevemente
Nível de garantia
Conforme as regras do sistema
O que o utilizador faz
Inicia sessão na página do sistema
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
Service d'authentification gouvernementale
País
Canadá
Estado Didit
A pedido
Nível de garantia
Não declarado
O que o utilizador faz
Inicia sessão na página do sistema
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
Llave MX
País
México
Estado Didit
A pedido
Nível de garantia
Não declarado
O que o utilizador faz
Inicia sessão na página do sistema
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
DNIe 3.0
País
Peru
Estado Didit
A pedido
Nível de garantia
Não declarado
O que o utilizador faz
Toca no cartão de identificação (NFC) ou usa um leitor de cartões
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
Apple Wallet Digital ID
País
Estados Unidos
Estado Didit
A pedido
Nível de garantia
Não declarado
O que o utilizador faz
Aprova na app eID
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
Google Wallet ID Pass
País
Estados Unidos
Estado Didit
A pedido
Nível de garantia
Não declarado
O que o utilizador faz
Aprova na app eID
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
ID.me
País
Estados Unidos
Estado Didit
A pedido
Nível de garantia
NIST IAL2
O que o utilizador faz
Inicia sessão na página do sistema
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
Login.gov
País
Estados Unidos
Estado Didit
A pedido
Nível de garantia
Não declarado
O que o utilizador faz
Inicia sessão na página do sistema
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
State mobile driver's licences (mDL)
País
Estados Unidos
Estado Didit
A pedido
Nível de garantia
Não declarado
O que o utilizador faz
Aprova na app eID
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
Cédula digital wallet
Ainda não lançado
País
Uruguai
Estado Didit
A pedido
Nível de garantia
Não declarado
O que o utilizador faz
Aprova na app eID
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
National Identification Number (NIN)
País
Nigéria
Estado Didit
A pedido
Nível de garantia
Não declarado
O que o utilizador faz
Confirma um código no telemóvel
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
Smart ID card
País
África do Sul
Estado Didit
A pedido
Nível de garantia
Não declarado
O que o utilizador faz
Toca no cartão de identificação (NFC) ou usa um leitor de cartões
Dados devolvidos
Por sistema
Preço por início de sessão
Sob consulta
Última revisão: 5 de outubro de 2026. Não é aconselhamento jurídico. O nível de garantia é o nível próprio do sistema ao abrigo do eIDAS (o regulamento da UE sobre identificação eletrónica) ou das regras nacionais, conforme publicado pelo emissor ou pela lista da UE de sistemas notificados. Os preços são por início de sessão concluído. Para qualquer sistema marcado como Sob consulta, fale connosco: a rota de documento com leitura de chip já funciona nesse país.
Ver o fluxo
Três ecrãs, sem foto de documento.
O que o seu cliente vê com o Smart-ID: escolhe o eID, confirma um código na app, e volta verificado. MitID, BankID e Finnish Trust Network transferem para a app no mesmo telemóvel, ou mostram um código QR no desktop.
Verifique com o seu eID
MitID
BankID
Finnish Trust Network
Smart-ID
Mobile-ID
01
Escolha o seu eID
O seletor lista os eIDs que aceita para o país do utilizador, com as suas marcas oficiais.
O seu código de verificação
4821
Verifique se a sua app mostra o mesmo código e depois confirme.
02
Aprove na app
O utilizador verifica se o código corresponde e depois confirma com o seu PIN na app eID. A Didit nunca vê o PIN.
Identidade verificada
A devolver-lhe à app
03
Verificado
O fluxo devolve o utilizador a si, e o resultado assinado chega por webhook.
Integrar
Ative os eIDs. Leia o resultado assinado.
Ative os eIDs por país no fluxo de trabalho, com a rota de documento como alternativa, e depois leia o resultado assinado da decisão da sessão ou do webhook.
Implemente a verificação de eID com um único prompt.
Copie este prompt para o seu agente de codificação e descreva a sua stack. Abrange a configuração do fluxo de trabalho por país, a chamada de sessão, o webhook assinado, o resultado da wallet_verification e a faturação.
didit-integration-prompt.md
# Didit eID verification, integrate in 5 minutes
You are adding national eID sign-in to my_stack: the user verifies with the
eID they already use (a bank or government digital identity), and anyone
without one falls back to document capture in the same flow. Every URL,
header and enum value below is canonical. Do not paraphrase or "improve" them.
## 1. Provision an account
- Sign up: https://business.didit.me
- Create an application and copy its API key from the console.
## 2. Check which eIDs are live, per country
Availability is server-driven. Never hard-code a wallet list.
- Business Console: your application -> Workflows -> the ID Verification
step -> Countries -> "Wallets accepted". Coming-soon wallets are listed
but cannot be switched on. https://docs.didit.me/console/id-verification-methods
- Didit MCP server (https://mcp.didit.me/mcp), tool
didit_workflow_get_id_verification_methods_catalog; pass country as ISO
3166-1 alpha-3 to narrow it. The MCP server signs in with "Log in with
Didit" (OAuth). It does not accept the x-api-key.
https://docs.didit.me/integration/mcp/tools
- Public coverage table (no sign-in, read-only):
https://docs.didit.me/core-technology/id-verification/digital-id-wallets#supported-wallets
If your code holds only an API key, it cannot read the catalog itself: use the
wallet ids listed in this prompt, and treat the answer of the workflow save as
the check. A live application answers 400 for a wallet that is not available
in that country ("<wallet> is not offered in <ISO3>", "unknown wallet").
At the time this prompt was generated, the catalog marked these available:
- MitID: wallet id mitid, country keys DNK
- BankID: wallet id bankid_se, country keys SWE
- Finnish Trust Network: wallet id ftn, country keys FIN
- Smart-ID: wallet id smart_id, country keys EST, LVA, LTU, BEL
- Mobile-ID: wallet id mobile_id, country keys EST, LTU
Coming soon (cannot be enabled yet): BankID, Vipps, Buypass ID, itsme, iDIN, Personalausweis, Freja eID, UAE PASS, gov.br, OneID, GOV.UK Wallet, Bank iD, MojeID, Diia, FranceConnect, Auðkenni, ConnectID, EUDI Wallet, Estonian ID-card, eParaksts.
Check the catalog for your environment before you go live.
## 3. Create the workflow
POST https://verification.didit.me/v3/workflows/
-H "x-api-key: <your-api-key>"
-H "Content-Type: application/json"
The ID Verification feature's enum value is OCR (uppercase, strict). eIDs are
its wallet method, set per country under config.methods. Keys are ISO 3166-1
alpha-3. Keep document capture on, so a user without an eID can still finish.
{
"workflow_label": "eID onboarding",
"features": [
{
"feature": "OCR",
"config": {
"methods": {
"DNK": {
"document": { "enabled": true },
"wallet": { "enabled": true, "providers": ["mitid"], "on_failure": "fallback_to_document" }
},
"SWE": {
"document": { "enabled": true },
"wallet": { "enabled": true, "providers": ["bankid_se"], "on_failure": "fallback_to_document" }
}
}
}
}
]
}
Response: 201. The workflow id is uuid (workflow_id carries the same value);
the workflow is published straight away. Create it once and keep the id:
every call to this endpoint makes a new workflow.
is_desktop_allowed defaults to false: on a desktop browser the hosted flow
then shows a QR code to continue on a phone. Add "is_desktop_allowed": true
next to workflow_label to let people finish on desktop.
Rules the API enforces:
- providers is an accept-list, not a ranking; the user picks
- on_failure is fallback_to_document or decline; it covers a cancelled,
timed-out or failed sign-in
- fallback_to_document where document.enabled is false declines instead
- a wallet the catalog does not mark available in that country rejects the
whole save (400), including every other method in the same request
- enabled true with an empty providers list is rejected
- add { "feature": "LIVENESS" } and { "feature": "FACE_MATCH" } to features
if you need a selfie: the live eIDs do not share a portrait
## 4. Create a session
POST https://verification.didit.me/v3/session/
-H "x-api-key: <your-api-key>"
-H "Content-Type: application/json"
-d '{ "workflow_id": "<id from step 3>", "vendor_data": "<your user id>" }'
Response: 201 with session_id, session_token, url and status "Not Started".
Redirect the user to url (hosted flow) or open it in the Web, iOS, Android,
React Native or Flutter SDK. The field is named url on this response.
One unfinished session exists per workflow_id and vendor_data pair: calling
create again with the same pair answers 201 again with that same session.
The user picks their eID, then approves in the eID app: same-device hand-off
or a QR code on desktop for MitID, BankID and Finnish Trust Network; a
comparison code approved on the phone for Smart-ID and Mobile-ID. Didit never
asks for the user's PIN. A started sign-in stays valid for 10 minutes by
default.
## 5. Webhooks
Register a destination in the console (API & Webhooks), or over the API:
POST https://verification.didit.me/v3/webhook/destinations/
-H "x-api-key: <your-api-key>"
-H "Content-Type: application/json"
-d '{
"label": "Verification webhooks",
"url": "https://<your-public-host>/webhooks/didit",
"webhook_version": "v3",
"subscribed_events": ["status.updated", "data.updated"]
}'
label, url and subscribed_events are required. url must be a public HTTPS
address: Didit does not deliver to localhost or private addresses. Response:
201 with uuid and secret_shared_key. Store secret_shared_key as the webhook
secret (DIDIT_WEBHOOK_SECRET); it is unique to this destination. Remove a
destination with DELETE /v3/webhook/destinations/{uuid}/ (204).
What arrives:
- webhook_type is "status.updated" (the session changed status) or
"data.updated" (verification data was corrected after the fact)
- a destination receives the events of every session of the application,
so filter on workflow_id or vendor_data when several flows share it
- creating a session already sends status.updated with status
"Not Started". The decision key is present only when status is Approved,
Declined, In Review or Abandoned.
Verify every delivery:
Header: X-Signature-V2 (not X-Signature, not X-Signature-Simple)
Algorithm: HMAC-SHA256, hex digest, over the canonical JSON of the payload
(Python json.dumps(sort_keys=True, separators=(",", ":"),
ensure_ascii=False) after whole-valued floats become ints).
Use the reference handler below as written: it rebuilds those
bytes from the raw body text. Never hash the raw request bytes.
Freshness: the signed body field timestamp is the dispatch time (Unix
seconds, refreshed on every retry). Reject when
abs(now - timestamp) > 300 seconds, and reject when the
X-Timestamp header does not equal it.
Idempotency: event_id is the same on every retry of one event, so store it
and skip a delivery you already processed. One session can
still send the same status under two event ids, and the
console's Try Webhook test deliveries carry no event_id, so
also make the handler safe to run twice for one
(session_id, status, webhook_type).
Compare: constant-time (crypto.timingSafeEqual)
Reference handler (Express). Keep the verification lines as written.
The handler is a fragment. Put this above it and app.listen(process.env.PORT)
below it. It needs Express and Node 21 or newer (an older Node rejects
every delivery). It expects a JSON body: answer 400 yourself if you accept
anything else on this route, and refuse to start without the secret.
const express = require("express");
const app = express();
const SECRET = process.env.DIDIT_WEBHOOK_SECRET; // secret_shared_key of the destination
// Your endpoint receives a signed payload
const crypto = require("node:crypto"); // ESM: import crypto from "node:crypto"
// X-Signature-V2 = HMAC over the canonical JSON, never the raw bytes. Match the sender byte for
// byte: keys sorted by code point, integers digit for digit, floats in Python's repr.
class Num { constructor(src) { this.src = src; } } // a number as written on the wire, not a double
const num = (s) => { if (/^-?\d+$/.test(s)) return BigInt(s).toString(); const n = +s; // ints stay exact
if (Number.isInteger(n)) return BigInt(n).toString(); const [m, e] = n.toExponential().split("e"); // 27.0 -> 27
return +e >= -4 ? String(n) : `${m}e-${String(-e).padStart(2, "0")}`; }; // 1e-05, not 0.00001
const byCodePoint = (a, b) => Buffer.compare(Buffer.from(a), Buffer.from(b)); // UTF-8 order = Python's
const canon = (v) => Array.isArray(v) ? `[${v.map(canon)}]` : v instanceof Num ? num(v.src)
: v && typeof v === "object" ? `{${Object.keys(v).sort(byCodePoint).map((k) => `${JSON.stringify(k)}:${canon(v[k])}`)}}`
: JSON.stringify(v);
// Read the body as text: express.json() would round 1000000000000000129 to a double first.
// Register this route ABOVE any global app.use(express.json()): the first parser to run
// consumes the stream, and a body it already parsed has lost the digits the signature covers.
app.post("/webhooks/didit", express.text({ type: "application/json" }), (req, res) => {
const exact = JSON.parse(req.body, (k, v, c) => typeof v === "number" ? new Num(c.source) : v); // Node 21+
const body = JSON.parse(req.body);
const mac = crypto.createHmac("sha256", SECRET).update(canon(exact), "utf8").digest("hex");
const sig = Buffer.from(String(req.headers["x-signature-v2"] ?? ""));
// Freshness comes from the signed body timestamp; the header alone is unsigned and replayable.
const ts = body.timestamp, fresh = String(ts) === req.headers["x-timestamp"]
&& Math.abs(Date.now() / 1000 - ts) <= 300;
if (!fresh || sig.length !== mac.length
|| !crypto.timingSafeEqual(sig, Buffer.from(mac))) return res.sendStatus(401);
const { status, decision } = body;
// One entry per ID Verification node; pick yours by node_id when you run several.
const [idv] = decision?.id_verifications ?? [];
// idv.verification_method: "document" | "id_lookup" | "wallet"
res.sendStatus(200);
});
Status values (exact strings): Not Started, In Progress, Approved, Declined,
In Review, Resubmitted, Expired, Abandoned, Kyc Expired. Awaiting User only
appears on business verification sessions.
## 6. Read the eID result
The same V3 decision reaches you two ways:
- webhook body: body.decision.id_verifications[]
- GET https://verification.didit.me/v3/session/{session_id}/decision/
-H "x-api-key: <your-api-key>"
This response IS the decision object. Read id_verifications at the top
level: there is no decision wrapper here.
Until the user finishes the ID step, status is "Not Started" or "In Progress"
and id_verifications is null, not an empty array. Guard for it.
id_verifications[] has one entry per ID Verification node; with a single step
take index 0 (its node_id is "ocr" on a workflow made by the call in step 3).
The decision's features list names the step ID_VERIFICATION; the workflow
body still takes OCR. Each entry carries:
status Approved, Declined, In Review or Not Finished
verification_method "wallet" for an eID sign-in, "document" after a
fallback
assurance "cryptographic" for a wallet entry, "documentary"
for a document one
full_name, the normalised identity fields, on the entry itself
date_of_birth
wallet_provider the catalog wallet id, for example "mitid"
wallet_verification provider, provider_name, issuing_authority,
issuing_country, credential_type,
level_of_assurance (low | substantial | high),
verified_at, signature_valid, attributes, portrait,
face_match_score
fallback_from { method, reason, action } when the wallet sign-in failed
and on_failure declined the session; otherwise
null. After a document fallback that succeeds the
entry reads verification_method "document" with
fallback_from null
attributes holds what the scheme shares, and the names vary by scheme: MitID
returns cpr_alias (a pseudonymised identifier, not the CPR number), BankID
Sweden personal_number, Finnish Trust Network personal_identity_code, Smart-ID
and Mobile-ID personal_code. Use full_name and date_of_birth on the entry for
the normalised identity fields. No live eID returns an address or a portrait.
Check wallet_verification.level_of_assurance when your rules depend on it. If
a scheme returns a weaker level than the one requested, the sign-in fails
instead of downgrading.
## 7. Billing
- only a completed eID sign-in is billed; cancelled, timed-out, refused
and failed sign-ins are free
- a document fallback is billed as its own document check
- eID checks are outside the document free tier
- published prices per completed sign-in (USD):
- MitID personal: $0.25
- BankID Sweden: $0.20
- Finnish Trust Network: $0.25
- Smart-ID: $0.20
- Mobile-ID: $0.20
- full pricing: https://docs.didit.me/core-technology/id-verification/digital-id-wallets#pricing
## 8. Hard rules
- base URL for v3 endpoints: verification.didit.me
- auth header: x-api-key
- feature enum: OCR; methods: document, id_lookup, wallet
- wallet ids come from the catalog verbatim (mitid, bankid_se, ftn,
smart_id, mobile_id)
- country keys: ISO 3166-1 alpha-3, uppercase
- webhook: X-Signature-V2 plus X-Timestamp, canonical JSON, freshness from
the signed body timestamp
## 9. Verify your integration
Sandbox (an application in sandbox mode: nothing is billed and no real eID is
called). https://docs.didit.me/integration/sandbox-testing
- a sandbox application can enable every wallet in the catalog, the
coming-soon ones included. A workflow that saves in sandbox can still be
refused on a live application, so only use wallets marked available.
- open the session url, pick the wallet and confirm: the default approve
scenario simulates the sign-in. The entry then has verification_method
"wallet", assurance "cryptographic" and wallet_provider set, and the
normalised full_name and date_of_birth are filled. But
wallet_verification.signature_valid and level_of_assurance are null and
attributes is { "sandbox": true }: no real credential was checked.
Assert signature_valid === true and the level of assurance only against
a live application.
- to exercise on_failure, create the session with
"sandbox_scenario": "wallet_cancelled" (also wallet_timeout and
wallet_provider_error). The wallet sign-in then fails and the flow moves
to document capture or declines, as on_failure says. A fallback that
ends in an approved document reads verification_method "document".
- POST /v3/session/{session_id}/simulate/ forces a final status but writes
no id_verifications entry, so it cannot stand in for a sign-in.
Checks:
- create the workflow, create a session, and read its decision: expect 201,
201 with url, and 200 with status "Not Started"
- run one sandbox session per accepted eID through the hosted flow and
assert verification_method is "wallet" and wallet_provider is the eID you
picked
- run one session with sandbox_scenario "wallet_cancelled" and assert the
flow offers document capture
- assert your webhook accepts a correctly signed payload and rejects a
wrong X-Signature-V2, a changed body, and a payload whose signed
timestamp is older than 300 seconds, even when X-Timestamp is refreshed
- on a live application, assert wallet_verification.signature_valid is true
Docs: https://docs.didit.me/core-technology/id-verification/digital-id-wallets
Conformidade desde a conceção
Abra um novo país com um clique. Nós fazemos o trabalho difícil.
Abrimos as subsidiárias locais, garantimos as licenças, realizamos os testes de penetração, obtemos as certificações e alinhamos com cada nova regulamentação. Para lançar verificações num novo país, basta ativar um botão. Mais de 220 países ativos, auditados e testados trimestralmente, o único fornecedor de identidade que um governo de um estado-membro da UE formalmente considerou mais seguro do que a verificação presencial.
Comece grátis. Pague à medida que usa. Escale para Enterprise.
500 verificações gratuitas todos os meses, para sempre. Depois, pague apenas quando um módulo for executado. Contratos personalizados, residência de dados e acordos de nível de serviço (SLAs) no plano Enterprise.
Grátis
$0/ mês · sem cartão
Para construir, testar e para os seus primeiros utilizadores.
Tudo o que precisa para começar:
500 verificações KYC completas por mês
ID, prova de vida, correspondência facial, dispositivo e IP
Mais de 200 sinais de fraude, blocklist, duplicados
KYC reutilizável em toda a rede Didit
Construtor de fluxos de trabalho, gestão de casos, SDKs
Apoio de IAAgente de IA na consola, documentação e comunidade.