API Hooked

API Hooked

  • Documentação
  • Buscar
  • Changelog

›Vendas & Pedidos

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

Configurações

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

Outros

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

Manifestos

Visão Geral

O módulo Manifestos gerencia o Manifesto do Destinatário Eletrônico (MDF-e) para NF-e de terceiros. Permite consultar manifestos recebidos, registrar a ciência ou manifestação do destinatário (confirmação, desconhecimento, operação não realizada) e baixar os XMLs das notas fiscais.

Base URL

/api/manifestos
Todos os endpoints requerem autenticação via Bearer Token:
Authorization: Bearer {token}

Endpoints

GET /api/manifestos

Descrição: Retorna uma lista paginada de manifestos recebidos, com filtros por tipo de manifesto, período e empresa.

Parâmetros

NomeTipoLocalObrigatórioDescrição
tipoManifestointeger (int32)query—Tipo: 0 = Ciência, 1 = Confirmação, 2 = Desconhecimento, 3 = Operação não realizada
dataInicialstring (date-time)query—Data inicial do período
dataFinalstring (date-time)query—Data final do período
empresaIdinteger (int64)query—Filtra por empresa
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)

Resposta de Sucesso 200

{
  "pagination": {
    "currentPage": 1,
    "totalPages": 3,
    "pageSize": 20,
    "totalCount": 58,
    "hasPrevious": false,
    "hasNext": true
  },
  "data": [
    {
      "id": 1,
      "chave": "35240100000000000000550010000000011000000011",
      "nome": "Fornecedor Exemplo Ltda",
      "documento": "11.111.111/0001-11",
      "valor": 1500.00,
      "numeroProtocolo": "135240000000001",
      "dataEmissao": "2024-03-01T10:00:00",
      "sequenciaEvento": 1,
      "tipoManifesto": 1,
      "tipoManifestoDescricao": "Confirmação da Operação",
      "nsu": 123456789,
      "faturaSalva": true,
      "empresaId": 1,
      "notaFiscalId": 50
    }
  ],
  "summary": null
}

Campos da Resposta — data[]

CampoTipoDescrição
idinteger (int64)Identificador do manifesto
chavestringChave de acesso da NF-e (44 dígitos)
nomestringNome do emitente da NF-e
documentostringCNPJ do emitente
valornumberValor total da NF-e
numeroProtocolostringProtocolo de autorização
dataEmissaostring (date-time)Data de emissão da NF-e
tipoManifestointegerTipo de manifestação realizada
tipoManifestoDescricaostringDescrição do tipo de manifestação
faturaSalvabooleanIndica se a nota foi importada como fatura
notaFiscalIdintegerID da nota fiscal vinculada no sistema

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/manifestos" \
  -H "Authorization: Bearer {token}"

JavaScript

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

Python

import requests

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

Go

import (
    "io"
    "net/http"
)

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

Descrição: Retorna os dados completos de um manifesto pelo ID, incluindo o conteúdo XML da NF-e.

Parâmetros

NomeTipoLocalObrigatórioDescrição
idinteger (int64)path✓ID do manifesto

Resposta de Sucesso 200

Retorna o objeto completo do manifesto com os campos conteudoXMLResumo e conteudoXML preenchidos.

Códigos de Erro

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

Exemplos de Código

cURL

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

JavaScript

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

Python

import requests

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

Go

import (
    "io"
    "net/http"
)

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

POST /api/manifestos/consultar/{empresaId}

Descrição: Consulta na SEFAZ os novos manifestos disponíveis para a empresa informada, importando automaticamente os registros pendentes.

Parâmetros

NomeTipoLocalObrigatórioDescrição
empresaIdinteger (int64)path✓ID da empresa

Resposta de Sucesso 200

15

Retorna a quantidade de novos manifestos importados da SEFAZ.

Códigos de Erro

CódigoDescrição
401Token ausente ou inválido
404Empresa não encontrada
500Erro interno do servidor ou falha na comunicação com a SEFAZ

Exemplos de Código

cURL

curl -X POST "https://api.app.hooked.com.br/api/manifestos/consultar/{empresaId}" \
  -H "Authorization: Bearer {token}"

JavaScript

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

Python

import requests

data = requests.post(
    'https://api.app.hooked.com.br/api/manifestos/consultar/{empresaId}',
    headers={'Authorization': 'Bearer {token}'}
).json()

Go

import (
    "io"
    "net/http"
)

