API Hooked

API Hooked

  • Documentação
  • Buscar
  • Changelog

›Estoque

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

Produtos e Serviços

Visão Geral

O módulo Produtos e Serviços é responsável pelo cadastro completo de itens comercializados pela empresa, sejam produtos físicos ou serviços prestados. Suporta configurações fiscais, controle de estoque, variações (grades), imagens e muito mais.

Endpoints

GET /api/produtos-servicos

Descrição: Lista todos os produtos e serviços cadastrados com suporte a paginação e filtros. Autenticação: Obrigatória

Parâmetros de Query

ParâmetroTipoObrigatórioDescrição
paginaintegerNãoNúmero da página (padrão: 1)
quantidadeintegerNãoItens por página (padrão: 20)
nomestringNãoFiltrar por nome do produto/serviço
codigostringNãoFiltrar por código interno
tipostringNãoTipo: produto ou servico
grupoIdstringNãoFiltrar por grupo
ativobooleanNãoFiltrar por status ativo/inativo

Resposta de Sucesso

{
  "dados": [
    {
      "id": "uuid",
      "codigo": "PROD001",
      "nome": "Camiseta Básica",
      "tipo": "produto",
      "preco": 49.90,
      "unidade": "UN",
      "grupo": "Vestuário",
      "ativo": true
    }
  ],
  "total": 300,
  "pagina": 1,
  "quantidade": 20
}

Códigos de Erro Comuns

CódigoDescrição
401Não autorizado
500Erro interno do servidor

Exemplos de Código

cURL

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

JavaScript

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

Python

import requests

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

Go

import (
    "io"
    "net/http"
)

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

Descrição: Cria um novo produto ou serviço no sistema. Autenticação: Obrigatória

Corpo da Requisição (Request Body)

{
  "nome": "Camiseta Básica",
  "descricao": "Camiseta 100% algodão",
  "estoque": 100.0,
  "valor": 49.90,
  "ncm": "62092000",
  "tipoItem": "00",
  "unidadeId": 1,
  "tributacaoId": 1,
  "codigo": 1001,
  "ativo": true,
  "permiteFracionar": false,
  "precoCusto": 25.00,
  "markup": 99.6,
  "gtin": "7891234567890",
  "cest": "28.038.00",
  "codigoInterno": "PROD001",
  "grupoId": 1,
  "subGrupoId": 2,
  "marcaId": 3,
  "movimentaEstoque": true,
  "estoqueMinimo": 5
}
CampoTipoObrigatórioRegrasDescrição
nomestring✓mín. 2, máx. 100 charsNome do produto/serviço
descricaostring✓mín. 1 caractereDescrição do produto/serviço
estoquenumber (double)✓—Quantidade atual em estoque
valornumber (double)✓—Preço de venda do produto/serviço
ncmstring✓mín. 1 caractereCódigo NCM (Nomenclatura Comum do Mercosul)
tipoItemstring✓código de 2 dígitosTipo do item conforme Tabela 03 do SPED Fiscal ("00" a "10", "99"). Veja a tabela completa de valores ao final desta página
unidadeIdinteger (int64)✓—ID da unidade de medida
precoCustonumber (double)——Preço de custo
markupnumber (double)——Percentual de markup aplicado
codigointeger (int64)——Código numérico do produto
ativoboolean——Indica se o produto está ativo
permiteFracionarboolean——Permite venda em quantidade fracionada
gtinstring——Código GTIN/EAN (código de barras)
ceststring——Código CEST (Código Especificador da Substituição Tributária)
codigoInternostring——Código interno do produto
tributacaoIdinteger (int64)——ID da tributação aplicada
volumeinteger (int32)——Volume do produto
pesoLiquidonumber (double)——Peso líquido
pesoBrutonumber (double)——Peso bruto
grupoIdinteger (int64)——ID do grupo do produto
subGrupoIdinteger (int64)——ID do subgrupo do produto
marcaIdinteger (int64)——ID da marca do produto
controlarLoteboolean——Indica se o produto controla lote
pesoUnitarionumber (double)——Peso unitário
movimentaEstoqueboolean——Indica se o produto movimenta estoque
estoqueMinimonumber (double)——Estoque mínimo
estoqueMaximonumber (double)——Estoque máximo
localizacaostring——Localização física do produto
classificacaostring——Classificação do produto
m3Unitarionumber (double)——Volume unitário em m³
beneficiostring——Código de benefício fiscal
gradeIdinteger (int64)——ID da grade vinculada
tabelaProdutoIdinteger (int64)——ID da tabela de produtos
tipoComissaostring——Tipo da comissão aplicada
percentualComissaonumber (double)——Percentual de comissão
tabelaProdutoTabelaProdutoViewModel——Objeto da tabela de produto vinculada
comissoesarray——Lista de comissões do produto
fornecedoresarray——Lista de fornecedores do produto
composicoesarray——Lista de composições/ficha técnica
imagensarray——Lista de imagens do produto

