> 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).

# Resultado do SelphID

#### finishStatus

Retorna um number do resultado da operação. Valores possíveis:

* **1**: A operação foi bem-sucedida.
* **2**: Ocorreu um erro, o qual 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, o qual será indicado na string ***`errorType(errorDiagnostic para Flutter)`*** e, opcionalmente, será exibida uma mensagem de informação extra na propriedade ***`errorMessage`***.

#### errorType ou errorDiagnostic(somente 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 Timeout pode ser `SDK_TIMEOUT` ou `SELPHID_TIMEOUT(UIImage?, UIImage?)`. Não existe no iOS um caso `TIMEOUT` sem prefixo. O caso `SELPHID_TIMEOUT` conserva, quando estiverem disponíveis, as imagens brutas do documento capturadas antes do Timeout (`UIImage?` associadas ao enum, não campos do resultado de sucesso). Em integrações híbridas não se deve consumir o nome interno do enum Swift como contrato de resposta.

Para serializar o erro no iOS deve ser usado:

```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 de iOS:

* `finishStatus` es `STATUS_ERROR`
* `data` es `nil` (não são retornados `frontDocument`, `ocrResults`, etc.)
* As imagens brutas, se existirem, vão 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 que foi 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 se realiza uma busca em 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 a frente e o verso do documento. O cálculo é realizado verificando a similaridade entre os campos comuns lidos em ორივas as faces. O resultado do cálculo será um valor entre 0,0 e 1,0 caso existam campos comuns no documento. Quanto maior for o valor, mais similares 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.

**Propiedad captureProgress**

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

```
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 da frente, o Widget terminou sem conseguir detectar nada. Geralmente quando nenhum documento é colocado.
* **1**: Na leitura da frente, o Widget terminou tendo detectado parcialmente um documento. Nesse caso, alguns dos elementos esperados conseguiram ser detectados, mas não todos os necessários.
* **2**: Na leitura da frente, o Widget terminou tendo completado a detecção de todos os elementos do documento. Se o Widget termina nesse estado é porque a análise de OCR não pôde ser concluída com sucesso.
* **3**: Na leitura da frente, o Widget terminou tendo analisado e extraído todo o OCR do documento. Esse é o estado em que terminaria uma leitura correta da frente de um documento.

Os estados do **4** ao **7** são exatamente iguais, apenas se referem ao resultado do processo quando o verso é analisado.

#### **ocrResults**

Este dicionário contém todos os dados detectados no documento. As chaves de cada campo estã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 na frente 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 levam 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 os sobrenomes 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 detectado 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 conforme 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 limite 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` estiver 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

***