req, _ := http.NewRequest("POST", "https://api.app.hooked.com.br/api/manifestos/consultar/{empresaId}", 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/manifestos/consultar/{empresaId}');
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 — POST /api/manifestos/consultar/{empresaId}",
  "nodes": [
    {
      "parameters": {
        "method": "POST",
        "url": "https://api.app.hooked.com.br/api/manifestos/consultar/{empresaId}",
        "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/manifestos/{id}/manifestar

Descrição: Registra a manifestação do destinatário para uma NF-e junto à SEFAZ. Permite confirmar a operação, declarar desconhecimento ou registrar operação não realizada.

Parâmetros

NomeTipoLocalObrigatórioDescrição
idinteger (int64)path✓ID do manifesto

Corpo da Requisição

{
  "id": 1,
  "tipoManifesto": 1,
  "justificativa": null
}
CampoTipoObrigatórioDescrição
idinteger (int32)✓ID do manifesto
tipoManifestointeger (int32)✓1 = Confirmação, 2 = Desconhecimento, 3 = Operação não realizada
justificativastring—Justificativa obrigatória para tipos 2 e 3 (mínimo 15 caracteres)

Resposta de Sucesso 200

Retorna o objeto com o tipo de manifestação registrado.

Códigos de Erro

CódigoDescrição
400Tipo inválido ou justificativa ausente quando obrigatória
401Token ausente ou inválido
404Manifesto não encontrado
500Erro interno ou falha na comunicação com a SEFAZ

Exemplos de Código

cURL

curl -X PUT "https://api.app.hooked.com.br/api/manifestos/{id}/manifestar" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{"id":1,"tipoManifesto":1,"justificativa":null}'

JavaScript

const response = await fetch('https://api.app.hooked.com.br/api/manifestos/{id}/manifestar', {
  method: 'PUT',
  headers: {
    'Authorization': 'Bearer {token}',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
  "id": 1,
  "tipoManifesto": 1,
  "justificativa": null
})
});
const data = await response.json();

Python

import requests

data = requests.put(
    'https://api.app.hooked.com.br/api/manifestos/{id}/manifestar',
    headers={'Authorization': 'Bearer {token}'},
    json={'id': 1, 'tipoManifesto': 1, 'justificativa': None}
).json()

Go

import (
    "bytes"
    "net/http"
)

payload := []byte(`{"id":1,"tipoManifesto":1,"justificativa":null}`)
req, _ := http.NewRequest("PUT", "https://api.app.hooked.com.br/api/manifestos/{id}/manifestar", 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/manifestos/{id}/manifestar');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST  => 'PUT',
    CURLOPT_HTTPHEADER     => ['Authorization: Bearer {token}', 'Content-Type: application/json'],
    CURLOPT_POSTFIELDS     => json_encode([
        'id' => 1,
        'tipoManifesto' => 1,
        'justificativa' => null
    ]),
    CURLOPT_RETURNTRANSFER => true,
]);
$data = json_decode(curl_exec($ch), true);
curl_close($ch);

n8n

{
  "name": "Hooked API — PUT /api/manifestos/{id}/manifestar",
  "nodes": [
    {
      "parameters": {
        "method": "PUT",
        "url": "https://api.app.hooked.com.br/api/manifestos/{id}/manifestar",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Bearer SEU_TOKEN_AQUI"
            }
          ]
        },
        "sendBody": true,
        "contentType": "json",
        "specifyBody": "json",
        "jsonBody": "{\"id\":1,\"tipoManifesto\":1,\"justificativa\":null}",
        "options": {}
      },
      "id": "node-1",
      "name": "HTTP Request",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        250,
        300
      ]
    }
  ],
  "connections": {},
  "pinData": {}
}

GET /api/manifestos/{id}/download

Descrição: Faz o download do arquivo XML da NF-e referente ao manifesto.

Parâmetros

NomeTipoLocalObrigatórioDescrição
idinteger (int64)path✓ID do manifesto

Resposta de Sucesso 200

Retorna o arquivo XML da NF-e para download.

Códigos de Erro

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

Exemplos de Código

cURL

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

JavaScript

const response = await fetch('https://api.app.hooked.com.br/api/manifestos/{id}/download', {
  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/manifestos/{id}/download',
    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/manifestos/{id}/download", 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/manifestos/{id}/download');
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/manifestos/{id}/download",
  "nodes": [
    {
      "parameters": {
        "method": "GET",
        "url": "https://api.app.hooked.com.br/api/manifestos/{id}/download",
        "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/manifestos/{id}/imprimir

Descrição: Gera o DANFE (Documento Auxiliar da Nota Fiscal Eletrônica) em PDF para impressão referente ao manifesto.

Parâmetros

NomeTipoLocalObrigatórioDescrição
idinteger (int64)path✓ID do manifesto

Resposta de Sucesso 200

Retorna o arquivo PDF do DANFE.

Códigos de Erro

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

Exemplos de Código

cURL

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

JavaScript

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

Python

import requests

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

Go

import (
    "io"
    "net/http"
)

req, _ := http.NewRequest("GET", "https://api.app.hooked.com.br/api/manifestos/{id}/imprimir", 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/manifestos/{id}/imprimir');
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/manifestos/{id}/imprimir",
  "nodes": [
    {
      "parameters": {
        "method": "GET",
        "url": "https://api.app.hooked.com.br/api/manifestos/{id}/imprimir",
        "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": {}
}
← RemessasOrdens de Produção →
  • Visão Geral
  • Base URL
  • Endpoints
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.