> 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/linha-de-faciais/modo-ponto/funcionamento.md).

# Funcionamento

O Modo Ponto é a função que permite ao dispositivo de Controle de Acesso Facial coletar o registro de ponto e encaminhar ao servidor de ponto, através dos eventos encaminhados com o Modo Online ativo. Esta função está disponível para os produtos listados abaixo, a partir da versão de firmware 2024-07-25:

**Dispositivos que suportam o Modo Ponto:**

| Dispositivos    | Modo Ponto |
| --------------- | ---------- |
| SS 3531 MF Lite | ✅          |
| SS 3541 MF Lite | ✅          |
| SS 3532 MF      | ✅          |
| SS 3542 MF      | ✅          |
| SS 3532 MF W    | ✅          |
| SS 3542 MF W    | ✅          |
| SS 5531 MF W    | ✅          |
| SS 5531 MF EX   | ✅          |
| SS 5541 MF W    | ✅          |
| SS 5532 MF W    | ✅          |
| SS 5542 MF W    | ✅          |

### Ativação do Modo Ponto

Para ativação do Modo Ponto

#### Requisição - GET

`http://{{device_ip}}/cgi-bin/configManager.cgi?action=setConfig&AccessControl[0].AttendanceMode.Enable=true`

| param          | type    | description                         |
| -------------- | ------- | ----------------------------------- |
| `setConfig` \* | String  | Comando para cadastrar configuração |
| `Enable`       | Boolean | Habilita/Desabilita a função        |

#### Exemplo de Retorno - *text/plain*

```sh
OK
```

### Evento do registro de ponto

O registro de ponto ocorrerá com o reconhecimento da credencial junto ao Controlador de Acesso Facial e recebido pelo servidor com Modo Online ativo, com a informação do status de conexão ao servidor ("OfflineState"). Esse novo campo é necessário para reportar se o evento ocorreu de forma "online" ou "offline".

#### Exemplo de encaminhamento do evento:

```sh
--myboundary
Content-Type: text/plain
Content-Disposition: form-data; name="info"

{
   "Channel" : 0,
   "Events" : [
      {
         "Action" : "Pulse",               
         "Code" : "AccessControl",           // Código do tipo de Evento
         "Data" : {                          // Informação do Evento
            "Alive" : 100,
            "CardName" : "test",             // Nome do Usuário 
            "CardNo" : "",                   // Código do cartão em Hexadecimal 
            "CardType" : 0,                  // Tipo do Cartão 0: Ordinary card, 1: VIP card, 2: Guest card, 3: Patrol card, 4: Blocklist card, 5: Duress card
            "CreateTime" : 1581098928,       // Data da criação do Evento em Timestamp 
            "Door" : 0,                      // Porta ao qual ocorreu o acesso
            "ErrorCode" : 0,                 // Código do Erro / Motivo do Acesso negado 
			"OfflineState" : 0,              // 0: Evento ocorreu Online / 1: Evento ocorreu Offline 
            "ImageInfo" : [                  // Lista de informações da foto que é mandada junto ao evento 
               {
                  "Height" : 640,
                  "Length" : 11112,
                  "Offset" : 0,
                  "Type" : 1, ==> Foto de Contexto

                  "Width" : 360
               },
               {
                  "Height" : 480,
                  "Length" : 30313,
                  "Offset" : 11112,
                  "Type" : 0, ==> Foto do usuário
                  "Width" : 367
               },
               {
                  "Height" : 556,
                  "Length" : 12401,
                  "Offset" : 41425,
                  "Type" : 2, ==> Foto de contexto com recorte do rosto 
                  "Width" : 332
               }
            ],
            "Method" : 15,                   // Método usado na autenticação
            "ReaderID" : "1",                // Leitor usado na autenticação
            "Similarity" : 98,
            "SnapPath" : "\/var\/tmp\/partsnap8.jpg",
            "Status" : 1,                    // Status do acesso Liberado/Negado
            "Type" : "Entry",                // Tipo de Acesso Entrada/Saida
            "UTC" : 1581098928,              // UTC do acesso
            "UserID" : "6",                  // ID do Usuário
            "UserType" : 0                   // Tipo de usuário 
         },
         "Index" : 0,
         "PhysicalAddress" : "bc:32:5f:6d:46:d9"
      }
   ],
   "FilePath" : "\/mnt\/appdata1\/userpic\/SnapShot\/2020-02-07\/15\/08\/6_98_100_20200207150848425.jpg",
   "Time" : "07-02-2020 15:08:48"            // Data e hora do evento. 
}

```

### Habilitar botão de registro

Ao habilitar o botão de registro de ponto, o controlador de acesso facial somente irá capturar a credencial após pressioná-lo. Caso contrário, não irá coletar a informação. Este botão evita que seja capturada a credencial de forma acidental.

