Pular para o conteúdo principal
O SDK JavaScript da Didit oferece uma forma programática de integrar a verificação à sua aplicação web, com controle total sobre a experiência do usuário.

Recursos

  • API simples - Padrão singleton com métodos fáceis de usar
  • Integração flexível - Use a URL do UniLink diretamente ou crie sessões pelo backend
  • Responsivo - Funciona em navegadores de desktop e de dispositivos móveis
  • Personalizável - Opções de configuração para estilo e comportamento
  • Vários formatos - Builds ESM, CommonJS e UMD
  • Suporte a TypeScript - Definições de tipos completas incluídas
  • Modos modal e inline - Escolha entre uma sobreposição modal ou a incorporação inline
  • Callbacks de eventos - Eventos em tempo real sobre o progresso da verificação (iniciada, etapa concluída, finalizada)
  • Gerenciamento de estado - Observe o estado do SDK para criar uma UI personalizada

Instalação

NPM/Yarn

CDN (UMD)

A versão mais recente publicada no npm é a 0.5.1. A 0.5.0 adicionou DiditSdk.shared.submitEvent() (veja Enviar eventos), e a 0.5.1 permite que o fluxo hospedado solicite o documento de identidade do usuário a uma carteira de identidade digital dentro do SDK, além de manter uma inicialização com falha no estado error, com sua errorMessage. A 0.4.0 adicionou as opções de câmera que os SDKs nativos já oferecem, incluindo defaultLivenessCamera, que abre a captura facial na câmera traseira (veja Opções de câmera).

Verificar a versão instalada

Seu gerenciador de pacotes continua sendo a fonte definitiva para a versão instalada:
Você também pode inspecionar a exportação em tempo de execução:
A partir da 0.3.1, essa exportação é gerada a partir da versão do pacote em todos os formatos JavaScript (ESM, CommonJS, UMD, UMD minificado) e na declaração TypeScript, portanto sempre corresponde à versão instalada. A 0.3.0 e versões anteriores informam 0.2.1 nessa exportação, independentemente da versão instalada. Nessas versões, use npm list ou o seu lockfile.

JavaScript puro

ES Modules / TypeScript

Tag de script (UMD)


Exemplos com frameworks

Exemplos do SDK Web

React, Angular, Svelte, Next.js, Nuxt, Vue e outros, com exemplos e documentação para cada framework.

Métodos de integração

Há duas formas de integrar o SDK: Use a URL do UniLink do seu fluxo de verificação (workflow) diretamente do Didit Console. Nenhum backend é necessário.
Obtenha a URL do UniLink no Didit Console → Seu fluxo → Copiar link. O session_id gerado será enviado a você por meio de um evento. Consulte a referência de eventos aqui

Método 2: Sessão pelo backend (recomendado para produção)

Seu backend cria uma sessão pela API da Didit e retorna a URL de verificação hospedada. Isso dá a você controle sobre vendor_data, o callback por sessão e metadata, além de permitir criar sessões antes que o usuário chegue ao frontend. Saiba mais na referência da API Create Session. Backend (Node.js / Express)
Frontend
O campo da resposta de criação de sessão se chama url (veja o esquema OpenAPI de Create Session). Passe-o diretamente para startVerification({ url }).

Configuração

Veja abaixo as definições de tipos TypeScript completas para a interface DiditSdkConfiguration inteira.

Opções de câmera

As opções de câmera exigem @didit-protocol/sdk-web 0.4.0 ou posterior.
O SDK web oferece as mesmas quatro opções de câmera dos SDKs nativos. Por padrão, a captura do documento abre a câmera traseira e a captura do rosto (prova de vida) abre a câmera frontal (selfie). As duas etapas oferecem um seletor de câmera durante a captura em dispositivos com mais de uma câmera. Defina defaultLivenessCamera: 'back' para abrir a captura do rosto na câmera traseira, por exemplo em um quiosque ou quando um operador segura o dispositivo e o aponta para a pessoa que está sendo verificada.
  • Os valores de lente aceitos são 'front' e 'back'. Qualquer outro valor é ignorado, assim como uma flag do seletor que não seja booleana.
  • Um dispositivo sem a câmera solicitada usa a câmera disponível: um notebook configurado com 'back' continua usando a webcam. O seletor fica oculto em dispositivos com uma única câmera, independentemente das flags.
  • As opções de prova de vida se aplicam à verificação de prova de vida passiva. A prova de vida ativa não é afetada.
  • O SDK repassa as opções à página de verificação como parâmetros de consulta da URL de verificação: document_camera, liveness_camera, document_camera_switch e liveness_camera_switch. Se você abrir a URL de verificação diretamente, sem passar pelo SDK, defina-os você mesmo: acrescente ?liveness_camera=back a uma URL sem query string, &liveness_camera=back a uma que já tenha parâmetros, ou defina-os com a API URL para tratar os dois casos:

Envio de eventos

DiditSdk.shared.submitEvent() coloca em fila eventos do usuário final (cadastro, login, falha de login, logout, redefinição de senha, MFA, troca de dispositivo) para o monitoramento de eventos da Didit. Seu backend gera um token de monitoramento para a pessoa, e o SDK envia os eventos em lotes junto com a impressão digital do dispositivo. Nunca envie uma chave de API ao navegador.
Consulte Envio de eventos pelo SDK para saber sobre o token, os campos do evento e o comportamento de entrega.

