> 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/defense-ia-and-lite/readme/mpt.md).

# MPT

Integração com o MPT (Mobile Patrol Terminal): conceitos, fluxo e endpoint para consulta paginada de registros de fiscalização (LPR/ANPR/tráfego) por dispositivo e intervalo de tempo.

### Como usar:

* Substitua as variáveis `{{host}}`, `{{loginToken}}` e demais identificadores pelos valores reais do ambiente.
* Utilize variáveis globais do seu projeto quando disponíveis para evitar hardcode.
* Ajuste parâmetros de query conforme o cenário (paginação, filtros, IDs).
* Campos JSON opcionais podem ser removidos ou adicionados sem alterar a estrutura base.
* Sempre valide os tipos esperados pelo backend antes de enviar requisições em lote.

***

### Convenções e autenticação

* Códigos de resultado (padrão): `code: 1000` indica sucesso
* Content-Type: `application/json;charset=UTF-8`
* Idioma (opcional): `Accept-Language: en`
* Autenticação: header `X-Subject-Token: {{loginToken}}` (obtenha o token no seu fluxo de login do projeto)
* Base URL: `http://{{host}}/iams/api/v1.1`

***

### **O que é MPT?**

**MPT (Mobile Patrol Terminal)** é o módulo responsável por armazenar e gerenciar **registros de fiscalização gerados por dispositivos de monitoramento**, como câmeras de tráfego ou sistemas de reconhecimento de placas (LPR/ANPR).

Esses registros podem incluir:

* Informações do dispositivo que gerou o evento
* Evidências de imagem ou vídeo
* Data e horário da ocorrência
* Dados relacionados à fiscalização

O módulo permite **consulta, filtragem e exportação desses registros** para sistemas externos ou aplicações de monitoramento.

***

### Fluxo de uso

1. Autenticar no sistema e obter **X-Subject-Token**
2. Identificar os **deviceCodes** desejados
3. Definir o intervalo de consulta (`startTime` e `endTime`)
4. Realizar requisição paginada
5. Processar registros retornados em `pageData`

***

### Como o MPT funciona&#x20;

#### 1️. Captura do evento

Um **dispositivo de campo** (ex.: câmera LPR ou radar) detecta um evento.

Exemplos de eventos:

* reconhecimento de placa
* veículo em lista de alerta
* infração de trânsito
* captura de evidência

O dispositivo gera um **registro de fiscalização**.

#### 2️. Envio para o servidor

O dispositivo envia os dados para o **servidor da plataforma**.

O registro normalmente inclui:

* ID do dispositivo (`deviceCode`)
* horário do evento
* placa detectada
* imagem ou vídeo
* tipo de evento
* metadados da fiscalização

Esses dados ficam armazenados no **módulo MPT**.

#### 3️. Armazenamento no banco

O servidor salva o registro no banco de dados do sistema.

Cada registro pode conter:

* identificação do dispositivo
* timestamp
* evidências (imagem / vídeo)
* dados de reconhecimento
* informações da fiscalização

Esse conjunto de dados é chamado de **MPT Record**.

#### 4️. Consulta via API

Sistemas externos podem consultar esses registros usando endpoints.

A API permite:

* buscar registros
* paginar resultados
* filtrar por tempo
* filtrar por dispositivo

#### 5. Uso das informações

Os registros podem ser usados para:

* monitoramento policial
* auditoria de fiscalização
* geração de relatórios
* alertas de veículos
* exportação de evidências

***

### Erros comuns (modelo):

| Situação                   |                       Sintoma | Como resolver                             |
| -------------------------- | ----------------------------: | ----------------------------------------- |
| Token ausente/expirado     |                         `401` | Refaça login e atualize `X-Subject-Token` |
| Content-Type incorreto     |  `415 Unsupported Media Type` | Use `application/json;charset=UTF-8`      |
| Campos obrigatórios vazios | `400` / mensagem de validação | Revise a seção **Parâmetros** do endpoint |

***

### Obter de Registros de Fiscalização do MPT Por Página

**Tópico**: Realiza a consulta paginada de registros de fiscalização do MPT vinculados a um ou mais dispositivos, dentro de um intervalo de tempo especificado.

* Método: `POST /brms/api/v1.1/law-enforcement/mpt/record/fetch/page`
* Headers: `X-Subject-Token`, `Content-Type`

Exemplo (curl):

```bash
curl --location 'https://{{Host}}/brms/api/v1.1/law-enforcement/mpt/record/fetch/page' 
--header 'X-Subject-Token: 2C226604724B4874b47f17f492cbc098' 
--header 'Content-Type: application/json' 
--header 'Cookie: Path=/' 
--data '{
    "deviceCodes": [
        "1000000"
    ],
    "startTime": "1632844800",
    "endTime": "1632931199",
    "fileType": "",
    "mptName": "",
    "page": "1",
    "pageSize": "20",
    "currentPage": 1,
    "orderType": "1",
    "orderDirection": 1,
    "splitTime": "",
    "splitId": ""
}'
```

Resposta (modelo – sucesso):

```json
{
    "code": 1000,
    "desc": "Success",
    "data": {
        "totalCount": null,
        "pageData": []
    }
}
```

***

Notas Finais:

* Confirme que o **X-Subject-Token** está válido e não expirado antes de realizar a requisição.
* Verifique se o usuário autenticado possui permissão de acesso aos dispositivos informados em `deviceCodes`.
* Certifique-se de que `startTime` e `endTime` estejam no formato **Unix (segundos)** e que o intervalo informado seja coerente.
* Utilize corretamente os parâmetros de paginação (`page`, `pageSize`) para evitar retornos vazios ou consultas excessivas.
* Campos como `currentPage`, `splitId` e `splitTime` devem ser utilizados apenas quando exigidos pelo fluxo de paginação incremental.
* Ajuste `orderType` e `orderDirection` conforme a necessidade de ordenação (crescente/decrescente).
* Em caso de retorno diferente de `code: 1000`, implemente tratamento de erro com logs detalhados para facilitar a análise.
* Evite hardcode de host, token ou identificadores sensíveis; utilize variáveis de ambiente.
* Sempre valide a estrutura do JSON antes do envio para evitar erros de formatação.
* Em ambiente produtivo, priorize comunicação via **HTTPS** e controle adequado de permissões por perfil de usuário.

***


---

# 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/defense-ia-and-lite/readme/mpt.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.
