> For the complete documentation index, see [llms.txt](https://portal-integracao.intelbras.com.br/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://portal-integracao.intelbras.com.br/mip-1000-ip/usuarios/manutenir-face.md).

# Manutenir Face

O comando manutenir face (MTF) é utilizado para realizar as operações de CRUD (acrônimo de Create Read Update Delete) nos dados de um determinado template facial, além dos comandos de solicitação e status de captura de faces. O valor para identificar o comando MTF é `0x50`. Esse comando é utilizado sempre que algum dispositivo desejar informar ao outro sobre a inclusão, alteração, busca dos dados ou exclusão de um Template Facial ou comandos de solicitação e status de captura.

As manutenções referentes ao cadastro de uma face podem ser realizadas através de qualquer dispositivo com acesso ao MIP. Esse comando é complementado através de flags de apoio que sinalizam a opção desejada, ou seja, através do campo "flag" é sinalizado a operação que se deseja realizar com o template facial, inclusão (`INCLUIR_RECURSO`), alteração (`ALTERAR_RECURSO`), busca dos dados (`BUSCAR_RECURSO`) ou exclusão (`EXCLUIR_RECURSO`).

As flags de exclusão (flag `EXCLUIR_RECURSO`) ou busca (flag `BUSCAR_RECURSO`) necessitam que, ao serem enviadas para o MIP, o campo "dados" deste comando contenha somente o ID (4 bytes) do usuário que deseja fazer a operação e o campo "tamanho do campo de dados" será de `0x04 00`.

Este comando com a flag de `EXCLUIR_RECURSO` tem como resposta o datagrama padrão enviado pelo MIP com o campo de dados zerado e com uma das flags indicadas abaixo:

| Flag                    | Descrição                                                                                                             |
| ----------------------- | --------------------------------------------------------------------------------------------------------------------- |
| SUCESSO                 | Enviado caso a operação tenha sido realizada com sucesso.                                                             |
| FALHA                   | Sinaliza falha na execução da operação solicitada.                                                                    |
| ERRO\_CHKS              | Enviado se ocorreu um erro de CHKS na conferência dos dados.                                                          |
| IDENTIFICADOR\_RECUSADO | Sinaliza que o id (identificador) enviado é inválido, pois já existe um recurso cadastrado no sistema com o mesmo id. |
| COMANDO\_INV            | Sinaliza o recebimento de um comando inválido, desconhecido.                                                          |

Este comando com a flag de `BUSCAR_RECURSO` tem como resposta o datagrama padrão enviado pelo MIP 1000 IP e com o campo de dados zerado se o ID não for encontrado ou houver algum problema sinalizado pelas flags já vistas acima, exceto `SUCESSO`. Caso o comando tenha sido executado com sucesso o datagrama retornará com a flag `SUCESSO` e com o campo de dados com os seguintes dados com seu tamanho dado em bytes:

| ID  | ID do usuário | Status | Data | Reservado | Tamanho Código | Modelo Veículo | Marca Veículo | Placa Veículo | Cor Veículo | Código |
| --- | ------------- | ------ | ---- | --------- | -------------- | -------------- | ------------- | ------------- | ----------- | ------ |
| 4 B | 4 B           | 1 B    | 6 B  | 1 Byte    | 2 Bytes        | 18B            | 18B           | 7B            | 18B         | 1667 B |

**Descrição dos campos do comando:**

| Campo          | Descrição                                                                                                                                                                                                                                                                                                       |
| -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| ID da Face     | Campo que possui um número único identificador da face. Sempre maior que zero e seu valor máximo corresponde ao total de faces cadastrados no MIP. Os dados desse campo possuem o seguinte formato: Exemplo para o ID: 1 MSB `0x01 00 00 00` LSB.                                                               |
| ID do usuário  | Campo que possui um número único identificador do usuário já cadastrado no MIP 1000 IP. Os dados desse campo possuem o seguinte formato: Exemplo para o ID: 1 MSB `0x01 00 00 00` LSB.                                                                                                                          |
| Status         | Este campo é "oculto" no cadastro da digital. Ele deve ser utilizado para sinalizar se a digital está ativa (valor 0), inativo (1) ou inativo por perda/roubo (2).                                                                                                                                              |
| Data           | Campo que contém a data de cadastro da TAG. Essa data é formada pelos campos: dd -> dia, mm -> mês, aa -> ano, hh -> hora, mm -> minuto, ss -> segundo. Os dados desse campo possuem o seguinte formato: exemplo para a data: 27/06/2012 15:14:26 => MSB `0x1B 06 0C 0F 0E 1A` LSB.                             |
| Reservado      | Campo reservado para implementações futuras. Deve ser enviado como `0x00`.                                                                                                                                                                                                                                      |
| Tamanho Código | Campo que possui um tamanho em bytes do código numérico de identificação do template facial.                                                                                                                                                                                                                    |
| Modelo veículo | Campo que contém o modelo do veículo com caracteres no formato ASCII. Os dados desse campo possuem o seguinte formato: exemplo para o Modelo: Atlas => MSB `0x41 74 6C 61 73 00 ... 00` LSB. As posições (bytes) restantes do campo que não serão utilizados devem ser completadas com `0x00`.                  |
| Marca Veículo  | Campo que contém a marca do veículo com caracteres no formato ASCII. Os dados desse campo possuem o seguinte formato: exemplo para o Modelo: Atlas => MSB `0x41 74 6C 61 73 00 ... 00` LSB. As posições (bytes) restantes do campo que não serão utilizados devem ser completadas com `0x00`.                   |
| Placa Veículo  | Campo que contém a placa do veículo com caracteres no formato ASCII. Os dados desse campo possuem o seguinte formato: exemplo para a placa: HEG-4833 => MSB `0x48 45 47 34 38 33 33` LSB.                                                                                                                       |
| Cor Veículo    | Campo que contém a cor do veículo com caracteres no formato ASCII. Os dados desse campo possuem o seguinte formato: exemplo para a cor: Azul => MSB `0x41 7A 75 6C 00 ... 00` LSB. As posições (bytes) restantes do campo que não serão utilizados devem ser completadas com `0x00`.                            |
| Código         | Campo que possui um código numérico de identificação do template facial. Valor capturado pelo MIP através da flag IBT (`0x1F`) visto posteriormente. Exemplo para o código 1: MSB `0x01 00 00 00 ... 00` LSB. As posições (bytes) restantes do campo que não serão utilizados devem ser completadas com `0x00`. |

Este comando com a flag de `INCLUIR_RECURSO` ou `ALTERAR_RECURSO` ao ser enviado para o MIP 1000 IP, permite com que uma face seja inclusa e editada respectivamente. Em ambos os casos o datagrama a ser enviado para o MIP deve ter no seu campo de dados as seguintes informações abaixo com o preenchimento obedecendo a tabela acima.

Sendo que no campo ID, quando houver a edição dos dados de um template facial deve-se sempre ter o ID válido deste template facial. Se a operação for de inclusão, este campo ID deve ser o valor do total de templates faciais do sistema mais um.

Caso o id enviado não seja um id valido o MIP 1000 IP irá responder o comando com flag `IDENTIFICADOR_INVALIDO` e o campo de dados da seguinte maneira:

| Id      |
| ------- |
| 4 Bytes |

**Descrição dos campos do comando:**

| Campo | Descrição                                                                                                           |
| ----- | ------------------------------------------------------------------------------------------------------------------- |
| ID    | Campo que possui um número único do próximo identificador do recurso. Exemplo para o ID: 1 MSB `0x01 00 00 00` LSB. |

Para saber quantas faces temos cadastrados, use o comando VS (Verificar Sincronismo) que está descrito abaixo neste documento.

Com o uso destas flags de inclusão ou alteração, o MIP pode retornar todas as flags abaixo, manifestar-se o comando foi efetivo ou não. O datagrama terá o tamanho padrão com as flags:

| Flag                    | Descrição                                                                                                             |
| ----------------------- | --------------------------------------------------------------------------------------------------------------------- |
| SUCESSO                 | Enviado caso a operação tenha sido realizada com sucesso.                                                             |
| FALHA                   | Sinaliza falha na execução da operação solicitada.                                                                    |
| ERRO\_CHKS              | Enviado se ocorreu um erro de CHKS na conferência dos dados.                                                          |
| IDENTIFICADOR\_RECUSADO | Sinaliza que o id (identificador) enviado é inválido, pois já existe um recurso cadastrado no sistema com o mesmo id. |
| COMANDO\_INV            | Sinaliza o recebimento de um comando inválido, desconhecido.                                                          |

Este comando enviado para o dispositivo com a FLAG de `INICIO_BUSCA_TEMPLATE` tem no campo "dados" o ID do endereço do dispositivo que fará a busca do template facial.

Em caso de **SUCESSO** a resposta do MIP deve conter a FLAG SUCESSO e o seguinte campo de dados:

| ID do dispositivo |
| ----------------- |
| 4 Bytes           |

**Descrição dos campos do comando:**

| Campo             | Descrição                                                                            |
| ----------------- | ------------------------------------------------------------------------------------ |
| ID do dispositivo | Campo que possui um número único identificador do dispositivo, já cadastrado no MIP. |

Em caso de **FALHA** a resposta do MIP deve conter o datagrama padrão enviado pelo MIP com as possíveis FLAGS:

| Flag                    | Descrição                                                                                                                                |
| ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| FALHA                   | Sinaliza falha na execução da operação solicitada.                                                                                       |
| ERRO\_CHKS              | Enviado se ocorreu um erro de CHKS na conferência dos dados.                                                                             |
| IDENTIFICADOR\_INVALIDO | Sinaliza que o id (identificador) enviado é inválido, pois o endereço enviado não está cadastrado ou não é de um dispositivo biométrico. |
| IDENTIFICADOR\_RECUSADO | Sinaliza que já existe um processo de captura iniciado e não foi finalizado.                                                             |
| COMANDO\_INV            | Sinaliza o recebimento de um comando inválido, desconhecido.                                                                             |

Este comando enviado para o MIP com a FLAG de `BUSCA_TEMPLATE_COMPLETA` tem no campo "dados" o id da captura do template facial recebido como resposta a este comando com a FLAG de `INICIO_BUSCA_TEMPLATE`.

| Id da captura |
| ------------- |
| 4 Bytes       |

**Descrição dos campos do comando:**

| Campo         | Descrição                                                                                                                               |
| ------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| Id da captura | Campo que possui um código numérico da ID da captura. Este valor deve ser enviado para requisitar o template facial em caso de sucesso. |

Este comando com a FLAG de `BUSCA_TEMPLATE_COMPLETA` tem como resposta o datagrama padrão enviado pelo MIP e com o campo de dados zerado e sinalizado pelas flags IGNORAR caso o dispositivo esteja no processo de cadastro de uma template facial.

| Flag    | Descrição                                                                  |
| ------- | -------------------------------------------------------------------------- |
| IGNORAR | Enviado caso o dispositivo esteja no processo de cadastro de uma template. |

Em caso de **SUCESSO** a resposta do dispositivo deve conter a FLAG SUCESSO e o seguinte campo de dados:

| Código     |
| ---------- |
| 1667 Bytes |

**Descrição dos campos do comando:**

| Campo  | Descrição                                                                                                  |
| ------ | ---------------------------------------------------------------------------------------------------------- |
| Código | Campo que possui um código numérico de identificação do template facial. Valor capturado pelo dispositivo. |

Durante o processo de cadastro no dispositivo quando o MIP recebe este comando a resposta é o datagrama padrão com a FLAG de `IGNORAR`.

| Flag    | Descrição                                             |
| ------- | ----------------------------------------------------- |
| IGNORAR | Caso o sistema esteja fazendo o processo de cadastro. |

Em caso de **FALHA** a resposta do MIP deve conter o datagrama padrão enviado pelo MIP com as possíveis FLAGS:

| Flag                    | Descrição                                                                                                                                 |
| ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| FALHA                   | Sinaliza falha na execução da operação solicitada.                                                                                        |
| ERRO\_CHKS              | Enviado se ocorreu um erro de CHKS na conferência dos dados.                                                                              |
| IDENTIFICADOR\_INVALIDO | Sinaliza que o id (identificador) enviado é inválido, pois o identificador da captura do template não é o identificador enviado pelo MIP. |
| COMANDO\_INV            | Sinaliza o recebimento de um comando inválido, desconhecido.                                                                              |


---

# 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://portal-integracao.intelbras.com.br/mip-1000-ip/usuarios/manutenir-face.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.
