> 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/api-rest/identity-api/identity-api-reference/onboarding/civil-validation/ecuador.md).

# Equador

Serviço de validação civil para o Equador. Realiza a Verificação de Identidade contra os dados do Registro Civil do Equador.

{% hint style="info" %}
Para o Equador, o parâmetro `documentCode` (fingerprintCode) é obrigatório em todas as operações.
{% endhint %}

### Endpoint

```
POST /services/civilValidation
```

### Cabeçalhos

| Nome          | Tipo   | Obrigatório | Descrição                                                     |
| ------------- | ------ | ----------- | ------------------------------------------------------------- |
| **x-api-key** | string | **Sim**     | API Key de autorização de acesso.                             |
| **family**    | string | Não         | Valor: **Onboarding**. Obrigatório com o serviço de Tracking. |

{% hint style="info" %}
Todas as chamadas aos Endpoints para Tracking com **Identity Platform** devem conter o cabeçalho `family`.
{% endhint %}

## Validação Completa Mobile

Realiza a validação de dados e a correspondência facial contra o Registro Civil do Equador usando a plataforma móvel.

### Corpo da solicitação

**Content-Type:** `application/json`

#### Parâmetros

| Parâmetro              | Tipo    | Obrigatório | Descrição                                                                                                                                                                         |
| ---------------------- | ------- | ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `operation`            | string  | **Sim**     | Operação de validação a ser realizada. Valor: `"FULL"`.                                                                                                                           |
| `platform`             | string  | **Sim**     | Plataforma a partir da qual a solicitação é realizada. Valor: `"MOBILE"`.                                                                                                         |
| `tokenOcr`             | string  | **Sim**     | Token gerado pelo Widget SelphID nativo ou híbrido, criptografado em AES256 e Tokenizado, enviado em formato Base64. Contém o resultado OCR do Documento de identidade capturado. |
| `templateRaw`          | string  | **Sim**     | Template Biométrico gerado pelo Widget Selphi. Necessário para operações FACIAL ou FULL.                                                                                          |
| `documentCode`         | string  | **Sim**     | Código do documento (fingerprintCode), necessário para a validação no Equador.                                                                                                    |
| `documentNumber`       | string  | Não         | Número do documento do usuário.                                                                                                                                                   |
| `countryCode`          | string  | **Sim**     | Código de país no formato ISO 3166-1 alfa-3. Valor: `"ECU"`.                                                                                                                      |
| `returnPII`            | boolean | Não         | Indica se se deseja receber os dados pessoais gerados pelo serviço OCR e a resposta do Registro Civil.                                                                            |
| `documentValidation`   | boolean | Não         | Indica se se deseja iniciar a validação do documento, retornando `scanReference` e `type`.                                                                                        |
| `tracking`             | object  | Não         | Objeto que representa as informações de Tracking necessárias.                                                                                                                     |
| `tracking.extraData`   | string  | Não         | Token gerado pelo SDK Mobile/Web. Contém informações de Tracking tokenizadas com a Plataforma.                                                                                    |
| `tracking.operationId` | string  | Não         | Identificador de operação gerado pelo SDK Mobile/Web.                                                                                                                             |

#### Exemplo de solicitação

```json
{
  "operation": "FULL",
  "platform": "MOBILE",
  "tokenOcr": "base64TokenOcrString",
  "templateRaw": "base64TemplateRawString",
  "documentCode": "E1234V",
  "documentNumber": "1234567890",
  "countryCode": "ECU",
  "returnPII": true,
  "tracking": {
    "extraData": "BQABAQG2gBNjuHN...",
    "operationId": "xxxxx-xxxxx-xxxxx-xxxxx-xxxxx"
  }
}
```

### Respostas

#### `200` Sucesso

#### Parâmetros de resposta