#### Requisição - GET

`http://{{device_ip}}/cgi-bin/configManager.cgi?action=setConfig&AccessControl[0].AttendanceMode.Button=true`

| param          | type    | description                         |
| -------------- | ------- | ----------------------------------- |
| `setConfig` \* | String  | Comando para cadastrar configuração |
| `Button`       | Boolean | Habilita/Desabilita a função        |

#### Exemplo de Retorno - *text/plain*

```sh
OK
```

### Mudança da cor da fonte para o display

Ao ativar a função do Modo Ponto, irá ativar automaticamente a proteção de tela e mostrará a data e hora na tela principal do produto. A cor da fonte utilizada como padrão é branco.

#### Requisição - GET

`http://{{device_ip}}/cgi-bin/configManager.cgi?action=setConfig&AccessControl[0].AttendanceMode.TimeColor=0`

| param          | type   | description                         |
| -------------- | ------ | ----------------------------------- |
| `setConfig` \* | String | Comando para cadastrar configuração |
| `TimeColor`    | Number | 0: Branco, 1: Cinza, 2: Preto.      |

#### Exemplo de Retorno - *text/plain*

```sh
OK
```

### Customizações - Botão, texto e posição

A partir da versão de firmware 20260211, os produtos listados acima possuem a disponibilidade de customizar a cor do botão, cor da fonte de botão e posição do texto "Data\&Hora".&#x20;

#### Mudança da cor do botão

#### Requisição - GET

`http://{{device_ip}}/cgi-bin/configManager.cgi?action=setConfig&_AttendanceModeBtn_.ButtonColor=8355711`&#x20;

| param                            | type   | description                                                  |
| -------------------------------- | ------ | ------------------------------------------------------------ |
| `setConfig` \*                   | String | Comando para cadastrar configuração                          |
| `_AttendanceModeBtn_ButtonColor` | Number | Cor em número decimal. Não deve ser usado número hexadecimal |

#### Exemplo de Retorno - *text/plain*

```sh
OK
```

#### Mudança da cor do texto do botão

#### Requisição - GET

`http://{{device_ip}}/cgi-bin/configManager.cgi?action=setConfig&_AttendanceModeBtn_.FontColor=16645629`&#x20;

| param                          | type   | description                                                  |
| ------------------------------ | ------ | ------------------------------------------------------------ |
| `setConfig` \*                 | String | Comando para cadastrar configuração                          |
| `_AttendanceModeBtn_FontColor` | Number | Cor em número decimal. Não deve ser usado número hexadecimal |

#### Exemplo de Retorno - *text/plain*

```sh
OK
```

#### Mudança da posição do texto "Data\&Hora"

A posição do texto "Data\&Hora" é coordenada e orientada pelos eixos "x" e "y" com valores decimais em formato fracionado, como por exemplo, x=0.35. A posição padrão do texto é **x=0.35** e **y=0.15**, conforme imagem abaixo:

<figure><img src="https://1174315854-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F0fFSkomZ6y6jtuI5J4qq%2Fuploads%2FoevJqs6nG56yetWk42Es%2Fimage.png?alt=media&amp;token=21195656-4a5f-4d5f-aba5-242847825104" alt=""><figcaption></figcaption></figure>

Para orientação sobre quais seriam os valores absolutos dos cantos superiores e inferiores, seguem as imagens com esses valores:

<figure><img src="https://1174315854-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F0fFSkomZ6y6jtuI5J4qq%2Fuploads%2Fs7WgALyylf0DImdZSGCX%2Fimage.png?alt=media&amp;token=9b7a6221-c41f-4c71-8764-3b6ea5b5d80f" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1174315854-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F0fFSkomZ6y6jtuI5J4qq%2Fuploads%2F66bqZx45rrqh2qhA41r8%2Fimage.png?alt=media&amp;token=af7fb9c0-f99a-4bc7-bb0e-0b44f60da5d3" alt=""><figcaption></figcaption></figure>

#### Requisição - GET

`http://{{device_ip}}/cgi-bin/configManager.cgi?action=setConfig&_AttendanceModeBtn_.TimePostionX=0.350000&_AttendanceModeBtn_.TimePostionY=0.150000`&#x20;

| param                              | type   | description                                                            |
| ---------------------------------- | ------ | ---------------------------------------------------------------------- |
| `setConfig` \*                     | String | Comando para cadastrar configuração                                    |
| `_AttendanceModeBtn_TimePositionX` | Number | Valor do eixo X em decimal de forma fracionária, no formato "0.000000" |
| `_AttendanceModeBtn_TimePositionY` | Number | Valor do eixo Y em decimal de forma fracionária, no formato "0.000000" |

#### Exemplo de Retorno - *text/plain*

```sh
OK
```


---

# 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/linha-de-faciais/modo-ponto/funcionamento.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.