Resposta de Sucesso

{
  "id": "uuid",
  "codigo": "PROD001",
  "nome": "Camiseta Básica",
  "tipo": "produto",
  "ativo": true
}

Códigos de Erro Comuns

CódigoDescrição
400Dados inválidos
401Não autorizado
409Código já cadastrado

Exemplos de Código

cURL

curl -X POST "https://api.app.hooked.com.br/api/produtos-servicos" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{"codigo":"PROD001","nome":"Camiseta Básica","descricao":"Camiseta 100% algodão","tipo":"produto","unidadeId":"uuid","grupoId":"uuid","subgrupoId":"uuid","marcaId":"uuid","preco":49.9,"precoCusto":25.0,"ncm":"62092000","cest":"28.038.00","codigoBarras":"7891234567890","controlaEstoque":true,"estoqueMinimo":5,"ativo":true}'

JavaScript

const response = await fetch('https://api.app.hooked.com.br/api/produtos-servicos', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer {token}',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
  "codigo": "PROD001",
  "nome": "Camiseta Básica",
  "descricao": "Camiseta 100% algodão",
  "tipo": "produto",
  "unidadeId": "uuid",
  "grupoId": "uuid",
  "subgrupoId": "uuid",
  "marcaId": "uuid",
  "preco": 49.9,
  "precoCusto": 25.0,
  "ncm": "62092000",
  "cest": "28.038.00",
  "codigoBarras": "7891234567890",
  "controlaEstoque": true,
  "estoqueMinimo": 5,
  "ativo": true
})
});
const data = await response.json();

Python

import requests

data = requests.post(
    'https://api.app.hooked.com.br/api/produtos-servicos',
    headers={'Authorization': 'Bearer {token}'},
    json={'codigo': 'PROD001', 'nome': 'Camiseta Básica', 'descricao': 'Camiseta 100% algodão', 'tipo': 'produto', 'unidadeId': 'uuid', 'grupoId': 'uuid', 'subgrupoId': 'uuid', 'marcaId': 'uuid', 'preco': 49.9, 'precoCusto': 25.0, 'ncm': '62092000', 'cest': '28.038.00', 'codigoBarras': '7891234567890', 'controlaEstoque': True, 'estoqueMinimo': 5, 'ativo': True}
).json()

Go

import (
    "bytes"
    "net/http"
)

payload := []byte(`{"codigo":"PROD001","nome":"Camiseta Básica","descricao":"Camiseta 100% algodão","tipo":"produto","unidadeId":"uuid","grupoId":"uuid","subgrupoId":"uuid","marcaId":"uuid","preco":49.9,"precoCusto":25.0,"ncm":"62092000","cest":"28.038.00","codigoBarras":"7891234567890","controlaEstoque":true,"estoqueMinimo":5,"ativo":true}`)
req, _ := http.NewRequest("POST", "https://api.app.hooked.com.br/api/produtos-servicos", 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/produtos-servicos');
curl_setopt_array($ch, [
    CURLOPT_POST           => true,
    CURLOPT_HTTPHEADER     => ['Authorization: Bearer {token}', 'Content-Type: application/json'],
    CURLOPT_POSTFIELDS     => json_encode([
        'codigo' => 'PROD001',
        'nome' => 'Camiseta Básica',
        'descricao' => 'Camiseta 100% algodão',
        'tipo' => 'produto',
        'unidadeId' => 'uuid',
        'grupoId' => 'uuid',
        'subgrupoId' => 'uuid',
        'marcaId' => 'uuid',
        'preco' => 49.9,
        'precoCusto' => 25.0,
        'ncm' => '62092000',
        'cest' => '28.038.00',
        'codigoBarras' => '7891234567890',
        'controlaEstoque' => true,
        'estoqueMinimo' => 5,
        'ativo' => true
    ]),
    CURLOPT_RETURNTRANSFER => true,
]);
$data = json_decode(curl_exec($ch), true);
curl_close($ch);

n8n

{
  "name": "Hooked API — POST /api/produtos-servicos",
  "nodes": [
    {
      "parameters": {
        "method": "POST",
        "url": "https://api.app.hooked.com.br/api/produtos-servicos",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Bearer SEU_TOKEN_AQUI"
            }
          ]
        },
        "sendBody": true,
        "contentType": "json",
        "specifyBody": "json",
        "jsonBody": "{\"codigo\":\"PROD001\",\"nome\":\"Camiseta Básica\",\"descricao\":\"Camiseta 100% algodão\",\"tipo\":\"produto\",\"unidadeId\":\"uuid\",\"grupoId\":\"uuid\",\"subgrupoId\":\"uuid\",\"marcaId\":\"uuid\",\"preco\":49.9,\"precoCusto\":25.0,\"ncm\":\"62092000\",\"cest\":\"28.038.00\",\"codigoBarras\":\"7891234567890\",\"controlaEstoque\":true,\"estoqueMinimo\":5,\"ativo\":true}",
        "options": {}
      },
      "id": "node-1",
      "name": "HTTP Request",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        250,
        300
      ]
    }
  ],
  "connections": {},
  "pinData": {}
}

