API Hooked

API Hooked

  • Documentação
  • Buscar
  • Changelog

›Documentos & Arquivos

Comece por aqui

  • Primeiros Passos
  • Postman — importar e testar
  • Integração com IA
  • Paginação
  • Changelog

Autenticação

  • Acessos

Financeiro

  • Bancos
  • Contas
  • Contas a Pagar e Receber
  • Condições de Pagamento
  • Formas de Pagamento
  • Transferências
  • Comissões
  • Preços
  • Tabelas de Preços

Fiscal

  • Notas Fiscais
  • Tributações
  • Regras Tributárias
  • Naturezas de Operação
  • SPEDs Fiscais
  • IBPTs

Estoque

  • Estoques
  • Produtos e Serviços
  • Grades
  • Unidades
  • Marcas
  • Fichas Técnicas
  • Tabelas de Produtos

Vendas & Pedidos

  • Pedidos
  • Romaneios
  • Remessas
  • Manifestos

Produção

  • Ordens de Produção
  • Ordens de Produção — Itens
  • Apontamentos de Produção

Cadastros

  • Pessoas
  • Cidades
  • Países
  • Cargos
  • Grupos
  • Subgrupos
  • Categorias
  • Classificações
  • Classificações Comerciais
  • Centros de Custos
  • Centros de Custos Categorias
  • Setores

Documentos & Arquivos

  • Documentos
  • Arquivos
  • Imagens
  • Etiquetas
  • Modelos
  • Mensagens

Configurações

  • Configurações
  • Webhooks
  • Operações

Outros

  • Dashboard
  • Projetos
  • Veículos
  • Tipos de Contas
  • Sobre

Mensagens

Visão Geral

O módulo Mensagens gerencia os templates de mensagens padronizadas utilizados pelo sistema como observações em pedidos, notas fiscais, romaneios e demais documentos. Cada mensagem possui uma descrição única que pode ser selecionada no momento da emissão.

Base URL

/api/mensagens

Endpoints

GET /api/mensagens

Descrição: Retorna uma lista paginada de mensagens cadastradas, com filtro opcional por descrição.

Parâmetros

NomeTipoLocalObrigatórioDescrição
descricaostringquery—Filtra por conteúdo da mensagem
propertystringquery—Campo de ordenação
orderBystringquery—Direção: asc ou desc
pageNumberintegerquery—Número da página (padrão: 1)
pageSizeintegerquery—Registros por página (padrão: 20, máximo aceito: 50)
Atenção — quirks de paginação confirmados empiricamente:
  • pageSize é capado em 50 no servidor. Passar valores maiores (ex. pageSize=10000) retorna 200, porém só 50 itens — o cap é silencioso.
  • O parâmetro de paginação é pageNumber. Usar page=N retorna 200, mas é silenciosamente ignorado (currentPage permanece 1).

Resposta de Sucesso 200

{
  "pagination": {
    "currentPage": 1,
    "totalPages": 1,
    "pageSize": 20,
    "totalCount": 3,
    "hasPrevious": false,
    "hasNext": false
  },
  "data": [
    { "id": 1, "descricao": "Obrigado pela preferência! Volte sempre." },
    { "id": 2, "descricao": "Mercadoria sujeita a conferência no ato do recebimento." },
    { "id": 3, "descricao": "Frete por conta do destinatário." }
  ],
  "summary": null
}

Campos da Resposta — data[]

CampoTipoDescrição
idinteger (int64)Identificador da mensagem
descricaostringTexto da mensagem (máx. 5000 caracteres, único)

Códigos de Erro

CódigoDescrição
401Token ausente ou inválido
500Erro interno do servidor

Exemplos de Código

cURL

curl -X GET "https://api.app.hooked.com.br/api/mensagens" \
  -H "Authorization: Bearer {token}"

JavaScript

const response = await fetch('https://api.app.hooked.com.br/api/mensagens', {
  headers: { 'Authorization': 'Bearer {token}' }
});
const data = await response.json();

Python

import requests

data = requests.get(
    'https://api.app.hooked.com.br/api/mensagens',
    headers={'Authorization': 'Bearer {token}'}
).json()

Go

import (
    "io"
    "net/http"
)

