Faça a verificação de eID com cinco eIDs nacionais, disponíveis em sete países: MitID, BankID Sweden, Finnish Trust Network, Smart-ID e Mobile-ID. Cada um retorna um nome assinado, data de nascimento e identificador de esquema, como o personnummer sueco (o MitID retorna um pseudonimizado). Quem não tiver um eID finaliza com uma verificação de documento em mais de 220 países e territórios, no mesmo fluxo de trabalho.
Nenhum endereço ou foto é compartilhado. Adicione prova de vida e correspondência facial se precisar de uma selfie.
O que um login com eID oferece
Assinado pelo emissor. Verificado pela Didit.
Um login com eID (identificação eletrônica) substitui a foto de um documento por dados que o esquema assina. A Didit verifica a assinatura e coloca o resultado na sessão.
01Nome completo e data de nascimento, assinados pelo esquema
02Um identificador do esquema: personnummer, código de identidade pessoal ou código pessoal (o MitID retorna um identificador pseudonimizado)
03O nível de garantia que o esquema afirmou
04Uma verificação de assinatura em cada resultado: signature_valid
05Sem foto de documento, sem PIN compartilhado com a Didit, e sem cobrança a menos que o login seja concluído
Como funciona
Do eID nacional a um cliente verificado em quatro passos.
Passo 01 / 04
01
Escolha os eIDs por país
No construtor de fluxo de trabalho, abra a etapa de Verificação de ID, escolha um país e marque os eIDs que você aceita em "Carteiras aceitas". Em seguida, escolha o que acontece quando um login falha: voltar para a captura de documento ou recusar.
Envie o usuário para o fluxo
Crie uma sessão com uma chamada de API e redirecione para o fluxo hospedado, ou abra-o no SDK Web, iOS, Android, React Native ou Flutter. O seletor mostra apenas os eIDs que você aceitou para o país do usuário.
O usuário aprova no app do 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 telefone para Smart-ID e Mobile-ID. O PIN permanece no app do eID.
Você recebe o resultado assinado
Um webhook assinado informa que o status mudou. A decisão contém o esquema, os atributos assinados, o nível de garantia e a verificação da assinatura, com verification_method definido como wallet.
Verificação de eID · Seis partes
eIDs nacionais e uma rota de documento, em um só fluxo de trabalho.
Cada linha é uma parte do mesmo fluxo de trabalho. Ative o que seu onboarding precisa, país por 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 retorna nome completo, data de nascimento e o identificador próprio do esquema: 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 compartilha endereço ou foto.
Um fluxo de trabalho, com rota de documento para todos os outros.
Nem todo mundo tem 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 documento custa $0.33.
Art. 22(6)(b)eID nacionalMitIDLogin 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 · identificadorRota utilizadaMitID
03 · Dados assinados
Dados assinados nos quais você pode agir.
Cada resultado de eID chega em um objeto wallet_verification na sessão: o esquema, o país emissor, o nível de garantia, os atributos e signature_valid. Se um esquema retornar um nível mais fraco do que o solicitado, o login falha em vez de ser silenciosamente rebaixado. Apenas logins concluídos são cobrados. Os cancelados, expirados e falhos são gratuitos.
Comprove a idade a partir de uma data de nascimento assinada.
Um login eID retorna uma data de nascimento assinada pelo esquema, comprovando a idade sem precisar de foto de documento. Para alto volume, o ideal é começar com estimativa de idade, a $0.10 por checagem com liveness passiva, e usar eID ou checagem de documento apenas para resultados inconclusivos.
Faça a triagem da pessoa que você acabou de verificar.
Adicione a triagem AML (anti-money laundering) após a etapa de eID, e o nome e a data de nascimento verificados vão direto para checagens de sanções, PEP (politically exposed person) e listas de observação em mais de 1.300 listas, por $0.20 por checagem. O monitoramento contínuo refaz a triagem diariamente por $0.07 por pessoa por ano. Uma possível correspondência é enviada para seu revisor.
iDIN, o cartão eID alemão, Freja eID, o cartão de identificação estoniano, 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 em nosso roadmap, e a aceitação da EUDI Wallet (EU Digital Identity Wallet) está chegando. Para qualquer outro esquema, fale conosco: a Didit adiciona esquemas sob demanda, 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 aquele 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 esquemas de identidade digital em outros lugares: o que cada um pede ao usuário, seu nível de garantia e o que ele retorna. O status e os preços vêm do catálogo de carteiras ativas da Didit.
136 de 136 esquemas
Esquema
País
Status na Didit
Nível de garantia
O que o usuário faz
Dados retornados para você
Preço por login
MitID
País
Dinamarca
Status na Didit
Ativo
Nível de garantia
Substancial, Alto · Notificado pela UE
O que o usuário faz
Aprova no app eID
Dados retornados para você
Nome, data de nascimento, alias de CPR pseudonimizado, nível de garantia, verificação de assinatura
Preço por login
$0.25
Mobile-ID
País
Estônia
Status na Didit
Ativo
Nível de garantia
Alto · Notificado pela UE
O que o usuário faz
Confirma um código no celular
Dados retornados para você
Nome, data de nascimento, código pessoal, verificação de assinatura
Preço por login
$0.20
Smart-ID
País
Estônia
Status na Didit
Ativo
Nível de garantia
Alto · não notificado pela UE
O que o usuário faz
Confirma um código no celular
Dados retornados para você
Nome, data de nascimento, código pessoal, verificação de assinatura
Preço por login
$0.20
Estonian ID card and Digi-ID
País
Estônia
Status na Didit
Em breve
Nível de garantia
Alto · Notificado pela UE
O que o usuário faz
Encosta o cartão de identidade (NFC) ou usa um leitor de cartão
Dados retornados para você
Por esquema
Preço por login
Sob consulta
Finnish Trust Network (bank IDs)
País
Finlândia
Status na Didit
Ativo
Nível de garantia
Substancial · não notificado pela UE
O que o usuário faz
Faz login na página do esquema
Dados retornados para você
Nome, data de nascimento, código de identidade pessoal, verificação de assinatura
Preço por login
$0.25
FINeID citizen certificate (ID card)
País
Finlândia
Status na Didit
Sob demanda
Nível de garantia
Alto · Notificado pela UE
O que o usuário faz
Encosta o cartão de identidade (NFC) ou usa um leitor de cartão
Dados retornados para você
Por esquema
Preço por login
Sob consulta
Mobiilivarmenne
País
Finlândia
Status na Didit
Sob demanda
Nível de garantia
Substancial · não notificado pela UE
O que o usuário faz
Confirma um código no celular
Dados retornados para você
Por esquema
Preço por login
Sob consulta
Auðkenni (app, SIM and card)
País
Islândia
Status na Didit
Em breve
Nível de garantia
não notificado pela UE
O que o usuário faz
Aprova no app eID
Dados retornados para você
Por esquema
Preço por login
Sob consulta
Mobile-ID
País
Lituânia
Status na Didit
Ativo
Nível de garantia
Alto · não notificado pela UE
O que o usuário faz
Confirma um código no celular
Dados retornados para você
Nome, data de nascimento, código pessoal, verificação de assinatura
Preço por login
$0.20
Smart-ID
País
Lituânia
Status na Didit
Ativo
Nível de garantia
Alto · não notificado pela UE
O que o usuário faz
Confirma um código no celular
Dados retornados para você
Nome, data de nascimento, código pessoal, verificação de assinatura
Preço por login
$0.20
Asmens tapatybės kortelė (identity card)
País
Lituânia
Status na Didit
Sob demanda
Nível de garantia
Alto · Notificado pela UE
O que o usuário faz
Encosta o cartão de identidade (NFC) ou usa um leitor de cartão
Dados retornados para você
Por esquema
Preço por login
Sob consulta
Smart-ID
País
Letônia
Status na Didit
Ativo
Nível de garantia
não notificado pela UE
O que o usuário faz
Confirma um código no celular
Dados retornados para você
Nome, data de nascimento, código pessoal, verificação de assinatura
Preço por login
$0.20
eParaksts mobile
País
Letônia
Status na Didit
Em breve
Nível de garantia
Substancial, Alto · Notificado pela UE
O que o usuário faz
Aprova no app eID
Dados retornados para você
Por esquema
Preço por login
Sob consulta
eID karte (identity card)
País
Letônia
Status na Didit
Sob demanda
Nível de garantia
Substancial, Alto · Notificado pela UE
O que o usuário faz
Encosta o cartão de identidade (NFC) ou usa um leitor de cartão
Dados retornados para você
Por esquema
Preço por login
Sob consulta
eParaksts karte
País
Letônia
Status na Didit
Sob demanda
Nível de garantia
Substancial, Alto · Notificado pela UE
O que o usuário faz
Encosta o cartão de identidade (NFC) ou usa um leitor de cartão
Dados retornados para você
Por esquema
Preço por login
Sob consulta
BankID (Norway)
País
Noruega
Status na Didit
Em breve
Nível de garantia
Alto · Notificado pela UE
O que o usuário faz
Aprova no app eID
Dados retornados para você
Por esquema
Preço por login
Sob consulta
Buypass ID
País
Noruega
Status na Didit
Em breve
Nível de garantia
Alto · Notificado pela UE
O que o usuário faz
Aprova no app eID
Dados retornados para você
Por esquema
Preço por login
Sob consulta
Vipps
País
Noruega
Status na Didit
Em breve
Nível de garantia
Não declarado
O que o usuário faz
Aprova no app eID
Dados retornados para você
Por esquema
Preço por login
Sob consulta
Commfides eID
País
Noruega
Status na Didit
Sob demanda
Nível de garantia
Alto · não notificado pela UE
O que o usuário faz
Encosta o cartão de identidade (NFC) ou usa um leitor de cartão
Dados retornados para você
Por esquema
Preço por login
Sob consulta
MinID
País
Noruega
Status na Didit
Sob demanda
Nível de garantia
Substancial · não notificado pela UE
O que o usuário faz
Senha mais um código de uso único
Dados retornados para você
Por esquema
Preço por login
Sob consulta
BankID Sweden
País
Suécia
Status na Didit
Ativo
Nível de garantia
Substancial · Notificado pela UE
O que o usuário faz
Aprova no app eID
Dados retornados para você
Nome, data de nascimento, personnummer, verificação de assinatura
Preço por login
$0.20
Freja eID
País
Suécia
Status na Didit
Em breve
Nível de garantia
Substancial · Notificado pela UE (somente Freja+ pela rota de agente ATG)
O que o usuário faz
Aprova no app eID
Dados retornados para você
Por esquema
Preço por login
Sob consulta
SverigeID
Ainda não lançado
País
Suécia
Status na Didit
Sob demanda
Nível de garantia
não notificado pela UE
O que o usuário faz
Encosta o cartão de identidade (NFC) ou usa um leitor de cartão
Dados retornados para você
Por esquema
Preço por login
Sob consulta
ID Austria
País
Áustria
Status na Didit
Sob demanda
Nível de garantia
Alto · Notificado pela UE
O que o usuário faz
Aprova no app eID
Dados retornados para você
Por esquema
Preço por login
Sob consulta
Smart-ID
País
Bélgica
Status na Didit
Ativo
Nível de garantia
Alto · não notificado pela UE
O que o usuário faz
Confirma um código no celular
Dados retornados para você
Nome, data de nascimento, código pessoal, verificação de assinatura
Preço por login
$0.20
itsme
País
Bélgica
Status na Didit
Em breve
Nível de garantia
Alto · Notificado pela UE
O que o usuário faz
Aprova no app eID
Dados retornados para você
Por esquema
Preço por login
Sob consulta
Belgian eID card
País
Bélgica
Status na Didit
Sob demanda
Nível de garantia
Alto · Notificado pela UE
O que o usuário faz
Encosta o cartão de identidade (NFC) ou usa um leitor de cartão
Dados retornados para você
Por esquema
Preço por login
Sob consulta
MyGov.be key
País
Bélgica
Status na Didit
Sob demanda
Nível de garantia
não notificado pela UE
O que o usuário faz
Aprova no app eID
Dados retornados para você
Por esquema
Preço por login
Sob consulta
Swiss E-ID (swiyu)
Ainda não lançado
País
Suíça
Status na Didit
Sob demanda
Nível de garantia
não notificado pela UE
O que o usuário faz
Escaneia um QR code com o app
Dados retornados para você
Por esquema
Preço por login
Sob consulta
SwissID
País
Suíça
Status na Didit
Sob demanda
Nível de garantia
não notificado pela UE
O que o usuário faz
Senha mais um código de uso único
Dados retornados para você
Por esquema
Preço por login
Sob consulta
Online-Ausweisfunktion (Personalausweis)
País
Alemanha
Status na Didit
Em breve
Nível de garantia
Alto · Notificado pela UE
O que o usuário faz
Encosta o cartão de identidade (NFC) ou usa um leitor de cartão
Dados retornados para você
Por esquema
Preço por login
Sob consulta
d-you
Ainda não lançado
País
Alemanha
Status na Didit
Sob demanda
Nível de garantia
Não declarado
O que o usuário faz
Aprova no app eID
Dados retornados para você
Por esquema
Preço por login
Sob consulta
FranceConnect
País
França
Status na Didit
Em breve
Nível de garantia
Não declarado
O que o usuário faz
Faz login na página do esquema
Dados retornados para você
Por esquema
Preço por login
Sob consulta
France Identité
País
França
Status na Didit
Sob demanda
Nível de garantia
Alto · Notificado pela UE
O que o usuário faz
Encosta o cartão de identidade (NFC) ou usa um leitor de cartão
Dados retornados para você
Por esquema
Preço por login
Sob consulta
L'Identité Numérique La Poste
País
França
Status na Didit
Sob demanda
Nível de garantia
Substancial · Notificado pela UE
O que o usuário faz
Aprova no app eID
Dados retornados para você
Por esquema
Preço por login
Sob consulta
eID.li
País
Liechtenstein
Status na Didit
Sob demanda
Nível de garantia
Substancial, Alto · Notificado pela UE
O que o usuário faz
Aprova no app eID
Dados retornados para você
Por esquema
Preço por login
Sob consulta
itsme
País
Luxemburgo
Status na Didit
Em breve
Nível de garantia
Não declarado
O que o usuário faz
Aprova no app eID
Dados retornados para você
Por esquema
Preço por login
Sob consulta
Luxembourg eID card
País
Luxemburgo
Status na Didit
Sob demanda
Nível de garantia
Alto · Notificado pela UE
O que o usuário faz
Encosta o cartão de identidade (NFC) ou usa um leitor de cartão
Dados retornados para você
Por esquema
Preço por login
Sob consulta
LuxTrust
País
Luxemburgo
Status na Didit
Sob demanda
Nível de garantia
não notificado pela UE
O que o usuário faz
Aprova no app eID
Dados retornados para você
Por esquema
Preço por login
Sob consulta
iDIN
País
Países Baixos
Status na Didit
Em breve
Nível de garantia
não notificado pela UE
O que o usuário faz
Faz login na página do esquema
Dados retornados para você
Por esquema
Preço por login
Sob consulta
itsme
País
Países Baixos
Status na Didit
Em breve
Nível de garantia
Não declarado
O que o usuário faz
Aprova no app eID
Dados retornados para você
Por esquema
Preço por login
Sob consulta
DigiD
País
Países Baixos
Status na Didit
Sob demanda
Nível de garantia
Substancial, Alto · Notificado pela UE
O que o usuário faz
Aprova no app eID
Dados retornados para você
Por esquema
Preço por login
Sob consulta
eHerkenning (business login)
País
Países Baixos
Status na Didit
Sob demanda
Nível de garantia
Substancial, Alto · Notificado pela UE
O que o usuário faz
Senha mais um código de uso único
Dados retornados para você
Por esquema
Preço por login
Sob consulta
Yivi
País
Países Baixos
Status na Didit
Sob demanda
Nível de garantia
não notificado pela UE
O que o usuário faz
Escaneia um QR code com o app
Dados retornados para você
Por esquema
Preço por login
Sob consulta
GOV.UK Wallet
País
Reino Unido
Status na Didit
Em breve
Nível de garantia
Não declarado
O que o usuário faz
Aprova no app eID
Dados retornados para você
Por esquema
Preço por login
Sob consulta
OneID
País
Reino Unido
Status na Didit
Em breve
Nível de garantia
Não declarado
O que o usuário faz
Faz login na página do esquema
Dados retornados para você
Por esquema
Preço por login
Sob consulta
GOV.UK One Login
País
Reino Unido
Status na Didit
Sob demanda
Nível de garantia
não notificado pela UE · GPG 45 medium
O que o usuário faz
Faz login na página do esquema
Dados retornados para você
Por esquema
Preço por login
Sob consulta
Government Digital Wallet
Ainda não lançado
País
Irlanda
Status na Didit
Sob demanda
Nível de garantia
não notificado pela UE
O que o usuário faz
Escaneia um QR code com o app
Dados retornados para você
Por esquema
Preço por login
Sob consulta
MyGovID
País
Irlanda
Status na Didit
Sob demanda
Nível de garantia
não notificado pela UE · SAFE 2
O que o usuário faz
Senha mais um código de uso único
Dados retornados para você
Por esquema
Preço por login
Sob consulta
Digital Identity (IdentiTek)
Ainda não lançado
País
Albânia
Status na Didit
Sob demanda
Nível de garantia
Não declarado
O que o usuário faz
Aprova no app eID
Dados retornados para você
Por esquema
Preço por login
Sob consulta
e-Albania
País
Albânia
Status na Didit
Sob demanda
Nível de garantia
não notificado pela UE
O que o usuário faz
Senha mais um código de uso único
Dados retornados para você
Por esquema
Preço por login
Sob consulta
B-Trust Mobile
País
Bulgária
Status na Didit
Sob demanda
Nível de garantia
não notificado pela UE
O que o usuário faz
Aprova no app eID
Dados retornados para você
Por esquema
Preço por login
Sob consulta
eAuth
País
Bulgária
Status na Didit
Sob demanda
Nível de garantia
não notificado pela UE
O que o usuário faz
Faz login na página do esquema
Dados retornados para você
Por esquema
Preço por login
Sob consulta
Electronic identity certificate (identity card)
Ainda não lançado
País
Bulgária
Status na Didit
Sob demanda
Nível de garantia
não notificado pela UE
O que o usuário faz
Encosta o cartão de identidade (NFC) ou usa um leitor de cartão
Dados retornados para você
Por esquema
Preço por login
Sob consulta
Evrotrust eID
País
Bulgária
Status na Didit
Sob demanda
Nível de garantia
Substancial, Alto · Notificado pela UE
O que o usuário faz
Aprova no app eID
Dados retornados para você
Por esquema
Preço por login
Sob consulta
Cyprus national eID
País
Chipre
Status na Didit
Sob demanda
Nível de garantia
Alto · Notificado pela UE
O que o usuário faz
Aprova no app eID
Dados retornados para você
Por esquema
Preço por login
Sob consulta
Bank iD
País
Tchéquia
Status na Didit
Em breve
Nível de garantia
não notificado pela UE
O que o usuário faz
Faz login na página do esquema
Dados retornados para você
Por esquema
Preço por login
Sob consulta
MojeID
País
Tchéquia
Status na Didit
Em breve
Nível de garantia
Baixo, Substancial, Alto · Notificado pela UE
O que o usuário faz
Senha mais um código de uso único
Dados retornados para você
Por esquema
Preço por login
Sob consulta
eDoklady
País
Tchéquia
Status na Didit
Sob demanda
Nível de garantia
não notificado pela UE
O que o usuário faz
Aprova no app eID
Dados retornados para você
Por esquema
Preço por login
Sob consulta
eObčanka (identity card)
País
Tchéquia
Status na Didit
Sob demanda
Nível de garantia
Alto · Notificado pela UE
O que o usuário faz
Encosta o cartão de identidade (NFC) ou usa um leitor de cartão
Dados retornados para você
Por esquema
Preço por login
Sob consulta
Identita občana (NIA)
País
Tchéquia
Status na Didit
Sob demanda
Nível de garantia
Não declarado
O que o usuário faz
Faz login na página do esquema
Dados retornados para você
Por esquema
Preço por login
Sob consulta
Mobilní klíč eGovernmentu
País
Tchéquia
Status na Didit
Sob demanda
Nível de garantia
Baixo, Substancial, Alto · Notificado pela UE
O que o usuário faz
Escaneia um QR code com o app
Dados retornados para você
Por esquema
Preço por login
Sob consulta
Cartera Digital Beta
Ainda não lançado
País
Espanha
Status na Didit
Sob demanda
Nível de garantia
não notificado pela UE
O que o usuário faz
Escaneia um QR code com o app
Dados retornados para você
Por esquema
Preço por login
Sob consulta
Cl@ve
País
Espanha
Status na Didit
Sob demanda
Nível de garantia
não notificado pela UE
O que o usuário faz
Aprova no app eID
Dados retornados para você
Por esquema
Preço por login
Sob consulta
DNIe (DNI 3.0 and 4.0)
País
Espanha
Status na Didit
Sob demanda
Nível de garantia
Alto · Notificado pela UE
O que o usuário faz
Encosta o cartão de identidade (NFC) ou usa um leitor de cartão
Dados retornados para você
Por esquema
Preço por login
Sob consulta
MiDNI
País
Espanha
Status na Didit
Sob demanda
Nível de garantia
não notificado pela UE
O que o usuário faz
Escaneia um QR code com o app
Dados retornados para você
Por esquema
Preço por login
Sob consulta
Gov.gr Wallet
País
Grécia
Status na Didit
Sob demanda
Nível de garantia
não notificado pela UE
O que o usuário faz
Escaneia um QR code com o app
Dados retornados para você
Por esquema
Preço por login
Sob consulta
TAXISnet credentials
País
Grécia
Status na Didit
Sob demanda
Nível de garantia
não notificado pela UE
O que o usuário faz
Senha mais um código de uso único
Dados retornados para você
Por esquema
Preço por login
Sob consulta
Certilia mobile.ID
País
Croácia
Status na Didit
Sob demanda
Nível de garantia
não notificado pela UE
O que o usuário faz
Aprova no app eID
Dados retornados para você
Por esquema
Preço por login
Sob consulta
eOI (identity card)
País
Croácia
Status na Didit
Sob demanda
Nível de garantia
Alto · Notificado pela UE
O que o usuário faz
Encosta o cartão de identidade (NFC) ou usa um leitor de cartão
Dados retornados para você
Por esquema
Preço por login
Sob consulta
NIAS (e-Građani)
País
Croácia
Status na Didit
Sob demanda
Nível de garantia
não notificado pela UE (usa a eOI, notificada pela UE no nível Alto de garantia)
O que o usuário faz
Faz login na página do esquema
Dados retornados para você
Por esquema
Preço por login
Sob consulta
DÁP (Digitális Állampolgárság)
País
Hungria
Status na Didit
Sob demanda
Nível de garantia
não notificado pela UE
O que o usuário faz
Escaneia um QR code com o app
Dados retornados para você
Por esquema
Preço por login
Sob consulta
Ügyfélkapu+
País
Hungria
Status na Didit
Sob demanda
Nível de garantia
não notificado pela UE
O que o usuário faz
Senha mais um código de uso único
Dados retornados para você
Por esquema
Preço por login
Sob consulta
CIE and CieID
País
Itália
Status na Didit
Sob demanda
Nível de garantia
Baixo, Substancial, Alto · Notificado pela UE
O que o usuário faz
Encosta o cartão de identidade (NFC) ou usa um leitor de cartão
Dados retornados para você
Por esquema
Preço por login
Sob consulta
IT-Wallet
País
Itália
Status na Didit
Sob demanda
Nível de garantia
não notificado pela UE
O que o usuário faz
Aprova no app eID
Dados retornados para você
Por esquema
Preço por login
Sob consulta
SPID
País
Itália
Status na Didit
Sob demanda
Nível de garantia
Baixo, Substancial, Alto · Notificado pela UE
O que o usuário faz
Senha mais um código de uso único
Dados retornados para você
Por esquema
Preço por login
Sob consulta
Carte de identitate (identity card)
País
Moldávia
Status na Didit
Sob demanda
Nível de garantia
não notificado pela UE
O que o usuário faz
Encosta o cartão de identidade (NFC) ou usa um leitor de cartão
Dados retornados para você
Por esquema
Preço por login
Sob consulta
EVO
País
Moldávia
Status na Didit
Sob demanda
Nível de garantia
não notificado pela UE
O que o usuário faz
Escaneia um QR code com o app
Dados retornados para você
Por esquema
Preço por login
Sob consulta
EVOSign
País
Moldávia
Status na Didit
Sob demanda
Nível de garantia
não notificado pela UE
O que o usuário faz
Aprova no app eID
Dados retornados para você
Por esquema
Preço por login
Sob consulta
MPass
País
Moldávia
Status na Didit
Sob demanda
Nível de garantia
não notificado pela UE
O que o usuário faz
Faz login na página do esquema
Dados retornados para você
Por esquema
Preço por login
Sob consulta
Semnătura Mobilă
País
Moldávia
Status na Didit
Sob demanda
Nível de garantia
não notificado pela UE
O que o usuário faz
Confirma um código no celular
Dados retornados para você
Por esquema
Preço por login
Sob consulta
Evrotrust eID
País
Macedônia do Norte
Status na Didit
Sob demanda
Nível de garantia
Alto · não notificado pela UE
O que o usuário faz
Aprova no app eID
Dados retornados para você
Por esquema
Preço por login
Sob consulta
m.Uslugi
Ainda não lançado
País
Macedônia do Norte
Status na Didit
Sob demanda
Nível de garantia
Não declarado
O que o usuário faz
Aprova no app eID
Dados retornados para você
Por esquema
Preço por login
Sob consulta
OneID (KIBS)
País
Macedônia do Norte
Status na Didit
Sob demanda
Nível de garantia
Alto · não notificado pela UE
O que o usuário faz
Aprova no app eID
Dados retornados para você
Por esquema
Preço por login
Sob consulta
uslugi.gov.mk eID
País
Macedônia do Norte
Status na Didit
Sob demanda
Nível de garantia
não notificado pela UE
O que o usuário faz
Senha mais um código de uso único
Dados retornados para você
Por esquema
Preço por login
Sob consulta
Maltese e-ID
País
Malta
Status na Didit
Sob demanda
Nível de garantia
Alto · Notificado pela UE (somente cartão eID e documentos eletrônicos de residência)
O que o usuário faz
Encosta o cartão de identidade (NFC) ou usa um leitor de cartão
Dados retornados para você
Por esquema
Preço por login
Sob consulta
e-dowód (identity card)
País
Polônia
Status na Didit
Sob demanda
Nível de garantia
Substancial, Alto · Notificado pela UE
O que o usuário faz
Encosta o cartão de identidade (NFC) ou usa um leitor de cartão
Dados retornados para você
Por esquema
Preço por login
Sob consulta
login.gov.pl
País
Polônia
Status na Didit
Sob demanda
Nível de garantia
Não declarado
O que o usuário faz
Faz login na página do esquema
Dados retornados para você
Por esquema
Preço por login
Sob consulta
mObywatel
País
Polônia
Status na Didit
Sob demanda
Nível de garantia
não notificado pela UE
O que o usuário faz
Escaneia um QR code com o app
Dados retornados para você
Por esquema
Preço por login
Sob consulta
Profil Zaufany
País
Polônia
Status na Didit
Sob demanda
Nível de garantia
Substancial, Alto · Notificado pela UE
O que o usuário faz
Senha mais um código de uso único
Dados retornados para você
Por esquema
Preço por login
Sob consulta
Autenticação.gov
País
Portugal
Status na Didit
Sob demanda
Nível de garantia
Não declarado
O que o usuário faz
Faz login na página do esquema
Dados retornados para você
Por esquema
Preço por login
Sob consulta
Cartão de Cidadão
País
Portugal
Status na Didit
Sob demanda
Nível de garantia
Alto · Notificado pela UE
O que o usuário faz
Encosta o cartão de identidade (NFC) ou usa um leitor de cartão
Dados retornados para você
Por esquema
Preço por login
Sob consulta
Chave Móvel Digital
País
Portugal
Status na Didit
Sob demanda
Nível de garantia
Alto · Notificado pela UE
O que o usuário faz
Confirma um código no celular
Dados retornados para você
Por esquema
Preço por login
Sob consulta
Carte electronică de identitate
País
Romênia
Status na Didit
Sob demanda
Nível de garantia
não notificado pela UE
O que o usuário faz
Encosta o cartão de identidade (NFC) ou usa um leitor de cartão
Dados retornados para você
Por esquema
Preço por login
Sob consulta
ROeID
País
Romênia
Status na Didit
Sob demanda
Nível de garantia
Substancial · Notificado pela UE
O que o usuário faz
Aprova no app eID
Dados retornados para você
Por esquema
Preço por login
Sob consulta
eID.gov.rs (ConsentID)
País
Sérvia
Status na Didit
Sob demanda
Nível de garantia
Alto · não notificado pela UE
O que o usuário faz
Aprova no app eID
Dados retornados para você
Por esquema
Preço por login
Sob consulta
Lična karta (identity card)
País
Sérvia
Status na Didit
Sob demanda
Nível de garantia
Alto · não notificado pela UE
O que o usuário faz
Encosta o cartão de identidade (NFC) ou usa um leitor de cartão
Dados retornados para você
Por esquema
Preço por login
Sob consulta
eOI and eOsebna
País
Eslovênia
Status na Didit
Sob demanda
Nível de garantia
Alto · Notificado pela UE (somente o cartão de identidade)
O que o usuário faz
Encosta o cartão de identidade (NFC) ou usa um leitor de cartão
Dados retornados para você
Por esquema
Preço por login
Sob consulta
SI-PASS
País
Eslovênia
Status na Didit
Sob demanda
Nível de garantia
Não declarado
O que o usuário faz
Faz login na página do esquema
Dados retornados para você
Por esquema
Preço por login
Sob consulta
eID karta (identity card)
País
Eslováquia
Status na Didit
Sob demanda
Nível de garantia
Alto · Notificado pela UE
O que o usuário faz
Encosta o cartão de identidade (NFC) ou usa um leitor de cartão
Dados retornados para você
Por esquema
Preço por login
Sob consulta
MeID
País
Eslováquia
Status na Didit
Sob demanda
Nível de garantia
Não declarado
O que o usuário faz
Aprova no app eID
Dados retornados para você
Por esquema
Preço por login
Sob consulta
Slovensko v mobile
País
Eslováquia
Status na Didit
Sob demanda
Nível de garantia
Não declarado
O que o usuário faz
Escaneia um QR code com o app
Dados retornados para você
Por esquema
Preço por login
Sob consulta
e-Devlet
País
Turquia
Status na Didit
Sob demanda
Nível de garantia
não notificado pela UE
O que o usuário faz
Senha mais um código de uso único
Dados retornados para você
Por esquema
Preço por login
Sob consulta
T.C. Kimlik Kartı (identity card)
País
Turquia
Status na Didit
Sob demanda
Nível de garantia
não notificado pela UE
O que o usuário faz
Encosta o cartão de identidade (NFC) ou usa um leitor de cartão
Dados retornados para você
Por esquema
Preço por login
Sob consulta
Diia
País
Ucrânia
Status na Didit
Em breve
Nível de garantia
não notificado pela UE
O que o usuário faz
Aprova no app eID
Dados retornados para você
Por esquema
Preço por login
Sob consulta
BankID NBU
País
Ucrânia
Status na Didit
Sob demanda
Nível de garantia
não notificado pela UE
O que o usuário faz
Faz login na página do esquema
Dados retornados para você
Por esquema
Preço por login
Sob consulta
UAE PASS
País
Emirados Árabes Unidos
Status na Didit
Em breve
Nível de garantia
Basic, Verified
O que o usuário faz
Aprova no app eID
Dados retornados para você
Por esquema
Preço por login
Sob consulta
Kuwait Mobile ID (Hawyti)
País
Kuwait
Status na Didit
Sob demanda
Nível de garantia
Não declarado
O que o usuário faz
Aprova no app eID
Dados retornados para você
Por esquema
Preço por login
Sob consulta
Absher
País
Arábia Saudita
Status na Didit
Sob demanda
Nível de garantia
Não declarado
O que o usuário faz
Aprova no app eID
Dados retornados para você
Por esquema
Preço por login
Sob consulta
Nafath
País
Arábia Saudita
Status na Didit
Sob demanda
Nível de garantia
Não declarado
O que o usuário faz
Aprova no app eID
Dados retornados para você
Por esquema
Preço por login
Sob consulta
ConnectID
País
Austrália
Status na Didit
Em breve
Nível de garantia
Não declarado
O que o usuário faz
Faz login na página do esquema
Dados retornados para você
Por esquema
Preço por login
Sob consulta
myID
País
Austrália
Status na Didit
Sob demanda
Nível de garantia
Conforme as regras do esquema
O que o usuário faz
Aprova no app eID
Dados retornados para você
Por esquema
Preço por login
Sob consulta
National Online Identity Authentication
País
China
Status na Didit
Sob demanda
Nível de garantia
Não declarado
O que o usuário faz
Aprova no app eID
Dados retornados para você
Por esquema
Preço por login
Sob consulta
Identitas Kependudukan Digital (IKD)
País
Indonésia
Status na Didit
Sob demanda
Nível de garantia
Não declarado
O que o usuário faz
Aprova no app eID
Dados retornados para você
Por esquema
Preço por login
Sob consulta
Aadhaar e-KYC
País
Índia
Status na Didit
Sob demanda
Nível de garantia
Não declarado
O que o usuário faz
Confirma um código no celular
Dados retornados para você
Por esquema
Preço por login
Sob consulta
DigiLocker
País
Índia
Status na Didit
Sob demanda
Nível de garantia
Não declarado
O que o usuário faz
Aprova no app eID
Dados retornados para você
Por esquema
Preço por login
Sob consulta
My Number Card (JPKI)
País
Japão
Status na Didit
Sob demanda
Nível de garantia
Não declarado
O que o usuário faz
Encosta o cartão de identidade (NFC) ou usa um leitor de cartão
Dados retornados para você
Por esquema
Preço por login
Sob consulta
Mobile ID
País
Coreia do Sul
Status na Didit
Sob demanda
Nível de garantia
Não declarado
O que o usuário faz
Aprova no app eID
Dados retornados para você
Por esquema
Preço por login
Sob consulta
RealMe verified identity
País
Nova Zelândia
Status na Didit
Sob demanda
Nível de garantia
Não declarado
O que o usuário faz
Faz login na página do esquema
Dados retornados para você
Por esquema
Preço por login
Sob consulta
PhilSys (PhilID, ePhilID)
País
Filipinas
Status na Didit
Sob demanda
Nível de garantia
Não declarado
O que o usuário faz
Escaneia um QR code com o app
Dados retornados para você
Por esquema
Preço por login
Sob consulta
Singpass (Myinfo)
País
Singapura
Status na Didit
Sob demanda
Nível de garantia
Não declarado
O que o usuário faz
Aprova no app eID
Dados retornados para você
Por esquema
Preço por login
Sob consulta
NDID
País
Tailândia
Status na Didit
Sob demanda
Nível de garantia
Não declarado
O que o usuário faz
Aprova no app eID
Dados retornados para você
Por esquema
Preço por login
Sob consulta
ThaID
País
Tailândia
Status na Didit
Sob demanda
Nível de garantia
Não declarado
O que o usuário faz
Aprova no app eID
Dados retornados para você
Por esquema
Preço por login
Sob consulta
Mi Argentina
País
Argentina
Status na Didit
Sob demanda
Nível de garantia
Não declarado
O que o usuário faz
Aprova no app eID
Dados retornados para você
Por esquema
Preço por login
Sob consulta
gov.br
País
Brasil
Status na Didit
Em breve
Nível de garantia
Conforme as regras do esquema
O que o usuário faz
Faz login na página do esquema
Dados retornados para você
Por esquema
Preço por login
Sob consulta
Service d'authentification gouvernementale
País
Canadá
Status na Didit
Sob demanda
Nível de garantia
Não declarado
O que o usuário faz
Faz login na página do esquema
Dados retornados para você
Por esquema
Preço por login
Sob consulta
Llave MX
País
México
Status na Didit
Sob demanda
Nível de garantia
Não declarado
O que o usuário faz
Faz login na página do esquema
Dados retornados para você
Por esquema
Preço por login
Sob consulta
DNIe 3.0
País
Peru
Status na Didit
Sob demanda
Nível de garantia
Não declarado
O que o usuário faz
Encosta o cartão de identidade (NFC) ou usa um leitor de cartão
Dados retornados para você
Por esquema
Preço por login
Sob consulta
Apple Wallet Digital ID
País
Estados Unidos
Status na Didit
Sob demanda
Nível de garantia
Não declarado
O que o usuário faz
Aprova no app eID
Dados retornados para você
Por esquema
Preço por login
Sob consulta
Google Wallet ID Pass
País
Estados Unidos
Status na Didit
Sob demanda
Nível de garantia
Não declarado
O que o usuário faz
Aprova no app eID
Dados retornados para você
Por esquema
Preço por login
Sob consulta
ID.me
País
Estados Unidos
Status na Didit
Sob demanda
Nível de garantia
NIST IAL2
O que o usuário faz
Faz login na página do esquema
Dados retornados para você
Por esquema
Preço por login
Sob consulta
Login.gov
País
Estados Unidos
Status na Didit
Sob demanda
Nível de garantia
Não declarado
O que o usuário faz
Faz login na página do esquema
Dados retornados para você
Por esquema
Preço por login
Sob consulta
State mobile driver's licences (mDL)
País
Estados Unidos
Status na Didit
Sob demanda
Nível de garantia
Não declarado
O que o usuário faz
Aprova no app eID
Dados retornados para você
Por esquema
Preço por login
Sob consulta
Cédula digital wallet
Ainda não lançado
País
Uruguai
Status na Didit
Sob demanda
Nível de garantia
Não declarado
O que o usuário faz
Aprova no app eID
Dados retornados para você
Por esquema
Preço por login
Sob consulta
National Identification Number (NIN)
País
Nigéria
Status na Didit
Sob demanda
Nível de garantia
Não declarado
O que o usuário faz
Confirma um código no celular
Dados retornados para você
Por esquema
Preço por login
Sob consulta
Smart ID card
País
África do Sul
Status na Didit
Sob demanda
Nível de garantia
Não declarado
O que o usuário faz
Encosta o cartão de identidade (NFC) ou usa um leitor de cartão
Dados retornados para você
Por esquema
Preço por login
Sob consulta
Última revisão: 5 de outubro de 2026. Não é aconselhamento jurídico. O nível de garantia é o nível do próprio esquema sob o eIDAS (o regulamento da UE sobre identificação eletrônica) ou regras nacionais, conforme publicado pelo emissor ou pela lista da UE de esquemas notificados. Os preços são por login concluído. Para qualquer esquema marcado como "Sob consulta", fale conosco: a rota de documento com leitura de chip já funciona nesse país.
Veja o fluxo
Três telas, sem foto de documento.
O que seu cliente vê com o Smart-ID: escolhe o eID, confirma um código no app, volta verificado. MitID, BankID e Finnish Trust Network redirecionam para o app no mesmo celular, ou mostram um QR code no desktop.
Verifique com seu eID
MitID
BankID
Finnish Trust Network
Smart-ID
Mobile-ID
01
Escolha seu eID
O seletor lista os eIDs que você aceita para o país do usuário, com suas marcas oficiais.
Seu código de verificação
4821
Verifique se seu app mostra o mesmo código e, em seguida, confirme.
02
Aprove no app
O usuário verifica se o código corresponde e, em seguida, confirma com seu PIN no app eID. O Didit nunca vê o PIN.
Identidade verificada
De volta ao app
03
Verificado
O fluxo retorna o usuário para você, e o resultado assinado chega via webhook.
Integre
Ative os eIDs. Leia o resultado assinado.
Habilite eIDs por país no fluxo de trabalho, com a rota de documento como fallback, e então leia o resultado assinado da decisão da sessão ou do webhook.
Copie este prompt para seu agente de codificação e descreva sua stack. Ele cobre a configuração do fluxo de trabalho por país, a chamada de sessão, o webhook assinado, o resultado de wallet_verification e a cobrança.
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 por design
Abra um novo país com um clique. Nós fazemos o trabalho pesado.
Nós abrimos as subsidiárias locais, garantimos as licenças, realizamos os testes de penetração, obtemos as certificações e nos alinhamos a cada nova regulamentação. Para lançar verificações em um novo país, basta ativar uma chave. Mais de 220 países ativos, auditados e testados trimestralmente, o único provedor 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 pelo uso. Escale para Enterprise.
500 verificações gratuitas todo mês, 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 seus primeiros usuários.
Tudo o que você precisa para começar:
500 verificações KYC completas todo mês
ID, prova de vida, face match, dispositivo e IP
Mais de 200 sinais de fraude, blocklist, duplicatas
KYC reutilizável em toda a rede Didit
Construtor de fluxo de trabalho, gerenciamento de casos, SDKs
Suporte de IAAgente de IA no console, documentação e comunidade.