| Parâmetro                           | Tipo    | Descrição                                                                                                                                            |
| ----------------------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| `serviceResultCode`                 | integer | Código que indica o resultado geral da execução do serviço. Ver [Código de Resultado do Serviço](#service-result-code).                              |
| `serviceTime`                       | string  | Tempo total de processamento (milissegundos).                                                                                                        |
| `serviceResultLog`                  | string  | Campo descritivo do resultado da execução do serviço. Inclui detalhes quando há um erro ou exceção.                                                  |
| `serviceTransactionId`              | string  | Identificador de transação associado à solicitação processada pela API.                                                                              |
| `civilDataValidation`               | array   | Array que representa as validações OCR contra os dados obtidos do Registro Civil. Sua presença depende do Registro Civil consultado.                 |
| `civilDataValidation[].field`       | string  | Nome do campo validado (ex. `firstName`, `lastName`, `dateOfBirth`).                                                                                 |
| `civilDataValidation[].code`        | string  | Código de resultado da validação. `"0"`: Validado corretamente. `"-99"`: Possivelmente adulterado.                                                   |
| `civilDataValidation[].message`     | string  | Mensagem descritiva do resultado da validação.                                                                                                       |
| `serviceFacialAuthenticationResult` | integer | Código que indica o resultado da correspondência facial. Ver [Resultado de Authentication Facial do Serviço](#service-facial-authentication-result). |
| `serviceFacialSimilarityResult`     | number  | Valor que indica a semelhança facial entre o rosto na foto do documento e a selfie do usuário. **1.0 = 100%**.                                       |
| `serviceFacialAuthenticationHash`   | string  | Hash de integridade do Template Biométrico utilizado em uma autenticação facial positiva ou incerta.                                                 |
| `serviceDocument`                   | string  | String JSON que representa o documento capturado. Suas propriedades são todos os campos extraídos pelo processo OCR.                                 |
| `civilServiceData`                  | string  | String JSON com os dados pessoais obtidos do Registro Civil (só é retornado se `returnPII` foi enviado como `true` na solicitação).                  |

#### Exemplo de resposta

```json
{
  "serviceResultCode": 0,
  "serviceTime": "2500",
  "serviceResultLog": "Positivo | Serviço executado com sucesso",
  "serviceTransactionId": "12345678-1234-1234-1234-123456789012",
  "civilDataValidation": [
    {
      "field": "dateOfBirth",
      "code": "0",
      "message": "Validado com sucesso"
    },
    {
      "field": "firstName",
      "code": "0",
      "message": "Validado com sucesso"
    },
    {
      "field": "lastName",
      "code": "0",
      "message": "Validado com sucesso"
    }
  ],
  "serviceFacialAuthenticationResult": 3,
  "serviceFacialSimilarityResult": 0.98,
  "serviceFacialAuthenticationHash": "ABC123DEF456GHI789JKL012MNO345PQR678STU901VWX234YZ567",
  "serviceDocument": "{\"DocumentNumber\":\"1234567890\",\"FirstName\":\"JUAN CARLOS\",\"LastName\":\"RODRIGUEZ LOPEZ\",\"DateOfBirth\":\"15/03/1985\",\"Gender\":\"M\",\"Nationality\":\"ECUATORIANA\"}",
  "civilServiceData": "{\"apellidos\":\"RODRIGUEZ LOPEZ\",\"nombres\":\"JUAN CARLOS\",\"fechaNacimiento\":\"15/03/1985\",\"sexo\":\"HOMBRE\",\"nacionalidad\":\"ECUATORIANA\",\"estadoCivil\":\"SOLTERO\"}"
}
```

## Validação Completa Web

Realiza a validação de dados e a correspondência facial contra o Registro Civil do Equador usando a plataforma web.

### Corpo da solicitação

**Content-Type:** `application/json`

#### Parâmetros

| Parâmetro              | Tipo    | Obrigatório | Descrição                                                                                                    |
| ---------------------- | ------- | ----------- | ------------------------------------------------------------------------------------------------------------ |
| `operation`            | string  | **Sim**     | Operação de validação a ser realizada. Valor: `"FULL"`.                                                      |
| `platform`             | string  | **Sim**     | Plataforma a partir da qual a solicitação é realizada. Valor: `"WEB"`.                                       |
| `imageFrontDocument`   | string  | **Sim**     | Captura frontal do documento, imagem em Base64 sem o cabeçalho do tipo MIME. Requerido para plataforma WEB.  |
| `imageBackDocument`    | string  | **Sim**     | Captura traseira do documento, imagem em Base64 sem o cabeçalho do tipo MIME. Requerido para plataforma WEB. |
| `templateRaw`          | string  | **Sim**     | Template Biométrico gerado pelo Widget Selphi. Necessário para operações FACIAL ou FULL.                     |
| `documentCode`         | string  | **Sim**     | Código do documento (fingerprintCode), necessário para a validação no Equador.                               |
| `documentNumber`       | string  | Não         | Número do documento do usuário.                                                                              |
| `countryCode`          | string  | **Sim**     | Código de país no formato ISO 3166-1 alfa-3. Valor: `"ECU"`.                                                 |
| `returnPII`            | boolean | Não         | Indica se se deseja receber os dados pessoais gerados pelo serviço OCR e a resposta do Registro Civil.       |
| `documentValidation`   | boolean | Não         | Indica se se deseja iniciar a validação do documento, retornando `scanReference` e `type`.                   |
| `tracking`             | object  | Não         | Objeto que representa as informações de Tracking necessárias.                                                |
| `tracking.extraData`   | string  | Não         | Token gerado pelo SDK Mobile/Web. Contém informações de Tracking tokenizadas com a Plataforma.               |
| `tracking.operationId` | string  | Não         | Identificador de operação gerado pelo SDK Mobile/Web.                                                        |

#### Exemplo de solicitação

```json
{
  "operation": "FULL",
  "platform": "WEB",
  "imageFrontDocument": "base64ImageFrontString",
  "imageBackDocument": "base64ImageBackString",
  "templateRaw": "base64TemplateRawString",
  "documentNumber": "0987654321",
  "documentCode": "V5678V",
  "countryCode": "ECU",
  "returnPII": true,
  "tracking": {
    "extraData": "BQABAQG2gBNjuHN...",
    "operationId": "xxxxx-xxxxx-xxxxx-xxxxx-xxxxx"
  }
}
```

### Respostas

#### `200` Sucesso

#### Parâmetros de resposta

| Parâmetro                           | Tipo    | Descrição                                                                                                                                            |
| ----------------------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| `serviceResultCode`                 | integer | Código que indica o resultado geral da execução do serviço. Ver [Código de Resultado do Serviço](#service-result-code).                              |
| `serviceTime`                       | string  | Tempo total de processamento (milissegundos).                                                                                                        |
| `serviceResultLog`                  | string  | Campo descritivo do resultado da execução do serviço. Inclui detalhes quando há um erro ou exceção.                                                  |
| `serviceTransactionId`              | string  | Identificador de transação associado à solicitação processada pela API.                                                                              |
| `civilDataValidation`               | array   | Array que representa as validações OCR contra os dados obtidos do Registro Civil. Sua presença depende do Registro Civil consultado.                 |
| `civilDataValidation[].field`       | string  | Nome do campo validado (ex. `firstName`, `lastName`, `dateOfBirth`).                                                                                 |
| `civilDataValidation[].code`        | string  | Código de resultado da validação. `"0"`: Validado corretamente. `"-99"`: Possivelmente adulterado.                                                   |
| `civilDataValidation[].message`     | string  | Mensagem descritiva do resultado da validação.                                                                                                       |
| `serviceFacialAuthenticationResult` | integer | Código que indica o resultado da correspondência facial. Ver [Resultado de Authentication Facial do Serviço](#service-facial-authentication-result). |
| `serviceFacialSimilarityResult`     | number  | Valor que indica a semelhança facial entre o rosto na foto do documento e a selfie do usuário. **1.0 = 100%**.                                       |
| `serviceFacialAuthenticationHash`   | string  | Hash de integridade do Template Biométrico utilizado em uma autenticação facial positiva ou incerta.                                                 |
| `serviceDocument`                   | string  | String JSON que representa o documento capturado. Suas propriedades são todos os campos extraídos pelo processo OCR.                                 |
| `civilServiceData`                  | string  | String JSON com os dados pessoais obtidos do Registro Civil (só é retornado se `returnPII` foi enviado como `true` na solicitação).                  |

#### Exemplo de resposta

```json
{
  "serviceResultCode": 0,
  "serviceTime": "3200",
  "serviceResultLog": "Negativo | Serviço executado com sucesso",
  "serviceTransactionId": "87654321-4321-4321-4321-210987654321",
  "civilDataValidation": [],
  "serviceFacialAuthenticationResult": 1,
  "serviceFacialSimilarityResult": 0.15,
  "serviceFacialAuthenticationHash": "ZYX987WVU654TSR321PON098MLK765JIH432GFE109DCB876A543",
  "serviceDocument": "{\"DocumentNumber\":\"0987654321\",\"FirstName\":\"MARIA ELENA\",\"LastName\":\"GONZALEZ TORRES\",\"DateOfBirth\":\"28/11/1992\",\"Gender\":\"F\",\"Nationality\":\"ECUATORIANA\"}",
  "civilServiceData": "{\"apellidos\":\"GONZALEZ TORRES\",\"nombres\":\"MARIA ELENA\",\"fechaNacimiento\":\"28/11/1992\",\"sexo\":\"MUJER\",\"nacionalidad\":\"ECUATORIANA\",\"estadoCivil\":\"CASADO\"}"
}
```

## Validação de Dados Mobile

Realiza a validação de dados contra o Registro Civil do Equador usando a plataforma móvel. Não inclui correspondência facial.

### Corpo da solicitação

**Content-Type:** `application/json`

#### Parâmetros

| Parâmetro              | Tipo    | Obrigatório | Descrição                                                                                                                                                                         |
| ---------------------- | ------- | ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `operation`            | string  | **Sim**     | Operação de validação a ser realizada. Valor: `"DATA"`.                                                                                                                           |
| `platform`             | string  | **Sim**     | Plataforma a partir da qual a solicitação é realizada. Valor: `"MOBILE"`.                                                                                                         |
| `tokenOcr`             | string  | **Sim**     | Token gerado pelo Widget SelphID nativo ou híbrido, criptografado em AES256 e Tokenizado, enviado em formato Base64. Contém o resultado OCR do Documento de identidade capturado. |
| `documentCode`         | string  | **Sim**     | Código do documento (fingerprintCode), necessário para a validação no Equador.                                                                                                    |
| `documentNumber`       | string  | Não         | Número do documento do usuário.                                                                                                                                                   |
| `countryCode`          | string  | **Sim**     | Código de país no formato ISO 3166-1 alfa-3. Valor: `"ECU"`.                                                                                                                      |
| `returnPII`            | boolean | Não         | Indica se se deseja receber os dados pessoais gerados pelo serviço OCR e a resposta do Registro Civil.                                                                            |
| `documentValidation`   | boolean | Não         | Indica se se deseja iniciar a validação do documento, retornando `scanReference` e `type`.                                                                                        |
| `tracking`             | object  | Não         | Objeto que representa as informações de Tracking necessárias.                                                                                                                     |
| `tracking.extraData`   | string  | Não         | Token gerado pelo SDK Mobile/Web. Contém informações de Tracking tokenizadas com a Plataforma.                                                                                    |
| `tracking.operationId` | string  | Não         | Identificador de operação gerado pelo SDK Mobile/Web.                                                                                                                             |

#### Exemplo de solicitação

```json
{
  "operation": "DATA",
  "platform": "MOBILE",
  "tokenOcr": "base64TokenOcrString",
  "documentCode": "E9876V",
  "documentNumber": "1122334455",
  "countryCode": "ECU",
  "returnPII": true,
  "tracking": {
    "extraData": "BQABAQG2gBNjuHN...",
    "operationId": "xxxxx-xxxxx-xxxxx-xxxxx-xxxxx"
  }
}
```

### Respostas

#### `200` Sucesso

#### Parâmetros de resposta

| Parâmetro                       | Tipo    | Descrição                                                                                                                            |
| ------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| `serviceResultCode`             | integer | Código que indica o resultado geral da execução do serviço. Ver [Código de Resultado do Serviço](#service-result-code).              |
| `serviceTime`                   | string  | Tempo total de processamento (milissegundos).                                                                                        |
| `serviceResultLog`              | string  | Campo descritivo do resultado da execução do serviço. Inclui detalhes quando há um erro ou exceção.                                  |
| `serviceTransactionId`          | string  | Identificador de transação associado à solicitação processada pela API.                                                              |
| `civilDataValidation`           | array   | Array que representa as validações OCR contra os dados obtidos do Registro Civil. Sua presença depende do Registro Civil consultado. |
| `civilDataValidation[].field`   | string  | Nome do campo validado (ex. `firstName`, `lastName`, `dateOfBirth`).                                                                 |
| `civilDataValidation[].code`    | string  | Código de resultado da validação. `"0"`: Validado corretamente. `"-99"`: Possivelmente adulterado.                                   |
| `civilDataValidation[].message` | string  | Mensagem descritiva do resultado da validação.                                                                                       |
| `serviceDocument`               | string  | String JSON que representa o documento capturado. Suas propriedades são todos os campos extraídos pelo processo OCR.                 |
| `civilServiceData`              | string  | String JSON com os dados pessoais obtidos do Registro Civil (só é retornado se `returnPII` foi enviado como `true` na solicitação).  |

#### Exemplo de resposta

```json
{
  "serviceResultCode": 0,
  "serviceTime": "1800",
  "serviceResultLog": "Serviço executado com sucesso",
  "serviceTransactionId": "55443322-5544-3322-1100-554433221100",
  "civilDataValidation": [
    {
      "field": "dateOfBirth",
      "code": "0",
      "message": "Validado com sucesso"
    },
    {
      "field": "firstName",
      "code": "0",
      "message": "Validado com sucesso"
    },
    {
      "field": "lastName",
      "code": "0",
      "message": "Validado com sucesso"
    }
  ],
  "serviceDocument": "{\"DocumentNumber\":\"1122334455\",\"FirstName\":\"CARLOS ALBERTO\",\"LastName\":\"MARTINEZ SILVA\",\"DateOfBirth\":\"10/07/1978\",\"Gender\":\"M\",\"Nationality\":\"ECUATORIANA\"}",
  "civilServiceData": "{\"apellidos\":\"MARTINEZ SILVA\",\"nombres\":\"CARLOS ALBERTO\",\"fechaNacimiento\":\"10/07/1978\",\"sexo\":\"HOMBRE\",\"nacionalidad\":\"ECUATORIANA\",\"estadoCivil\":\"DIVORCIADO\"}"
}
```

## Validação de Dados Web

Realiza a validação de dados contra o Registro Civil do Equador usando a plataforma web. Não inclui correspondência facial.

### Corpo da solicitação

**Content-Type:** `application/json`

#### Parâmetros

| Parâmetro              | Tipo    | Obrigatório | Descrição                                                                                                    |
| ---------------------- | ------- | ----------- | ------------------------------------------------------------------------------------------------------------ |
| `operation`            | string  | **Sim**     | Operação de validação a ser realizada. Valor: `"DATA"`.                                                      |
| `platform`             | string  | **Sim**     | Plataforma a partir da qual a solicitação é realizada. Valor: `"WEB"`.                                       |
| `imageFrontDocument`   | string  | **Sim**     | Captura frontal do documento, imagem em Base64 sem o cabeçalho do tipo MIME. Requerido para plataforma WEB.  |
| `imageBackDocument`    | string  | **Sim**     | Captura traseira do documento, imagem em Base64 sem o cabeçalho do tipo MIME. Requerido para plataforma WEB. |
| `documentCode`         | string  | **Sim**     | Código do documento (fingerprintCode), necessário para a validação no Equador.                               |
| `countryCode`          | string  | **Sim**     | Código de país no formato ISO 3166-1 alfa-3. Valor: `"ECU"`.                                                 |
| `returnPII`            | boolean | Não         | Indica se se deseja receber os dados pessoais gerados pelo serviço OCR e a resposta do Registro Civil.       |
| `documentValidation`   | boolean | Não         | Indica se se deseja iniciar a validação do documento, retornando `scanReference` e `type`.                   |
| `tracking`             | object  | Não         | Objeto que representa as informações de Tracking necessárias.                                                |
| `tracking.extraData`   | string  | Não         | Token gerado pelo SDK Mobile/Web. Contém informações de Tracking tokenizadas com a Plataforma.               |
| `tracking.operationId` | string  | Não         | Identificador de operação gerado pelo SDK Mobile/Web.                                                        |

#### Exemplo de solicitação

```json
{
  "operation": "DATA",
  "platform": "WEB",
  "documentCode": "V1357V",
  "imageFrontDocument": "base64ImageFrontString",
  "imageBackDocument": "base64ImageBackString",
  "countryCode": "ECU",
  "returnPII": true,
  "tracking": {
    "extraData": "BQABAQG2gBNjuHN...",
    "operationId": "xxxxx-xxxxx-xxxxx-xxxxx-xxxxx"
  }
}
```

### Respostas

#### `200` Sucesso

#### Parâmetros de resposta

| Parâmetro                       | Tipo    | Descrição                                                                                                                            |
| ------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| `serviceResultCode`             | integer | Código que indica o resultado geral da execução do serviço. Ver [Código de Resultado do Serviço](#service-result-code).              |
| `serviceTime`                   | string  | Tempo total de processamento (milissegundos).                                                                                        |
| `serviceResultLog`              | string  | Campo descritivo do resultado da execução do serviço. Inclui detalhes quando há um erro ou exceção.                                  |
| `serviceTransactionId`          | string  | Identificador de transação associado à solicitação processada pela API.                                                              |
| `civilDataValidation`           | array   | Array que representa as validações OCR contra os dados obtidos do Registro Civil. Sua presença depende do Registro Civil consultado. |
| `civilDataValidation[].field`   | string  | Nome do campo validado (ex. `firstName`, `lastName`, `dateOfBirth`).                                                                 |
| `civilDataValidation[].code`    | string  | Código de resultado da validação. `"0"`: Validado corretamente. `"-99"`: Possivelmente adulterado.                                   |
| `civilDataValidation[].message` | string  | Mensagem descritiva do resultado da validação.                                                                                       |
| `serviceDocument`               | string  | String JSON que representa o documento capturado. Suas propriedades são todos os campos extraídos pelo processo OCR.                 |
| `civilServiceData`              | string  | String JSON com os dados pessoais obtidos do Registro Civil (só é retornado se `returnPII` foi enviado como `true` na solicitação).  |

#### Exemplo de resposta

```json
{
  "serviceResultCode": 0,
  "serviceTime": "2100",
  "serviceResultLog": "Serviço executado com sucesso",
  "serviceTransactionId": "13579246-1357-9246-8024-135792468024",
  "civilDataValidation": [
    {
      "field": "firstName",
      "code": "-99",
      "message": "Possivelmente adulterado"
    },
    {
      "field": "lastName",
      "code": "0",
      "message": "Validado com sucesso"
    },
    {
      "field": "dateOfBirth",
      "code": "0",
      "message": "Validado com sucesso"
    }
  ],
  "serviceDocument": "{\"DocumentNumber\":\"2468135790\",\"FirstName\":\"ANA PATRICIA\",\"LastName\":\"LOPEZ HERRERA\",\"DateOfBirth\":\"22/09/1990\",\"Gender\":\"F\",\"Nationality\":\"ECUATORIANA\"}"
}
```

## Validação Facial Mobile

Realiza a correspondência facial contra as imagens oficiais do Registro Civil do Equador usando a plataforma móvel. Não inclui validação de dados.

### Corpo da solicitação

**Content-Type:** `application/json`

#### Parâmetros

| Parâmetro              | Tipo   | Obrigatório | Descrição                                                                                      |
| ---------------------- | ------ | ----------- | ---------------------------------------------------------------------------------------------- |
| `operation`            | string | **Sim**     | Operação de validação a ser realizada. Valor: `"FACIAL"`.                                      |
| `platform`             | string | **Sim**     | Plataforma a partir da qual a solicitação é realizada. Valor: `"MOBILE"`.                      |
| `templateRaw`          | string | **Sim**     | Template Biométrico gerado pelo Widget Selphi. Necessário para operações FACIAL ou FULL.       |
| `documentNumber`       | string | Não         | Número do documento do usuário. Obrigatório para operações FACIAL.                             |
| `documentCode`         | string | **Sim**     | Código do documento (fingerprintCode), necessário para a validação no Equador.                 |
| `countryCode`          | string | **Sim**     | Código de país no formato ISO 3166-1 alfa-3. Valor: `"ECU"`.                                   |
| `tracking`             | object | Não         | Objeto que representa as informações de Tracking necessárias.                                  |
| `tracking.extraData`   | string | Não         | Token gerado pelo SDK Mobile/Web. Contém informações de Tracking tokenizadas com a Plataforma. |
| `tracking.operationId` | string | Não         | Identificador de operação gerado pelo SDK Mobile/Web.                                          |

#### Exemplo de solicitação

```json
{
  "operation": "FACIAL",
  "platform": "MOBILE",
  "documentNumber": "9876543210",
  "documentCode": "V2468V",
  "templateRaw": "base64TemplateRawString",
  "countryCode": "ECU",
  "tracking": {
    "extraData": "BQABAQG2gBNjuHN...",
    "operationId": "xxxxx-xxxxx-xxxxx-xxxxx-xxxxx"
  }
}
```

### Respostas

#### `200` Sucesso

#### Parâmetros de resposta

| Parâmetro                           | Tipo    | Descrição                                                                                                                                            |
| ----------------------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| `serviceResultCode`                 | integer | Código que indica o resultado geral da execução do serviço. Ver [Código de Resultado do Serviço](#service-result-code).                              |
| `serviceTime`                       | string  | Tempo total de processamento (milissegundos).                                                                                                        |
| `serviceResultLog`                  | string  | Campo descritivo do resultado da execução do serviço. Inclui detalhes quando há um erro ou exceção.                                                  |
| `serviceTransactionId`              | string  | Identificador de transação associado à solicitação processada pela API.                                                                              |
| `civilDataValidation`               | array   | Array que representa as validações OCR contra os dados obtidos do Registro Civil. Sua presença depende do Registro Civil consultado.                 |
| `civilDataValidation[].field`       | string  | Nome do campo validado (ex. `firstName`, `lastName`, `dateOfBirth`).                                                                                 |
| `civilDataValidation[].code`        | string  | Código de resultado da validação. `"0"`: Validado corretamente. `"-99"`: Possivelmente adulterado.                                                   |
| `civilDataValidation[].message`     | string  | Mensagem descritiva do resultado da validação.                                                                                                       |
| `serviceFacialAuthenticationResult` | integer | Código que indica o resultado da correspondência facial. Ver [Resultado de Authentication Facial do Serviço](#service-facial-authentication-result). |
| `serviceFacialSimilarityResult`     | number  | Valor que indica a semelhança facial entre o rosto na foto do documento e a selfie do usuário. **1.0 = 100%**.                                       |
| `serviceFacialAuthenticationHash`   | string  | Hash de integridade do Template Biométrico utilizado em uma autenticação facial positiva ou incerta.                                                 |
| `serviceDocument`                   | string  | String JSON que representa o documento capturado. Suas propriedades são todos os campos extraídos pelo processo OCR.                                 |

#### Exemplo de resposta

```json
{
  "serviceResultCode": 0,
  "serviceTime": "2800",
  "serviceResultLog": "Positivo | Serviço executado com sucesso",
  "serviceTransactionId": "24681357-2468-1357-9024-246813579024",
  "civilDataValidation": [
    {
      "field": "firstName",
      "code": "-99",
      "message": "Possivelmente adulterado"
    },
    {
      "field": "lastName",
      "code": "0",
      "message": "Validado com sucesso"
    },
    {
      "field": "dateOfBirth",
      "code": "0",
      "message": "Validado com sucesso"
    }
  ],
  "serviceFacialAuthenticationResult": 3,
  "serviceFacialSimilarityResult": 0.94,
  "serviceFacialAuthenticationHash": "DEF789GHI012JKL345MNO678PQR901STU234VWX567YZA890BCD123",
  "serviceDocument": "{\"DocumentNumber\":\"9876543210\",\"FirstName\":\"LUIS FERNANDO\",\"LastName\":\"PEREZ CASTRO\",\"DateOfBirth\":\"05/12/1986\",\"Gender\":\"M\",\"Nationality\":\"ECUATORIANA\"}"
}
```

## Validação Facial Web

Realiza a correspondência facial contra as imagens oficiais do Registro Civil do Equador usando a plataforma web. Não inclui validação de dados.

### Corpo da solicitação

**Content-Type:** `application/json`

#### Parâmetros

| Parâmetro              | Tipo    | Obrigatório | Descrição                                                                                      |
| ---------------------- | ------- | ----------- | ---------------------------------------------------------------------------------------------- |
| `operation`            | string  | **Sim**     | Operação de validação a ser realizada. Valor: `"FACIAL"`.                                      |
| `platform`             | string  | **Sim**     | Plataforma a partir da qual a solicitação é realizada. Valor: `"WEB"`.                         |
| `templateRaw`          | string  | **Sim**     | Template Biométrico gerado pelo Widget Selphi. Necessário para operações FACIAL ou FULL.       |
| `documentCode`         | string  | **Sim**     | Código do documento (fingerprintCode), necessário para a validação no Equador.                 |
| `documentNumber`       | string  | **Sim**     | Número do documento do usuário. Obrigatório para operações FACIAL.                             |
| `countryCode`          | string  | **Sim**     | Código de país no formato ISO 3166-1 alfa-3. Valor: `"ECU"`.                                   |
| `returnPII`            | boolean | Não         | Indica se deseja receber os dados pessoais gerados pela resposta do Registro Civil.            |
| `tracking`             | object  | Não         | Objeto que representa as informações de Tracking necessárias.                                  |
| `tracking.extraData`   | string  | Não         | Token gerado pelo SDK Mobile/Web. Contém informações de Tracking tokenizadas com a Plataforma. |
| `tracking.operationId` | string  | Não         | Identificador de operação gerado pelo SDK Mobile/Web.                                          |

#### Exemplo de solicitação

```json
{
  "operation": "FACIAL",
  "platform": "WEB",
  "templateRaw": "base64TemplateRawString",
  "documentCode": "E8642I",
  "documentNumber": "5678901234",
  "countryCode": "ECU",
  "returnPII": true,
  "tracking": {
    "extraData": "BQABAQG2gBNjuHN...",
    "operationId": "xxxxx-xxxxx-xxxxx-xxxxx-xxxxx"
  }
}
```

### Respostas

#### `200` Sucesso

#### Parâmetros de resposta

| Parâmetro                           | Tipo    | Descrição                                                                                                                                            |
| ----------------------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| `serviceResultCode`                 | integer | Código que indica o resultado geral da execução do serviço. Ver [Código de Resultado do Serviço](#service-result-code).                              |
| `serviceTime`                       | string  | Tempo total de processamento (milissegundos).                                                                                                        |
| `serviceResultLog`                  | string  | Campo descritivo do resultado da execução do serviço. Inclui detalhes quando há um erro ou exceção.                                                  |
| `serviceTransactionId`              | string  | Identificador de transação associado à solicitação processada pela API.                                                                              |
| `civilDataValidation`               | array   | Array que representa as validações OCR contra os dados obtidos do Registro Civil. Sua presença depende do Registro Civil consultado.                 |
| `civilDataValidation[].field`       | string  | Nome do campo validado (ex. `firstName`, `lastName`, `dateOfBirth`).                                                                                 |
| `civilDataValidation[].code`        | string  | Código de resultado da validação. `"0"`: Validado corretamente. `"-99"`: Possivelmente adulterado.                                                   |
| `civilDataValidation[].message`     | string  | Mensagem descritiva do resultado da validação.                                                                                                       |
| `serviceFacialAuthenticationResult` | integer | Código que indica o resultado da correspondência facial. Ver [Resultado de Authentication Facial do Serviço](#service-facial-authentication-result). |
| `serviceFacialSimilarityResult`     | number  | Valor que indica a semelhança facial entre o rosto na foto do documento e a selfie do usuário. **1.0 = 100%**.                                       |
| `serviceFacialAuthenticationHash`   | string  | Hash de integridade do Template Biométrico utilizado em uma autenticação facial positiva ou incerta.                                                 |
| `serviceDocument`                   | string  | String JSON que representa o documento capturado. Suas propriedades são todos os campos extraídos pelo processo OCR.                                 |
| `civilServiceData`                  | string  | String JSON com os dados pessoais obtidos do Registro Civil (só é retornado se `returnPII` foi enviado como `true` na solicitação).                  |

#### Exemplo de resposta

```json
{
  "serviceResultCode": 0,
  "serviceResultLog": "NoneBecausePoseExceed",
  "serviceTime": "1900",
  "serviceFacialAuthenticationResult": 4,
  "serviceFacialAuthenticationHash": "GHI456JKL789MNO012PQR345STU678VWX901YZA234BCD567EFG890",
  "serviceFacialSimilarityResult": 0.0,
  "serviceTransactionId": "86420135-8642-0135-7913-864201357913",
  "civilServiceData": "{\"apellidos\":\"RAMIREZ MORENO\",\"nombres\":\"SOFIA ALEXANDRA\",\"fechaNacimiento\":\"13/04/1995\",\"sexo\":\"MUJER\",\"nacionalidad\":\"ECUATORIANA\",\"estadoCivil\":\"SOLTERO\"}"
}
```

## Tabelas de referência

#### Código de Resultado do Serviço

O `serviceResultCode` indica o resultado geral da execução do serviço:

| serviceResultCode | Descrição                                                                              | Código HTTP |
| ----------------- | -------------------------------------------------------------------------------------- | ----------- |
| 0                 | A execução do serviço foi bem-sucedida, o módulo processou a solicitação corretamente. | 200         |

#### Resultado de Authentication Facial do Serviço

O `serviceFacialAuthenticationResult` indica o resultado das operações de correspondência facial (somente para operações FULL e FACIAL):

| Código | Resultado                        | Descrição                                                                                                                                                                                    |
| ------ | -------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 0      | NONE                             | Não foi possível realizar a verificação facial.                                                                                                                                              |
| 1      | NEGATIVE                         | O processo foi executado corretamente. A comparação do padrão facial dos rostos não corresponde.                                                                                             |
| 3      | POSITIVE                         | O processo foi executado corretamente. A comparação do padrão facial dos rostos é positiva. O valor de `serviceFacialSimilarityResult` indica o % de semelhança entre as imagens comparadas. |
| 4      | NONE BECAUSE POSE EXCEED         | Não foi possível realizar a verificação facial devido à posição do rosto.                                                                                                                    |
| 5      | NONE BECAUSE INVALID EXTRACTIONS | Não foi possível realizar a verificação facial devido a problemas na extração do padrão facial.                                                                                              |

## Erros comuns

#### `400` Requisição inválida

```json
{
  "status": 400,
  "title": "Bad Request",
  "detail": "Invalid request.",
  "type": "https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/400",
  "errors": []
}
```

#### `401` Não autorizado

```json
{
  "message": "Unauthorized"
}
```

#### `403` Proibido

```json
{
  "Message": "User is not authorized to access this resource with an explicit deny"
}
```

#### `502` Gateway inválido

```json
{
  "status": 502,
  "title": "Bad Gateway",
  "detail": "Server got an invalid response.",
  "type": "https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/502"
}
```

#### `504` Gateway Timeout

```json
{
  "message": "Endpoint request timed out"
}
```