req, _ := http.NewRequest("GET", "https://api.app.hooked.com.br/api/mensagens", 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/mensagens');
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/mensagens",
  "nodes": [
    {
      "parameters": {
        "method": "GET",
        "url": "https://api.app.hooked.com.br/api/mensagens",
        "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": {}
}

POST /api/mensagens

Descrição: Cadastra um novo template de mensagem.

Corpo da Requisição

{
  "descricao": "Produto sem direito a troca ou devolução após 7 dias."
}
CampoTipoObrigatórioDescrição
descricaostring✓Texto da mensagem (máx. 5000 caracteres, único server-side)

Resposta de Sucesso 200

{
  "success": true,
  "data": {
    "id": 4,
    "descricao": "Produto sem direito a troca ou devolução após 7 dias."
  }
}
Restrições do campo descricao (confirmadas empiricamente):
  • Único server-side — tentar cadastrar uma descrição já existente retorna 400 com a mensagem "Já existe um(a) mensagem com esta referência informada.".
  • Limite máximo de 5000 caracteres (Unicode, acentos contam como 1). Strings com 5001+ caracteres retornam 500 sem body útil (overflow não-graceful).

Códigos de Erro

CódigoBodyCausa
400{"success":false,"errors":["Já existe um(a) mensagem com esta referência informada."]}Descrição duplicada
401—Token ausente ou inválido
500—Erro interno do servidor (também ocorre em descricao com mais de 5000 caracteres)

Exemplos de Código

cURL

curl -X POST "https://api.app.hooked.com.br/api/mensagens" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{"descricao":"Produto sem direito a troca ou devolução após 7 dias."}'

JavaScript

const response = await fetch('https://api.app.hooked.com.br/api/mensagens', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer {token}',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
  "descricao": "Produto sem direito a troca ou devolução após 7 dias."
})
});
const data = await response.json();

Python

import requests

data = requests.post(
    'https://api.app.hooked.com.br/api/mensagens',
    headers={'Authorization': 'Bearer {token}'},
    json={'descricao': 'Produto sem direito a troca ou devolução após 7 dias.'}
).json()

Go

import (
    "bytes"
    "net/http"
)

payload := []byte(`{"descricao":"Produto sem direito a troca ou devolução após 7 dias."}`)
req, _ := http.NewRequest("POST", "https://api.app.hooked.com.br/api/mensagens", 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/mensagens');
curl_setopt_array($ch, [
    CURLOPT_POST           => true,
    CURLOPT_HTTPHEADER     => ['Authorization: Bearer {token}', 'Content-Type: application/json'],
    CURLOPT_POSTFIELDS     => json_encode([
        'descricao' => 'Produto sem direito a troca ou devolução após 7 dias.'
    ]),
    CURLOPT_RETURNTRANSFER => true,
]);
$data = json_decode(curl_exec($ch), true);
curl_close($ch);

n8n

{
  "name": "Hooked API — POST /api/mensagens",
  "nodes": [
    {
      "parameters": {
        "method": "POST",
        "url": "https://api.app.hooked.com.br/api/mensagens",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Bearer SEU_TOKEN_AQUI"
            }
          ]
        },
        "sendBody": true,
        "contentType": "json",
        "specifyBody": "json",
        "jsonBody": "{\"descricao\":\"Produto sem direito a troca ou devolução após 7 dias.\"}",
        "options": {}
      },
      "id": "node-1",
      "name": "HTTP Request",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        250,
        300
      ]
    }
  ],
  "connections": {},
  "pinData": {}
}

GET /api/mensagens/{id}

Descrição: Retorna os dados de uma mensagem pelo ID.

Parâmetros

NomeTipoLocalObrigatórioDescrição
idinteger (int64)path✓ID da mensagem

Resposta de Sucesso 200

{
  "id": 1,
  "descricao": "Obrigado pela preferência! Volte sempre."
}

Códigos de Erro

CódigoDescrição
401Token ausente ou inválido
404Mensagem não encontrada
500Erro interno do servidor

Exemplos de Código

cURL

curl -X GET "https://api.app.hooked.com.br/api/mensagens/{id}" \
  -H "Authorization: Bearer {token}"

JavaScript

const response = await fetch('https://api.app.hooked.com.br/api/mensagens/{id}', {
  headers: { 'Authorization': 'Bearer {token}' }
});
const data = await response.json();

Python

import requests

data = requests.get(
    'https://api.app.hooked.com.br/api/mensagens/{id}',
    headers={'Authorization': 'Bearer {token}'}
).json()

Go

import (
    "io"
    "net/http"
)

