> 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/sdk-lite/sdk-lite-english-pt-br/configuracao/ios/result-reference.md).

# Referência de resultado

### CafFaceLivenessLiteResult – Evento de sucesso

| Campo            | Descrição                                                                                                        |
| ---------------- | ---------------------------------------------------------------------------------------------------------------- |
| `signedResponse` | JWT opaco emitido com a sessão de liveness. Encaminhe-o ao seu backend; o SDK não retorna `isAlive` nem imagens. |

{% hint style="info" %}
De **3.1.0**, o `signedResponse` é emitido quando a sessão de liveness é criada e entregue ao seu delegate no momento em que a captura é concluída — não há espera após a captura. Use-o com seu backend para obter o resultado final de liveness, conforme descrito em [Configuração do backend](/sdk-lite/sdk-lite-english-pt-br/configuracao/backend/setup.md); o SDK não faz polling por ele.
{% endhint %}

### CafErrorType – Tratamento de erros

O SDK informa erros de execução por meio de `didFinishWithError(type:description:)`. Somente os tipos de erro abaixo são retornados por CafFaceLivenessLite. Para saber quando cada um é esperado e como orientar o usuário, consulte [Tratamento de Erros](/sdk-lite/sdk-lite-english-pt-br/tratamento-de-erros/ios/handling-errors.md):

| Erro                            | Quando é retornado                                                                                                                                                                    |
| ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `invalidOptionsException`       | `startSDK` foi chamado antes de `setup`, ou a URL do serviço de captura não pôde ser construída                                                                                       |
| `cameraPermission`              | O acesso à câmera foi negado — verificado por `startSDK` antes de qualquer solicitação de rede, ou relatado durante a captura                                                         |
| `securityException`             | `enableSecurity: true` e uma violação de segurança (jailbreak, instrumentação, hooking) é detectada antes ou durante a captura                                                        |
| `unsupportedDevice`             | O dispositivo não oferece suporte à captura, ou o SDK não pôde armazenar as credenciais no keychain                                                                                   |
| `serverException`               | A solicitação da sessão falhou, sem conexão, ou uma resposta inválida ou ilegível; a sessão aponta para um provedor de captura sem suporte; ou a captura reportou um erro de servidor |
| `tokenException`                | A conta não está habilitada para o fluxo assíncrono, ou a sessão chegou sem o token de captura ou sem o `signedResponse`                                                              |
| `invalidResponseException`      | A sessão chegou sem o ID da tentativa de liveness                                                                                                                                     |
| `networkException`              | Ocorreu um erro de rede **durante a captura**.                                                                                                                                        |
| `captureAlreadyActiveException` | A captura informou que outra captura já está ativa                                                                                                                                    |
| `userTimeoutException`          | O usuário não concluiu a captura a tempo                                                                                                                                              |
| `unexpectedErrorException`      | A captura informou um erro inesperado                                                                                                                                                 |

{% hint style="info" %}
`CafErrorType` é compartilhado com outros SDKs CAF e também declara `imageNotFoundException`, `tooManyRequestsException`, `permissionException`, `libraryException`, `unknownException`, `cameraException`, `certificateException`, `faceAuthentication` e `livenessException`. CafFaceLivenessLite nunca os retorna. Se você `fizer um switch` sobre `CafErrorType`, adicione um `default` case em vez de lidar com cada um deles.
{% endhint %}

### CafFailureType – Referências de falha

Códigos de feedback disponíveis retornados por meio de `didFinishWithFailure(type:description:signedResponse:)`. O `parâmetro` mapeia a primeira razão informada pela captura, e qualquer código que o SDK não reconheça é retornado como `unknown`. `description` carrega a mensagem localizada para essa razão, e `signedResponse` está sempre presente — é o mesmo JWT emitido com a sessão, então encaminhe-o ao seu backend como faria em caso de sucesso:

| Valor do enum     | Descrição localizada (inglês)                                                                                  |
| ----------------- | -------------------------------------------------------------------------------------------------------------- |
| `unknown`         | Tente novamente                                                                                                |
| `tooMuchMovement` | Fique parado                                                                                                   |
| `tooBright`       | Vá para um lugar mais escuro                                                                                   |
| `tooDark`         | Vá para um lugar mais claro                                                                                    |
| `misalignedFace`  | Mantenha seu rosto no oval                                                                                     |
| `faceTooFar`      | Aproxime seu rosto da tela                                                                                     |
| `faceTooClose`    | Afaste seu rosto da tela                                                                                       |
| `sunglasses`      | Remova os óculos de sol                                                                                        |
| `systemError`     | Erro do sistema                                                                                                |
| `rejected`        | A transação não pôde ser concluída                                                                             |
| `faceNotFound`    | Alinhe seu rosto no oval e depois tente ficar parado                                                           |
| `obscuredFace`    | Certifique-se de que todo o seu rosto esteja visível e remova quaisquer acessórios que possam cobrir seu rosto |
| `timeout`         | Tempo limite do sistema                                                                                        |
| `eyewear`         | Remova seus óculos                                                                                             |
| `multipleFaces`   | Certifique-se de que apenas uma pessoa esteja visível                                                          |
| `eyesClosed`      | Certifique-se de que seus olhos estejam abertos                                                                |
| `userNotFound`    | A transação não pôde ser concluída                                                                             |
| `lightingIssues`  | Certifique-se de que seu rosto esteja bem iluminado e sem reflexos                                             |
| `framesBlurry`    | Alinhe seu rosto no oval e depois tente ficar parado                                                           |
| `deviceIssue`     | Tente outro dispositivo                                                                                        |
| `motionIssue`     | Alinhe seu rosto no oval e depois tente ficar parado                                                           |
| `backgroundIssue` | Vá para outro local com um fundo neutro                                                                        |
| `deviceRestart`   | Reinicie seu dispositivo e tente novamente                                                                     |
| `processingFault` | Tente novamente                                                                                                |

{% hint style="info" %}
O `description` carrega o texto localizado do mecanismo de liveness para essa razão. Não o exiba como está: mapeie o `parâmetro` para a mensagem recomendada em [Razões da falha e orientações para o usuário](/sdk-lite/sdk-lite-english-pt-br/tratamento-de-falhas/mobile/handling-failures.md), que foi escrita para orientar a próxima tentativa sem revelar o que foi detectado.
{% endhint %}

## Próxima etapa

Encaminhe o `signedResponse` para o seu backend, que o valida e recupera o resultado: [Configuração do backend](/sdk-lite/sdk-lite-english-pt-br/configuracao/backend/setup.md).


---

# 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/sdk-lite/sdk-lite-english-pt-br/configuracao/ios/result-reference.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.