GET /api/produtos-servicos/{id}

Descrição: Retorna os detalhes completos de um produto ou serviço pelo seu identificador. Autenticação: Obrigatória

Parâmetros de Path

ParâmetroTipoObrigatórioDescrição
idstring (uuid)SimIdentificador único do produto/serviço

Resposta de Sucesso

{
  "id": "uuid",
  "codigo": "PROD001",
  "nome": "Camiseta Básica",
  "descricao": "Camiseta 100% algodão",
  "tipo": "produto",
  "unidade": "UN",
  "grupo": "Vestuário",
  "subgrupo": "Camisetas",
  "marca": "Marca X",
  "preco": 49.90,
  "precoCusto": 25.00,
  "ncm": "62092000",
  "cest": "28.038.00",
  "codigoBarras": "7891234567890",
  "controlaEstoque": true,
  "estoqueMinimo": 5,
  "estoqueAtual": 100,
  "ativo": true
}

Códigos de Erro Comuns

CódigoDescrição
401Não autorizado
404Produto/Serviço não encontrado

Exemplos de Código

cURL

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

JavaScript

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

Python

import requests

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

Go

import (
    "io"
    "net/http"
)

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

Descrição: Atualiza os dados de um produto ou serviço existente. Autenticação: Obrigatória

Parâmetros de Path

ParâmetroTipoObrigatórioDescrição
idstring (uuid)SimIdentificador único do produto/serviço

Corpo da Requisição (Request Body)

{
  "nome": "Camiseta Básica Premium",
  "preco": 59.90,
  "ativo": true
}

Resposta de Sucesso

{
  "id": "uuid",
  "nome": "Camiseta Básica Premium",
  "preco": 59.90,
  "ativo": true
}

Códigos de Erro Comuns

CódigoDescrição
400Dados inválidos
401Não autorizado
404Produto/Serviço não encontrado

Exemplos de Código

cURL

curl -X PUT "https://api.app.hooked.com.br/api/produtos-servicos/{id}" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{"nome":"Camiseta Básica Premium","preco":59.9,"ativo":true}'

JavaScript

const response = await fetch('https://api.app.hooked.com.br/api/produtos-servicos/{id}', {
  method: 'PUT',
  headers: {
    'Authorization': 'Bearer {token}',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
  "nome": "Camiseta Básica Premium",
  "preco": 59.9,
  "ativo": true
})
});
const data = await response.json();

Python

import requests

data = requests.put(
    'https://api.app.hooked.com.br/api/produtos-servicos/{id}',
    headers={'Authorization': 'Bearer {token}'},
    json={'nome': 'Camiseta Básica Premium', 'preco': 59.9, 'ativo': True}
).json()

Go

import (
    "bytes"
    "net/http"
)

payload := []byte(`{"nome":"Camiseta Básica Premium","preco":59.9,"ativo":true}`)
req, _ := http.NewRequest("PUT", "https://api.app.hooked.com.br/api/produtos-servicos/{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/produtos-servicos/{id}');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST  => 'PUT',
    CURLOPT_HTTPHEADER     => ['Authorization: Bearer {token}', 'Content-Type: application/json'],
    CURLOPT_POSTFIELDS     => json_encode([
        'nome' => 'Camiseta Básica Premium',
        'preco' => 59.9,
        'ativo' => true
    ]),
    CURLOPT_RETURNTRANSFER => true,
]);
$data = json_decode(curl_exec($ch), true);
curl_close($ch);

n8n

{
  "name": "Hooked API — PUT /api/produtos-servicos/{id}",
  "nodes": [
    {
      "parameters": {
        "method": "PUT",
        "url": "https://api.app.hooked.com.br/api/produtos-servicos/{id}",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Bearer SEU_TOKEN_AQUI"
            }
          ]
        },
        "sendBody": true,
        "contentType": "json",
        "specifyBody": "json",
        "jsonBody": "{\"nome\":\"Camiseta Básica Premium\",\"preco\":59.9,\"ativo\":true}",
        "options": {}
      },
      "id": "node-1",
      "name": "HTTP Request",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        250,
        300
      ]
    }
  ],
  "connections": {},
  "pinData": {}
}

