> 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-mobile/framework-plugins/extras/selphid/selphid-resultado.md).

# Selphid Resultado

#### finishStatus

Retorna um número do resultado da operação. Valores possíveis:

* **1**: A operação foi bem-sucedida.
* **2**: Ocorreu um erro, que será indicado na string ***`errorType`*** e, opcionalmente, será exibida uma mensagem de informação extra na propriedade ***`errorMessage`***.

#### finishStatusDescription

Retorna uma descrição do resultado da operação. Valores possíveis:

* **STATUS\_OK**: A operação foi bem-sucedida.
* **STATUS\_ERROR**: Ocorreu um erro, que será indicado na string ***`errorType(errorDiagnostic para Flutter)`*** e, opcionalmente, será exibida uma mensagem de informação extra na propriedade ***`errorMessage`***.

#### errorType ou errorDiagnostic(apenas para Flutter) <a href="#id-61-recepcion-de-errores" id="id-61-recepcion-de-errores"></a>

Indica por que o componente falhou. Valores possíveis:

No iOS, o `errorType` recebido do SDK em um tempo limite pode ser `SDK_TIMEOUT` ou `SELPHID_TIMEOUT(UIImage?, UIImage?)`. Não existe no iOS um caso `TIMEOUT` sem prefixo. O caso `SELPHID_TIMEOUT` preserva, quando disponíveis, as imagens brutas do documento capturadas antes do tempo limite (`UIImage?` associadas ao enum, não campos do resultado de sucesso). Em integrações híbridas, o nome interno do enum Swift não deve ser consumido como contrato de resposta.

Para serializar o erro no iOS, deve-se utilizar:

```swift
errorType.toString(addComponentPrefix: "SPD_")
```

Isso retorna `SPD_TIMEOUT` tanto para `SDK_TIMEOUT` quanto para `SELPHID_TIMEOUT`. No Android, o equivalente da lista de erros é `TIMEOUT` (sem prefixo).

Em um timeout do iOS:

* `finishStatus` é `STATUS_ERROR`
* `data` é `nil` (não são retornados `frontDocument`, `ocrResults`, etc.)
* As imagens brutas, se existirem, ficam no valor associado de `SELPHID_TIMEOUT`, não em `data`

{% content-ref url="/pages/be8c23900fa9aec39b919c29f27baaf127cbbeaa" %}
[Selphid - Lista de Erros](/docs.facephi-pt-br/sdks/sdk-mobile/framework-plugins/extras/selphid/selphid-listado-de-errores.md)
{% endcontent-ref %}

#### errorMessage

Indica uma mensagem de erro adicional. É um valor opcional.

#### **frontDocument / tokenFrontDocument:**

A imagem frontal do documento processada, limpa e recortada pelas bordas e seu Token correspondente.

#### **backDocument / tokenBackDocument**

A imagem traseira do documento processada, limpa e recortada pelas bordas e seu Token associado.

#### **faceImage / tokenFaceImage**

A imagem do rosto encontrada no documento, caso exista, e seu Token associado.

Válida para o processo de MATCHING FACIAL.

#### **documentCaptured**

Esta propriedade indica o modelo de documento que foi capturado quando é feita uma busca no modo SMSearch. Dessa forma, a aplicação pode saber qual modelo, entre todos os permitidos, foi detectado.

#### **matchingSidesScore**

Esta propriedade retorna um cálculo da similaridade dos dados lidos entre o front e o back do documento. O cálculo é realizado verificando a similaridade entre os campos comuns lidos em ambas as faces. O resultado do cálculo será um valor entre 0.0 e 1.0 caso existam campos comuns no documento. Quanto maior o valor, mais semelhantes são os dados comparados. Se o cálculo retornar -1.0, é porque o documento não contém campos comuns ou ainda não há informação das duas faces.

**Propriedade captureProgress**

Esta propriedade retorna o estado em que o processo de captura se encontrava quando o Widget terminou com sucesso (`STATUS_OK`). Em um timeout do iOS, `data` é `nil` e este valor não é incluído no `SdkResult` do callback de erro. Estes são os valores possíveis:

