> 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/android/changelog.md).

# Histórico de alterações

Notas de versão do SDK Android. Acompanhe versões, mudanças incompatíveis, atualizações de dependências, mudanças de provider, correções e notas de migração para Face Liveness e Document Detector.

## Notas de versão

{% hint style="danger" %}
Devido a um erro de ofuscação do Payface, as versões **7.22.0** e **7.24.0** foram descontinuadas e não devem mais ser usadas. Para mais informações, entre em contato com nossa equipe de suporte.
{% endhint %}

## 7.29.0

### **Data de lançamento** <a href="#user-content-release-date" id="user-content-release-date"></a>

* 10/19/2026

### Atualizações <a href="#user-content-updates" id="user-content-updates"></a>

#### **Liveness Facial**

* **Mensagens de erro mais claras:** Quando a solicitação de verificação falha, o SDK agora exibe mensagens curtas e claras em inglês, português e espanhol, em vez do texto bruto do servidor.
* **Tipos de erro mais precisos:**
  * Acesso negado pelo servidor (HTTP 403) agora é relatado como `TOKEN_EXCEPTION`.
  * Solicitação bloqueada pela segurança do provedor de liveness (HTTP 422) agora é relatada como `LIVENESS_EXCEPTION`.
  * Quando a autenticação facial está ativada e nenhuma face cadastrada é encontrada para a pessoa, o SDK mantém o `FACE_AUTHENTICATION` tipo e agora exibe uma mensagem clara informando que a face deve ser cadastrada primeiro.

{% hint style="info" %}
Se seu app verifica o tipo de erro para decidir o que fazer, revise como você trata `TOKEN_EXCEPTION` e `LIVENESS_EXCEPTION`, pois alguns erros do servidor agora vêm com esses tipos.&#x20;
{% endhint %}

### **Correções**

* **Detector de Documentos:** Corrigiu uma falha (`NullPointerException`) quando o usuário sai da tela de captura enquanto a câmera ainda está focando.

## 7.28.0

### **Data de lançamento**

* 10/13/2026

### Atualizações

#### **Detector de Documentos**

**Captura automática**

Agora você pode ativar a captura automática com a nova opção `captureType` em `DocumentDetectorConfiguration` e `DocumentDetectorUiConfiguration`. Com `DocumentDetectorCaptureType.Automatic`, o SDK tenta tirar a foto por conta própria. Se nenhuma foto for tirada em 10 segundos, o botão de captura é exibido. O padrão continua sendo `DocumentDetectorCaptureType.Manual`.

```kotlin
val config = DocumentDetectorUiConfiguration(
    documentSelectionScreen = documentSelectionScreen,
    captureType = DocumentDetectorCaptureType.Automatic,
)
```

**Resultados após o encerramento do processo**

Se o Android fechar o app em segundo plano enquanto o fluxo do Detector de Documentos estiver aberto, o SDK agora mantém o resultado e o envia quando o app definir um listener novamente. Use o novo método `setListener`  :

* `CerttaDocumentDetector.instance.setListener { event -> }`
* `CerttaDocumentDetectorUi.instance.setListener { event -> }`

```kotlin
override fun onResume() {
    super.onResume()
    CafSdkProvider.setListener { event ->
        when (event) {
            is CafUnifiedEvent.Success -> { /* tratar sucesso */ }
            is CafUnifiedEvent.Error -> { /* tratar erro */ }
            is CafUnifiedEvent.Cancelled -> { /* tratar cancelamento */ }
            else -> Unit
        }
    }
}
```