DELETE /api/produtos-servicos/{id}

Descrição: Remove um produto ou serviço do sistema pelo seu identificador. Autenticação: Obrigatória

Parâmetros de Path

ParâmetroTipoObrigatórioDescrição
idstring (uuid)SimIdentificador único do produto/serviço

Resposta de Sucesso

{
  "mensagem": "Produto/Serviço removido com sucesso"
}

Códigos de Erro Comuns

CódigoDescrição
401Não autorizado
404Produto/Serviço não encontrado
409Produto/Serviço vinculado a outros registros

Exemplos de Código

cURL

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

JavaScript

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

Go

import (
    "io"
    "net/http"
)

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

GET /api/produtos-servicos/recuperar-quantidade

Descrição: Retorna a quantidade total de produtos e serviços cadastrados. Autenticação: Obrigatória

Parâmetros de Query

ParâmetroTipoObrigatórioDescrição
tipostringNãoTipo para filtrar: produto ou servico
ativobooleanNãoFiltrar por status

Resposta de Sucesso

{
  "quantidade": 300
}

Códigos de Erro Comuns

CódigoDescrição
401Não autorizado

Exemplos de Código

cURL

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

JavaScript

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

Python

import requests

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

Go

import (
    "io"
    "net/http"
)

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

GET /api/produtos-servicos/gerar-relatorio

Descrição: Gera um relatório de produtos e serviços em formato para download. Autenticação: Obrigatória

Parâmetros de Query

ParâmetroTipoObrigatórioDescrição
tipostringNãoTipo para filtrar
ativobooleanNãoFiltrar por status
formatostringNãoFormato: pdf ou xlsx

Resposta de Sucesso

Retorna o arquivo binário para download com o Content-Type adequado.

Códigos de Erro Comuns

CódigoDescrição
401Não autorizado
500Erro ao gerar relatório

Exemplos de Código

cURL

curl -X GET "https://api.app.hooked.com.br/api/produtos-servicos/gerar-relatorio" \
  -H "Authorization: Bearer {token}" \
  -o arquivo

JavaScript

const response = await fetch('https://api.app.hooked.com.br/api/produtos-servicos/gerar-relatorio', {
  headers: { 'Authorization': 'Bearer {token}' }
});
const blob = await response.blob();
// Node.js: use response.buffer() e salve com fs.writeFile

Python

import requests

response = requests.get(
    'https://api.app.hooked.com.br/api/produtos-servicos/gerar-relatorio',
    headers={'Authorization': 'Bearer {token}'},
)
with open('arquivo', 'wb') as f:
    f.write(response.content)

Go

import (
    "io"
    "net/http"
)

req, _ := http.NewRequest("GET", "https://api.app.hooked.com.br/api/produtos-servicos/gerar-relatorio", nil)
req.Header.Set("Authorization", "Bearer {token}")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
arquivo, _ := os.Create("arquivo")
defer arquivo.Close()
io.Copy(arquivo, resp.Body)

PHP

$ch = curl_init('https://api.app.hooked.com.br/api/produtos-servicos/gerar-relatorio');
curl_setopt_array($ch, [
    CURLOPT_HTTPHEADER     => ['Authorization: Bearer {token}'],
    CURLOPT_RETURNTRANSFER => true,
]);
$arquivo = curl_exec($ch);
curl_close($ch);
file_put_contents('arquivo', $arquivo);

n8n

{
  "name": "Hooked API — GET /api/produtos-servicos/gerar-relatorio",
  "nodes": [
    {
      "parameters": {
        "method": "GET",
        "url": "https://api.app.hooked.com.br/api/produtos-servicos/gerar-relatorio",
        "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": {}
}

Tabela de valores de tipoItem (SPED Fiscal — Tabela 03)

O campo tipoItem segue a Tabela 03 do SPED Fiscal (Receita Federal do Brasil) e é armazenado como string de 2 dígitos numéricos. O campo espelho tipoItemDescricao é preenchido automaticamente pelo servidor com base no código informado.

CódigoDescrição
"00"Mercadoria para Revenda
"01"Matéria-Prima
"02"Embalagem
"03"Produto em Processo
"04"Produto Acabado
"05"Subproduto
"06"Produto Intermediário
"07"Material de Uso e Consumo
"08"Ativo Imobilizado
"09"Serviços
"10"Outros insumos
"99"Outras
Exemplo de retorno no GET: um produto cadastrado com "tipoItem": "04" retorna na resposta o par "tipoItem": "04" + "tipoItemDescricao": "Produto Acabado".
← EstoquesGrades →
  • Visão Geral
  • Endpoints
  • Tabela de valores de tipoItem (SPED Fiscal — Tabela 03)
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.