```
Front_Detection_None = 0
Front_Detection_Uncertain = 1
Front_Detection_Completed = 2
Front_Document_Analyzed = 3
Back_Detection_None = 4
Back_Detection_Uncertain = 5
Back_Detection_Completed = 6
Back_Document_Analyzed = 7
```

* **0**: Na leitura do Front, o Widget terminou sem conseguir detectar nada. Geralmente quando nenhum documento é colocado.
* **1**: Na leitura do Front, o Widget terminou tendo detectado parcialmente um documento. Nesse caso, alguns dos elementos esperados foram detectados, mas não todos os necessários.
* **2**: Na leitura do Front, o Widget terminou tendo completado a detecção de todos os elementos do documento. Se o Widget termina neste estado, é porque a análise de OCR não pôde ser concluída com sucesso.
* **3**: Na leitura do Front, o Widget terminou tendo analisado e extraído todo o OCR do documento. Este é o estado em que terminaria uma leitura correta do Front de um documento.

Os estados de **4** até **7** são exatamente iguais, só que se referem ao resultado do processo quando o back é analisado.

#### **ocrResults**

Este dicionário contém todos os dados detectados no documento. As chaves de cada campo são codificadas de tal forma que a própria chave contém informação de onde o valor foi obtido. Assim, por exemplo, a chave `Front/MRZ/DocumentNumber` indica o valor do DocumentNumber que foi lido no Front do documento e na região do MRZ. Essas chaves dependem do documento capturado e, portanto, serão diferentes entre distintos países e modelos de documento. O dicionário também contém chaves com nomes mais genéricos e que não trazem informação relativa à localização. Essas chaves contêm o dado mais completo de todos os lidos para esse campo.

Essas chaves são as seguintes:

* **FirstName**: O valor associado a esta chave contém o nome do usuário.
* **LastName**: O valor associado a esta chave contém o sobrenome do usuário.
* **DateOfBirth**: O valor associado a esta chave contém a data de nascimento detectada no documento.
* **Gender**: O valor associado a esta chave contém o sexo do usuário detectado no documento.
* **Nationality**: O valor associado a esta chave contém a nacionalidade do usuário detectada no documento.
* **DocumentNumber**: O valor associado a esta chave contém o número do documento.
* **DateOfExpiry**: O valor associado a esta chave contém a data de expiração do documento.
* **Issuer**: O valor associado a esta chave contém o emissor do documento.
* **DateofIssue**: O valor associado a esta chave contém a data de emissão do documento.
* **PlaceOfBirth**: O valor associado a esta chave contém o local de nascimento do usuário.
* **Address**: O valor associado a esta chave contém o endereço detectado no documento.

Adicionalmente, são adicionadas chaves do próprio objeto results para facilitar sua busca:

* **DocumentCaptured**: Valor do modelo de documento que foi capturado de acordo com o .xml de modelos. Corresponde à propriedade documentCaptured.
* **MatchingSidesScore**: Valor que indica a correspondência entre as faces lidas do documento. Corresponde à propriedade matchingSidesScore.

#### **timeoutDiagnostic**

No Android, esta propriedade retorna uma string de texto que explica por que o tempo de espera do Widget se esgotou. No iOS, o Widget gera essa informação internamente, mas o componente **não** a expõe no `SdkResult` de erro. Se `showDiagnostic` está ativo, a mensagem de timeout é exibida na tela de diagnóstico do próprio componente.

#### **countryCaptured**

País do documento.

#### **documentTypeCaptured**

Tipo de documento. Corresponde aos do item 5.1.10.

#### **personalData**

Conjunto reduzido de dados obtidos do usuário:

* issuer
* documentNumber
* issueDate
* expiryDate
* name
* surname
* fullName
* gender
* birthDate
* birthPlace
* nationality
* address
* nfcKey
* numSupport
* mrz

***