req, _ := http.NewRequest("GET", "https://api.app.hooked.com.br/api/mensagens/{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/mensagens/{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/mensagens/{id}",
  "nodes": [
    {
      "parameters": {
        "method": "GET",
        "url": "https://api.app.hooked.com.br/api/mensagens/{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": {}
}

PUT /api/mensagens/{id}

Descrição: Atualiza o texto de uma mensagem existente.

Parâmetros

NomeTipoLocalObrigatórioDescrição
idinteger (int64)path✓ID da mensagem a atualizar

Corpo da Requisição

{
  "id": 1,
  "descricao": "Agradecemos sua preferência! Conte sempre conosco."
}

Resposta de Sucesso 200

Retorna a mensagem atualizada.

Códigos de Erro

CódigoDescrição
400Dados inválidos (descrição duplicada ou maior que 5000 caracteres)
401Token ausente ou inválido
404Mensagem não encontrada
500Erro interno do servidor

Exemplos de Código

cURL

curl -X PUT "https://api.app.hooked.com.br/api/mensagens/{id}" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{"id":1,"descricao":"Agradecemos sua preferência! Conte sempre conosco."}'

JavaScript

const response = await fetch('https://api.app.hooked.com.br/api/mensagens/{id}', {
  method: 'PUT',
  headers: {
    'Authorization': 'Bearer {token}',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
  "id": 1,
  "descricao": "Agradecemos sua preferência! Conte sempre conosco."
})
});
const data = await response.json();

Python

import requests

data = requests.put(
    'https://api.app.hooked.com.br/api/mensagens/{id}',
    headers={'Authorization': 'Bearer {token}'},
    json={'id': 1, 'descricao': 'Agradecemos sua preferência! Conte sempre conosco.'}
).json()

Go

import (
    "bytes"
    "net/http"
)

payload := []byte(`{"id":1,"descricao":"Agradecemos sua preferência! Conte sempre conosco."}`)
req, _ := http.NewRequest("PUT", "https://api.app.hooked.com.br/api/mensagens/{id}", 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/mensagens/{id}');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST  => 'PUT',
    CURLOPT_HTTPHEADER     => ['Authorization: Bearer {token}', 'Content-Type: application/json'],
    CURLOPT_POSTFIELDS     => json_encode([
        'id' => 1,
        'descricao' => 'Agradecemos sua preferência! Conte sempre conosco.'
    ]),
    CURLOPT_RETURNTRANSFER => true,
]);
$data = json_decode(curl_exec($ch), true);
curl_close($ch);

n8n

{
  "name": "Hooked API — PUT /api/mensagens/{id}",
  "nodes": [
    {
      "parameters": {
        "method": "PUT",
        "url": "https://api.app.hooked.com.br/api/mensagens/{id}",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Bearer SEU_TOKEN_AQUI"
            }
          ]
        },
        "sendBody": true,
        "contentType": "json",
        "specifyBody": "json",
        "jsonBody": "{\"id\":1,\"descricao\":\"Agradecemos sua preferência! Conte sempre conosco.\"}",
        "options": {}
      },
      "id": "node-1",
      "name": "HTTP Request",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        250,
        300
      ]
    }
  ],
  "connections": {},
  "pinData": {}
}

DELETE /api/mensagens/{id}

Descrição: Remove uma mensagem pelo ID.

Parâmetros

NomeTipoLocalObrigatórioDescrição
idinteger (int64)path✓ID da mensagem a remover

Resposta de Sucesso 200

Retorna a mensagem removida.

Códigos de Erro

CódigoDescrição
401Token ausente ou inválido
404Mensagem não encontrada
500Erro interno do servidor

Exemplos de Código

cURL

curl -X DELETE "https://api.app.hooked.com.br/api/mensagens/{id}" \
  -H "Authorization: Bearer {token}"

JavaScript

const response = await fetch('https://api.app.hooked.com.br/api/mensagens/{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/mensagens/{id}',
    headers={'Authorization': 'Bearer {token}'}
).json()

Go

import (
    "io"
    "net/http"
)

req, _ := http.NewRequest("DELETE", "https://api.app.hooked.com.br/api/mensagens/{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/mensagens/{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/mensagens/{id}",
  "nodes": [
    {
      "parameters": {
        "method": "DELETE",
        "url": "https://api.app.hooked.com.br/api/mensagens/{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": {}
}

Observações sobre limites e comportamentos

A tabela abaixo resume limites e comportamentos confirmados empiricamente:

AspectoValor / Comportamento
Máximo de caracteres em descricao5000 (Unicode — acentos contam como 1 char). 5001+ → HTTP 500
Unicidade de descricaoObrigatória — duplicata → HTTP 400 com "Já existe um(a) mensagem com esta referência informada."
Máximo de pageSize aceito50 (cap silencioso — valores maiores retornam apenas 50 itens)
Parâmetro de paginaçãopageNumber (page é silenciosamente ignorado)
← ModelosConfigurações →
  • Visão Geral
  • Base URL
  • Endpoints
  • Observações sobre limites e comportamentos
Hooked Sistemas Ltda

O ERP que se ajusta ao seu negócio.

CNPJ: 41.696.403/0001-02

Produto
ProdutoCadastre-seLogin
A Hooked
Quem somosFale conoscoCadastre-se
Empresas
Planos e preçosControle de Ponto
Contato
+55 49 9114-1678[email protected]Instagram
© Copyright 2026 Hooked Sistemas - Todos os Direitos Reservados.