Apontamentos de Produção
Visão Geral
O módulo Apontamentos de Produção registra os apontamentos de tempo e quantidade realizados pelos operadores em cada setor de uma ordem de produção. Permite iniciar, finalizar e consultar apontamentos em andamento, sendo a base para cálculo de produtividade e custos de mão de obra.
Base URL
Authorization: Bearer {token}
Endpoints
Descrição: Retorna uma lista paginada de apontamentos com filtros por setor, período, operador e operação.
Parâmetros
| Nome | Tipo | Local | Obrigatório | Descrição |
|---|---|---|---|---|
ordemProducaoItemSetorId | integer (int64) | query | — | Filtra pelo setor do item de OP |
dataInicial | string (date-time) | query | — | Data inicial |
dataFinal | string (date-time) | query | — | Data final |
operadorId | string | query | — | ID do operador (usuário) |
operacaoId | integer (int64) | query | — | ID da operação |
property | string | query | — | Campo de ordenação |
orderBy | string | query | — | Direção: asc ou desc |
pageNumber | integer | query | — | Número da página (padrão: 1) |
pageSize | integer | query | — | Registros por página (padrão: 20) |
Resposta de Sucesso 200
{
"pagination": {
"currentPage": 1,
"totalPages": 2,
"pageSize": 20,
"totalCount": 35,
"hasPrevious": false,
"hasNext": true
},
"data": [
{
"id": 1,
"ordemProducaoItemSetorId": 5,
"operacaoId": 1,
"operacaoDescricao": "Corte",
"dataInicio": "2024-03-05T08:00:00",
"operadorInicio": "user-uuid-001",
"operadorInicioNome": "João Operador",
"operadorInicioEmail": "[email protected]",
"dataFim": "2024-03-05T10:30:00",
"operadorFim": "user-uuid-001",
"operadorFimNome": "João Operador",
"operadorFimEmail": "[email protected]",
"quantidade": 25.0
}
],
"summary": null
}
Campos da Resposta — data[]
| Campo | Tipo | Descrição |
|---|---|---|
id | integer (int64) | Identificador do apontamento |
ordemProducaoItemSetorId | integer | ID do setor do item de OP |
operacaoId | integer | ID da operação realizada |
operacaoDescricao | string | Nome da operação |
dataInicio | string (date-time) | Data/hora de início |
operadorInicioNome | string | Nome do operador que iniciou |
dataFim | string (date-time) | Data/hora de conclusão |
operadorFimNome | string | Nome do operador que finalizou |
quantidade | number | Quantidade produzida no apontamento |
Códigos de Erro
| Código | Descrição |
|---|---|
401 | Token ausente ou inválido |
500 | Erro interno do servidor |
Exemplos de Código
cURL
curl -X GET "https://api.app.hooked.com.br/api/apontamentos" \
-H "Authorization: Bearer {token}"
JavaScript
const response = await fetch('https://api.app.hooked.com.br/api/apontamentos', {
headers: { 'Authorization': 'Bearer {token}' }
});
const data = await response.json();
Python
import requests
data = requests.get(
'https://api.app.hooked.com.br/api/apontamentos',
headers={'Authorization': 'Bearer {token}'}
).json()
Go
import (
"io"
"net/http"
)
req, _ := http.NewRequest("GET", "https://api.app.hooked.com.br/api/apontamentos", nil)
req.Header.Set("Authorization", "Bearer {token}")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
PHP
$ch = curl_init('https://api.app.hooked.com.br/api/apontamentos');
curl_setopt_array($ch, [
CURLOPT_HTTPHEADER => ['Authorization: Bearer {token}'],
CURLOPT_RETURNTRANSFER => true,
]);
$data = json_decode(curl_exec($ch), true);
curl_close($ch);
n8n
{
"name": "Hooked API — GET /api/apontamentos",
"nodes": [
{
"parameters": {
"method": "GET",
"url": "https://api.app.hooked.com.br/api/apontamentos",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "Bearer SEU_TOKEN_AQUI"
}
]
},
"options": {}
},
"id": "node-1",
"name": "HTTP Request",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
250,
300
]
}
],
"connections": {},
"pinData": {}
}
Descrição: Cria um novo apontamento de produção, registrando o início de uma operação por um operador.
Corpo da Requisição
{
"ordemProducaoItemSetorId": 5,
"operacaoId": 1,
"dataInicio": "2024-03-05T08:00:00",
"quantidade": 0
}
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
ordemProducaoItemSetorId | integer (int64) | ✓ | ID do setor do item de OP |
operacaoId | integer (int64) | — | ID da operação |
dataInicio | string (date-time) | — | Data/hora de início |
quantidade | number | ✓ | Quantidade produzida |
Resposta de Sucesso 200
Retorna o apontamento criado.
Códigos de Erro
| Código | Descrição |
|---|---|
400 | Dados inválidos |
401 | Token ausente ou inválido |
500 | Erro interno do servidor |
Exemplos de Código
cURL
curl -X POST "https://api.app.hooked.com.br/api/apontamentos" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{"ordemProducaoItemSetorId":5,"operacaoId":1,"dataInicio":"2024-03-05T08:00:00","quantidade":0}'
JavaScript
const response = await fetch('https://api.app.hooked.com.br/api/apontamentos', {
method: 'POST',
headers: {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json'
},
body: JSON.stringify({
"ordemProducaoItemSetorId": 5,
"operacaoId": 1,
"dataInicio": "2024-03-05T08:00:00",
"quantidade": 0
})
});
const data = await response.json();
Python
import requests
data = requests.post(
'https://api.app.hooked.com.br/api/apontamentos',
headers={'Authorization': 'Bearer {token}'},
json={'ordemProducaoItemSetorId': 5, 'operacaoId': 1, 'dataInicio': '2024-03-05T08:00:00', 'quantidade': 0}
).json()
Go
import (
"bytes"
"net/http"
)
payload := []byte(`{"ordemProducaoItemSetorId":5,"operacaoId":1,"dataInicio":"2024-03-05T08:00:00","quantidade":0}`)
req, _ := http.NewRequest("POST", "https://api.app.hooked.com.br/api/apontamentos", bytes.NewBuffer(payload))
req.Header.Set("Authorization", "Bearer {token}")
req.Header.Set("Content-Type", "application/json")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
PHP
$ch = curl_init('https://api.app.hooked.com.br/api/apontamentos');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer {token}', 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode([
'ordemProducaoItemSetorId' => 5,
'operacaoId' => 1,
'dataInicio' => '2024-03-05T08:00:00',
'quantidade' => 0
]),
CURLOPT_RETURNTRANSFER => true,
]);
$data = json_decode(curl_exec($ch), true);
curl_close($ch);
n8n
{
"name": "Hooked API — POST /api/apontamentos",
"nodes": [
{
"parameters": {
"method": "POST",
"url": "https://api.app.hooked.com.br/api/apontamentos",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "Bearer SEU_TOKEN_AQUI"
}
]
},
"sendBody": true,
"contentType": "json",
"specifyBody": "json",
"jsonBody": "{\"ordemProducaoItemSetorId\":5,\"operacaoId\":1,\"dataInicio\":\"2024-03-05T08:00:00\",\"quantidade\":0}",
"options": {}
},
"id": "node-1",
"name": "HTTP Request",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
250,
300
]
}
],
"connections": {},
"pinData": {}
}
Descrição: Retorna os dados de um apontamento pelo ID.
Parâmetros
| Nome | Tipo | Local | Obrigatório | Descrição |
|---|---|---|---|---|
id | integer (int64) | path | ✓ | ID do apontamento |
Resposta de Sucesso 200
Retorna o objeto completo do apontamento.
Códigos de Erro
| Código | Descrição |
|---|---|
401 | Token ausente ou inválido |
404 | Apontamento não encontrado |
500 | Erro interno do servidor |
Exemplos de Código
cURL
curl -X GET "https://api.app.hooked.com.br/api/apontamentos/{id}" \
-H "Authorization: Bearer {token}"
JavaScript
const response = await fetch('https://api.app.hooked.com.br/api/apontamentos/{id}', {
headers: { 'Authorization': 'Bearer {token}' }
});
const data = await response.json();
Python
import requests
data = requests.get(
'https://api.app.hooked.com.br/api/apontamentos/{id}',
headers={'Authorization': 'Bearer {token}'}
).json()
Go
import (
"io"
"net/http"
)
req, _ := http.NewRequest("GET", "https://api.app.hooked.com.br/api/apontamentos/{id}", nil)
req.Header.Set("Authorization", "Bearer {token}")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
PHP
$ch = curl_init('https://api.app.hooked.com.br/api/apontamentos/{id}');
curl_setopt_array($ch, [
CURLOPT_HTTPHEADER => ['Authorization: Bearer {token}'],
CURLOPT_RETURNTRANSFER => true,
]);
$data = json_decode(curl_exec($ch), true);
curl_close($ch);
n8n
{
"name": "Hooked API — GET /api/apontamentos/{id}",
"nodes": [
{
"parameters": {
"method": "GET",
"url": "https://api.app.hooked.com.br/api/apontamentos/{id}",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "Bearer SEU_TOKEN_AQUI"
}
]
},
"options": {}
},
"id": "node-1",
"name": "HTTP Request",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
250,
300
]
}
],
"connections": {},
"pinData": {}
}
Descrição: Atualiza os dados de um apontamento existente.
Parâmetros
| Nome | Tipo | Local | Obrigatório | Descrição |
|---|---|---|---|---|
id | integer (int64) | path | ✓ | ID do apontamento |
Corpo da Requisição
Mesmo formato do POST, com o campo id preenchido.
Resposta de Sucesso 200
Retorna o apontamento atualizado.
Exemplos de Código
cURL
curl -X PUT "https://api.app.hooked.com.br/api/apontamentos/{id}" \
-H "Authorization: Bearer {token}"
JavaScript
const response = await fetch('https://api.app.hooked.com.br/api/apontamentos/{id}', {
method: 'PUT',
headers: { 'Authorization': 'Bearer {token}' }
});
const data = await response.json();
Python
import requests
data = requests.put(
'https://api.app.hooked.com.br/api/apontamentos/{id}',
headers={'Authorization': 'Bearer {token}'}
).json()
Go
import (
"io"
"net/http"
)
req, _ := http.NewRequest("PUT", "https://api.app.hooked.com.br/api/apontamentos/{id}", nil)
req.Header.Set("Authorization", "Bearer {token}")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
PHP
$ch = curl_init('https://api.app.hooked.com.br/api/apontamentos/{id}');
curl_setopt_array($ch, [
CURLOPT_HTTPHEADER => ['Authorization: Bearer {token}'],
CURLOPT_RETURNTRANSFER => true,
]);
$data = json_decode(curl_exec($ch), true);
curl_close($ch);
n8n
{
"name": "Hooked API — PUT /api/apontamentos/{id}",
"nodes": [
{
"parameters": {
"method": "PUT",
"url": "https://api.app.hooked.com.br/api/apontamentos/{id}",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "Bearer SEU_TOKEN_AQUI"
}
]
},
"options": {}
},
"id": "node-1",
"name": "HTTP Request",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
250,
300
]
}
],
"connections": {},
"pinData": {}
}
Descrição: Remove um apontamento pelo ID.
Parâmetros
| Nome | Tipo | Local | Obrigatório | Descrição |
|---|---|---|---|---|
id | integer (int64) | path | ✓ | ID do apontamento a remover |
Resposta de Sucesso 200
Retorna o apontamento removido.
Exemplos de Código
cURL
curl -X DELETE "https://api.app.hooked.com.br/api/apontamentos/{id}" \
-H "Authorization: Bearer {token}"
JavaScript
const response = await fetch('https://api.app.hooked.com.br/api/apontamentos/{id}', {
method: 'DELETE',
headers: { 'Authorization': 'Bearer {token}' }
});
const data = await response.json();
Python
import requests
data = requests.delete(
'https://api.app.hooked.com.br/api/apontamentos/{id}',
headers={'Authorization': 'Bearer {token}'}
).json()
Go
import (
"io"
"net/http"
)
req, _ := http.NewRequest("DELETE", "https://api.app.hooked.com.br/api/apontamentos/{id}", nil)
req.Header.Set("Authorization", "Bearer {token}")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
PHP
$ch = curl_init('https://api.app.hooked.com.br/api/apontamentos/{id}');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'DELETE',
CURLOPT_HTTPHEADER => ['Authorization: Bearer {token}'],
CURLOPT_RETURNTRANSFER => true,
]);
$data = json_decode(curl_exec($ch), true);
curl_close($ch);
n8n
{
"name": "Hooked API — DELETE /api/apontamentos/{id}",
"nodes": [
{
"parameters": {
"method": "DELETE",
"url": "https://api.app.hooked.com.br/api/apontamentos/{id}",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "Bearer SEU_TOKEN_AQUI"
}
]
},
"options": {}
},
"id": "node-1",
"name": "HTTP Request",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
250,
300
]
}
],
"connections": {},
"pinData": {}
}
Descrição: Retorna os últimos apontamentos registrados pelo operador autenticado, útil para retomar rapidamente uma operação em andamento.
Parâmetros
Nenhum.
Resposta de Sucesso 200
Retorna a lista dos apontamentos mais recentes do operador logado.
Exemplos de Código
cURL
curl -X GET "https://api.app.hooked.com.br/api/apontamentos/ultimos" \
-H "Authorization: Bearer {token}"
JavaScript
const response = await fetch('https://api.app.hooked.com.br/api/apontamentos/ultimos', {
headers: { 'Authorization': 'Bearer {token}' }
});
const data = await response.json();
Python
import requests
data = requests.get(
'https://api.app.hooked.com.br/api/apontamentos/ultimos',
headers={'Authorization': 'Bearer {token}'}
).json()
Go
import (
"io"
"net/http"
)
req, _ := http.NewRequest("GET", "https://api.app.hooked.com.br/api/apontamentos/ultimos", nil)
req.Header.Set("Authorization", "Bearer {token}")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
PHP
$ch = curl_init('https://api.app.hooked.com.br/api/apontamentos/ultimos');
curl_setopt_array($ch, [
CURLOPT_HTTPHEADER => ['Authorization: Bearer {token}'],
CURLOPT_RETURNTRANSFER => true,
]);
$data = json_decode(curl_exec($ch), true);
curl_close($ch);
n8n
{
"name": "Hooked API — GET /api/apontamentos/ultimos",
"nodes": [
{
"parameters": {
"method": "GET",
"url": "https://api.app.hooked.com.br/api/apontamentos/ultimos",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "Bearer SEU_TOKEN_AQUI"
}
]
},
"options": {}
},
"id": "node-1",
"name": "HTTP Request",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
250,
300
]
}
],
"connections": {},
"pinData": {}
}
Descrição: Finaliza um apontamento em aberto, registrando a data de conclusão e a quantidade produzida.
Corpo da Requisição
{
"id": 1,
"idApontamento": 1,
"codigoProcesso": 5,
"quantidade": 25.0,
"codigoOperacao": 1,
"codigoSetor": 2,
"codigoUsuario": 10
}
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id | integer (int64) | ✓ | ID do apontamento a finalizar |
quantidade | number | — | Quantidade produzida |
codigoOperacao | integer (int64) | — | Código da operação |
codigoSetor | integer (int64) | — | Código do setor |
codigoUsuario | integer (int64) | — | Código do operador |
Resposta de Sucesso 200
Retorna o apontamento finalizado com data de fim preenchida.
Exemplos de Código
cURL
curl -X POST "https://api.app.hooked.com.br/api/apontamentos/finalizar" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{"id":1,"idApontamento":1,"codigoProcesso":5,"quantidade":25.0,"codigoOperacao":1,"codigoSetor":2,"codigoUsuario":10}'
JavaScript
const response = await fetch('https://api.app.hooked.com.br/api/apontamentos/finalizar', {
method: 'POST',
headers: {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json'
},
body: JSON.stringify({
"id": 1,
"idApontamento": 1,
"codigoProcesso": 5,
"quantidade": 25.0,
"codigoOperacao": 1,
"codigoSetor": 2,
"codigoUsuario": 10
})
});
const data = await response.json();
Python
import requests
data = requests.post(
'https://api.app.hooked.com.br/api/apontamentos/finalizar',
headers={'Authorization': 'Bearer {token}'},
json={'id': 1, 'idApontamento': 1, 'codigoProcesso': 5, 'quantidade': 25.0, 'codigoOperacao': 1, 'codigoSetor': 2, 'codigoUsuario': 10}
).json()
Go
import (
"bytes"
"net/http"
)
payload := []byte(`{"id":1,"idApontamento":1,"codigoProcesso":5,"quantidade":25.0,"codigoOperacao":1,"codigoSetor":2,"codigoUsuario":10}`)
req, _ := http.NewRequest("POST", "https://api.app.hooked.com.br/api/apontamentos/finalizar", bytes.NewBuffer(payload))
req.Header.Set("Authorization", "Bearer {token}")
req.Header.Set("Content-Type", "application/json")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
PHP
$ch = curl_init('https://api.app.hooked.com.br/api/apontamentos/finalizar');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer {token}', 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode([
'id' => 1,
'idApontamento' => 1,
'codigoProcesso' => 5,
'quantidade' => 25.0,
'codigoOperacao' => 1,
'codigoSetor' => 2,
'codigoUsuario' => 10
]),
CURLOPT_RETURNTRANSFER => true,
]);
$data = json_decode(curl_exec($ch), true);
curl_close($ch);
n8n
{
"name": "Hooked API — POST /api/apontamentos/finalizar",
"nodes": [
{
"parameters": {
"method": "POST",
"url": "https://api.app.hooked.com.br/api/apontamentos/finalizar",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "Bearer SEU_TOKEN_AQUI"
}
]
},
"sendBody": true,
"contentType": "json",
"specifyBody": "json",
"jsonBody": "{\"id\":1,\"idApontamento\":1,\"codigoProcesso\":5,\"quantidade\":25.0,\"codigoOperacao\":1,\"codigoSetor\":2,\"codigoUsuario\":10}",
"options": {}
},
"id": "node-1",
"name": "HTTP Request",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
250,
300
]
}
],
"connections": {},
"pinData": {}
}
Descrição: Consulta se existe um apontamento em aberto para o setor e operador informados. Utilizado pelos terminais de produção para verificar se o operador já possui uma operação iniciada.
Corpo da Requisição
{
"ordemProducaoItemSetorId": 5,
"operacaoId": 1
}
Resposta de Sucesso 200
Retorna o apontamento em aberto, ou null se não houver nenhum.
Códigos de Erro
| Código | Descrição |
|---|---|
401 | Token ausente ou inválido |
500 | Erro interno do servidor |
Exemplos de Código
cURL
curl -X POST "https://api.app.hooked.com.br/api/apontamentos/obter-aberto" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{"ordemProducaoItemSetorId":5,"operacaoId":1}'
JavaScript
const response = await fetch('https://api.app.hooked.com.br/api/apontamentos/obter-aberto', {
method: 'POST',
headers: {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json'
},
body: JSON.stringify({
"ordemProducaoItemSetorId": 5,
"operacaoId": 1
})
});
const data = await response.json();
Python
import requests
data = requests.post(
'https://api.app.hooked.com.br/api/apontamentos/obter-aberto',
headers={'Authorization': 'Bearer {token}'},
json={'ordemProducaoItemSetorId': 5, 'operacaoId': 1}
).json()
Go
import (
"bytes"
"net/http"
)
payload := []byte(`{"ordemProducaoItemSetorId":5,"operacaoId":1}`)
req, _ := http.NewRequest("POST", "https://api.app.hooked.com.br/api/apontamentos/obter-aberto", bytes.NewBuffer(payload))
req.Header.Set("Authorization", "Bearer {token}")
req.Header.Set("Content-Type", "application/json")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
PHP
$ch = curl_init('https://api.app.hooked.com.br/api/apontamentos/obter-aberto');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer {token}', 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode([
'ordemProducaoItemSetorId' => 5,
'operacaoId' => 1
]),
CURLOPT_RETURNTRANSFER => true,
]);
$data = json_decode(curl_exec($ch), true);
curl_close($ch);
n8n
{
"name": "Hooked API — POST /api/apontamentos/obter-aberto",
"nodes": [
{
"parameters": {
"method": "POST",
"url": "https://api.app.hooked.com.br/api/apontamentos/obter-aberto",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "Bearer SEU_TOKEN_AQUI"
}
]
},
"sendBody": true,
"contentType": "json",
"specifyBody": "json",
"jsonBody": "{\"ordemProducaoItemSetorId\":5,\"operacaoId\":1}",
"options": {}
},
"id": "node-1",
"name": "HTTP Request",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
250,
300
]
}
],
"connections": {},
"pinData": {}
}