Dimensionamento e rolagem do modal

O comportamento de dimensionamento abaixo exige 0.3.1 ou posterior. As versões 0.3.0 e anteriores podem cortar o fluxo de verificação em viewports de desktop com pouca altura e em modo paisagem.
O modo modal usa largura máxima de 500px e altura máxima de 700px. Em viewports de desktop com pouca altura e em modo paisagem, o iframe acompanha 90% da viewport visível. O fluxo de verificação rola dentro do iframe, de modo que todas as etapas continuam acessíveis enquanto a página por trás do modal permanece bloqueada. O SDK usa dvh em navegadores compatíveis com unidades de viewport dinâmicas e recorre a vh nos navegadores suportados mais antigos. Em larguras de 540px ou menos, o modal ocupa toda a viewport visível. O botão de fechar e a confirmação de saída ficam dentro do modal.

Fluxo de verificação redesenhado

Tudo nesta seção se aplica a partir da versão 0.5.0, que ainda não foi publicada. Até você atualizar, o modal mantém o tamanho descrito acima.
A partir da versão 0.5.0, o modal ajusta seu tamanho ao fluxo de verificação redesenhado assim que a página informa seu layout com uma mensagem didit:layout:
  • Tamanho inicial, a partir da versão 0.5.0: até a página informar seu layout, e para páginas que nunca o fazem, o modal mantém o tamanho máximo atual de 500px por 700px. Ele continua se ajustando a janelas de pouca altura e permanece em tela cheia em 540px ou menos.
  • Botão de fechar, a partir da versão 0.5.0: um círculo de 44px sobre a barra superior da página. Ele segue o tema claro ou escuro da página e passa para a esquerda em idiomas escritos da direita para a esquerda.
  • Modo incorporado, a partir da versão 0.5.0: continua ocupando todo o seu elemento hospedeiro, como antes (consulte Modo incorporado).
  • URL de verificação, a partir da versão 0.5.0: o SDK adiciona sdk_presentation (modal ou embedded) e, em um modal, sdk_close_button (true ou false, conforme showCloseButton), para que a página saiba como está sendo exibida.
  • Eventos, a partir da versão 0.5.0: o SDK trata didit:layout internamente e não o repassa para onEvent.
Não há nada para configurar, e todas as opções existentes continuam funcionando.

Modo incorporado

O modo incorporado não usa o limite de 500px por 700px do modal. O SDK ocupa a caixa de conteúdo do elemento hospedeiro, então dê a esse elemento uma altura explícita ou definida de outra forma:
Se o elemento hospedeiro não tiver uma altura definida, o iframe incorporado também não terá uma altura utilizável. Redimensione o elemento hospedeiro quando seu layout mudar; o SDK continua a preenchê-lo automaticamente.

Resultados da verificação

O SDK retorna três tipos de resultados:

Concluído

O fluxo de verificação terminou (aprovado, pendente ou recusado).
O tipo TypeScript declara 'Approved' | 'Pending' | 'Declined', mas o valor é repassado do status da sessão do fluxo hospedado, então você também pode receber outros status, como In Review. Pending é o valor padrão do SDK quando o fluxo não informa nenhum status. Trate status como uma indicação e use o webhook como fonte da decisão definitiva.

Cancelado

O usuário fechou o modal de verificação. session é incluído quando um sessionId já era conhecido (pode ser undefined se o usuário cancelou antes de o iframe informar um).

Falhou

Ocorreu um erro durante a verificação.

Gerenciamento de estado

Você pode observar o estado do SDK para criar uma interface personalizada:

Referência da API

DiditSdk.shared

A instância singleton do SDK.

Métodos

Propriedades

Callbacks


Eventos granulares

Acompanhe o progresso da verificação com o callback onEvent:

Referência de eventos

Perda de conexão

Se a conexão do usuário cair, a página de verificação exibe uma tela de “Sem conexão com a internet” sobre o fluxo em vez de deixar uma etapa em carregamento. Ela continua verificando em segundo plano e fecha a tela sozinha assim que a Didit volta a ficar acessível, e o usuário continua a partir da etapa em que estava. Dentro do modal do SDK ou de um iframe, a tela também oferece Exit Verification: a página então envia didit:error com error: "network_error", seguido de didit:cancelled, e o SDK fecha o modal e chama onComplete com type: "cancelled". A partir da versão 0.5.0, a mensagem didit:layout da página dimensiona o modal e não chega ao onEvent. Se, em vez disso, você incorporar a página com seu próprio iframe, consulte Dimensionar o iframe a partir de didit:layout.

Valores de etapa

O campo step pode ser um dos seguintes:
  • document_selection - Seleção do tipo de documento
  • document_front - Frente do documento
  • document_back - Verso do documento
  • face - Verificação facial/prova de vida
  • email - Verificação de e-mail
  • phone - Verificação de telefone
  • poa - Comprovante de endereço
  • questionnaire - Etapa de questionário

Valores de canal

O campo channel em code_sent pode ser:
  • email - Código enviado por e-mail
  • sms - Código enviado por SMS
  • whatsapp - Código enviado por WhatsApp

Tamanho do código

O campo codeSize em code_sent indica o comprimento do código OTP (por exemplo, 4 ou 6 dígitos).

Tipos TypeScript

Última modificação em 1 de novembro de 2026