> For the complete documentation index, see [llms.txt](https://docs.facephi.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.facephi.com/docs.facephi-pt-br/sdks/sdk-web/componentes/selphi-biometria-facial/eventos/extractionfinish.md).

# extractionFinish

## Detalhes

É emitido ao concluir a extração do padrão facial e gerar o Template Biométrico.

**Evento:** `extractionFinish`

**Tipo:** `FacephiSelphiWidgetCustomEvent<ExtractionFinishEvent>` | `CustomEvent<ExtractionFinishEvent>`

### Sintaxe

```typescript
selphi.addEventListener('extractionFinish', onExtractionFinish);
```

### Objeto recebido

O payload útil é do tipo `SelphiExtractionFinishDetail` e está em `event.detail.detail`:

* `eventType` (`string`): Tipo de evento emitido.
* `cameraId` (`string`): ID da câmera utilizada.
* `extractionData` (`object`): Dados da extração.
  * `template` (`object`): Template Biométrico extraído.
    * `data` (`string` | `ArrayBuffer` | `Uint8Array`): Dados do template.
    * `templateFormat` (`string`): Formato do template extraído.
  * `templateRaw` (`object`): Template em formato bruto.
    * `data` (`string` | `ArrayBuffer` | `Uint8Array`): Dados do template bruto.
    * `templateFormat` (`string`): Formato do template bruto.
  * `bestImage` (`object`): Melhor imagem capturada.
    * `data` (`string`): Imagem de melhor qualidade.
    * `width` (`number`): Largura da imagem.
    * `height` (`number`): Altura da imagem.
    * `imageFormat` (`string`): Formato da imagem.
  * `bestImageTokenized` (`string`): Versão tokenizada da melhor imagem.
  * `bestImageCropped` (`object`): Recorte facial da melhor imagem.
    * `data` (`string`): Imagem recortada do rosto.
    * `width` (`number`): Largura do recorte.
    * `height` (`number`): Altura do recorte.
    * `imageFormat` (`string`): Formato do recorte.
  * `images` (`ImageData[]` | `[]`): Imagens adicionais do processo (opcional).
  * `faceStabilizedStatus` (`number` | `undefined`): Estado de estabilização, se estiver habilitada.
  * `encryptedLivenessRaw` (`Blob` | `File` | `boolean` | `null`): Carga útil IAD criptografada (`false` se o antispoof estiver desabilitado).
  * `encryptedLiveness` (`string` | `ArrayBuffer` | `boolean` | `null`): Versão tokenizada do Liveness (`false` se o antispoof estiver desabilitado).
  * `yaw` (`number`): Rotação horizontal da cabeça.
  * `pitch` (`number`): Rotação vertical da cabeça.
* `videoRecorded` (`Record<string, string>` | `null`): Vídeo gravado do processo, se aplicável.
* `livenessMoveResult` (`string`): Resultados tokenizados de Liveness Ativo (opcional).
* `advancedTracking` (`Uint8Array` | `null`): Tracking avançado codificado (opcional).

## Descrição

Contém o Template Biométrico, imagens e dados opcionais de Liveness e Tracking.

### Considerações

O payload útil está em `event.detail.detail` (veja [formato de eventos](/docs.facephi-pt-br/sdks/sdk-web/componentes/selphi-biometria-facial/eventos.md#formato-de-los-eventos)).

Facephi recomenda usar `bestImage` e `templateRaw`, ou `bestImageTokenized`, para as etapas seguintes em processos de Onboarding ou autenticação.

Se `antispoof` está ativo, envia `encryptedLivenessRaw` ao Endpoint IAD de Identity API (veja [antispoof](/docs.facephi-pt-br/sdks/sdk-web/componentes/selphi-biometria-facial/propiedades/antispoof.md)).

***

## Exemplo

```jsx
<facephi-selphi-widget
    onExtractionFinish={(event) => {
      const { extractionData, advancedTracking } = event.detail.detail;
      console.log('Template:', extractionData.templateRaw);
      console.log('Best image:', extractionData.bestImage.data);
    }}
/>
```

```typescript
import { type SelphiExtractionFinishDetail } from '@facephi/sdk-web-wc';

selphi.addEventListener('extractionFinish', (event) => {
  const detail: SelphiExtractionFinishDetail = event.detail.detail;
});
```
