> 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/sdk-provider/eventos/emitfinishqr.md).

# emitFinishQr

Sinal de finalização do Fluxo QR.

## Detalhes

É emitido quando se chama a [stopQr](/docs.facephi-pt-br/sdks/sdk-web/componentes/sdk-provider/metodos/stopqr.md) após finalizar o fluxo QR no dispositivo móvel.

**Evento:** `emitFinishQr`

**Tipo:** `FacephiSdkProviderCustomEvent<FinishQr>` | `CustomEvent<FinishQr>`

### Sintaxe

```typescript
provider.addEventListener('emitFinishQr', onEmitFinishQr);
```

### Objeto recebido

```json
detail: {
  isDesktop: boolean
}
```

## Descrição

Permite continuar a lógica quando a captura no celular tiver terminado.

Em um fluxo QR, a captura ocorre no celular; quando sua integração chama a [stopQr](/docs.facephi-pt-br/sdks/sdk-web/componentes/sdk-provider/metodos/stopqr.md) (por ex., no último `extractionFinish`), o evento é emitido em **ambos** dispositivos. Como o evento é recebido em ambos, use `detail.isDesktop` para executar sua lógica no ambiente adequado (por ex., apenas no desktop): `if (detail.isDesktop) { … }`.

### Considerações

* `emitFinishQr` só é emitido pelo `facephi-sdk-provider` pelo término do próprio `QrWidget`; o `widgetFinish` de widgets internos via QR (Selphi/SelphID) **não** o emite.

***

## Exemplo

```jsx
<facephi-sdk-provider
    apikey={process.env.FACEPHI_SDK_APIKEY}
    qr={true}
    onEmitFinishQr={onEmitFinishQr}
/>
```

```typescript
// Chame stopQr() quando a captura tiver terminado:
await provider.stopQr();

provider.addEventListener('emitFinishQr', (event) => {
  // É emitido em ambos os peers.
  if (event.detail.isDesktop) {
    continueOnDesktop(); // Continua o fluxo de negócio.
  } else {
    showContinueOnDesktopView(); // Mostra uma tela personalizada de aviso.
  }
});
```