{% hint style="info" %}
[Defina o listener em `onCreate` ou `onResume` da tela que abre o SDK. Se havia um resultado aguardando, ele é enviado imediatamente.](#user-content-fn-1)[^1]
{% endhint %}

#### **Correções**

* **Detector de Documentos:** Corrigiu uma tela em branco no fluxo de upload. Pressionar Voltar no diálogo da etapa de upload não fecha mais o diálogo. O SDK agora encerra o fluxo corretamente.
* **Detector de Documentos:** Corrigiu um caso em que o SDK podia reutilizar estado antigo quando o fluxo era aberto novamente após o app hospedeiro fechar as telas do SDK.
* **Detector de Documentos:** Quando a sessão de captura é perdida após o encerramento do processo, o erro `descrição` agora é uma mensagem legível em vez de `session_lost`.

## 7.26.0

### **Data de lançamento**

* 09/28/2026

### Atualizações

#### **Liveness Facial**.

* Atualizou o Payface de 1.19.2 para 1.22.0.

#### Correções

* **Liveness Facial:** O SDK agora se recupera corretamente quando o Android fecha o app em segundo plano (morte do processo).
* **Detector de Documentos:** Corrigiu o layout da tela de captura em telas edge-to-edge (targetSdk 36).

### Alterações incompatíveis

### **Face Liveness (Certta)**

**`FaceRecognitionFailure`** tem um novo campo obrigatório:

* **Antes**

```kotlin
public data class FaceRecognitionFailure(
    public val response: String,
    override val cause: String,
) : LivenessFailure(cause)
```

* **Depois**

```kotlin
public data class FaceRecognitionFailure(
    public val response: String,
    override val cause: String,
    public val description: String,
) : 
```

{% hint style="warning" %}
`LivenessFailure.FaceRecognitionFailure.cause` mantém o mesmo nome e tipo (`String`), mas seu conteúdo mudou. Antes ele continha uma mensagem legível. Agora ele contém um nome de tipo de falha, como `TOO_DARK`. Seu código ainda vai compilar, mas, se você mostrar `cause` ao usuário, ele agora verá `TOO_DARK` em vez de uma frase. Use `descrição` para qualquer texto que você mostrar ao usuário.
{% endhint %}

#### **Tipo de falha que você pode verificar no código**

Quando o reconhecimento facial falha, o SDK agora informa o motivo como um valor estável, como `TOO_DARK` ou `MISALIGNED_FACE`.&#x20;

#### **Mensagens de erro mais limpas**

`CerttaError.cause` e `ImageCaptureFailure.cause` agora contém apenas a mensagem. O nome do tipo de erro não é mais adicionado ao início do texto.

### Guia de migração

**Mostre a mensagem legível ao usuário**

```kotlin
// Antes
when (val failure = result.failure) {
    is LivenessFailure.FaceRecognitionFailure -> showMessage(failure.cause)
    is LivenessFailure.ImageCaptureFailure -> showMessage(failure.cause)
}

// Depois
when (val failure = result.failure) {
    is LivenessFailure.FaceRecognitionFailure -> showMessage(failure.description)
    is LivenessFailure.ImageCaptureFailure -> showMessage(failure.cause)
}
```

## 7.19.0

### Data de lançamento

* 08/14/2026

### Atualizações

* Elevou `compileSdk` e `targetSdk` para o nível de API 36 (Android 16).
* Melhorias no layout da UI e na acessibilidade nas telas do Detector de Documentos e do Face Liveness.
* Melhorias de navegação no Detector de Documentos (tratamento do gesto de voltar).

### Correções

**Liveness Facial:** Corrigiu um problema no fluxo do Payface em que uma validação facial com falha ainda podia ser reportada como sucesso. O SDK agora trata corretamente as falhas de validação e exibe a mensagem apropriada ao usuário.

**Detector de Documentos:** Corrigiu problemas de captura e upload em tablets e dispositivos no modo paisagem, incluindo um breve flash incorreto de orientação da imagem na prévia, falhas de captura automática com fotos finais desalinhadas e pequenos ajustes de UI nas margens do layout e no botão de fechar.

## 7.17.0

### Data de lançamento

* 08/03/2026

### Correções

**Liveness Facial:**  Corrige uma `UninitializedPropertyAccessException` falha no módulo Face Liveness quando o `context` (`lateinit`) ainda não foi inicializado&#x20;

**Detector de Documentos:** Corrige o caso do Detector de Documentos em que o app retorna após o encerramento do processo (por exemplo, galeria/Drive ou segundo plano) e remonta o fluxo sem contexto em memória, deixando uma UI órfã (botão Continuar inativo).

## 7.15.0

### Data de lançamento

* 07/20/2026

{% hint style="warning" %}
**Alteração incompatível — dependência de Fingerprint** O `common-fingerprint` não é mais uma dependência transitiva obrigatória para o Face Liveness. Para usar recursos de fingerprint junto com o Face Liveness, você precisa adicionar explicitamente o artefato `implementation("io.caf.sdk:fingerprint")` às suas dependências. Se for omitido, o Face Liveness continuará normalmente sem fingerprint
{% endhint %}

### Atualizações

* **Atualização do SDK de Fingerprint**: O SDK subjacente FingerprintJS Pro foi atualizado da versão 2.7.0 para 2.15.0.

## 7.14.0

### Data de lançamento

* 05/25/2026

### Correções

**Liveness Facial:**  um problema de liveness que causava uma tela de carregamento infinita quando ocorria um erro de inicialização.

Smart Auth: CalledFromWrongThreadException

## 7.13.0

### Data de lançamento

* 05/08/2026

### Atualizações

* Provedor de liveness atualizado: PayFace para a versão 1.19.2.

### Correções

**Liveness Facial:** Resolveu um problema em que o provedor de liveness PayFace falhava na primeira tentativa, funcionando apenas na segunda.

## 7.12.0

### Data de lançamento

* 04/27/2026

### Atualizações

* Módulo Caf Security: otimizações internas de desempenho e estabilidade aprimorada para telemetria de segurança e verificações de integridade de dados.

### Correções

**Liveness Facial:** Resolveu um problema em que a Tela de Sucesso não era renderizada após uma tentativa válida de liveness.

## CafSDK v7.11.0

### Data de lançamento

* 04/13/2026

### Correções

* **Tela de instruções:** Corrigiu um bug em que imagens remotas personalizadas (via URL) na tela de instruções tanto do Detector de Documentos quanto do Face Liveness estavam sendo renderizadas com a primaryColor, embora nenhum filtro de cor devesse ser aplicado.

## CafSDK v7.10.0

### Data de lançamento

* 03/30/2026

{% hint style="warning" %}
**Alteração incompatível — dependências do Face Liveness:** `caffaceliveness-lite`, `caffaceliveness-core`, `caffaceliveness-ui-lite`, e `caffaceliveness-ui-core` são substituídos por **`caffaceliveness`** (base compartilhada), opcional **`caffaceliveness-ui`** (UI do Caf + ganchos de personalização), e **`caffaceliveness-providers-*`**. Você deve adicionar o BoM **7.10.0**+ e **ao menos um** **`caffaceliveness-providers-*`** artefato—**`caffaceliveness` e um módulo de provedor são ambos obrigatórios** para o Face Liveness. Veja [Etapa 2 - Inclua a dependência do CafSDK](#step-2-include-the-cafsdk-dependency) e [Migrando a partir de artefatos legados do Face Liveness](#migrating-from-legacy-face-liveness-artifacts-up-to-v790).
{% endhint %}

### Atualizações

* **Liveness Hub:** **`caffaceliveness`** é a base compartilhada e **`caffaceliveness-providers-*`** os artefatos fornecem as integrações de fornecedores pré-construídas do CAF — você deve declarar **ao menos um** a dependência do provedor. **`caffaceliveness-ui`** é **opcional** e adiciona **a UI de Face Liveness do Caf** mais **personalização** ganchos (substituindo a antiga `caffaceliveness-ui-lite` / `caffaceliveness-ui-core` separação).
* **Provedores explícitos:** Adicione os artefatos que correspondem à configuração do seu produto, por exemplo:
  * `caffaceliveness-providers-iproov-lite` — iProov com Protobuf JavaLite
  * `caffaceliveness-providers-iproov-full` — iProov com Protobuf Java
  * `caffaceliveness-providers-payface` — PayFace (Fortface)
  * `caffaceliveness-providers-facetec` — FaceTec 2D
* **Migração:** Siga a tabela de mapeamento de dependências em [Migrando a partir de artefatos legados do Face Liveness](#migrating-from-legacy-face-liveness-artifacts-up-to-v790) ao atualizar a partir de **7.9.0** ou anteriores.

#### Migrando a partir de artefatos legados do Face Liveness (até a v7.9.0) <a href="#migrating-from-legacy-face-liveness-artifacts-up-to-v790" id="migrating-from-legacy-face-liveness-artifacts-up-to-v790"></a>

Se você usou anteriormente `caffaceliveness-lite`, `caffaceliveness-core`, ou os correspondentes `-ui-lite` / `-ui-core` artefatos, atualize da seguinte forma:

| Anterior (até a v7.9.0)                                     | A partir da v7.10.0                                         | Notas                                                                                                                                                                     |
| ----------------------------------------------------------- | ----------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `implementation(platform("io.caf.sdk:caf-sdk-bom:7.9.0"))`  | `implementation(platform("io.caf.sdk:caf-sdk-bom:7.10.0"))` | Aumente o BoM para que as versões fiquem alinhadas com os novos módulos.                                                                                                  |
| `caffaceliveness-lite` ou `caffaceliveness-core`            | `caffaceliveness`                                           | Um único módulo base substitui ambos **lite** e **core**; a antiga divisão nesta camada foi removida.                                                                     |
| *(os provedores eram implícitos dentro do artefato antigo)* | `caffaceliveness-providers-<provider>`                      | **Obrigatório:** declare ao menos um artefato de provedor para os fornecedores de liveness que você usa (por exemplo `iproov-lite`, `iproov-full`, `payface`, `facetec`). |
| `caffaceliveness-ui-lite` ou `caffaceliveness-ui-core`      | `caffaceliveness-ui`                                        | **Opcional** Módulo de UI: telas do Caf + personalização; combine com a mesma configuração de provedor que o seu ambiente de execução precisa.                            |

## CafSDK v7.9.1

### Data de lançamento

* 05/25/2026

### Correção:

* Smart Auth: CalledFromWrongThreadException

## CafSDK v7.9.0

### Data de lançamento

* 03/02/2026

### Melhorias

* **Alinhamento de versão:** As bibliotecas internas do produto foram padronizadas para corresponder ao versionamento do CafSDK (v7.9.0). Isso garante melhor compatibilidade e simplifica o gerenciamento de dependências.

### Correções

* **Retorno de segurança:** Novos códigos de erro adicionados para a seção de segurança:
  * 500 (dispositivo bloqueado devido ao modo de depuração; a validação pode ser desativada),
  * 600 (assinaturas fraudulentas/adulteração),
  * 601 (dispositivos com root),
  * 602 (erro de validação),
  * 699 (erro de segurança desconhecido)

## CafSDK v7.8.0

### Data de lançamento

* 02/09/2026

{% hint style="warning" %}
Versões anteriores à 7.8.0 farão com que o iProov Liveness pare de funcionar a partir de 12 de março de 2026. Para garantir o funcionamento adequado e a continuidade do serviço, use a versão 7.8.0 ou superior.
{% endhint %}

### Atualizações

* **Atualizações de dependência**: Versões dos componentes atualizadas para manter consistência com a versão 7.8.0 do BOM do CAF SDK:
  * CafFaceLiveness: atualizado de 4.4.0 para 4.6.0
  * CafFaceLivenessUI: atualizado de 2.4.0 para 2.5.0
  * Atualização de dependência: versão do iProov atualizada de 10.2.0 para 11.1.0 no Android.
  * Atualização de dependência: versão do iProov atualizada de 12.2.1 para 13.1.0 no iOS.
* **Adicionado o repositório Maven da Fortface**: Adicionado o repositório Maven da Fortface ao projeto.
  * Nova dependência disponível: `PayFace`
  * Comportamento da câmera personalizável por meio de `CafPayFaceConfig` (timeouts, tempos de estabilização, recursos de UI)
  * Adicione o repositório Maven ao projeto:

    ```kotlin
    maven {
      url = uri("https://cdn-fortface-sdk.fortface.com.br")
      credentials(HttpHeaderCredentials::class) {
        name = "X-Sdk"
        value = "CAF"
      }
      authentication {
        create<HttpHeaderAuthentication>("header")
      }
    }
    ```
* **Novos tipos de falha**: Adicionada nova falha ao CafFailureType para um melhor tratamento de falhas:
  * `BACKGROUND_ISSUE`
  * `DEVICE_ISSUE`
  * `EYEWEAR`
  * `FACE_NOT_FOUND`
  * `FRAMES_BLURRY`
  * `MOTION_ISSUE`
  * `LIGHTING_ISSUES`
  * `REJECTED`
  * `SYSTEM_ERROR`
  * `TIMEOUT`
  * `USER_NOT_FOUND`
  * `DEVICE_RESTART`
  * `PROCESSING_FAULT`

## CafSDK v7.7.0

### Data de lançamento

* 02/02/2026

### Atualizações

* **Atualizações de dependência**: Versões dos componentes atualizadas para manter consistência com a versão 7.7.0 do BOM do CAF SDK:
  * `CafFaceLiveness` atualizado de 4.3.8 para 4.4.0
  * `CafFaceLivenessUI` atualizado de 2.3.8 para 2.4.0
  * `CafDocumentDetector` atualizado de 10.4.1 para 10.5.0
  * `CafDocumentDetectorUI` atualizado de 2.3.3 para 2.4.0
* **Novo módulo CafSecurity**: Adicionado um novo módulo com validações de segurança.
  * Nova flag de configuração: `enableSecurityModule` em `CafSdkConfiguration` com valor padrão `true`
* **Métricas e análises**: Melhorias na coleta de métricas e nas análises em todos os SDKs.

### Correções

* **FaceLiveness**
  * Corrigiu erros na criação de sessões.
  * Corrigiu a tonalidade de cor nas imagens remotas na tela de Instruções.

## CafSDK v7.6.0

### Data de lançamento

* 01/28/2026

### Correções

* **Corrigiu conflitos de Fingerprint**: Resolvidos conflitos de Fingerprint com bloqueadores de anúncios ou DNS público.

## CafSDK v7.5.9

### Data de lançamento

* 01/12/2026

### Atualizações

* **Atualizações de dependência**: Versões dos componentes atualizadas para manter consistência com a versão 7.5.9 do BOM do CAF SDK:
  * `CafFaceLiveness` atualizado de 4.3.3 para 4.3.8
  * `CafFaceLivenessUI` atualizado de 2.3.3 para 2.3.8
  * `CafDocumentDetector` atualizado de 10.4.0 para 10.4.1
  * `CafDocumentDetectorUI` atualizado de 2.3.2 para 2.3.3
* **Novo provedor de Face Liveness**: Adicionado suporte ao provedor PayFace (Fortface) como uma solução opcional de Face Liveness.
  * Nova dependência disponível: `PayFace`
  * Comportamento da câmera personalizável por meio de `CafPayFaceConfig` (timeouts, tempos de estabilização, recursos de UI)
  * Adicione o repositório Maven ao projeto:

    ```kotlin
    maven {
        url = uri("https://cdn-fortface-sdk.fortface.com.br")
        credentials(HttpHeaderCredentials::class) {
            name = "X-Sdk"
            value = "CAF"
        }
        authentication {
            create<HttpHeaderAuthentication>("header")
        }
    }
    ```

> **Observação:** Entre em contato com nossa equipe de suporte para garantir que o clientId em uso esteja configurado para usar PayFace.

### Correções

* **Corrigiu travamentos no módulo Detector de Documentos**: Resolvidos vários travamentos relacionados ao gerenciamento do ciclo de vida da activity, incluindo estados de inicialização, pausa e retomada.
* **Corrigiu travamentos relacionados ao ciclo de vida da câmera**: Melhorado o gerenciamento de recursos da câmera e do ciclo de vida da thread para evitar travamentos durante o encerramento do SDK e transições de estado.
* **Corrigiu travamentos em componentes de UI**: Resolvidos problemas de compatibilidade de tema e exceções de transação de fragmentos para garantir o comportamento adequado da interface.
* **Corrigidos travamentos em requisições de rede**: Corrigido o tratamento do corpo da resposta para evitar erros ao ler respostas de rede.
* **Corrigidos travamentos no acesso a dados**: Melhorada a inicialização e a validação do cursor antes de acessar dados do banco de dados.
* **Corrigido ANR no Document Controller**: Otimizadas as verificações de instância do controlador de documentos para evitar problemas de aplicativo não respondendo.
* **Melhorias e correções internas**: Melhorias adicionais de estabilidade e correções de bugs.

## CafSDK v7.5.2

### Data de lançamento

* 11/27/2025

### Atualizações

* **Atualizações de dependência**: Versões dos componentes atualizadas para manter consistência com a versão 7.5.2 da BOM do CAF SDK:
  * `CafFaceLiveness` atualizado de 4.3.0 para 4.3.2
  * `CafFaceLivenessUI` atualizado de 2.3.0 para 2.3.2
  * `DocumentDetector` atualizado de 10.3.0 para 10.3.2
  * `DocumentDetectorUI` atualizado de 2.3.0 para 2.3.2

### Correções

* **Corrigido travamento ao ser usado vazio `fluxo` em `CafDocumentDetectorConfig`**: Este problema fazia o SDK fechar imediatamente ao abrir o fluxo de captura de documentos. Agora o SDK emitirá um novo evento de erro `CafErrorType.LIBRARY_EXCEPTION` com a mensagem "Opções de documento vazias".
* **Corrigido erro ao usar `loadSession` no módulo Document Detector**: Este problema fazia o SDK fechar imediatamente ao abrir o fluxo de captura de documentos. Agora o SDK não emitirá um erro `SEQUENCE_INVALID`.

## CafSDK v7.5.0

### Data de lançamento

* 11/17/2025

### Atualizações

* **Atualizações de dependência**: Versões dos componentes atualizadas para manter consistência com a versão 7.5.0 da BOM do CAF SDK:
  * `CafFaceLiveness` atualizado de 4.2.0 para 4.3.0
  * `CafFaceLivenessUI` atualizado de 2.2.0 para 2.3.0
  * `DocumentDetector` atualizado de 10.2.0 para 10.3.0
  * `DocumentDetectorUI` atualizado de 2.2.0 para 2.3.0

### Novos Recursos

#### Document Detector / Document Detector UI

* **Modo de captura manual como padrão**: O modo de captura manual desde o início agora está definido como padrão, devido às dificuldades de captura usando o modo automático.
* **Logs de analytics**: Adicionados logs de analytics detalhados para monitorar os detalhes de captura e envio de documentos. Esses logs registram mensagens, modos de captura, tempo de fallback e sensores.

#### CafFaceLiveness / CafFaceLivenessUI

* **Melhoria no tempo de abertura**: Melhorado o tempo de abertura do SDK Face Liveness por meio do pré-carregamento da sessão do usuário, usando um novo método [loadSession()](#session-pre-loading-optional), que pode ser usado pelos clientes para obter inicialização mais rápida do SDK e da câmera.

### Correções

#### Document Detector / Document Detector UI

* **Corrigido travamento "Image is already closed"**: Este problema fazia o SDK fechar imediatamente durante a captura de documentos.
* **Corrigido travamento ao ser usado vazio `fluxo` em `CafDocumentDetectorConfig`**: Este problema fazia o SDK fechar imediatamente ao abrir o fluxo de captura de documentos. Agora o SDK emitirá um novo evento de erro `CafErrorType.LIBRARY_EXCEPTION` com a mensagem "Opções de documento vazias".
* **Melhoria nas mensagens de erro**: Melhoradas as mensagens de erro para detecção incorreta do tipo de documento, a fim de fornecer um feedback mais preciso durante a validação do documento.
* **Fallback no modo de captura**: Melhorado o gerenciamento de estado nas transições do modo de captura para garantir um comportamento consistente e confiável quando os modos de captura manual e automático interagem.
* **Layout**: Melhorada a legibilidade com maior espaçamento entre linhas e margens atualizadas para um layout mais consistente e melhor equilíbrio visual.
* **Melhorias na UI**: Evitado estouro de texto no detector de documentos ao habilitar truncamento para títulos longos e nomes de etapas e ajustar o espaçamento.
* **Desativação do sensor de luz**: O sensor de luz foi desativado durante o fluxo de captura. Anteriormente, o SDK usava o sensor de luz do dispositivo para exibir a mensagem "Ambiente muito escuro", bloqueando a captura até que o sensor detectasse uma boa iluminação.
* **Desativação das mensagens durante a captura manual**: As mensagens durante a captura manual foram desativadas para evitar atritos no fluxo de captura.

***

## CafSDK v7.4.0

### Data de lançamento

* 11/05/2025

### Atualizações

* **Atualizações de dependência**: Versões dos componentes atualizadas para manter consistência com a versão 7.4.0 da BOM do CAF SDK:
  * `CafFaceLiveness` atualizado de 4.1.0 para 4.2.0
  * `CafFaceLivenessUI` atualizado de 2.1.0 para 2.2.0

### Novos Recursos

* \*\* Novo `CafErrorType` enum: `FACE_AUTHENTICATION` para lidar com erros de autenticação facial.

## CafSDK v7.3.0

### Data de lançamento

* 10/27/2025

### Atualizações

* **Atualizações de dependência**: Versões dos componentes atualizadas para manter consistência com a versão 7.3.0 da BOM do CAF SDK:
  * `DocumentDetector` atualizado de 10.1.0 para 10.2.0
  * `DocumentDetectorUI` atualizado de 2.1.0 para 2.2.0

### Correções

* **DocumentDetector**: Corrigido um problema em que a tela congelava ao capturar documentos de passaporte, melhorando a experiência do usuário e a confiabilidade da captura.
* **Comportamento inconsistente na captura manual**: Resolvidas inconsistências no fluxo de captura manual de documentos, garantindo um comportamento de captura mais previsível e confiável.
* **Inconsistências nas mensagens de feedback**: Corrigidas mensagens de feedback inconsistentes para casos envolvendo arquivos que excedem o limite de tamanho permitido.
* **Comportamento de fechamento do pop-up**: Melhorado o comportamento de fechamento do pop-up para tratar corretamente pressionamentos do botão Voltar do Android e cliques fora dele, garantindo padrões consistentes de interação com a UI.

## CafSDK v7.2.0

### Data de lançamento

* 10/20/2025

### Atualizações

* **Atualizações de dependência**: Versões dos componentes atualizadas para manter consistência com a versão 7.2.0 da BOM do CAF SDK:
  * `CafFaceLivenessIproovVersion` atualizado de 5.0.0 para 5.0.1

### Correções

* **Melhorias `CafFaceLivenessIproovVersion`**: Resolvidas exceções de compatibilidade ao usar o Smart Auth juntamente com a biblioteca Face Liveness iProov.

## CafSDK v7.1.0

### Data de lançamento

* 10/15/2025

### Atualizações

* **Atualizações de dependência**: Versões dos componentes atualizadas para manter consistência com a versão 7.1.0 da BOM do CAF SDK:
  * `CafFaceLiveness` atualizado de 4.0.0 para 4.1.0
  * `CafFaceLivenessUI` atualizado de 2.0.0 para 2.1.0
  * `DocumentDetector` atualizado de 9.15.5 para 10.1.0
  * `DocumentDetectorUI` atualizado de 2.0.0 para 2.1.0

### Correções

* **Melhorias `CafSdkEvent`**: Melhorado o relatório de erros em todos os fluxos de liveness facial: distinções mais claras entre rede e servidor, tratamento preciso de permissões da câmera.
* **DocumentDetector**: Parou de ativar automaticamente a pré-visualização de documentos quando não configurada explicitamente.

## CafSDK v6.5.10

### Data de lançamento

* 10/01/2025

### Atualizações

* **Atualizações de dependência**: Versões dos componentes atualizadas para manter consistência com a versão 6.5.10 da BOM do CAF SDK:
  * `DocumentDetectorUI` atualizado de 1.8.3 para 1.8.4

### Correções

* **DocumentDetectorUI**: Corrigido o fluxo de documentos ao usar documentos RGFront ou CNHFront.

## CafSDK v6.5.9

### Data de lançamento

* 09/26/2025

### Atualizações

* **Atualizações de dependência**: Versões dos componentes atualizadas para manter consistência com a versão 6.5.9 da BOM do CAF SDK:
  * `DocumentDetectorUI` atualizado de 1.8.2 para 1.8.3

### Correções

* **DocumentDetectorUI**: Corrigido travamento ao usar documentos RGFull ou CNHFull.

## CafSDK v6.5.8

### Data de lançamento

* 09/25/2025

### Atualizações

* **Atualizações de dependência**: Versões dos componentes atualizadas para manter consistência com a versão 6.5.8 da BOM do CAF SDK:
  * `cafFaceLivenessIproovVersion` atualizado de 4.4.3 para 4.4.4
  * `cafFaceAuthenticatorVersion` atualizado de 5.3.2 para 5.3.3
  * `Detector de Documentos` atualizado de 9.15.4 para 9.15.5

### Correções

* **Resolução Crítica de Travamento**: Corrigido NullPointerException no View\.post()
  * Esse erro fazia o SDK encerrar inesperadamente ao alternar entre os fluxos de envio e câmera.
* **Estabilidade do SDK**: Evitado o encerramento inesperado do SDK ao alternar entre diferentes fluxos de captura
  * Gerenciamento aprimorado do fluxo para garantir transições suaves entre os modos de envio e câmera.
* **Módulo do Document Detector**: Biblioteca LiteRT atualizada da versão 1.0.1 para 1.4.0
  * Corrigido o erro UNALIGNED (212) em x86\_64/emuladores relacionado ao suporte ao tamanho de página de 16 KB

## CafSDK v6.5.7

### Correções

* **CafFaceLiveness**: Melhorado o relatório de erros de permissão da câmera com classificação distinta de erros para facilitar a depuração
* **Tratamento de Erros**: Maior clareza nas mensagens de erro do servidor com a extração e exposição dos payloads brutos de erro
* **Compatibilidade com Android 14+**: Comportamento de fechamento da tela de carregamento atualizado para garantir a funcionalidade correta no Android 14 e versões posteriores

***

## CafSDK v6.5.6

### Novos Recursos

* Novo `CafDocumentDetectorDocumentSelectionScreen` propriedade:

  * `groupLabels` para permitir a personalização dos títulos e descrições dos tipos de documento.

  **Exemplo de Código**

```kotlin
val documentSelectionScreen = CafDocumentDetectorDocumentSelectionScreen(
                    documents = listOf(
                        CafDocument.RGFull()
                    ),
                    groupLabels =
                        CafDocumentGroupLabels(
                            rg = CafDocumentLabel("Título RG Personalizado", "Descrição RG Personalizada")
                        ),
                    title = "CAF SDK - Título",
                    description = "CAF SDK - Descrição"
                )
```

### Atualizações

* Dependências atualizadas:
  * Melhorias e correções internas.

***

## CafSDK v6.5.4

### Atualizações

* Dependências atualizadas:
  * Melhorias e correções internas.

***

## CafSDK v6.5.3

### Atualizações

* Dependências atualizadas:
  * Melhorias e correções internas.

***

## CafSDK v6.5.2

### Atualizações

* Dependências atualizadas:
  * Adicionado suporte a tamanhos de página de 16 KB.
  * **Migração para LiteRT**: Atualizado do TensorFlow Lite para o LiteRT do Google (Lite Runtime), seguindo a iniciativa AI Edge do Google. As APIs permanecem as mesmas, garantindo compatibilidade perfeita enquanto se beneficia de melhor desempenho e suporte contínuo ao desenvolvimento.

***

## CafSDK v6.5.1

### Atualizações

* Dependências atualizadas:
  * Inicialização de analytics aprimorada.
  * Melhorias e correções internas.

***

## CafSDK v6.4.2

### Atualizações

* Dependências atualizadas:
  * A versão compileSdk/targetSdk foi atualizada para o nível de API 35 (Android 15).
  * Inicialização de analytics aprimorada.
  * Melhorias e correções internas.

***

## CafSDK v6.4.0

### Novos Recursos

* Novo `CafSdkConfiguration` propriedade:
  * `enableTransitionScreens` para ativar ou desativar as telas de transição entre módulos.
* Melhorias para suporte híbrido (React Native).

***

## CafSDK v6.3.0

### Novos Recursos

* **Lógica aprimorada do fluxo de documentos:** Quando documentos digitais (RG Digital ou CNH Digital) estão presentes no fluxo, o SDK agora automaticamente:
  * Força a ativação do modo de envio.
  * Pula a tela de seleção da fonte da foto.
  * Vai diretamente para o fluxo de envio para uma experiência do usuário mais simplificada.

### Atualizações

* **Padrão das configurações de envio alterado:** `CafDocumentDetectorConfig.instructionsEnabled` agora passa a ter como padrão `true` em vez de `false`
* **Lógica de Seleção de Documentos:** Lógica aprimorada para seleção de documentos RG e CNH:
  * Quando documentos frente/verso e completos estão disponíveis, o SDK seleciona de forma inteligente os documentos de frente e verso na ordem correta.
  * As opções de documentos digitais são priorizadas e exibidas primeiro nas telas de seleção.
* **Personalização Aprimorada de Diálogos:** Adicionadas novas propriedades de configuração de cores para personalizar a aparência de diálogos e pop-ups:
  * `dialogBackgroundColor`: Personalize a cor de fundo de diálogos e pop-ups (o padrão é uma cor dinâmica baseada no estilo da interface: `#1C1C1E` para o modo escuro, `#FFFFFF` para o modo claro)
  * `dialogBorderColor`: Personalize a cor da borda de diálogos e pop-ups (o padrão é `#E5E5E7`)

### Exemplo de Código

```kotlin
const colorConfig = CafColorConfiguration(
    primaryColor: "#FF0000",
    secondaryColor: "#FFFFFF",
    contentColor: "#000000",
    backgroundColor: "#FFFFFF",
    mediumColor: "#CCCCCC",
    dialogBackgroundColor: "#FFFFFF", // Novo
    dialogBorderColor: "#E5E5E7"      // Novo
)
```

### Correções

* **Ordenação de Documentos**: Corrigida a captura de documentos, que estava solicitando a captura do documento aberto após capturar a frente e o verso do documento.
* **Captura Manual**: Corrigido o sinalizador de captura manual em todos os cenários.

## CafSDK v6.2.1

### Atualizações

* Dependências atualizadas:
  * Document Detector version 9.12.1
  * Melhorias e correções internas.

### Correção

* Corrigido travamento no fluxo de envio do Document Detector.

## CafSDK v6.2.0

### Atualizações

* Dependências atualizadas:
  * Document Detector version 9.12.0
  * Melhorias nas mensagens de repetição no construtor.
  * Remoção de limites desnecessários para as tentativas.

### Correção

* Corrigida a personalização de envio no Document Detector.
* Ajustados os atrasos entre mensagens de repetição.

## CafSDK v6.1.2

### Atualizações

* Dependências atualizadas:
  * Document Detector version 9.10.0
  * Melhorias e correções internas.

### Recursos

* Personalização das mensagens de envio, incluindo textos e cores ajustáveis.

## CafSDK v6.0.2

### Atualizações

* Melhorias e correções internas.

## CafSDK v6.0.1

### Atualizações

* Melhorias e correções internas.

## CafSDK v6.0.0

### Novos Recursos

* Novo `maxRetryAttempts` método para `CafFaceLivenessConfig` definir o número máximo de tentativas de repetição para a validação de liveness facial.
* **Tratamento de Evento de Falha:** Adicionado detalhamento de `Falha` caso para `CafUnifiedEvent` com resposta do servidor, tipo de falha e descrição.
* **Tratamento de Evento de Erro:** Adicionado detalhamento de `Erro` caso para `CafUnifiedEvent` com resposta do servidor, tipo de erro e descrição.

### Atualizações

* Diferenciação aprimorada no tratamento de erros:
  * Use `CafFailureType` tipo enum para falhas operacionais específicas do módulo do SDK.
  * Use `CafErrorType` tipo enum para erros gerais de execução.

### Mudanças Incompatíveis

1. **CafUnifiedEvent** Adicionado caso detalhado de falha ao CafUnifiedEvent com resposta do servidor, tipo de falha e descrição.

### Guia de Migração

1. Atualize para a v6.0.0.
2. Atualização `CafUnifiedEvent.Error` evento

```kotlin
Error(response: String, type: CafErrorType, description: String)  // Substitui o antigo erro baseado em String
```

3. Atualização `CafUnifiedEvent.Failure` evento

```kotlin
Failure(response: String, type: CafFailureType, description: String)
```

## CafSDK v5.0.0

### Novos Recursos

1. **Atualização `CafFaceLivenessConfig`:**
   * Novo `executeFaceAuth` parâmetro adicionado para definir se a autenticação facial deve ser realizada.
   * Novo `CafReverseProxyConfig` parâmetro para configurar o proxy reverso.

### Mudanças Incompatíveis

1. **`CafFaceLivenessConfig` Alterações:**
   * Removidos `authBaseUrl`, `livenessBaseUrl`, `certificates` propriedade. Use dentro de `CafReverseProxyConfig` em vez disso.
2. **CafUnifiedEvent** Adicionado caso detalhado de falha ao CafUnifiedEvent com resposta do servidor, tipo de falha e descrição.

## CafSDK v4.1.0

### Novos Recursos

1. Melhorias para suporte híbrido (React Native)

## CafSDK v4.0.1

### Novos Recursos

1. **Atualização `CafDocumentDetectorConfig`:**
   * Se você estava usando `MessageSettings`, crie um `CafMessageCustomization` objeto, defina suas propriedades e adicione-o ao `ddCustomizations` array.

### Guia de Migração

1. Atualize para a v4.0.1.
2. **Atualização `CafDocumentDetectorConfig`:**
   * Se você estava usando `messageSettings`, crie um `CafMessageCustomization` objeto, defina suas propriedades e adicione-o ao `ddCustomizations` array.

## CafSDK v4.0.0

### Novos Recursos

* **Analytics aprimorado**
* **Personalização da UI do Document Detector:**
  * Introduzidos `CafDDCustomization` contrato e tipos concretos (`CafPreviewCustomization`, `CafDDUploadCustomization`, `MessageSettings`) para permitir substituir textos e imagens padrão em telas específicas do Document Detector (por exemplo, pré-visualização, pop-up de envio, mensagens no fluxo). Isso é configurado por meio da nova `ddCustomizations` propriedade em `CafDocumentDetectorConfig`.
  * `CafDocument` agora inclui `customMessage` e `customOkButtonTitle` propriedades para personalizar o pop-up de instruções de cada etapa.
* **Atualização de tema:**
  * As propriedades de cor específicas do Document Detector herdam seu tema globalmente de `CafColorConfiguration` definido em `CafSDKConfiguration`, garantindo uma aparência e experiência mais consistentes.

### Mudanças Incompatíveis

1. **`CafDocumentDetectorConfig` Alterações:**
   * Removidos `messageSettings` propriedade. Use dentro de `ddCustomizations` em vez disso.
   * Removidos `previewTitle`, `previewSubtitle`, etc. Use `CafPreviewCustomization` dentro de `ddCustomizations` propriedade em vez disso

### Guia de Migração

1. Atualize para a v4.0.0+.
2. **Atualização `CafDocumentDetectorConfig`:**
   * Se você estava usando `previewTitle`, `previewSubtitle`, etc., crie um `CafPreviewCustomization` objeto, defina suas propriedades e adicione-o ao `ddCustomizations` array em `CafDocumentDetectorConfig`.
   * Se você estava usando `messageSettings`, adicione-o ao `ddCustomizations` array.
3. **Atualização `CafDocument`:**
   * Se você precisar personalizar a mensagem do pop-up de instruções ou o texto do botão OK para uma etapa específica, use as propriedades recém-criadas.
4. **Revise o tema:**
   * Certifique-se de que seu `CafColorConfiguration` (em `CafSDKConfiguration`) esteja configurado como desejado, pois os elementos da UI do Document Detector agora usarão principalmente essas cores.

### CafSDK v3.0.0

**Principais Mudanças**

* **API de Resposta Unificada:** `CafUnifiedResponse` agora expõe apenas `signedResponse: String` (não mais `Map<String, Any>` resultado).
* **Alterações Incompatíveis:**
  1. `CafUnifiedResponse` a assinatura do inicializador mudou: não `resultado` parâmetro.
  2. Propriedade `resultado` removido; substitua todas as ocorrências por `signedResponse`.
* **Retry atualizado no upload de documento:** em conexões mais lentas ou uploads interrompidos, o fluxo documentDetector integrou uma opção de retry para upload de documento

### Guia de Migração

1. Atualização para v3.0.0+.
2. Manipulador de alteração:

   ```
   is CafUnifiedEvent.Success -> {
        event.response.forEach {
            log("[SUCCESS] moduleName: ${it.moduleName}")
            log("[SUCCESS] signedResponse: ${it.signedResponse}")
        }
    }
   ```
3. **Remover** `response.result`
   * Todas as referências a `Map<String: Any>` mapa de resultado deve usar response.`signedResponse` em vez disso.
4. Fluxos do Document Detector
   * Se você dependia do antigo Map de result, migre para analisar seu JWT de `signedResponse`.

## CafSDK v2.0.0

### Novos Recursos

* **Flag de resultados em lote:** `CafSDKConfiguration(waitForAllServices = true)` agora agrega todas as respostas dos módulos em uma única `Success(response: List<CafUnifiedResponse>)`.
* **Unificado `CafUnifiedEvent.Success` Atualização:** `CafUnifiedEvent.Success` agora sempre carrega um array de respostas.
* Melhorias nas telas da UI.
* Adicionado suporte para upload de documentos com o módulo de UI DocumentDetector.

### Mudanças Incompatíveis

* Assinatura de `CafUnifiedEvent.Success` alterada para `Success(response: List<CafUnifiedResponse>)`.

### Guia de Migração

1. Atualização para v2.0.0+.
2. Altere o manipulador para esperar um array:

   ```
   is CafUnifiedEvent.Success -> {
        event.response.forEach {
            log("[SUCCESS] moduleName: ${it.moduleName}")
            log("[SUCCESS] result: ${it.result}")
        }
    }
   ```

## CafSDK v1.4.0

### Novos Recursos

* **Apresentando `CafSDKProvider`:** Um ponto de entrada unificado para integrar os módulos Face Liveness e Document Detector com uma única configuração.
* **Padrão Builder:** Inicialização simplificada usando `CafSDKProvider.Builder` para configuração modular e com segurança de tipos.
* **Configuração unificada:** Configure ambos os módulos usando `CafSDKConfiguration`, incluindo a ordem de execução (`presentationOrder`) e tema da UI (`CafColorConfiguration`).
* **Consistência entre módulos:** Autenticação, ambiente e logging compartilhados entre os módulos.

### Atualizações na documentação

* Guias revisados para integração.
* Adicionados exemplos detalhados para `CafFaceLivenessConfig` e `CafDocumentDetectorConfig`.

### Melhorias na configuração

#### Liveness Facial

* Personalize instruções (`CafInstructionsConfiguration`).
* Configure endpoints de reverse proxy (`authBaseUrl`, `livenessBaseUrl`).

#### Detector de Documentos

* Defina fluxos de captura em várias etapas (`CafDocumentDetectorStep`).
* Personalização da UI (`CafDocumentDetectorLayout`, `CafMessageSettings`).
* Suporte a proxy (`CafProxySettings`).

### Mudanças Incompatíveis

* **Novo módulo de integração:** `CafSDK`

### Guia de Migração

1. Substitua os inicializadores de módulos independentes por `CafSDKProvider`
2. Use `CafDocumentDetectorStep(stepType:)` em vez de construtores legados.

[^1]:


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.caf.io/caf-sdk/caf-sdk-pt-br/android/changelog.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
