> For the complete documentation index, see [llms.txt](https://docs.caf.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.caf.io/caf-sdk/caf-sdk-pt-br/web-javascript/getting-started/faceauthenticator-deprecated-1.md).

# FaceAuthenticator (Obsoleto)

## Importando SDK <a href="#id-8wb6izedyenp" id="id-8wb6izedyenp"></a>

Para usar o FaceAuthenticator, você pode importar remotamente o `.js` arquivo ou baixá-lo localmente.

## **Remotamente** <a href="#id-497hoiux4wxd" id="id-497hoiux4wxd"></a>

Inclua o `.js` arquivo diretamente da CDN:

```html
<script src="https://repo.combateafraude.com/javascript/release/face-authenticator-deprecated/<VERSION>.umd.js" type="text/javascript"></script>
```

Você pode obter a classe do SDK usando o seguinte código:

```javascript
const { FaceAuthenticatorSdk } = window['@combateafraude/face-authenticator'];
```

## **Localmente** <a href="#id-4ne8pmuotbnc" id="id-4ne8pmuotbnc"></a>

Baixe o `.js` arquivo e importe-o como um módulo ES6:

```javascript
import { FaceAuthenticatorSdk } from '../assets/js/face-authenticator-<VERSION>.js'
```

## **Construção** <a href="#o5y52hcnc2lv" id="o5y52hcnc2lv"></a>

No construtor, o SDK recebe um único parâmetro com as configurações:

```javascript
const sdk = new DocumentDetectorSdk(options);
```

### Parâmetros suportados <a href="#id-406kz8934mrz" id="id-406kz8934mrz"></a>

<table data-header-hidden><thead><tr><th width="518"></th><th></th></tr></thead><tbody><tr><td><strong>Parâmetro</strong></td><td><strong>Obrigatório?</strong></td></tr><tr><td><p><a href="https://docs.combateafraude.com/docs/mobile/introduction/mobile-token"><code>token</code></a></p><p>Token de autenticação para consumir o SDK.</p></td><td>Sim.</td></tr><tr><td><p><strong><code>language</code></strong></p><p>Idioma padrão das mensagens, valores válidos: en_US, en_BR, es_MX.</p></td><td>Não. O padrão é <strong><code>pt_BR</code></strong></td></tr><tr><td><p><strong><code>analyticsSettings</code></strong></p><p>Objetos de configuração de análise.</p></td><td>Não.</td></tr><tr><td><p><strong><code>analyticsSettings.disableAnalytics</code></strong></p><p>Parâmetro responsável por habilitar ou desabilitar a análise.</p></td><td>Não.</td></tr><tr><td><p><strong><code>analyticsSettings.trackingId</code></strong></p><p>ID único no qual vamos salvar as informações desta execução do SDK.</p></td><td>Não.</td></tr><tr><td><p><strong><code>analyticsSettings.trackingInfo</code></strong></p><p>Aceitamos um objeto de informações.</p></td><td>Não.</td></tr><tr><td><p><strong><code>environmentSettings.disableDesktopExecution</code></strong></p><p>Indica se a execução em desktops deve ser bloqueada.</p></td><td>Não. O padrão é <strong><code>false</code></strong></td></tr><tr><td><p><strong><code>capturerSettings.disableAdvancedCapturing</code></strong></p><p>Indica se a captura avançada deve ser desativada*.</p></td><td>Não. O padrão é <strong><code>false</code></strong></td></tr><tr><td><p><strong><code>appearenceSettings.captureButtonIcon</code></strong></p><p>A personalização do ícone de captura aceita valores como URL de imagem ou SVGs em base64.</p></td><td>Não</td></tr><tr><td><p><strong><code>appearenceSettings.captureIconSize</code></strong></p><p>Personalização do tamanho do ícone para o campo captureButtonIcon.</p></td><td>Não</td></tr><tr><td><p><strong><code>appearenceSettings.captureButtonColor</code></strong></p><p>Personalização da cor padrão do botão de captura de imagem.</p></td><td>Não</td></tr><tr><td><p><strong><code>appearenceSettings.switchButtonIcon</code></strong></p><p>A personalização do ícone de troca de câmera aceita valores como URL de imagem ou SVGs em base64.</p></td><td>Não</td></tr><tr><td><p><strong><code>appearenceSettings.switchIconSize</code></strong></p><p>Personalização do tamanho do ícone para o campo switchButtonIcon.</p></td><td>Não</td></tr><tr><td><p><strong><code>appearenceSettings.switchIconColor</code></strong></p><p>Personalização da cor do ícone padrão de troca de câmera.</p></td><td>Não</td></tr><tr><td><p><strong><code>appearenceSettings.fontFamily</code></strong></p><p>Altera a fonte de todos os elementos contidos no SDK.</p></td><td>Não. O padrão é herdado da página</td></tr><tr><td><p><strong><code>textSettings.messages.processMessage</code></strong></p><p>Personalização da mensagem de processamento da imagem.</p></td><td>Não. O padrão é <code>"Processando sua foto, aguarde um momento"</code></td></tr><tr><td><p><strong><code>textSettings.messages.captureFailedMessage</code></strong></p><p>Personalização da mensagem de falha na captura.</p></td><td>Não. O padrão é <code>"Ops! Tivemos um problema ao processar sua imagem."</code></td></tr></tbody></table>

\* A captura avançada consiste em usar APIs mais complexas e não tão estáveis nos navegadores que oferecem suporte a elas (por exemplo, [ImageCapture](https://developer.mozilla.org/pt-BR/docs/Web/API/ImageCapture))

#### &#x20;<a href="#gw3auh2c9d0" id="gw3auh2c9d0"></a>

#### **Exemplo** <a href="#id-9gtiu9rxgzn0" id="id-9gtiu9rxgzn0"></a>

```javascript
const sdk = new DocumentDetectorSdk({
    token: `my-sdk-token`,
    language: `pt_BR`,

    analyticsSettings: {
      disableAnalytics: false,
      trackingId: "",
      trackingInfo: "",
    },

    environmentSettings: {
        disableDesktopExecution: false,
    },


    appearenceSettings: {
        hideCaptureTitle: false,
        hideCaptureMask: false,
        hideCameraSwitchButton: false,
        useGenericMask: false,
    },

    capturerSettings: {
        disableAdvancedCapturing: false,
    },

    textSettings: {
        messages: {
            processMessage: '',
            wrongDocumentMessage: '',
            bothWrongSideMessage: '',
            wrongSideMessage: '',
            lowQualityMessage: '',
            captureFailedMessage: '',
        }
});
```

#### &#x20;<a href="#cltsgpblpz5x" id="cltsgpblpz5x"></a>

### **CaptureStage** <a href="#av30ro16qapb" id="av30ro16qapb"></a>

CaptureStage permite ao cliente configurar os estágios. Para isso, oferecemos o **`CaptureStage`** objeto, no qual você pode definir os seguintes parâmetros:

| **Parâmetro**                                                                                                                                                                                                                                                                                                                         |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <p><strong><code>mode</code></strong></p><p>Modo de captura desejado. Pode ser usado <code>manual</code>, <code>automático</code> ou <code>envio</code>. Na captura manual, um botão será habilitado para o usuário fazer a captura; no envio, a funcionalidade de envio de documentos será exibida em vez da captura.</p>            |
| <p><strong><code>tentativas</code></strong></p><p>O número de tentativas do estágio atual. Se for o único estágio, o valor <code>0</code> deve ser passado.</p>                                                                                                                                                                       |
| <p><strong><code>duração</code></strong></p><p>Tempo de duração do estágio atual. Se houver mais de um estágio definido, é possível definir o tempo total de cada estágio e, quando o tempo total for atingido, o estágio avançará para o próximo. Defina como <code>0</code> se você não quiser definir um tempo para o estágio.</p> |

#### **Exemplo de CaptureStage**

```javascript
const stages = [
  { mode: "automatic", attempts: 3, duration: 60 },
  { mode: "manual", attempts: 3, duration: 60 },
  { mode: "upload", attempts: 0, duration: 0 },
];
```

## **Inicialização** <a href="#id-1htcytapji7o" id="id-1htcytapji7o"></a>

#### `initialize(): Promise<void>` <a href="#tcfegfh5qva1" id="tcfegfh5qva1"></a>

O SDK possui um método separado de inicialização, para permitir maior controle sobre quando ela ocorre.

Durante essa inicialização, o SDK inicializará suas variáveis internas e baixará os recursos necessários para executar.

**\[!]** Você deve chamar este método antes de usar outros métodos do SDK.

**\[!]** A inicialização do SDK pode levar alguns segundos. Recomendamos que você chame essa função o mais cedo possível no seu fluxo para que a abertura do SDK seja tranquila para o usuário.

### **Exemplo** <a href="#id-5clttgsl8vx9" id="id-5clttgsl8vx9"></a>

```javascript
await sdk.initialize();
```

## Utilização <a href="#id-2nutj8vz4qyr" id="id-2nutj8vz4qyr"></a>

### Abertura e captura de selfies

**`capture(container: HTMLElement, stages, {personData?: PersonData, totalAttempts?: Number}): Promise<Result>`**

Método usado para carregar o SDK na tela e realizar a captura da selfie.

Ele inicializará o *stream* (solicitando permissões, se necessário) e o carregará no contêiner.

### Parâmetros <a href="#lnxy13cfmg7d" id="lnxy13cfmg7d"></a>

<table data-header-hidden><thead><tr><th width="610.3333333333333"></th><th width="136"></th></tr></thead><tbody><tr><td><strong>Parâmetro</strong></td><td><strong>Tipo</strong></td></tr><tr><td><p><strong><code>personData.cpf</code></strong></p><p>CPF do usuário que está realizando a autenticação (obrigatório).</p></td><td><strong><code>string</code></strong></td></tr><tr><td><p><strong><code>personData.name</code></strong></p><p>Nome do usuário que está realizando a autenticação (opcional).</p></td><td><strong><code>string</code></strong></td></tr></tbody></table>

¹ Se não for especificado, a captura automática será usada.

² Se não for especificado, é usado o valor padrão de 30 segundos.

### Exemplo <a href="#prhq87yesysv" id="prhq87yesysv"></a>

```javascript
// div ou outro elemento no DOM
const sdkContainer = document.getElementById('sdk-displayer');
const personData = { cpf: 'user-cpf', name: 'user-name' };
await sdk.capture(sdkContainer, stages, {personData, totalAttempts});
```

#### **Retornar** <a href="#id-789oo5pmjd16" id="id-789oo5pmjd16"></a>

O retorno consiste em um objeto com os seguintes campos:

<table data-header-hidden><thead><tr><th width="247"></th><th width="140.33333333333331"></th><th></th></tr></thead><tbody><tr><td><strong>Campo</strong></td><td><strong>Tipo</strong></td><td><strong>Descrição</strong></td></tr><tr><td><strong><code>requestId</code></strong></td><td><code>string</code></td><td>Identificador único da requisição</td></tr><tr><td><strong><code>isMatch</code></strong></td><td><code>booleano</code></td><td>Booleano indicando se o rosto capturado é idêntico ao rosto registrado para o informado <strong><code>peopleId</code></strong></td></tr><tr><td><strong><code>peopleId</code></strong></td><td><code>string</code></td><td>Informações do documento informadas para autenticação</td></tr><tr><td><strong><code>openEyesProbability</code></strong></td><td><code>número</code></td><td>Probabilidade de os olhos estarem abertos na selfie capturada</td></tr></tbody></table>

## Fechar o SDK <a href="#n2n8srw9kbk2" id="n2n8srw9kbk2"></a>

### `close(): Promise<void>` <a href="#sro4caipsvz9" id="sro4caipsvz9"></a>

Método usado para remover o SDK da tela.

## Desinicializar o SDK <a href="#t4x334wp7coq" id="t4x334wp7coq"></a>

### `dispose(): Promise<void>` <a href="#mkehuo2jl1r2" id="mkehuo2jl1r2"></a>

Método usado para remover o SDK da tela.

Desinicializará o fluxo de vídeo e limpará as variáveis internas do SDK

## **Exemplo completo** <a href="#gty5kilg02if" id="gty5kilg02if"></a>

Em breve.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.caf.io/caf-sdk/caf-sdk-pt-br/web-javascript/getting-started/faceauthenticator-deprecated-1.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
