> 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/cameras-and-gravadores/integracao-api-cftvip-e-mibo/cameras-e-gravadores/pdv.md).

# PDV

Integração PDV (POS) no DVR/NVR para correlacionar vendas com vídeo, Inclui conceito, fluxo, acesso/configuração no gravador, exemplo TCP e limitações (horário e vínculo câmera/caixa).

### Conceito Geral

O **gravador (DVR/NVR)** **não executa funções de PDV** e **não processa vendas**.\
Ele atua **exclusivamente como um sistema de correlação de eventos**, utilizando informações de venda fornecidas pelo sistema **Defense** ou pelo sistema de Vendas para:

* Localizar
* Sincronizar
* Exibir
* Reproduzir

> **O gravador não “faz PDV”. Ele apenas utiliza dados de PDV para localizar imagens.**

***

### Função do PDV dentro do Gravador

No ambiente do gravador, o PDV é responsável por:

* **Autorizar a comunicação** entre gravador e Defense
* **Identificar o DVR/NVR** dentro do sistema
* **Organizar e estruturar a integração**
* **Relacionar canais e câmeras** a um gravador específico
* **Receber comandos de busca** baseados em dados de venda enviados pelo Defense
* **Correlacionar horário da venda ↔ horário do vídeo**

***

### Fluxo de Funcionamento da Integração

```
Sistema de PDV → Defense → Gravador → Arquivo de Vídeo
```

1. A venda ocorre no PDV.
2. Os dados são enviados ao **Defense**.
3. O usuário seleciona a venda no Defense.
4. O Defense envia ao gravador:
   * Data
   * Hora
   * Identificação da câmera / canal
5. O gravador retorna **exatamente o trecho de vídeo** daquele momento.

***

### Qual é a diferença entre o PDV nos gravadores e no Defense?

| Gravadores                               | Defense                       |
| ---------------------------------------- | ----------------------------- |
| Não gerencia vendas                      | Gerencia informações de venda |
| Não interpreta dados comerciais          | Exibe dados comerciais        |
| Executa busca por parâmetros de consulta | Permite pesquisa por venda    |
| Apenas responde aos comandos             | Envia comandos ao gravador    |

{% hint style="info" %}
Observação: O client envia as informações para o gravador armazenar.
{% endhint %}

### Como acessar o PDV pelo gravador?

1. **Acesse o gravador** utilizando **usuário e senha;**

<figure><img src="https://1515909874-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6mQgRU27bLHXXNsZMjlv%2Fuploads%2FKLJEgKCCDiEiLWPhP4CS%2Fimage.png?alt=media&amp;token=79506fbf-a125-4fee-b4cf-4c191f53a943" alt=""><figcaption></figcaption></figure>

2\. No canto superior direito, clique no "**Menu Principal";**

<figure><img src="https://1515909874-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6mQgRU27bLHXXNsZMjlv%2Fuploads%2Fyu9GFQFD0RpJgKZ5Mx6w%2Fimage.png?alt=media&amp;token=a9ab65be-3d10-45bf-9f7e-f9aafc45658b" alt=""><figcaption></figcaption></figure>

3. Selecione a opção **“POS";**

<figure><img src="https://1515909874-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6mQgRU27bLHXXNsZMjlv%2Fuploads%2F2qaYHkO5xKia9wcN7uCz%2Fimage.png?alt=media&amp;token=00c4cedf-6aa7-493e-a8c2-1a554052fa9e" alt=""><figcaption></figcaption></figure>

4. Clique em "**Configuração**";

<figure><img src="https://1515909874-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6mQgRU27bLHXXNsZMjlv%2Fuploads%2FraVpUdFu1LVtiyXB6k8I%2Fimage.png?alt=media&amp;token=7ab4c115-2f68-4df4-b298-513dc861552f" alt=""><figcaption></figcaption></figure>

5. Configure o gravador para conexão;

<figure><img src="https://1515909874-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6mQgRU27bLHXXNsZMjlv%2Fuploads%2F68x9lOhuaibZ0Ql94gGQ%2Fimage.png?alt=media&amp;token=ff3190c2-93d5-49b7-9ede-e82e6cb5a39c" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Observação: Alguns modelos de gravadores não possuem suporte completo a essa função de integração com PDV.
{% endhint %}

6. Gravador armazenando informações que o Servidor enviou.

<figure><img src="https://1515909874-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6mQgRU27bLHXXNsZMjlv%2Fuploads%2FSJm4UopHPEpdPq8uIaXf%2Fimage.png?alt=media&amp;token=ed609452-a7dc-4290-af5e-dd19cb8547e1" alt=""><figcaption></figcaption></figure>

***

### Servidor TCP:

```python
import socket
from datetime import datetime

HOST = "192.168.1.1"   # IP do PDV
PORT = 8080             # Porta configurada no gravador

STX = b'\x02'
ETX = b'\x03'
LF  = b'\x0A'

codigo = input("Bipe o produto: ")

agora = datetime.now()

mensagem = (
    STX +
    f"SALE;CAIXA=01;PROD={codigo};VALOR=10.00;"
    f"DATA={agora.strftime('%Y%m%d')};"
    f"HORA={agora.strftime('%H%M%S')}".encode("ascii") +
    LF +
    ETX
)

#  TCP SERVER (igual NetAssist)
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as server:
    server.bind((HOST, PORT))
    server.listen(1)

    print(f"Aguardando gravador conectar em {HOST}:{PORT}...")

    conn, addr = server.accept()
    with conn:
        print(f"Gravador conectado: {addr}")

        conn.sendall(mensagem)
        print("Venda enviada ao gravador")

        # mantém conexão aberta (importante!)
        input("Pressione ENTER para encerrar...")

```

**Resposta:**

```powershell
Bipe o produto: 7891234567890
Aguardando gravador conectar em 192.168.1.1:8080..
Gravador conectado: ('192.168.1.1', 52120)
Venda enviada ao gravador
Pressione ENTER para encerrar...
```

***

### Limitações Importantes

* O gravador **não valida valores** ou dados da venda.
* O sucesso da busca depende de:
  * Sincronização de horário correta
  * Associação correta de câmeras e caixas
  * Configuração adequada do PDV no Defense

***

Notas finais:

* **Autenticação obrigatória** para todas as requisições.
* Utilize sempre os **métodos e formatos definidos** na documentação.
* **Restrinja ações sensíveis** a usuários autorizados e mantenha logs.
* **Evite envios excessivos** e valide os dados antes de transmiti-los.
* Garanta a **consistência das informações**, pois algumas ações não podem ser desfeitas.

***


---

# 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/cameras-and-gravadores/integracao-api-cftvip-e-mibo/cameras-e-gravadores/pdv.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.
