Saltar para o conteúdo principal
O SDK JavaScript da Didit oferece uma forma programática de integrar a verificação na sua aplicação web, com controlo total sobre a experiência do utilizador.

Funcionalidades

  • API simples - Padrão singleton com métodos fáceis de usar
  • Integração flexível - Use o URL UniLink diretamente ou crie sessões através do backend
  • Responsivo - Funciona em navegadores de computador e de dispositivos móveis
  • Personalizável - Opções de configuração para estilo e comportamento
  • Vários formatos - Compilações ESM, CommonJS e UMD
  • Suporte TypeScript - Definições de tipos completas incluídas
  • Modo modal e em linha - Escolha entre sobreposição modal ou integração em linha
  • Callbacks de eventos - Eventos em tempo real sobre o progresso da verificação (iniciada, passo concluído, terminada)
  • Gestão de estado - Observe o estado do SDK para criar uma interface personalizada

Instalação

NPM/Yarn

CDN (UMD)

A versão mais recente publicada no npm é a 0.5.1. A 0.5.0 acrescentou DiditSdk.shared.submitEvent() (ver Enviar eventos), e a 0.5.1 permite que o fluxo alojado peça à carteira de identidade digital o ID do utilizador dentro do SDK, e mantém uma inicialização falhada no estado error com o respetivo errorMessage. A 0.4.0 acrescentou as opções de câmara que os SDK nativos já oferecem, incluindo defaultLivenessCamera, que abre a captura facial na câmara traseira (ver Opções de câmara).

Verificar a versão instalada

O seu gestor de pacotes continua a ser a referência para a versão instalada:
Também pode inspecionar a exportação em tempo de execução:
A partir da 0.3.1, esta 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, por isso corresponde sempre à versão instalada. As versões 0.3.0 e anteriores devolvem 0.2.1 nesta exportação, independentemente da versão instalada. Nessas versões, use npm list ou o seu ficheiro de lock.

JavaScript puro

Módulos ES / TypeScript

Tag de script (UMD)


Exemplos de frameworks

Exemplos Web do SDK

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

Métodos de integração

Existem duas formas de integrar o SDK: Use o URL UniLink do seu fluxo diretamente a partir da Consola Didit. Não é necessário backend.
Obtenha o seu URL UniLink na Consola Didit → O seu fluxo → Copiar link. O session_id gerado ser-lhe-á enviado através de um evento. Consulte aqui a referência de eventos

Método 2: sessão no backend (recomendado para produção)

O seu backend cria uma sessão através da API da Didit e devolve o URL de verificação alojado. Isto dá-lhe controlo sobre vendor_data, callback por sessão e metadata, e permite criar sessões antes de o utilizador chegar 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 chama-se url (ver o schema OpenAPI de Create Session). Passe-o diretamente a startVerification({ url }).

Configuração

Consulte abaixo as definições completas de tipos TypeScript da interface DiditSdkConfiguration.

Opções de câmara

As opções de câmara requerem @didit-protocol/sdk-web 0.4.0 ou posterior.
O SDK web expõe as mesmas quatro opções de câmara que os SDK nativos. Por predefinição, a captura do documento abre a câmara traseira e a captura facial (prova de vida) abre a câmara frontal (selfie). Nos dois passos, em dispositivos com mais do que uma câmara, é apresentado um seletor de câmara durante a captura. Defina defaultLivenessCamera: 'back' para abrir a captura facial na câmara traseira, por exemplo num quiosque ou quando um operador segura no dispositivo e o aponta para a pessoa a verificar.
  • Os valores aceites para a objetiva são 'front' e 'back'. Qualquer outro valor é ignorado, o mesmo acontecendo com um sinalizador do seletor que não seja booleano.
  • Um dispositivo sem a câmara pedida mantém a que tem: um portátil que peça 'back' continua a usar a webcam. O seletor fica oculto em dispositivos com uma única câmara, independentemente das opções.
  • As opções de prova de vida aplicam-se à verificação de prova de vida passiva. A prova de vida ativa não é afetada.
  • O SDK transmite as opções à página de verificação como parâmetros de consulta do URL de verificação: document_camera, liveness_camera, document_camera_switch e liveness_camera_switch. Se abrir o URL de verificação diretamente, em vez de através do SDK, defina-os você mesmo: acrescente ?liveness_camera=back a um URL sem cadeia de consulta, &liveness_camera=back a um URL que já tenha parâmetros, ou defina-os com a API URL, que trata os dois casos:

Enviar eventos

