> ## Documentation Index
> Fetch the complete documentation index at: https://docs-platform.services-valid.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# Instalação

> Como instalar e configurar o Valid Liveness SDK em aplicações web

## Visão Geral

O **Valid Liveness SDK** é uma biblioteca JavaScript que permite a integração de verificação de vivacidade facial em aplicações web. O SDK oferece uma interface unificada e simplificada para captura biométrica, com suporte a personalização completa da interface e mensagens.

### Principais Recursos

<CardGroup cols={2}>
  <Card title="API Simplificada" icon="code">
    Execute todo o fluxo de verificação com uma única chamada
  </Card>

  <Card title="Personalização Completa" icon="palette">
    Customize cores, textos e idiomas da interface
  </Card>

  <Card title="Segurança Avançada" icon="shield-check">
    Criptografia de dados e detecção de injeção de câmera
  </Card>

  <Card title="Multi-idioma" icon="globe">
    Português (pt-BR) e Inglês (en-US) nativos
  </Card>
</CardGroup>

## Requisitos

Antes de iniciar a integração, certifique-se de que seu ambiente atende aos seguintes requisitos:

| Requisito       | Descrição                                                                                                                           |
| --------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
| **HTTPS**       | Obrigatório em produção. A API `getUserMedia` (acesso à câmera) exige contexto seguro. Em desenvolvimento, `localhost` é permitido. |
| **Navegadores** | Navegadores modernos com suporte a WebCrypto API e `getUserMedia` (Chrome 60+, Firefox 55+, Safari 14.1+, Edge 79+).                |
| **Câmera**      | Dispositivo com câmera frontal acessível pelo navegador.                                                                            |

## Credenciais Necessárias

Você precisará das seguintes credenciais fornecidas pela Valid:

| Credencial  | Descrição                                                   |
| ----------- | ----------------------------------------------------------- |
| **API Key** | Chave de autenticação para acesso à API                     |
| **CEK**     | Client Encryption Key para comunicação segura com o backend |

<Info>
  A URL do backend é derivada automaticamente pelo SDK a partir do parâmetro
  `env` (`'production'`, `'homolog'` ou `'development'`). Não é necessário
  configurá-la manualmente.
</Info>

## Instalação via CDN

O SDK é distribuído exclusivamente via CDN. Não há pacote npm público.

```html Versão produção theme={"theme":"catppuccin-latte"}
<script src="https://cdn.hub-liveness-service.app/latest/prod/valid-hub-sdk.js"></script>
```

### Verificando o Carregamento

Após o carregamento do script, o objeto `ValidHub` estará disponível globalmente:

```javascript theme={"theme":"catppuccin-latte"}
if (typeof ValidHub !== "undefined") {
  console.log("Valid Liveness SDK carregado com sucesso!");
} else {
  console.error("Falha ao carregar o SDK");
}
```

## Estrutura HTML Mínima

```html theme={"theme":"catppuccin-latte"}
<!DOCTYPE html>
<html lang="pt-BR">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Verificação de Identidade</title>
    <script src="https://cdn.hub-liveness-service.app/latest/prod/valid-hub-sdk.js"></script>
  </head>
  <body>
    <!-- Container onde o SDK irá renderizar a interface de captura -->
    <div id="camera-container"></div>

    <button id="iniciar-verificacao">Iniciar Verificação</button>

    <script src="seu-app.js"></script>
  </body>
</html>
```

## Configuração do CEK

O CEK (Client Encryption Key) contém as chaves de criptografia necessárias para a comunicação segura com o backend. O SDK aceita o CEK nos seguintes formatos:

| Formato              | Descrição                                          |
| -------------------- | -------------------------------------------------- |
| **String Base64**    | String codificada em Base64 contendo o JSON do CEK |
| **JSON string**      | String JSON contendo os dados do CEK               |
| **Objeto `CEKData`** | Objeto JavaScript com os campos do CEK diretamente |

### Usando o CEK

```javascript theme={"theme":"catppuccin-latte"}
// Opção 1: String Base64 (mais comum)
const config = {
  apiKey: "sua-api-key",
  cek: "eyJrZXlJZCI6ImNlay0xMjM0NTYiLCJlbmNyeXB0aW9uS2V5Ijoi...base64...",
  mount: "#camera-container",
  env: "production",
};

// Opção 2: Objeto CEKData direto
const config = {
  apiKey: "sua-api-key",
  cek: {
    keyId: "cek-123456",
    encryptionKey: "...",
    algorithm: "A256GCM",
    createdAt: "2025-01-01T00:00:00Z",
  },
  mount: "#camera-container",
  env: "production",
};
```

<Warning>
  **Segurança:** Proteja o CEK. Mantenha-o em um endpoint com autenticação e
  considere carregá-lo dinamicamente quando necessário.
</Warning>

## Próximos Passos

<CardGroup cols={2}>
  <Card title="Implementação" icon="code" href="/plataforma/liveness/hub/sdk/web/implementation">
    Veja como implementar a verificação de liveness
  </Card>

  <Card title="Customização" icon="palette" href="/plataforma/liveness/hub/sdk/web/customization">
    Personalize idiomas, textos e cores
  </Card>
</CardGroup>