DiditSdk.shared.submitEvent() coloca em fila os eventos do utilizador final (registo, início de sessão, falha no início de sessão, terminar sessão, redefinição de palavra-passe, MFA, alteração de dispositivo) para a monitorização de eventos da Didit. O seu back-end cria um token de monitorização para a pessoa, e o SDK envia os eventos em lotes juntamente com a impressão digital do dispositivo. Nunca envie uma chave de API para o navegador.
Consulte Submissão de eventos do SDK para o token, os campos dos eventos e o comportamento de entrega.

Dimensionamento e deslocamento do modal

O comportamento de dimensionamento descrito abaixo requer a versão 0.3.1 ou posterior. As versões 0.3.0 e anteriores podem cortar o fluxo de verificação em áreas de visualização de computadores com pouca altura e em orientação paisagem.
O modo modal usa uma largura máxima de 500px e uma altura máxima de 700px. Em áreas de visualização de computadores e em orientação paisagem com menor altura, o iframe ocupa 90% da área de visualização visível. O fluxo de verificação desloca-se dentro do iframe, pelo que todos os passos continuam acessíveis, enquanto a página por trás do modal fica bloqueada. O SDK usa dvh nos navegadores que suportam unidades de área de visualização dinâmicas e recorre a vh nos navegadores antigos suportados. Com larguras de 540px ou menos, o modal ocupa toda a área de visualização visível. O botão de fecho e a confirmação de saída mantêm-se dentro do modal.

Fluxo de verificação redesenhado

Tudo o que está nesta secção se aplica a partir da versão 0.5.0, que ainda não está publicada. Até atualizar, o modal mantém o tamanho descrito acima.
A partir da versão 0.5.0, o modal ajusta o seu tamanho ao fluxo de verificação redesenhado, depois de a página comunicar o respetivo layout através de uma mensagem didit:layout:
  • Tamanho inicial, a partir da versão 0.5.0: até a página comunicar o respetivo layout, e para as páginas que nunca o fazem, o modal mantém o tamanho máximo existente de 500px por 700px. Continua a caber em janelas curtas e ocupa o ecrã inteiro com 540px ou menos.
  • Botão de fecho, a partir da versão 0.5.0: um círculo de 44px sobre a barra superior da página. Segue o tema claro ou escuro da página e passa para a esquerda em idiomas da direita para a esquerda.
  • Modo incorporado, a partir da versão 0.5.0: continua a preencher o respetivo elemento anfitrião, como antes (ver Modo incorporado).
  • URL de verificação, a partir da versão 0.5.0: o SDK acrescenta sdk_presentation (modal ou embedded) e, num modal, sdk_close_button (true ou false, conforme showCloseButton), para que a página saiba como é apresentada.
  • Eventos, a partir da versão 0.5.0: o SDK trata de didit:layout por si próprio e não o transmite a onEvent.
Não há nada para configurar, e todas as opções existentes continuam a funcionar.

Modo incorporado

O modo incorporado não usa o limite de 500px por 700px do modal. O SDK preenche a área de conteúdo do elemento anfitrião, pelo que deve dar a esse elemento uma altura explícita ou resolvida de outra forma:
Se o anfitrião não tiver uma altura resolvida, o iframe incorporado também não terá uma altura utilizável. Redimensione o anfitrião sempre que o seu layout mudar; o SDK continua a preenchê-lo automaticamente.

Resultados da verificação

O SDK devolve 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 é transmitido a partir do estado da sessão do fluxo alojado. Também pode receber outros estados, como In Review. Pending é o valor de reserva do SDK quando o fluxo não indicou nenhum estado. Trate status apenas como uma indicação e baseie-se no webhook para a decisão canónica.

Cancelado

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

Falhado

Ocorreu um erro durante a verificação.

Gestão do estado

Pode observar o estado do SDK para criar uma interface personalizada:

Referência da API

DiditSdk.shared

A instância única do SDK.

Métodos

Propriedades

Callbacks


Eventos granulares

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

Referência de eventos

Ligação perdida

Se a ligação do utilizador for interrompida, a página de verificação sobrepõe um ecrã “Sem ligação à Internet” ao fluxo, em vez de deixar um passo a carregar. A página continua a verificar em segundo plano e fecha o ecrã automaticamente assim que a Didit voltar a ser contactável, e o utilizador prossegue a partir do passo em que estava. Dentro do modal do SDK ou de um iframe, o ecrã oferece também Exit Verification: a página envia então 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 a onEvent. Se, em vez disso, incorporar a página com o seu próprio iframe, consulte Dimensionar o iframe a partir de didit:layout.

Valores de passo

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 e prova de vida
  • email - Verificação de e-mail
  • phone - Verificação de telefone
  • poa - Comprovativo de morada
  • questionnaire - Passo 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 7 de novembro de 2026