fiscal
Server Details
Brazilian fiscal MCP server - issue NF-e, NFC-e, NFS-e, CT-e, MDF-e and DC-e via SEFAZ.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- BrasilNFe/brasilnfe-mcp
- GitHub Stars
- 0
- Server Listing
- brasilnfe-mcp
TDQS
Scored across 34 tools
Most tools target distinct resource+action combinations (e.g., nfe_emitir vs nfse_emitir; evento_cancelar vs evento_carta_correcao). The main confusion risk between cadastro_consultar and cliente_consultar is explicitly addressed in the descriptions, reducing ambiguity, though the similarity between nfse_consultar and nota_listar remains a minor concern.
The naming convention is predominantly Portuguese object_verb with snake_case (e.g., cliente_consultar, evento_cancelar, tributacao_editar), which is predictable. A few outliers like health, cte_desacordo, and fci_gerar break the pattern, but overall the style is consistent.
At 34 tools, the server presents a very large surface area, exceeding the 25+ threshold for 'too many'. While the domain broadly spans many Brazilian fiscal document typesemannations, the count will likely overwhelm agents, and several tools could be consolidated or grouped.
The tool set covers the core fiscal lifecycle: emission for all major document types, cancellation and events, file downloads, status checks, tax calculation, and CRUD for clients, products, and tax rules. Missing delete operations for master data may be intentional, but the absence of a direct single-document detail query is a minor gap.
Available Tools
34 toolsarquivo_baixarBaixar XML ou PDF do documentoARead-onlyIdempotentInspect
Baixa o arquivo (XML ou PDF/DANFE) de uma NF-e/NFC-e/NFS-e por chave de acesso. Retorna conteúdo em base64.
| Name | Required | Description | Default |
|---|---|---|---|
| Chaves | No | ||
| ChaveNF | No | ||
| FileType | No | Tipo do documento fiscal (Padrão 1 - XML) Valores: 1 - XML; 2 - DANFE | |
| Base64Logo | No | ||
| TipoDocumentoFiscal | No | Tipo do documento fiscal (Padrão 1 - Saída) Valores: 0 - Entrada; 1 - Saída |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the agent knows the tool is safe and idempotent. The description adds value by specifying the return format (base64) and the file types. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, directly stating the purpose and output format. It is front-loaded with the key action and resource. Every sentence is necessary and no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With five parameters, no required ones, and no output schema, the description is insufficient. It does not explain how to specify the access key (which of the two key parameters to use), the role of Base64Logo, or the behavior when parameters are omitted. The agent lacks guidance to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is low (40%), and the tool description does not adequately compensate. It mentions file types (XML/PDF) which maps to FileType, but leaves Chaves, ChaveNF, and Base64Logo unexplained. The user must infer that ChaveNF is a single key, but the array parameter Chaves is ambiguous. No guidance on parameter combinations.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'Baixa' (downloads) and specifies the resource as XML or PDF/DANFE of a NF-e/NFC-e/NFS-e by access key. It distinguishes from sibling tools like 'arquivo_baixar_evento' and 'arquivo_baixar_periodo' by emphasizing the input method (access key).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when the user has an access key, but it does not explicitly state when to use this tool versus alternatives, nor does it provide exclusions or prerequisites. No guidance on when not to use it or which sibling tool to choose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arquivo_baixar_eventoBaixar XML ou PDF de eventoBRead-onlyIdempotentInspect
Baixa o arquivo de um evento (CC-e, cancelamento, manifestação, encerramento) por chave de acesso + número sequencial. Retorna conteúdo em base64.
| Name | Required | Description | Default |
|---|---|---|---|
| ChaveNF | No | Chave de acesso da Nota Fiscal (44 dígitos) à qual o evento está vinculado. | |
| NuProtocolo | No | Número do protocolo do evento (somente dígitos). Identifica o evento específico (ex.: Carta de Correção, Cancelamento) registrado para a nota fiscal. | |
| TipoArquivo | No | Tipo do arquivo do evento a ser retornado. Valores: 1 - XML do evento; 2 - PDF da Carta de Correção (CC-e) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint and idempotentHint, so the tool's safety profile is clear. The description adds that the output is base64-encoded and lists event types, but does not disclose additional traits like size limits or error responses. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no superfluous words. Clearly states action, input, and output. Efficiently front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple download tool with no output schema, the description covers the return format (base64) and event types. It lacks details on error handling or constraints but is adequate for the complexity. No missing critical information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All three parameters are fully described in the schema (100% coverage), so the description adds minimal value. It loosely maps 'chave de acesso + número sequencial' to ChaveNF and NuProtocolo, but this is already implied. No new semantic depth beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool downloads event files (CC-e, cancellation, etc.) by access key and sequential number, returning base64. However, it uses 'número sequencial' while schema calls it 'NuProtocolo' (protocol number), causing slight ambiguity. The name and description sufficiently distinguish from siblings like 'arquivo_baixar' and 'arquivo_baixar_periodo'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives (e.g., 'arquivo_baixar' for general files). The description implies it's for event-specific downloads but doesn't state exclusions or provide comparative context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arquivo_baixar_periodoExportar arquivos do períodoARead-onlyInspect
Exporta múltiplos arquivos (XML/PDF) de um período em um único ZIP base64. Útil para backup, contabilidade ou auditoria.
| Name | Required | Description | Default |
|---|---|---|---|
| Type | No | Tipo do documento fiscal (Padrão 1 - XML) Valores: 0 - PDF; 1 - XML; 2 - EXCEL | |
| DtFim | No | Data/hora ISO 8601 (ex: 2026-07-22T13:45:00-03:00) | |
| Chaves | No | Chaves pagar pegar notas fiscal especificas | |
| DtInicio | No | Data/hora ISO 8601 (ex: 2026-07-22T13:45:00-03:00) | |
| TipoNota | No | Tipo de ambiente (Padrão 1 - Saída) Valores: 1 - Saídas; 2 - Entradas; 3 - Saídas e Entradas | |
| cpfCnpjs | No | CPFs ou CNPJs dos clientes das notas | |
| Situacoes | No | Filtra por situação. Vazio = todas (comportamento padrão). Combinável. | |
| incluirCCe | No | Incluir carta de correção emitidas no periodo | |
| TipoAmbiente | No | Tipo de ambiente (Padrão 1 - Produção) Valores: 1 - Produção; 2 - Homologação | |
| JuntarArquivosPDF | No | Anexar todas as notas fiscais retornadas em um unico arquivo PDF | |
| aplicarPlanoAjustes | No | Aplicar plano de ajustes de impostos |
Output Schema
| Name | Required | Description |
|---|---|---|
| Error | No | Mensagem de erro da operação. Vazia ("") quando foi bem-sucedida. |
| Avisos | No | Avisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida. |
| Quantidade | No | |
| Base64FilesCompacted | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations give readOnlyHint=true, and the description confirms a read operation ('exporta'). It adds value by disclosing the output format (ZIP base64) and the included file types (XML/PDF). No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no fluff. First sentence states the core action and output; second adds context. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 11 parameters and an output schema, the description is adequate but not comprehensive. It covers high-level purpose and usage context but does not explain parameter relationships (e.g., date range required) or provide examples. The output schema exists, reducing the need to describe return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The tool description does not add new meaning beyond what parameters already provide; it only restates the high-level concept of period and file types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (Exporta), the resource (múltiplos arquivos XML/PDF de um período), and the output format (único ZIP base64). It distinguishes from siblings by specifying batch download over a period, as opposed to single file or event downloads.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions use cases (backup, accounting, audit) but does not explicitly contrast with sibling tools like 'arquivo_baixar' for single files or 'arquivo_baixar_evento'. The context is implied but lacks explicit when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cadastro_consultarConsultar Inscrição Estadual (IE) na SEFAZARead-onlyIdempotentInspect
Consulta a Inscrição Estadual (IE) de um contribuinte na SEFAZ estadual (mundo NF-e/ICMS), por CNPJ/CPF/IE + UF. ATENÇÃO: muitas UFs NÃO oferecem este serviço (ex: RJ) e prestadores de serviço normalmente NÃO têm IE - nesses casos a IE não vem, e ISSO NÃO SIGNIFICA QUE O CNPJ ESTEJA INATIVO. Quando a SEFAZ não retorna e o documento é CNPJ, há fallback automático na Receita Federal (campo 'fonte'='receita') trazendo razão social, situação cadastral e endereço - sempre leia o campo 'mensagem'. Para apenas saber se um CNPJ está ativo ou pegar seus dados cadastrais (sem precisar da IE), prefira cliente_consultar.
| Name | Required | Description | Default |
|---|---|---|---|
| uf | No | UF do CPF, CNPJ, IE | |
| cpfCnpjIe | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ie | No | |
| fonte | No | Fonte dos dados: "sefaz" (Inscrição Estadual da SEFAZ estadual), "receita" (fallback na Receita Federal quando a UF não oferece a consulta ou o contribuinte não tem IE - comum em prestadores de serviço) ou "indisponivel". |
| status | No | Status Consulta Valores: 0 - Não Encontrada;; 1 - Encontrada; |
| Contato | No | |
| cpfCnpj | No | |
| ieAtual | No | |
| ieUnica | No | |
| Endereco | No | |
| mensagem | No | Mensagem explicativa do resultado: por que a IE não veio, qual fonte foi usada, e o aviso de que vazio NÃO significa CNPJ inativo. Fica vazio quando a SEFAZ retornou a Inscrição Estadual normalmente. |
| situacao | No | Situação do contribuinte: 0 - não habilitado; 1 - habilitado. |
| razaoSocial | No | |
| nomeFantasia | No | |
| ufConsultada | No | |
| cnaePrincipal | No | |
| regimeApuracao | No | |
| dataInicioAtividade | No | Data/hora ISO 8601 (ex: 2026-07-22T13:45:00-03:00) |
| dataOcorrenciaBaixa | No | Data/hora ISO 8601 (ex: 2026-07-22T13:45:00-03:00) |
| indicadorCredenciamentoCTe | No | Indicador de contribuinte credenciado a emitir CT-e. Valores: 0 - Não credenciado para emissão da CT-e;; 1 - Credenciado;; 2 - Credenciado com obrigatoriedade para todas operações;; 3 - Credenciado com obrigatoriedade parcial;; 4 - a SEFAZ não fornece a informação. Este indicador significa apenas que o contribuinte é credenciado para emitir CT-e na SEFAZ consultada. |
| indicadorCredenciamentoNFe | No | Indicador de contribuinte credenciado a emitir NF-e. Valores: 0 - Não credenciado para emissão da NF-e;; 1 - Credenciado;; 2 - Credenciado com obrigatoriedade para todas operações;; 3 - Credenciado com obrigatoriedade parcial;; 4 - a SEFAZ não fornece a informação. Este indicador significa apenas que o contribuinte é credenciado para emitir NF-e na SEFAZ consultada. |
| dataUltimaAlteracaoCadastral | No | Data/hora ISO 8601 (ex: 2026-07-22T13:45:00-03:00) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds significant context beyond annotations: notes that missing IE does not mean CNPJ is inactive, describes fallback to Receita Federal for CNPJ, and instructs to read the `mensagem` field. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and includes essential warnings and fallback info, but slightly verbose due to multiple caveats. Each sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers edge cases (UF unavailability, service providers), fallback mechanism, and expected behavior given the output schema. Adequate for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (only `uf` described). Description mentions the combination of CPF/CNPJ/IE and UF but does not detail parameter format or requiredness, only partially compensating for the missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it consults the state registration (IE) for a taxpayer via CNPJ/CPF/IE + UF, distinguishing from sibling `cliente_consultar` which is for basic cadastral data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly warns that many UFs do not offer the service (e.g., RJ) and that service providers typically lack IE. Advises using `cliente_consultar` if only checking active status, and describes fallback behavior for CNPJ.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cliente_consultarConsultar cliente/destinatario por CNPJ, CPF, IE ou nomeARead-onlyIdempotentInspect
Pesquisa unificada de cliente/fornecedor. Tenta primeiro o cadastro local da empresa logada e, se nao achar e o termo for um CNPJ valido, consulta a BrasilAPI (Receita Federal) - razao social, endereco, situacao cadastral. E a tool CORRETA pra saber se um CNPJ esta ativo e pegar seus dados (razao social, endereco) - nao confunda com cadastro_consultar, que so traz Inscricao Estadual (IE) da SEFAZ. Use ANTES de pedir CNPJ ao usuario; geralmente o usuario informa nome ou apelido (ex: 'TNT', 'Correios'). Obs: consulta na Receita so funciona por CNPJ - CPF nao tem base publica. Para obter a Inscricao Estadual (operacao com ICMS), use cadastro_consultar. PAGINACAO: Limite default 10 (max 50). Use Offset pra ir alem - o retorno traz TotalGeral. Se TotalGeral > matches retornados, peça mais paginas em vez de inventar/agrupar.
| Name | Required | Description | Default |
|---|---|---|---|
| Uf | No | ||
| Termo | No | ||
| Fontes | No | ||
| Limite | No | ||
| Offset | No | ||
| TipoBusca | No | ||
| IncluirInativas | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| Avisos | No | |
| Limite | No | |
| Offset | No | |
| Matches | No | |
| TotalGeral | No | |
| TotalLocal | No | |
| TipoDetectado | No | |
| TermoNormalizado | No | |
| ConsultouBrasilApi | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Disclosures beyond annotations: explains search order (local then BrasilAPI), that CPF has no public base, and pagination details (return includes TotalGeral). Annotations already indicate read-only, open-world, idempotent; description adds valuable context without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is informative but somewhat lengthy; includes essential details and front-loads the main purpose. Slightly verbose but maintains clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers key aspects: search logic, pagination, and tool distinction. Output schema exists so return values are not needed. Sufficient for an AI agent to use correctly, though could explicitly mention that local search may work for CPF.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 7 parameters with 0% description coverage. Description adds meaning for 'Termo' (search term), 'Limite' (default 10, max 50), and 'Offset', but omits 'Fontes', 'TipoBusca', 'IncluirInativas', and 'Uf'. Partial coverage; could be more thorough.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it performs a unified search for client/supplier, first checking local database then BrasilAPI for CNPJ. It distinguishes from sibling 'cadastro_consultar' which only retrieves IE, making the purpose specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises when to use (to check CNPJ status and get data), when not to confuse with cadastro_consultar, and provides pagination instructions (default limit 10, max 50, use offset). Also recommends using before asking user for CNPJ.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cliente_criarCadastrar novo cliente (destinatario/fornecedor/transportadora)AInspect
Cadastra um novo Cliente no sistema da empresa logada (CNPJ ou CPF, razao social, endereco, IE). Use depois de cliente_consultar quando o usuario confirmar que quer salvar o cadastro. Se ja existir cliente com mesmo CpfCnpj devolve erro com Id existente - use cliente_editar.
| Name | Required | Description | Default |
|---|---|---|---|
| Id | No | ||
| Ie | No | ||
| Im | No | ||
| Nome | Yes | ||
| No | |||
| CpfCnpj | Yes | ||
| Endereco | No | ||
| Telefone | No | ||
| IndicadorIe | No | ||
| ConsumidorFinal | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| Id | No | |
| Ok | No | |
| Erro | No | |
| Cliente | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are minimal (only title), so description carries behavioral burden. It mentions error behavior for duplicates but does not disclose authorization needs, side effects, or other safety traits. Adequate but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences in Portuguese, front-loaded with purpose, no wasted words. Efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 10 parameters and existing output schema, description explains core use case and duplicate handling but lacks explanation of return values and many parameters. Adequate for a focused tool but not fully comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so description must compensate. It mentions CpfCnpj, Nome, Endereco, Ie but omits many parameters like Im, Email, Telefone, IndicadorIe, ConsumidorFinal. Coverage is incomplete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool registers a new client (Cadastra um novo Cliente) and lists typical fields (CNPJ/CPF, razao social, endereco, IE). It distinguishes from siblings by explicitly referencing cliente_consultar and cliente_editar.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: after cliente_consultar when user confirms, and when not (if duplicate CPF/CNPJ, use cliente_editar). Provides clear decision guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cliente_editarEditar cliente cadastradoAIdempotentInspect
Atualiza dados de um Cliente existente no cadastro. O campo Id e obrigatorio. ATENCAO: envie o payload COMPLETO - campos omitidos sao zerados, nao preservados. Para edicao parcial, faca cliente_consultar primeiro e mande os dados existentes mais o que muda. Valida ownership por UserCreate (cliente tem que pertencer ao usuario logado) e por empresa (IdEmpresa tem que ser a logada, 0 ou null - se for outra empresa sua, troque antes).
| Name | Required | Description | Default |
|---|---|---|---|
| Id | No | ||
| Ie | No | ||
| Im | No | ||
| Nome | Yes | ||
| No | |||
| CpfCnpj | Yes | ||
| Endereco | No | ||
| Telefone | No | ||
| IndicadorIe | No | ||
| ConsumidorFinal | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| Id | No | |
| Ok | No | |
| Erro | No | |
| Cliente | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the idempotentHint annotation, the description reveals full-replacement behavior, ownership validation (UserCreate and IdEmpresa), and the necessity of sending complete payload, adding significant context for the agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two main sentences and a warning, front-loading the purpose. It could be slightly more structured but is efficient with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (10 parameters, no param descriptions), the description covers critical behavioral aspects (full replacement, ownership, partial edit workaround). With an output schema present, return values need no explanation, making it reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema coverage, the description explains that Id is required (though schema marks it optional) and emphasizes complete payload. However, it does not detail other parameters nor compensate fully for the lack of schema descriptions, and the statement about Id being required contradicts the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Atualiza dados de um Cliente existente no cadastro' with specific verb (atualiza) and resource (Cliente existente), distinguishing it from sibling tools like cliente_criar and cliente_consultar.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly warns 'envie o payload COMPLETO - campos omitidos sao zerados, nao preservados' and advises 'Para edicao parcial, faca cliente_consultar primeiro e mande os dados existentes mais o que muda', providing clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cte_desacordoRegistrar desacordo de CT-eAInspect
Registra desacordo do tomador com um CT-e recebido (evento tipo 4 do CT-e). Prazo: 45 dias da emissão.
| Name | Required | Description | Default |
|---|---|---|---|
| Chave | No | ||
| Observacao | No | ||
| TipoAmbiente | No | Tipo do Documento Fiscal: Valores: 1 - Produção; 2 - Homologação | |
| NumeroSequencial | No | Número sequencial do evento |
Output Schema
| Name | Required | Description |
|---|---|---|
| Error | No | Mensagem de erro da operação. Vazia ("") quando foi bem-sucedida. |
| Avisos | No | Avisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida. |
| Status | No | 1 - Evento Processado; 2 - Aguardando processamento do evento; 3 - Ocorreu um erro ao processar o evento |
| DsEvento | No | |
| DsMotivo | No | |
| Base64Xml | No | XML do evento processado (procEventoNFe) em Base64. Preenchido apenas quando o evento e autorizado (cStat 135) e o documento e NF-e (modelo 55). Nulo nos demais casos. |
| Base64File | No | PDF do documento auxiliar do evento (ex.: Carta de Correcao) em Base64. Preenchido apenas quando o evento e autorizado e a nota existe na base. Nulo nos demais casos. |
| DsAmbiente | No | |
| NuProtocolo | No | |
| NumeroSequencial | No | |
| CodStatusRespostaSefaz | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description indicates a write operation ('Registra') and the openWorldHint annotation suggests side effects, but it does not disclose additional behavioral traits such as idempotency, reversibility, or consequences of registration. No contradiction with annotations, but it adds little beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no redundant information. It efficiently conveys the core purpose and a key constraint, maintaining excellent structure and brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the description includes an important deadline and event type, it omits details about the output, any prerequisites, or post-registration effects. Given that an output schema exists, the description could be more complete but is not severely lacking for a write operation with openWorldHint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides no explanation for any of the parameters (Chave, Observacao, TipoAmbiente, NumeroSequencial). Since the schema has 50% coverage (Chave and Observacao lack descriptions), the description could have filled this gap but does not, leaving the meaning of key parameters ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: registering a recipient's disagreement with a received CT-e, specifying the event type (type 4) and the deadline (45 days from issuance). This provides a precise and unambiguous purpose, distinct from sibling tools like evento_manifestar or evento_cancelar.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a temporal constraint (deadline) but does not explicitly contrast this tool with alternatives or state when to prefer it over other event tools. It lacks explicit when-to-use or when-not-to-use guidance, though the deadline implies a usage boundary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cte_emitirEmitir CT-eBInspect
Emite CT-e (Conhecimento de Transporte Eletrônico). Requer serviço CT-e habilitado no cadastro da empresa e certificado digital A1 ou A3 configurado.
| Name | Required | Description | Default |
|---|---|---|---|
| Cfop | Yes | CFOP de 4 dígitos. Primeiro dígito: 1/2/3 = entrada, 5/6/7 = saída. | |
| Lote | No | ||
| Carga | Yes | Dados da carga transportada (produto predominante, lista de detalhes, documentos fiscais que acompanham). OBRIGATÓRIO. Para Tipo de serviço 0/1/2/6/7/8 também exige Carga.Documentos com ao menos 1 NF-e referenciada. | |
| Modal | Yes | Modal de transporte (rodoviário, aéreo, aquaviário, ferroviário, dutoviário, multimodal). OBRIGATÓRIO. Tipo: 1=Rodoviário, 2=Aéreo, 3=Aquaviário, 4=Ferroviário, 5=Dutoviário, 6=Multimodal. | |
| Serie | No | ||
| Codigo | No | ||
| Numero | No | ||
| Retira | No | ||
| Imposto | No | ||
| Servico | Yes | Dados do serviço prestado (Tipo, CodMunicipioInicio, CodMunicipioFim com 7 dígitos cada, MunicipioInicio/MunicipioFim, ValorPrestacao > 0, ValorReceber > 0). OBRIGATÓRIO. Tipo: 0=Normal, 1=Subcontratação, 2=Redespacho, 3=RedespachoIntermediario, 4=ServicoVinculadoMultimodal. | |
| TipoCte | Yes | Tipo do CT-e. Valores: 0 - CT-e Normal (caso mais comum); 1 - CT-e de Complemento de Valores; 2 - CT-e de Anulação; 3 - CT-e Substituto | |
| Tomador | No | ||
| DtEmissao | No | Data/hora ISO 8601 (ex: 2026-07-22T13:45:00-03:00) | |
| Expedidor | No | ||
| Remetente | No | ||
| Observacao | No | ||
| Destinatario | No | ||
| TipoAmbiente | Yes | Identificação do ambiente da SEFAZ. Valores: 1 - Produção (emissão real, irreversível); 2 - Homologação (teste, sem valor fiscal) | |
| ModeloDocumento | Yes | Modelo do Conhecimento de Transporte Eletrônico. Valores: 57 - CT-e (Conhecimento de Transporte Eletrônico); 67 - CT-e OS (Outros Serviços de transporte) | |
| NaturezaOperacao | Yes | Descrição da natureza da operação (ex: "Prestação de serviço de transporte"). | |
| IdentificadorInterno | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| chave | No | |
| erros | No | Lista de erros quando a operação falha. Vazia em caso de sucesso. Cada item traz codigo, descricao e correcao. |
| serie | No | |
| avisos | No | Avisos não bloqueantes. Pode vir preenchida mesmo em sucesso. |
| numero | No | |
| status | No | Status do resultado da operação: 1 = sucesso; 2 = erro (a lista erros é preenchida). |
| base64Xml | No | |
| base64DACTe | No | |
| tipoAmbiente | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds prerequisites (CT-e service enabled, digital certificate A1/A3), but it does not disclose behavioral traits of emitting a legal fiscal document, such as irreversibility in production, validation failure risks, or potential side effects. Annotations provide only openWorldHint and no safety profile, so the description carries the transparency burden and falls short.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, appropriately sized and front-loaded. The first sentence states the core purpose, and the second adds essential prerequisites. No fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (21 parameters, nested objects, fiscal emission), the description is too thin. It lacks an overview of the CT-e process, potential errors, or warnings about production emissions. While an output schema exists, the description does not provide enough context to confidently invoke this tool among many sibling emit tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides no information about parameters. Schema coverage is only 43%, leaving many parameters without descriptions, and the description does not compensate for these gaps. For example, it does not mention that ModeloDocumento can be 57 or 67, or that TipoAmbiente distinguishes production vs homologação.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool emits CT-e (Conhecimento de Transporte Eletrônico) with the verb 'Emite' and the specific resource 'CT-e', expanded with the full name. This distinguishes it from sibling emit tools like nfe_emitir or mdfe_emitir, which target different document types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: the tool is for CT-e emission, which is evident from the name and description. However, it does not explicitly compare to alternatives or state when not to use it. It does mention prerequisites (service enabled, certificate), but these are requirements rather than usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dce_emitirEmitir DC-eAInspect
Emite DC-e (Declaração de Conteúdo Eletrônica) para transporte de itens não-fiscais por pessoa física ou MEI. Requer serviço DC-e habilitado no cadastro.
| Name | Required | Description | Default |
|---|---|---|---|
| Lote | No | ||
| Itens | Yes | Itens/produtos declarados no conteúdo (mínimo 1, máximo 999). Cada item exige Descricao (até 120 chars) e ValorTotal > 0. NCM opcional (2 ou 8 dígitos quando informado). | |
| Serie | No | ||
| Codigo | No | ||
| Numero | No | ||
| UfFisco | No | Sigla da UF do órgão fiscalizador (obrigatório quando TipoEmitente=0). Se não preenchido, usa a UF da empresa emissora. | |
| Remetente | Yes | Pessoa física/jurídica que está enviando o pacote. OBRIGATÓRIO. Exige Endereco completo (validado por ValidaPessoaDCe). | |
| ValorTotal | No | Valor total declarado da DC-e. Se omitido, soma dos ValorTotal dos itens. Deve ser > 0. | |
| XOrgaoFisco | No | Nome do órgão fiscalizador (obrigatório quando TipoEmitente=0) | |
| Destinatario | Yes | Destinatário do pacote. OBRIGATÓRIO. Exige Endereco completo. | |
| TipoAmbiente | Yes | Tipo de ambiente. Valores: 1 - Produção (emissão real); 2 - Homologação (teste) | |
| TipoEmitente | No | Tipo do emitente: Valores: 0 - App Fisco; 1 - Marketplace; 2 - Emissor próprio; 3 - Transportadora; 4 - ECT (Correios) | |
| SiteMarketplace | No | URL do site do marketplace (obrigatório quando TipoEmitente=1) | |
| CnpjTransportadora | No | CNPJ da transportadora que leva a carga. Opcional. Quando informado, é usado no XML; quando vazio, mantém o CNPJ da empresa emissora. | |
| IdentificadorInterno | No | ||
| ModalidadeTransporte | No | Modalidade de transporte: Valores: 0 - Correios; 1 - Conta própria; 2 - Transportadora | |
| DeclaracaoCrimeTributario | Yes | Texto da declaração de crime tributário (xObs2). OBRIGATÓRIO, até 5000 caracteres. Texto padrão sugerido: "Declaro, sob as penas da lei, que o conteúdo desta declaração é verdadeiro e que não estou cometendo crime contra a ordem tributária." | |
| InformacoesComplementares | No | Informações complementares (opcional, até 5000 caracteres). | |
| DeclaracaoContribuinteICMS | Yes | Texto da declaração de contribuinte ICMS (xObs1). OBRIGATÓRIO, até 2000 caracteres. Texto padrão sugerido: "Declaro, sob as penas da lei, que não sou contribuinte do ICMS." | |
| InformacoesAdicionaisFisco | No | Informações adicionais de interesse do fisco (opcional, até 2000 caracteres). |
Output Schema
| Name | Required | Description |
|---|---|---|
| chave | No | |
| erros | No | Lista de erros quando a operação falha. Vazia em caso de sucesso. Cada item traz codigo, descricao e correcao. |
| serie | No | |
| avisos | No | Avisos não bloqueantes. Pode vir preenchida mesmo em sucesso. |
| numero | No | |
| status | No | Status do resultado da operação: 1 = sucesso; 2 = erro (a lista erros é preenchida). |
| base64Xml | No | |
| protocolo | No | |
| base64DACE | No | |
| tipoAmbiente | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds only a prerequisite beyond the annotations. With minimal annotations (openWorldHint), the description does not disclose authorization needs, side effects, or other behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at two sentences, front-loading the purpose and adding a prerequisite. No redundant information is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the high complexity (20 parameters, nested objects), the description is too brief. It does not cover validation rules, parameter interactions, or other nuances needed for correct invocation, though an output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 75% parameter description coverage, so the schema itself explains most parameters. The tool description adds no extra parameter semantics, maintaining the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool emits a DC-e (Declaração de Conteúdo Eletrônica) for transporting non-tax items by individuals or MEIs. This differentiates it from other emitir siblings like nfe_emitir or cte_emitir.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for usage (non-tax items by individuals/MEI) and mentions a prerequisite (service enabled). However, it does not explicitly state when not to use it or name alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
evento_cancelarCancelar documento fiscalADestructiveInspect
Cancela um documento fiscal autorizado (NF-e, NFC-e, NFS-e, CT-e, MDF-e, DC-e). Informe a chave de 44 dígitos e a justificativa (mínimo 15 caracteres). Para NFS-e use TipoDocumento=1 e informe NumeroNFSe ao invés de chave. Prazo SEFAZ NF-e: 24h após autorização (algumas UFs mais).
| Name | Required | Description | Default |
|---|---|---|---|
| ChaveNF | Yes | Chave de acesso de 44 dígitos da NF-e/NFC-e/CT-e/MDF-e/DC-e a cancelar. Obrigatório quando TipoDocumento = 0 (documentos NFe-family). Para NFS-e (TipoDocumento = 1) use NumeroNFSe. | |
| DataEvento | No | Data do evento de cancelamento do documento (Caso não for enviado é considerada a data e hora atual) | |
| NumeroNFSe | No | Número da NFS-e a ser cancelada | |
| TipoAmbiente | Yes | Ambiente do documento original (DEVE bater com o ambiente onde a nota foi emitida). IMPORTANTE: passe explicitamente. Se a nota foi emitida em homologação (testes), use 2. Valores: 1 - Produção; 2 - Homologação | |
| Justificativa | Yes | Motivo do cancelamento. MÍNIMO 15 caracteres, MÁXIMO 1000. NÃO use texto genérico como "cancelamento" ou "erro" - descreva o motivo real (ex: "Erro no valor unitário do produto X"). Obrigatório para TipoDocumento = 0 (NFe-family). | |
| TipoDocumento | Yes | Tipo do documento fiscal a cancelar. Valores: 0 - NF-e, NFC-e, CT-e, MDF-e, DC-e (usa ChaveNF de 44 dígitos); 1 - NFS-e (usa NumeroNFSe + CodCancelamentoNFSe + TipoAmbiente) | |
| NumeroProtocolo | No | Número do protocolo de autorização original do documento (obrigatório quando a nota foi emitida por OUTRO sistema externo). Se o documento foi emitido pelo próprio BrasilNFe, o protocolo é localizado automaticamente. | |
| NumeroSequencial | No | Número sequencial do evento | |
| CodCancelamentoNFSe | No | Código do motivo de cancelamento da NFS-e (Padrão 1) Valores: 1 - Erro na emissão; 2 - Serviço não prestado; 3 - Duplicidade da nota; 9 - Outros | |
| CpfCnpjRemetenteDCe | No | CPF ou CNPJ do Usuário Emitente (Remetente) da DC-e original. Obrigatório no cancelamento de DC-e quando a nota não está cadastrada no sistema (caso esteja, o valor é lido da própria NotaFiscal). |
Output Schema
| Name | Required | Description |
|---|---|---|
| Error | No | Mensagem de erro da operação. Vazia ("") quando foi bem-sucedida. |
| Avisos | No | Avisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida. |
| Status | No | 1 - Evento Processado; 2 - Aguardando processamento do evento; 3 - Ocorreu um erro ao processar o evento |
| DsEvento | No | |
| DsMotivo | No | |
| Base64Xml | No | XML do evento processado (procEventoNFe) em Base64. Preenchido apenas quando o evento e autorizado (cStat 135) e o documento e NF-e (modelo 55). Nulo nos demais casos. |
| Base64File | No | PDF do documento auxiliar do evento (ex.: Carta de Correcao) em Base64. Preenchido apenas quando o evento e autorizado e a nota existe na base. Nulo nos demais casos. |
| DsAmbiente | No | |
| NuProtocolo | No | |
| NumeroSequencial | No | |
| CodStatusRespostaSefaz | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The destructive effect is explicit ('Cancela um documento fiscal') and consistent with the destructiveHint annotation. The description adds useful behavioral details such as automatic protocol lookup for notes emitted within BrasilNFe and the need to supply the original protocol when issued externally. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded: purpose first, followed by key usage rules. Each sentence adds distinct information; there is no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 10 parameters, conditional branches, and an output schema, the description plus parameter docs cover required combinations, defaults, external-system protocol handling, NFS-e specifics, and the SEFAZ deadline. An agent has enough context to invoke cancellation correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 10 parameters have rich semantic descriptions beyond the schema types, including conditional requirements (ChaveNF vs NumeroNFSe), environment matching (TipoAmbiente), justification rules with examples, enum meanings for CodCancelamentoNFSe, and DC-e-specific CPF/CNPJ behavior. This significantly helps the agent choose correct values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a specific verb and resource: 'Cancela um documento fiscal autorizado', and explicitly enumerates the document types covered (NF-e, NFC-e, NFS-e, CT-e, MDF-e, DC-e). This clearly differentiates the tool from siblings focused on issuance, consultation, or other events.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives direct operational instructions: provide the 44-digit key and justification, switch to TipoDocumento=1 + NumeroNFSe for NFS-e, and notes the SEFAZ 24-hour deadline. It does not explicitly contrast with sibling cancellation/event tools, but the instructions are sufficient for the main use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
evento_carta_correcaoEnviar Carta de Correção (CC-e)AInspect
Envia Carta de Correção (CC-e) para uma NF-e ou CT-e já autorizada (evento tipo 2). Não pode corrigir: valores, datas de emissão/saída, partes envolvidas (CNPJ/CPF), regimes tributários ou número/série do documento. Limite: 20 CC-e por NF-e.
| Name | Required | Description | Default |
|---|---|---|---|
| ChaveNF | Yes | Chave de acesso de 44 dígitos da NF-e ou CT-e a corrigir. | |
| Correcao | No | Texto da correção (mínimo 15, máximo 1000 caracteres). Obrigatório para NF-e (modelo 55). Não pode corrigir variáveis que afetam tributos (valores, quantidades, base de cálculo, alíquotas) nem dados de remetente/destinatário, nem data de emissão. Para CT-e use a lista Correcoes em vez deste campo. | |
| Correcoes | No | Lista de correções estruturadas (campo, grupo, valor). Usado SOMENTE para CT-e (modelo 57). Para NF-e/NFC-e use o campo Correcao acima. | |
| TipoAmbiente | Yes | Ambiente do documento original (DEVE bater com o ambiente onde a nota foi emitida). IMPORTANTE: passe explicitamente. Se a nota foi emitida em homologação, use 2. Valores: 1 - Produção; 2 - Homologação | |
| NumeroSequencial | No | Número sequencial do evento (1 a 20). Se omitido, o sistema usa o próximo disponível. |
Output Schema
| Name | Required | Description |
|---|---|---|
| Error | No | Mensagem de erro da operação. Vazia ("") quando foi bem-sucedida. |
| Avisos | No | Avisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida. |
| Status | No | 1 - Evento Processado; 2 - Aguardando processamento do evento; 3 - Ocorreu um erro ao processar o evento |
| DsEvento | No | |
| DsMotivo | No | |
| Base64Xml | No | XML do evento processado (procEventoNFe) em Base64. Preenchido apenas quando o evento e autorizado (cStat 135) e o documento e NF-e (modelo 55). Nulo nos demais casos. |
| Base64File | No | PDF do documento auxiliar do evento (ex.: Carta de Correcao) em Base64. Preenchido apenas quando o evento e autorizado e a nota existe na base. Nulo nos demais casos. |
| DsAmbiente | No | |
| NuProtocolo | No | |
| NumeroSequencial | No | |
| CodStatusRespostaSefaz | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only include openWorldHint=true, so the description carries the burden of behavioral disclosure. It clearly states this is a mutation (sending an event), lists explicit restrictions on what can be corrected, and notes the per-document limit. This adds meaningful behavioral context beyond the minimal annotations, though it doesn't describe side effects like returned protocols.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the main purpose, then key restrictions and the limit. Every sentence earns its place with no fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core purpose, restrictions, and limits, while the output schema and parameter schemas handle return values and parameter details. It doesn't explicitly mention prerequisites like authorization status or how to determine the correct environment, but the TipoAmbiente parameter description addresses that. The tool is complete enough for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with detailed explanations for every parameter, including the NF-e/CT-e distinction between Correcao and Correcoes. The description adds no additional parameter-specific meaning beyond what the schema already provides, so a baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Envia'), a precise resource (Carta de Correção for NF-e or CT-e), and scopes it to already authorized documents (evento tipo 2). It clearly distinguishes from sibling tools like evento_cancelar and evento_inutilizar by naming the correction event explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by specifying constraints (cannot correct values, dates, parties, etc.) and the 20-per-NF-e limit, but it does not explicitly name alternative tools or state when NOT to use this one. The schema further clarifies when to use Correcao vs. Correcoes for NF-e vs. CT-e, but the description alone gives no direct comparison to siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
evento_inutilizarInutilizar numeraçãoADestructiveInspect
Inutiliza uma faixa de numeração não utilizada na SEFAZ. Útil quando há quebra de sequência por erro de emissão. Não pode ser desfeito. Operação rara - confirme com o usuário antes.
| Name | Required | Description | Default |
|---|---|---|---|
| Serie | Yes | Série referente ao modelo do documento. Deve ser > 0. | |
| TipoAmbiente | Yes | Identificação do Ambiente. IMPORTANTE: passe explicitamente. Inutilização em produção é IRREVERSÍVEL. Valores: 1 - Produção (faixa fica DEFINITIVAMENTE inutilizada na SEFAZ); 2 - Homologação (teste) | |
| Justificativa | Yes | Justificativa da inutilização. Mínimo 15, máximo 255 caracteres. Descreva o motivo real (ex: "Erro de digitação - série pulada por engano no sistema interno"). | |
| NumeracaoFinal | Yes | Final da faixa numérica a inutilizar. Deve ser >= NumeracaoInicial. | |
| ModeloDocumento | Yes | Código do modelo do Documento Fiscal a inutilizar. Valores: 55 - NF-e; 65 - NFC-e; 57 - CT-e | |
| NumeracaoInicial | Yes | Início da faixa numérica a inutilizar. Deve ser > 0 e <= NumeracaoFinal. |
Output Schema
| Name | Required | Description |
|---|---|---|
| Error | No | Mensagem de erro da operação. Vazia ("") quando foi bem-sucedida. |
| Avisos | No | Avisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida. |
| Status | No | 1 - Evento Processado; 2 - Aguardando processamento do evento; 3 - Ocorreu um erro ao processar o evento |
| DsEvento | No | |
| DsMotivo | No | |
| Base64Xml | No | XML do evento processado (procEventoNFe) em Base64. Preenchido apenas quando o evento e autorizado (cStat 135) e o documento e NF-e (modelo 55). Nulo nos demais casos. |
| Base64File | No | PDF do documento auxiliar do evento (ex.: Carta de Correcao) em Base64. Preenchido apenas quando o evento e autorizado e a nota existe na base. Nulo nos demais casos. |
| DsAmbiente | No | |
| NuProtocolo | No | |
| NumeroSequencial | No | |
| CodStatusRespostaSefaz | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond the destructiveHint/openWorldHint annotations by clearly warning that the operation 'Não pode ser desfeito' and that it is rare, requiring user confirmation. This gives the agent essential behavioral context for a destructive external action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and well-structured, using three short sentences to convey purpose, usage scenario, and critical warnings without redundancy or irrelevant detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complete parameter schema and the presence of an output schema, the description covers the essential context: what the tool does, when to use it, and the critical irreversibility warning. No important operational context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All six parameters have descriptions covering allowed values, constraints, and relationships (e.g., NumeracaoInicial <= NumeracaoFinal, minimum Justificativa length). The description adds no extra parameter-level meaning beyond the schema, so baseline applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Inutiliza uma faixa de numeração não utilizada na SEFAZ') and the resource involved, making its purpose unambiguous and distinct from related siblings like cancellation or correction events.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly identifies when the tool is useful ('quebra de sequência por erro de emissão') and provides a strong caution about irreversibility and user confirmation. However, it does not explicitly contrast with sibling tools such as evento_cancelar, so usage guidance is strong but not fully alternative-aware.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
evento_manifestarManifestar destinatárioCInspect
Registra a manifestação do destinatário sobre uma NF-e. TipoEvento: 0=ciência da operação, 1=confirmação da operação, 2=desconhecimento, 3=operação não realizada.
| Name | Required | Description | Default |
|---|---|---|---|
| Chave | Yes | Chave de acesso de 44 dígitos da NF-e a manifestar. | |
| TipoAmbiente | Yes | Ambiente do documento original (DEVE bater com o ambiente onde a nota foi emitida). IMPORTANTE: passe explicitamente. Manifestação de NF de prod precisa ser ambiente 1. Valores: 1 - Produção; 2 - Homologação | |
| Justificativa | No | Justificativa. OBRIGATÓRIA quando TipoManifestacao = 4 (mínimo 15 caracteres). Para outros tipos pode omitir. | |
| NumeroSequencial | No | Número sequencial do evento (1 a 20). Se omitido, o sistema usa o próximo disponível. | |
| TipoManifestacao | Yes | Tipo da manifestação do destinatário. Valores: 1 - Confirmação da Operação; 2 - Ciência da Operação; 3 - Desconhecimento da Operação; 4 - Operação não Realizada (exige Justificativa com 15+ caracteres) |
Output Schema
| Name | Required | Description |
|---|---|---|
| Error | No | Mensagem de erro da operação. Vazia ("") quando foi bem-sucedida. |
| Avisos | No | Avisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida. |
| Status | No | 1 - Evento Processado; 2 - Aguardando processamento do evento; 3 - Ocorreu um erro ao processar o evento |
| DsEvento | No | |
| DsMotivo | No | |
| Base64Xml | No | XML do evento processado (procEventoNFe) em Base64. Preenchido apenas quando o evento e autorizado (cStat 135) e o documento e NF-e (modelo 55). Nulo nos demais casos. |
| Base64File | No | PDF do documento auxiliar do evento (ex.: Carta de Correcao) em Base64. Preenchido apenas quando o evento e autorizado e a nota existe na base. Nulo nos demais casos. |
| DsAmbiente | No | |
| NuProtocolo | No | |
| NumeroSequencial | No | |
| CodStatusRespostaSefaz | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that it registers a manifestation (a write operation) but does not mention side effects such as SEFAZ transmission or irreversibility. More critically, the type mapping in the description (0–3) contradicts the schema's enum (1–4), misleading agents about valid inputs. Annotations only include openWorldHint, which does not clarify behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the core purpose, but it includes an incorrect mapping that should be removed or corrected. The brevity is good, but the flawed content detracts from its usefulness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return details are not required. However, the description is incomplete due to the erroneous type mapping and does not mention constraints like the mandatory Justificativa for TipoManifestacao=4 (though the schema covers it). The contradiction between description and schema makes it incomplete and unreliable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although schema coverage is 100%, the description's type mapping (TipoEvento: 0–3) directly conflicts with the schema's TipoManifestacao enum (1–4). This is a severe misrepresentation that could cause an agent to send invalid values. The description adds no value beyond the schema and actively misleads.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Registra') and resource ('manifestação do destinatário sobre uma NF-e'), clearly distinguishing it from sibling event tools like evento_cancelar or evento_carta_correcao. The purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for manifestações but does not explicitly contrast it with alternatives or state when not to use it. Sibling tools like evento_cancelar are not mentioned, so an agent must infer usage from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fci_gerarGerar FCIAInspect
Gera o arquivo FCI (Ficha de Conteúdo de Importação) requerido para produtos com conteúdo importado em operações interestaduais.
| Name | Required | Description | Default |
|---|---|---|---|
| Produtos | No | Produtos para gerar os registros do arquivo FCI | |
| Transmitir | No | Quando verdadeiro, além de gerar o arquivo, assina e transmite a mídia via programa TED. Requer certificado e-CNPJ configurado na empresa. | |
| ValidarCodigos | No | Quando verdadeiro retorna erro caso envie produtos com código repetido |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only says 'Gera o arquivo' without disclosing side effects, authentication requirements, or what happens with the transmit flag. Parameter descriptions partially compensate (e.g., note about certificate), but the tool description itself is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that efficiently states the tool's purpose with no wasted words. Excellent conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite clear purpose, the description lacks completeness for an agent to fully understand the tool's behavior and output. No output schema exists, but the description does not mention what the tool returns (e.g., file content, success message). Given the array parameter and conditional transmission, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds no additional meaning to the parameters beyond what the schema already provides. It does not clarify parameter relationships or usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates the FCI file for products with imported content in interstate operations. The verb 'Gera' and specific resource 'arquivo FCI' are precise, and it distinguishes from sibling tools focused on other tax documents.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when the tool is required (products with imported content in interstate operations). It does not explicitly mention when not to use it, but the context of sibling tools implies it is for FCI only. This is adequate but could be more explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
healthHealth-checkARead-onlyIdempotentInspect
Verifica a saúde da API BrasilNFe (status, timestamp, versão). Não recebe parâmetros.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and idempotentHint=true. The description adds that the tool returns status, timestamp, and version, providing more granular behavioral context without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single focused sentence in Portuguese, front-loaded with the verb and resource. Every part is necessary and no words are wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description properly explains what the tool returns (status, timestamp, version). Given the simplicity of the tool and good annotations, the description is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema is empty with 100% coverage. The description confirms no parameters are required, adding clarity beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to verify the health of the API BrazilNFe, including status, timestamp, and version. It explicitly mentions no parameters. This distinguishes it from siblings, none of which are health-checks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for health checking, but does not provide explicit guidance on when to use versus alternatives (e.g., sefaz_status). No 'when not to use' or context is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
imposto_calcularSimular cálculo de impostosARead-onlyIdempotentInspect
Simula o cálculo de impostos (ICMS, PIS, COFINS, IPI, ST) sobre uma lista de produtos sem emitir nota. Útil para precificação.
| Name | Required | Description | Default |
|---|---|---|---|
| Count | No | ||
| Capacity | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| Error | No | Mensagem de erro da operação. Vazia ("") quando foi bem-sucedida. |
| Total | No | |
| Avisos | No | Avisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida. |
| Impostos | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and idempotentHint=true. The description adds that it simulates without issuing a note, confirming non-destructive behavior. It lists the specific taxes simulated. No contradictions. The output schema (mentioned in context) likely covers return values, so description does not need to detail them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that efficiently conveys purpose and key limitations. However, it could be slightly more structured to also introduce parameters without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given simple complexity, good annotations, and an output schema, the description covers purpose and usage context. The major gap is the complete lack of parameter semantics, which hinders the agent from using the tool correctly. Additional details about the parameters are needed for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has two integer parameters (Count, Capacity) with 0% description coverage. The tool description does not mention or explain these parameters. 'Lista de produtos' suggests some relation but not mapped to Count/Capacity. Without explanation, an AI agent cannot understand or correctly use these parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it simulates tax calculation (ICMS, PIS, COFINS, IPI, ST) on a list of products without issuing a note. The verb 'simular' and resource 'cálculo de impostos' are specific. This distinguishes it from siblings like nfe_emitir (issue invoice) and nfe_previsualizar (preview invoice).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states the tool simulates without issuing a note ('sem emitir nota') and positions it for pricing ('Útil para precificação'). This gives clear context. Though it does not explicitly name alternatives or when not to use, the sibling list and the 'without emitting' clause help differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mdfe_emitirEmitir MDF-eAInspect
Emite MDF-e (Manifesto Eletrônico de Documentos Fiscais), agrupando vários CT-e/NF-e em um único transporte. Obrigatório para transportadores com vários DFs no mesmo veículo.
| Name | Required | Description | Default |
|---|---|---|---|
| lote | No | ||
| peso | Yes | Peso bruto total das mercadorias em KG. DEVE ser > 0. | |
| Aereo | No | ||
| serie | No | ||
| valor | Yes | Valor total das mercadorias transportadas. DEVE ser > 0. | |
| codigo | No | ||
| numero | No | ||
| seguros | No | ||
| Aquaviario | No | ||
| Rodoviario | No | Dados do transporte rodoviário (placa 7 caracteres, condutores com CPF/nome, UF do veículo). OBRIGATÓRIO quando modalidade = 1. | |
| modalidade | Yes | Modalidade de transporte. Valores: 1 - Rodoviário (exige objeto Rodoviario com placa, condutores e percurso); 2 - Aéreo (exige objeto Aereo); 3 - Aquaviário (exige objeto Aquaviario); 4 - Ferroviário (exige objeto Ferroviario) | |
| observacao | No | ||
| DataEmissao | No | Data/hora ISO 8601 (ex: 2026-07-22T13:45:00-03:00) | |
| Ferroviario | No | ||
| percursoUfs | No | ||
| tipoAmbiente | Yes | Tipo de ambiente. IMPORTANTE: passe explicitamente. Para testes use 2. Valores: 1 - Produção; 2 - Homologação | |
| tipoEmitente | Yes | Tipo de emitente. Valores: 1 - Prestador de Serviço de Transporte (transportadora); 2 - Transportador de carga própria (mais comum - empresa transportando seus próprios produtos) | |
| carregamentos | No | ||
| ufCarregamento | Yes | UF de carregamento (origem). Sigla de 2 letras (SP, RJ, MG...). | |
| observacaoFisco | No | ||
| descarregamentos | No | ||
| ufDescarregamento | Yes | UF de descarregamento (destino). Sigla de 2 letras (SP, RJ, MG...). | |
| produtoPredominante | No | Produto predominante transportado. Opcional. | |
| identificadorInterno | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| Error | No | Mensagem de erro da operação. Vazia ("") quando foi bem-sucedida. |
| chave | No | |
| Avisos | No | Avisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida. |
| numero | No | |
| status | No | 1 - Lote processado; 2 - Aguardando processamento; 3 - Ocorreu um erro ao processar o lote |
| base64Xml | No | |
| base64DAMDFe | No | |
| tipoAmbiente | No | |
| codRespostaSefaz | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are sparse (only openWorldHint), so the description carries the burden of behavioral disclosure. It adds useful context about grouping behavior and mandatory usage, but does not explain post-emission behavior, return values, or failure modes. The openWorldHint already signals side effects, but the description adds only limited extra behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, with two sentences that each add value: the first defines the action and purpose, the second states a key usage condition. No wasted words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's high complexity (24 parameters, nested structures) and low schema coverage, a two-sentence description is inadequate. It fails to mention prerequisites like referencing existing CT-e/NF-e keys, how to structure the grouped documents, or important environmental parameters like tipoAmbiente. The presence of an output schema reduces the burden for return values, but the description still lacks sufficient guidance for safe and correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool description contains no parameter information whatsoever. With schema description coverage at only 42%, the description needed to compensate for the many undocumented parameters (e.g., lote, serie, codigo, numero, carregamentos, descarregamentos), but it does not. This is a critical gap for such a large parameter set.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the specific action ('Emite MDF-e') and resource (Manifesto Eletrônico de Documentos Fiscais), and explains it groups multiple CT-e/NF-e into a single transport. This differentiates it from sibling emission tools like cte_emitir and nfe_emitir.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides an explicit when-to-use condition: 'Obrigatório para transportadores com vários DFs no mesmo veículo.' However, it does not name alternative tools or state when not to use it, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mdfe_encerrarEncerrar MDF-eAInspect
Encerra um MDF-e já autorizado (evento tipo 3). Obrigatório ao final de cada transporte. Sem encerramento, novos MDF-e podem ser bloqueados pela SEFAZ.
| Name | Required | Description | Default |
|---|---|---|---|
| chave | Yes | Chave de acesso de 44 dígitos do MDF-e a encerrar. | |
| protocolo | No | Protocolo de autorização do MDF-e original. Opcional - se omitido, o sistema localiza pela chave. | |
| tipoAmbiente | Yes | Ambiente do MDF-e original (DEVE bater com o ambiente onde o manifesto foi emitido). IMPORTANTE: passe explicitamente. ATENÇÃO: encerramento é DEFINITIVO - revise os dados antes. Valores: 1 - Produção; 2 - Homologação | |
| numeroSequencial | No | Número sequencial do evento. Se omitido, o sistema usa o próximo disponível. |
Output Schema
| Name | Required | Description |
|---|---|---|
| Error | No | Mensagem de erro da operação. Vazia ("") quando foi bem-sucedida. |
| Avisos | No | Avisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida. |
| Status | No | 1 - Evento Processado; 2 - Aguardando processamento do evento; 3 - Ocorreu um erro ao processar o evento |
| DsEvento | No | |
| DsMotivo | No | |
| Base64Xml | No | XML do evento processado (procEventoNFe) em Base64. Preenchido apenas quando o evento e autorizado (cStat 135) e o documento e NF-e (modelo 55). Nulo nos demais casos. |
| Base64File | No | PDF do documento auxiliar do evento (ex.: Carta de Correcao) em Base64. Preenchido apenas quando o evento e autorizado e a nota existe na base. Nulo nos demais casos. |
| DsAmbiente | No | |
| NuProtocolo | No | |
| NumeroSequencial | No | |
| CodStatusRespostaSefaz | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description warns that encerramento is 'DEFINITIVO' and advises to review data before proceeding. This clearly communicates the irreversible side effect, even though no explicit destructiveHint is present in annotations. The warning is embedded in the parameter description but is part of the tool's overall documentation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, using three short sentences to convey purpose, obligation, and consequence. Each parameter description is focused and free of unnecessary verbiage, achieving high information density without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (4 params, 2 required) and the presence of an output schema, the description covers all necessary context: what it does, when to use it, the irreversible nature, and parameter semantics. No critical information is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All four parameters have detailed descriptions that go beyond basic field names. For example, tipoAmbiente includes explicit instructions to pass it explicitly, explains the valid values, and reiterates the definitive nature. The chave description specifies its 44-digit format, and protocolo notes it can be omitted with fallback behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Encerra um MDF-e já autorizado (evento tipo 3)', with a specific verb and resource. It also explains the mandatory nature at the end of transport, making its purpose unambiguous and distinct from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit trigger conditions ('Obrigatório ao final de cada transporte') and consequences of non-use ('novos MDF-e podem ser bloqueados pela SEFAZ'). This frames when the tool must be invoked, which is sufficient guidance given the unique nature of the operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nfe_emitirEmitir NF-e ou NFC-eAInspect
Emite uma NF-e (modelo 55) ou NFC-e (modelo 65) na SEFAZ. Use modeloDocumento=55 para NF-e (B2B com destinatário CPF/CNPJ) ou modeloDocumento=65 para NFC-e (consumidor final). Retorna chave de acesso (44 dígitos), número, protocolo, status e XML/DANFE em base64. Operação síncrona (pode levar 5-30s). Use tipoAmbiente=2 (homologação) para testes.
| Name | Required | Description | Default |
|---|---|---|---|
| Lote | No | Lote da Nota Fiscal | |
| Serie | No | Série da nota Fiscal | |
| Codigo | No | B03 - Código numérico que compõe a Chave de Acesso. Número aleatório gerado pelo emitente para cada NF-e. | |
| Numero | No | Número da nota fiscal | |
| Cliente | No | Destinatário da nota. OBRIGATÓRIO para NF-e (modelo 55). Para NFC-e (modelo 65) só é obrigatório quando IndicadorPresenca = 4 (entrega a domicílio). Quando informado para NF-e mod 55, exige: CpfCnpj, NmCliente, IndicadorIe (1/2/9), Endereco com Logradouro e UF (e CEP/Município/Bairro quando não exportação). | |
| Entrega | No | ||
| Exporta | No | ||
| Cobranca | No | ||
| Produtos | Yes | Itens da nota fiscal. Mínimo 1 item. | |
| Retencoes | No | Retenções federais totais da nota (IRRF, PIS/COFINS/CSLL retidos, Previdência). Gera a tag retTrib no XML. | |
| TipoDanfe | No | Formato de impressão do DANFE (tag tpImp da NF-e). Não informado = padrão atual (1-Retrato para NF-e, 4 para NFC-e). Valores: 0 - Sem geração de DANFE; 1 - DANFE normal, Retrato (padrão NF-e); 2 - DANFE normal, Paisagem; 3 - DANFE Simplificado; 4 - DANFE NFC-e (padrão NFC-e; somente modelo 65); 5 - DANFE NFC-e em mensagem eletrônica (somente modelo 65); 6 - DANFE Simplificado Tipo 2 (NT 2026.002/2026.003, Ajuste SINIEF 13/26; somente modelo 55) - NF-e de varejo em operação típica de NFC-e, impressa em bobina com QR Code. Exige operação interna (CFOP 5xxx), consumidor final, finalidade 1-Normal, saída, sem notas referenciadas e IndicadorPresenca 1, 4 ou 5. | |
| Finalidade | Yes | Finalidade da emissão da NF. Valores: 1 - Normal (caso mais comum); 2 - Complementar (referenciando NF anterior em NFReferencia); 3 - Ajuste; 4 - Devolução; 5 - Nota de crédito; 6 - Nota de débito | |
| Observacao | No | ||
| Pagamentos | No | Formas de pagamento. OBRIGATÓRIO quando Finalidade = 1 (Normal). Para finalidades 2/3/4/5/6 pode ficar vazio. Para NFC-e (mod 65) deve haver pelo menos um pagamento com FormaPagamento diferente de "90" (sem pagamento). | |
| TpNFDebito | No | Tipo de Nota de Débito. Obrigatório quando Finalidade = 6. Código SEFAZ: Valores: 1 - Transferência de créditos para Cooperativas; 2 - Anulação de Crédito por Saídas Imunes/Isentas; 3 - Débitos de notas fiscais não processadas na apuração; 4 - Multa e juros; 5 - Transferência de crédito de sucessão; 6 - Pagamento antecipado; 7 - Perda em estoque | |
| Transporte | No | ||
| ValorFrete | No | Valor total do frete da nota. Quando informado, é distribuído proporcionalmente entre os itens (proporção pelo ValorTotal de cada item), SUBSTITUINDO o ValorFrete informado em cada produto. Não informado (nulo) = o frete de cada item é usado como enviado. | |
| ValorTotal | No | Valor total esperado da nota (vNF), usado apenas para validação. Quando informado e diferente do valor total calculado (produtos - descontos + frete + seguro + outras despesas + impostos que compõem o total), a emissão é bloqueada e o erro detalha o cálculo. Não informado (nulo) = sem validação. | |
| DataEmissao | No | Data e Hora da saída ou de entrada da produto/serviço (Envia a data atual caso não informada) | |
| EnviarEmail | No | ||
| TpNFCredito | No | Tipo de Nota de Crédito. Obrigatório quando Finalidade = 5. Código SEFAZ: Valores: 1 - Multa e juros; 2 - Apropriação de crédito presumido de IBS sobre saldo devedor na ZFM; 3 - Retorno por recusa total na entrega ou por não localização do destinatário; 4 - Redução de valores; 5 - Transferência de crédito na sucessão; 6 - Retorno por recusa parcial na entrega | |
| CalcularIBPT | No | Indica operação com Consumidor final (NFCe de ser 1 Validar!) | |
| NFReferencia | No | Notas fiscal de Referência | |
| TipoAmbiente | Yes | Identificação do ambiente da SEFAZ. Valores: 1 - Produção (emissão REAL, com valor fiscal, irreversível); 2 - Homologação (teste, sem valor fiscal - use durante desenvolvimento e testes) | |
| Intermediador | No | Dados do intermediador/marketplace (site ou plataforma de terceiros). | |
| Justificativa | No | Utilizar quando o tipo de emissão for diferente normal | |
| ConsumidorFinal | No | Indica operação com Consumidor final (NFCe de ser 1 Validar!) | |
| ModeloDocumento | Yes | Código do modelo do Documento Fiscal. Valores: 55 - NF-e (B2B / com destinatário CPF/CNPJ identificado); 65 - NFC-e (consumidor final / varejo) | |
| ObservacaoFisco | No | ||
| DataEntradaSaida | No | Data e Hora da saída ou de entrada da produto/serviço | |
| NaturezaOperacao | Yes | Descrição da natureza da operação (máx 60 caracteres). Exemplos: "Venda de mercadoria", "Remessa para industrialização", "Devolução de venda". | |
| IndicadorPresenca | Yes | Indicador de presença do comprador no estabelecimento comercial no momento da operação. Padrão sugerido para NF-e B2B = 9 (operação não presencial, outros). Para NFC-e varejo = 1 (presencial). Valores: 0 - Não se aplica; 1 - Operação presencial;; 2 - Operação não presencial, pela Internet;; 3 - Operação não presencial, Teleatendimento;; 4 - NFC-e em operação com entrega a domicílio;; 5 - Presencial fora do estabelecimento;; 9 - Operação não presencial, outros. | |
| IdentificadorInterno | No | ||
| NFPagamentoAntecipado | No | Grupo de notas de antecipação de pagamento (gPagAntecipado - Reforma Tributária). |
Output Schema
| Name | Required | Description |
|---|---|---|
| Error | No | Mensagem de erro da operação. Vazia ("") quando foi bem-sucedida. |
| Avisos | No | Avisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida. |
| ReturnNF | No | |
| Base64Xml | No | |
| Base64File | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With only openWorldHint in annotations, the description carries the behavioral burden and does well: it discloses that the operation is synchronous, can take 5-30s, and returns key, number, protocol, status, and XML/DANFE in base64. It does not explicitly state that production emissions are irreversible or legally binding, though the test-environment hint partially mitigates that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: it states the operation, the two modes, the return values, the latency, and the test environment in five sentences with no filler. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the tool's complexity and 34 parameters, the description covers the essential decision points: which document model to use, what to expect in the response, timing behavior, and testing environment. It does not mention relationships to complementar/cancel events or prerequisites like certificates, but the rich schema and output schema offset much of that gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 76%, so the schema already documents most parameters in detail. The description adds usage-oriented meaning for modeloDocumento and tipoAmbiente, but largely repeats what the schema already says rather than adding genuinely new parameter-level insight.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Emite'), the resource ('NF-e modelo 55 / NFC-e modelo 65'), and target ('na SEFAZ'), making the core purpose unambiguous. It distinguishes the two document models, though it does not explicitly differentiate itself from siblings like nfe_emitir_complementar or nfe_previsualizar.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives concrete usage direction: modeloDocumento=55 for NF-e (B2B), modeloDocumento=65 for NFC-e, and tipoAmbiente=2 for tests. It provides clear context for when each mode is appropriate, but does not explicitly state when to prefer a sibling tool such as nfe_emitir_complementar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nfe_emitir_complementarEmitir NF-e complementarAInspect
Emite uma NF-e complementar referenciando uma NF-e já autorizada. Usado para complementar valores, impostos ou itens (finalidade=2). Informe a chave da nota original em NFReferencia.
| Name | Required | Description | Default |
|---|---|---|---|
| CFOP | No | CFOP | |
| Lote | No | Lote da Nota Fiscal | |
| Serie | No | Série da nota Fiscal | |
| Codigo | No | Código numérico que compõe a Chave de Acesso. Número aleatório gerado pelo emitente para cada NF-e. | |
| Numero | No | Número da nota fiscal | |
| Cliente | No | ||
| Cobranca | No | ||
| Produtos | No | ||
| Observacao | No | ||
| Transporte | No | ||
| NFReferencia | No | Notas fiscal de Referência | |
| TipoAmbiente | No | Identificação do Ambiente Valores: 1 - Produção; 2 - Homologação | |
| ObservacaoFisco | No | ||
| TipoComplemento | No | Tipo de complemento Valores: 0 - Complementar quantidade ou valor; 1 - Complementar impostos | |
| NaturezaOperacao | No | Descrição da Natureza da Operação | |
| ImpostoComplementar | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| Error | No | Mensagem de erro da operação. Vazia ("") quando foi bem-sucedida. |
| Avisos | No | Avisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida. |
| ReturnNF | No | |
| Base64Xml | No | |
| Base64File | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With only openWorldHint annotation, the description carries the burden of explaining the tool's behavior. It discloses that the tool requires an already authorized NF-e and directs the user to provide the original key in NFReferencia, adding meaningful behavioral context beyond the annotation. It does not enumerate all technical side effects (e.g., SEFAZ submission), but the essential behavior is transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no fluff. The first states the core action, the second gives the use case and the key parameter. Information is front-loaded and every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 16 parameters and a complex fiscal domain, the description is minimal. It omits guidance on TipoComplemento, ImpostoComplementar, and how to handle item-level complements. The output schema may cover return values, but an agent would struggle to know the full set of considerations for correct usage, so the description is merely adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description explicitly instructs to pass the original invoice key in NFReferencia, adding meaningful value beyond the schema's vague 'Notas fiscal de Referência'. With schema coverage at 56%, highlighting this critical parameter helps agents avoid misusing the tool. However, it does not clarify the distinction between TipoComplemento values or the ImpostoComplementar structure, so it's not a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool emits a complementary NF-e referencing an already authorized NF-e, using the specific verb 'Emite' and the resource 'NF-e complementar'. It distinguishes itself from sibling tools like nfe_emitir through the qualifier 'complementar' and the explicit finalidade=2 context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear usage context: for complementing values, taxes, or items of an already authorized invoice. It does not explicitly name alternative tools (e.g., nfe_emitir for normal invoices), but the reference to a previously authorized NF-e and finalidade=2 gives an agent enough context to select this over a regular emission.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nfenercom_emitirEmitir NF-EnerComBInspect
Envia a NF-EnerCom (Nota Fiscal de Energia Comercializada) para autorização na SEFAZ.
| Name | Required | Description | Default |
|---|---|---|---|
| serie | No | Série da nota fiscal. Quando não informado é controlado pelo Painel | |
| numero | No | Número da nota fiscal. Quando não informado é controlado pelo Painel | |
| energia | No | Informações referente a nota de Energia | |
| produtos | Yes | Itens da nota (mínimo 1). Cada item exige codigo, descricao, unidadeMedida, quantidade, valor, CFOP. | |
| situacao | No | Situação do documento (Padrão 4) Valores: 1 - documento fiscal cancelado dentro do mesmo período de apuração;; 2 - documento fiscal emitido em substituição a um documento fiscal cancelado dentro do mesmo período de apuração; 3 - documento fiscal complementar; 4 - demais casos | |
| comunicao | No | Informações referente a nota de comunicação e Telecomunicação | |
| dataEmissao | Yes | Data de emissão do documento. Obrigatória. | |
| destinatario | Yes | Informações do destinatário (cliente). OBRIGATÓRIO. | |
| tipoAmbiente | Yes | Tipo de ambiente. Valores: 1 - Produção; 2 - Homologação | |
| modeloDocumento | Yes | Modelo do documento. Valores: 6 - Energia elétrica; 21 - Comunicação; 22 - Telecomunicação | |
| valorTotalFatura | Yes | Valor total da fatura comercial. Deve ser > 0. | |
| identificadorInterno | No | Código de controle interno unico da venda. Evita duplicidades, caso configurado. |
Output Schema
| Name | Required | Description |
|---|---|---|
| erros | No | Lista de erros quando a operação falha. Vazia em caso de sucesso. Cada item traz codigo, descricao e correcao. |
| avisos | No | Avisos não bloqueantes. Pode vir preenchida mesmo em sucesso. |
| status | No | Status do resultado da operação: 1 = sucesso; 2 = erro (a lista erros é preenchida). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only include openWorldHint=true, so the description carries the burden. It discloses that the tool sends to SEFAZ (external system), implying network dependency and authorization. However, it does not mention synchronous vs. asynchronous behavior, potential errors, or side effects beyond sending. Lacks detail for a mutation tool with external interaction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no redundancy, front-loaded with the core action. Every word contributes to understanding the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (12 parameters, required fields, nested objects, and external authorization), the description is too sparse. It lacks prerequisites (e.g., required certificates, SEFAZ configuration), error handling notes, and any mention of idempotency or duplication control (despite the 'identificadorInterno' parameter hinting at it). While an output schema may explain return values, the description fails to provide sufficient context for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The tool description adds no additional meaning to any parameter. Baseline of 3 is appropriate given full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool sends the NF-EnerCom to SEFAZ for authorization, distinguishing it from sibling tools like nfenercom_gerar_arquivo (which only generates the file) and nfe_emitir (general NF-e emission). The verb 'Envia' plus the explicit target 'autorização na SEFAZ' leaves no ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs. alternatives (e.g., nfenercom_gerar_arquivo for file generation without sending, or nfe_emitir for other document models). The description does not state prerequisites, context requirements, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nfenercom_gerar_arquivoGerar arquivo NF-EnerComAInspect
Gera o arquivo da Nota Fiscal de Energia (NF-EnerCom). Pré-requisito para nfenercom_emitir.
| Name | Required | Description | Default |
|---|---|---|---|
| ano | No | Ano de emissão das notas (4 dígitos). Obrigatório quando tipoGeracao = 1. | |
| mes | No | Mês de emissão das notas (1-12). Obrigatório quando tipoGeracao = 1. | |
| notas | No | Notas Fiscais de Energia/Comunicação/Telecomunicação a incluir no arquivo. Obrigatório quando tipoGeracao = 2. | |
| tipoGeracao | Yes | Tipo de geração do arquivo. Valores: 1 - Gera o arquivo a partir das notas já emitidas no período (mes + ano informados); 2 - Gera o arquivo a partir da lista de notas informada em "notas" | |
| tipoAmbiente | Yes | Tipo de ambiente. Valores: 1 - Produção; 2 - Homologação |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide only a title; no readOnlyHint, destructiveHint, or other behavioral flags. The description merely states the generation action without disclosing side effects, required permissions, file overwrite behavior, or state changes. For a tool that likely creates a file, this is insufficient transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—two sentences that front-load the core purpose and prerequisite relation. No superfluous words; every sentence contributes value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite a complex input schema (5 parameters, nested objects for notas), the description provides only a high-level summary and prerequisite hint. It omits any reference to return values, error conditions, file format, or validation rules, which is inadequate given the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema fully documents all five parameters. The description adds no additional semantics or context for any parameter, achieving only the baseline expectation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates the NF-EnerCom file (specific verb 'gera' and resource 'arquivo da Nota Fiscal de Energia') and explicitly positions it as a prerequisite for the sibling tool nfenercom_emitir.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly links the tool as a prerequisite for nfenercom_emitir, providing clear contextual guidance. However, it does not elaborate on alternative tools or when to use each generation mode (tipoGeracao 1 vs 2), which are detailed only in the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nfe_previsualizarPré-visualizar DANFEARead-onlyIdempotentInspect
Gera o DANFE em PDF como pré-visualização, sem enviar para a SEFAZ. Útil para conferência visual antes de emitir.
| Name | Required | Description | Default |
|---|---|---|---|
| cte | No | CT-e (modelo 57/67). Usado quando TipoEnvio = 1. Gera o DACTE/XML de pré-visualização. | |
| dce | No | DC-e (modelo 99). Usado quando TipoEnvio = 1. Gera o DACE/XML de pré-visualização. | |
| mdfe | No | MDF-e (modelo 58). Usado quando TipoEnvio = 1. Gera o DAMDFE/XML de pré-visualização. | |
| nfse | No | NFS-e. Usado quando TipoEnvio = 1. Gera o DANFSe/XML de pré-visualização (sem validade jurídica). | |
| Base64Xml | No | ||
| TipoEnvio | No | Tipo do envio no qual será convertido para o tipo do arquivo informado (Padrão - 0) Valores: 0 - Base64 contendo as informações do XML; 1 - Objeto contendo as informações das notas fiscais | |
| notaFiscal | No | NF-e / NFC-e (modelo 55/65). Usado quando TipoEnvio = 1. Gera o DANFE/XML de pré-visualização. | |
| TipoArquivo | No | Tipo do arquivo que deseja pré-visualizar (Padrão - 0) Valores: 0 - XML; 1 - PDF | |
| mostrarTarjaPreVisualizacao | No | Mostrar tarja "SEM VALOR FISCAL - PRÉ-VISUALIZAÇÃO" (Padrão - Verdadeiro) Somente para o tipo de arquivo PDF e se um dos serviços de emissão estiver ativo para a empresa |
Output Schema
| Name | Required | Description |
|---|---|---|
| Error | No | Mensagem de erro da operação. Vazia ("") quando foi bem-sucedida. |
| Avisos | No | Avisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida. |
| Status | No | |
| Base64File | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and idempotentHint=true, which cover safety. The description adds the key behavioral trait that no submission to SEFAZ occurs ('sem enviar para a SEFAZ') and the preview nature ('pré-visualização'). This is meaningful additional context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no redundancy. The core verb/resource/constraint ('Gera', 'DANFE em PDF', 'sem enviar para a SEFAZ') is front-loaded, and the use-case context ('Útil para conferência visual antes de emitir') is concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich schema (89% coverage), output schema, and annotations covering safety, the description is largely complete. It lacks explicit mention of the output document format nuances (e.g., which DANFE variants are generated per document type) but the schema covers the document types.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 89%, so the baseline is 3. The description adds value by clarifying that the tool accepts various document types (nf, cte, dce, mdfe, nfse) and generates preview PDFs/XML - context not fully evident from the schema alone. However, it doesn't detail parameter-specific semantics beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Gera'), resource ('DANFE em PDF'), and mode ('pré-visualização', 'sem enviar para a SEFAZ'). The title 'Pré-visualizar DANFE' is reinforced with clear differentiation from emission tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly indicates when to use this tool: 'para conferência visual antes de emitir' and states the key exclusion 'sem enviar para a SEFAZ'. It implicitly distinguishes from emission tools (nfe_emitir, cte_emitir, etc.) by emphasizing it does NOT submit to SEFAZ, though it doesn't name alternatives explicitly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nfse_consultarConsultar NFS-eARead-onlyIdempotentInspect
Consulta status e dados de uma NFS-e já enviada por número, série e ambiente.
| Name | Required | Description | Default |
|---|---|---|---|
| Rps | No | Rps para retornar (Se não enviar retorna todos) | |
| codLote | No | Código do lote |
Output Schema
| Name | Required | Description |
|---|---|---|
| Lote | No | Número do lote enviado; |
| Error | No | Mensagem de erro da operação. Vazia ("") quando foi bem-sucedida. |
| Notas | No | |
| Avisos | No | Avisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida. |
| CodLote | No | Código atrelado ao lote; - Usado para busca de lotes |
| Protocolo | No | Número de protocolo do lote |
| StatusLote | No | 1 - Lote processado; 2 - Aguardando processamento; 3 - Ocorreu um erro ao processar o lote; 4 - Ocorreu um erro ao analisar as informações do lote |
| Base64XmlLote | No | Dados xml do lote, bytes em base64 |
| DsTipoAmbiente | No | Descrição do ambiente de envio |
| MunicipioEnvio | No | Municipio onde foi enviado |
| CodTipoAmbiente | No | Código do ambiente de envio |
| DataRecebimento | No | Data de recebimento do lote; |
| TempoRequisicaoPrefeitura | No | Tempo total da transmissão para prefeitura em milisegundos |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the description's disclosure of 'consulta status e dados' adds little beyond that. No behavioral traits beyond annotations are revealed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the purpose. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the existence of an output schema and clear annotations, the description is adequate but fails to explain how the parameters relate to the query criteria mentioned. Missing detail on what exactly is returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description mentions 'número, série e ambiente' which are not present as parameter names; the actual parameters are 'Rps' and 'codLote'. This mismatch adds confusion rather than clarity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'consulta' and the resource 'NFS-e já enviada', specifying query criteria (número, série e ambiente). It effectively distinguishes from sibling tool 'nfse_emitir' which is for emission.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for already-sent NFS-e but provides no explicit guidance on when to use it vs. other tools, nor exclusion criteria. Usage context is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nfse_emitirEmitir NFS-e (serviços)AInspect
Emite NFS-e (Nota Fiscal de Serviços Eletrônica). Cada município brasileiro tem regras e webservices próprios - confira o município emissor antes. Pode usar Portal Nacional NFS-e ou prefeitura específica conforme cadastro da empresa.
| Name | Required | Description | Default |
|---|---|---|---|
| Lote | No | ||
| nFSInfo | Yes | Lista de NFS-e a emitir no lote. Mínimo 1 item. | |
| TipoAmbiente | Yes | Identificação do ambiente da prefeitura/portal nacional. Valores: 1 - Produção (emissão REAL, com valor fiscal); 2 - Homologação (teste) |
Output Schema
| Name | Required | Description |
|---|---|---|
| Lote | No | Número do lote enviado; |
| Error | No | Mensagem de erro da operação. Vazia ("") quando foi bem-sucedida. |
| Notas | No | |
| Avisos | No | Avisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida. |
| CodLote | No | Código atrelado ao lote; - Usado para busca de lotes |
| Protocolo | No | Número de protocolo do lote |
| StatusLote | No | 1 - Lote processado; 2 - Aguardando processamento; 3 - Ocorreu um erro ao processar o lote; 4 - Ocorreu um erro ao analisar as informações do lote |
| Base64XmlLote | No | Dados xml do lote, bytes em base64 |
| DsTipoAmbiente | No | Descrição do ambiente de envio |
| MunicipioEnvio | No | Municipio onde foi enviado |
| CodTipoAmbiente | No | Código do ambiente de envio |
| DataRecebimento | No | Data de recebimento do lote; |
| TempoRequisicaoPrefeitura | No | Tempo total da transmissão para prefeitura em milisegundos |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With only openWorldHint available, the description adds useful context about municipality-specific rules, webservices, and routing based on company registration. However, it does not mention side effects such as the fiscal/legal weight of a production emission, required credentials, or what happens after successful submission.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no filler: the core action comes first, followed by the two essential caveats about municipality-specific rules and routing. Every sentence earns its place in a domain with heavy regulatory complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The most important non-obvious context is present: municipality-dependent rules/webservices and the choice between Portal Nacional and a specific prefeitura. It could more explicitly warn that TipoAmbiente=1 is a real, fiscally valid emission, but the schema already documents the environment enum, and an output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool description itself adds no parameter-level meaning, leaving the schema to explain TipoAmbiente and nFSInfo. With 67% schema description coverage and the large nested schema already carrying most parameter semantics, a mid score is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action and resource: 'Emite NFS-e (Nota Fiscal de Serviços Eletrônica)', and the title adds '(serviços)' to distinguish it from product-invoice siblings like nfe_emitir. The description also clarifies the two possible delivery channels, so an agent can identify this as the service-invoice emission tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear operational context: the issuing municipality must be checked first, and the tool may use Portal Nacional NFS-e or a specific prefeitura depending on company registration. It does not explicitly name alternative tools such as nfse_consultar or state when not to use the tool, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nota_listarListar notas fiscaisBRead-onlyIdempotentInspect
Lista NF-e/NFC-e/NFS-e emitidas ou recebidas pela empresa em um intervalo de datas. Suporta filtros por chave, número, status e tipo.
| Name | Required | Description | Default |
|---|---|---|---|
| DtFim | No | Data final da busca | |
| DtInicio | No | Data inicial da busca | |
| TipoAmbiente | No | Tipo de ambiente (Padrão 1 - Produção) Valores: 1 - Produção; 2 - Homologação | |
| TipoParticipacao | No | Como a empresa participa das notas de entrada (Padrão 0 - Destinatário). Somente para TipoDocumentoFiscal = 0. Valores: 0 - Destinatário (comportamento padrão); 1 - Transportadora (NF-e onde a empresa é citada como transportadora ou terceiro autorizado); 2 - Ambos | |
| TipoDocumentoFiscal | No | Tipo do documento fiscal (Padrão 0 - Entrada) Valores: 0 - Entradas; 1 - Saídas | |
| IdentificadorInterno | No | Busca notas que possui o código interno informado (somente saídas) |
Output Schema
| Name | Required | Description |
|---|---|---|
| Error | No | Mensagem de erro da operação. Vazia ("") quando foi bem-sucedida. |
| Notas | No | |
| Avisos | No | Avisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, covering the safety profile. The description adds the date-range and invoice-type context, but its claim of filters for chave, número, and status conflicts with the schema and is a misleading disclosure; it also omits pagination/limit behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded in the first sentence, but the second sentence contains an inaccurate list of filters. A concise description is only valuable if every sentence earns its place, and this one does not.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a rich schema, output schema, and readOnly/idempotent annotations, the description is mostly sufficient for a list operation. It misses pagination/limits, date-format details, and an accurate mapping of actual filter parameters, but the output schema covers return-value details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds some meaning by naming NF-e/NFC-e/NFS-e and emitted/received types, but it does not clarify DtInicio/DtFim date format or correct the unsupported 'status' filter claim.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence uses a specific verb and resource ('Lista NF-e/NFC-e/NFS-e') with a date-range scope, making the core purpose clear. However, the second sentence advertises filters for chave, número, and status that do not exist in the input schema, which detracts from precision.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The date-range and emitted/received framing implies this is for broad invoice listing, but the description never explicitly says when to prefer it over sibling consult/emission tools or lists exclusions. There is implied usage context, not explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
produto_consultarConsultar produto por codigo, NCM, GTIN ou descricaoARead-onlyIdempotentInspect
Pesquisa produto no cadastro da empresa logada. Aceita codigo interno, NCM (8 digitos), GTIN/EAN (8/12/13/14 digitos) ou descricao parcial. Use ANTES de criar produtos novos para evitar duplicatas. PAGINACAO: Limite default 20 (max 50). Use Offset pra ir alem - o retorno traz TotalGeral. Se TotalGeral > matches retornados, peça mais paginas em vez de inventar/agrupar.
| Name | Required | Description | Default |
|---|---|---|---|
| Termo | No | ||
| Limite | No | ||
| Offset | No | ||
| TipoBusca | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| Avisos | No | |
| Limite | No | |
| Offset | No | |
| Matches | No | |
| TotalGeral | No | |
| TotalLocal | No | |
| TipoDetectado | No | |
| TermoNormalizado | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint true, indicating a safe read operation. The description adds pagination behavior (default 20, max 50, offset, TotalGeral) and warns against inventing or grouping results, which goes beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. The first sentence states the purpose and inputs, the second covers pagination. It is front-loaded with the most important information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 4 parameters (none required) and an output schema (not shown). The description covers the primary use case and pagination well, but fails to explain the TipoBusca parameter. Given the output schema exists, the description is mostly complete but has a notable gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, the description must compensate. It explains that the Termo parameter can accept internal code, NCM (8 digits), GTIN/EAN (8/12/13/14 digits), or partial description. It also hints at pagination parameters (Limite default 20 max 50, Offset). However, the TipoBusca parameter is not explained, leaving a gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Title and description clearly specify that this tool queries products by internal code, NCM, GTIN, or partial description. It distinguishes from siblings like produto_criar by advising to use before creating new products to avoid duplicates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states to use this tool before creating new products to avoid duplicates, providing a clear when-to-use guideline. It does not explicitly state when not to use it, but the context from sibling tools implies alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
produto_criarCadastrar novo produtoAInspect
Cadastra um novo Produto na empresa logada. Validacao de duplicata por Codigo. NCM aceito com 7 ou 8 digitos (zero-pad automatico). EAN/GTIN validado por digito verificador.
| Name | Required | Description | Default |
|---|---|---|---|
| Id | No | ||
| Ean | No | ||
| Ncm | No | ||
| Cest | No | ||
| Codigo | Yes | ||
| Descricao | Yes | ||
| FatorConversao | No | ||
| QuantidadeEstoque | No | ||
| ValorUnitarioVenda | Yes | ||
| UnidadeMedidaVendaSigla | Yes | ||
| UnidadeMedidaCompraSigla | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| Id | No | |
| Ok | No | |
| Erro | No | |
| Produto | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral details beyond the sparse annotations: duplicate validation by Codigo, automatic zero-padding for NCM, and check digit validation for EAN/GTIN. These are important mutations that the agent should know.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences with essential information front-loaded. No redundant or vague wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 11 parameters and presence of an output schema, the description covers key validations for critical fields but omits behavior for optional parameters. Some context is provided, but not fully complete for a tool with many optional inputs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It adds meaning for 'Codigo' (duplicate check), 'Ncm' (format constraints), and 'Ean' (validation). However, it does not explain other parameters like 'Id', 'Cest', 'FatorConversao', leaving gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Cadastra um novo Produto na empresa logada', clearly indicating the verb (cadastrar/criar) and resource (Produto), and it distinguishes from sibling tools like 'produto_editar' and 'produto_consultar'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions validation rules for duplicate code, NCM format, and EAN check digit, which guide when the tool is appropriate. However, it does not explicitly state when not to use or list alternatives, but the context of sibling tools makes it clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
produto_editarEditar produto cadastradoAIdempotentInspect
Atualiza um Produto existente. Id obrigatorio. ATENCAO: envie o payload COMPLETO - campos omitidos sao zerados. Faca produto_consultar antes pra ter os dados atuais, depois envie tudo + o que muda. Valida ownership por UserCreate (produto tem que pertencer ao usuario logado) e por empresa (IdEmpresa tem que ser a logada ou 0 - se for outra empresa sua, troque antes).
| Name | Required | Description | Default |
|---|---|---|---|
| Id | No | ||
| Ean | No | ||
| Ncm | No | ||
| Cest | No | ||
| Codigo | Yes | ||
| Descricao | Yes | ||
| FatorConversao | No | ||
| QuantidadeEstoque | No | ||
| ValorUnitarioVenda | Yes | ||
| UnidadeMedidaVendaSigla | Yes | ||
| UnidadeMedidaCompraSigla | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| Id | No | |
| Ok | No | |
| Erro | No | |
| Produto | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses critical behaviors beyond annotations: the destructive nature of omitting fields (zeroes them) and ownership checks. Annotations only mark idempotentHint=true, which is consistent. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (single paragraph) and front-loads the purpose. However, the mix of warnings and instructions could be better structured (e.g., bullet points) for clarity. Still, every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (11 parameters, zeroing behavior, ownership validation), the description adequately covers usage workflow and warnings but fails to document parameter meanings. The presence of an output schema offsets return value explanation, but parameter semantics are lacking.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. However, it only mentions 'Id' as required and provides no details about other parameters (e.g., Codigo, Descricao, ValorUnitarioVenda). This is a significant gap for an 11-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Atualiza um Produto existente' with a specific verb and resource. It implicitly distinguishes from sibling tools like 'produto_criar' (create) and 'produto_consultar' (query) by referencing them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance: ID required, payload must be complete (omitted fields zeroed), recommends prior consultation via 'produto_consultar', and explains ownership validation rules. This helps the agent use the tool correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sefaz_statusStatus do serviço SEFAZARead-onlyIdempotentInspect
Consulta o status do serviço de autorização da SEFAZ para uma UF e ambiente. Use antes de uma emissão em lote ou quando suspeitar de instabilidade.
| Name | Required | Description | Default |
|---|---|---|---|
| ModeloDocumento | No | Modelo do documento fiscal usado para determinar o webservice de status da SEFAZ (Padrão 55). Valores: 55 - NF-e; 65 - NFC-e |
Output Schema
| Name | Required | Description |
|---|---|---|
| erros | No | Lista de erros quando a operação falha. Vazia em caso de sucesso. Cada item traz codigo, descricao e correcao. |
| Versao | No | |
| avisos | No | Avisos não bloqueantes. Pode vir preenchida mesmo em sucesso. |
| status | No | Status do resultado da operação: 1 = sucesso; 2 = erro (a lista erros é preenchida). |
| DsTipoAmbiente | No | |
| CodTipoAmbiente | No | |
| DsEstadoEmitente | No | |
| CodEstadoEmitente | No | |
| DsStatusRespostaSefaz | No | |
| CodStatusRespostaSefaz | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, and idempotentHint=true, which fully covers the safe-read behavior profile. The description adds the context that it should be used as a pre-flight check and mentions it addresses 'autorização' status specifically. It doesn't describe return format or pagination, but with strong annotations and an output schema present, the added behavioral value is moderate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste. The first sentence states purpose; the second provides usage guidance. Every word earns its place. The description is appropriately sized for a simple single-parameter status-check tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple status-checking tool with 1 parameter (fully documented), strong annotations (read-only, idempotent, open-world), and a provided output schema, the description is complete. It covers purpose, usage timing, and the tool's role. It doesn't explain the return values, but with an output schema present, that's not required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the one parameter (ModeloDocumento) has a full enum breakdown (55 - NF-e; 65 - NFC-e) plus a default value explained in the schema itself. The description adds nothing about parameters beyond what the schema provides. Baseline 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it consults the SEFAZ authorization service status for a UF and environment (Consulta o status do serviço de autorização da SEFAZ para uma UF e ambiente). The verb 'Consulta' plus the resource (status do serviço de autorização) is specific. While sibling tools include many emission tools, this one stands out as a status/health check — but the description doesn't explicitly differentiate it from siblings beyond its obvious distinct purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage guidance: 'Use antes de uma emissão em lote ou quando suspeitar de instabilidade' (use before batch emission or when suspecting instability). This gives concrete when-to-use context. However, it doesn't offer explicit when-not-to-use or name alternatives, though given the sibling list, none of those tools would be alternatives for status checking.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tributacao_consultarConsultar regras de tributacaoARead-onlyIdempotentInspect
Lista regras de tributacao da empresa (CFOP, CST, aliquotas ICMS/PIS/COFINS/IPI/IBS/CBS). Filtra por Tipo (1=NFe, 2=NFCe, 3=Energia/Comunicacao), CFOP especifico ou termo na descricao. Use antes de criar nota fiscal pra LLM saber quais tributos aplicar. PAGINACAO: Limite default 20 (max 50). Use Offset pra ir alem - o retorno traz TotalGeral. Se TotalGeral > matches retornados, peça mais paginas em vez de inventar/agrupar.
| Name | Required | Description | Default |
|---|---|---|---|
| Cfop | No | ||
| Tipo | No | ||
| Termo | No | ||
| Limite | No | ||
| Offset | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| Total | No | |
| Avisos | No | |
| Limite | No | |
| Offset | No | |
| Matches | No | |
| TotalGeral | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds critical behavioral context beyond the readOnlyHint and idempotentHint annotations, including pagination details (default 20, max 50, offset, TotalGeral) and a directive not to invent or group results. This fully discloses how the tool behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with 4 sentences, each serving a distinct purpose: purpose, filtering options, usage guidance, and pagination. No redundancy, essential information front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the 5 parameters and pagination, the description covers filtering and pagination well. Output schema exists, so return format is handled. It lacks error conditions or default behavior when no parameters are given, but overall it's adequate for the task.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, the description compensates well by explaining each parameter's meaning: Tipo (1=NFe,2=NFCe,3=Energia/Comunicacao), Cfop (specific CFOP), Termo (search term), and pagination (Limite, Offset). It adds value but could be slightly more precise on data types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists company tax rules (CFOP, CST, aliquotas) and specifies filtering options. It distinguishes from sibling tools like tributacao_criar/editar by guiding use before creating a nota fiscal, making purpose highly specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises to use this tool before creating a nota fiscal to know which taxes to apply. It provides pagination instructions and implies read-only usage, though it doesn't explicitly mention when not to use it or contrast with alternatives beyond pagination.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tributacao_criarCadastrar nova regra de tributacaoBInspect
Cadastra uma nova regra de tributacao (CFOP + CSTs + aliquotas). Tipo 1=NFe, 2=NFCe, 3=Energia/Comunicacao. CstIbsCbs e obrigatorio (Reforma Tributaria).
| Name | Required | Description | Default |
|---|---|---|---|
| Id | No | ||
| Cfop | Yes | ||
| Tipo | No | ||
| CstIpi | No | ||
| CstPis | No | ||
| AliqCbs | No | ||
| AliqIpi | No | ||
| AliqPis | No | ||
| ApiCode | No | ||
| CstIcms | No | ||
| AliqIcms | No | ||
| AutoAliq | No | ||
| AliqIbsUf | No | ||
| CstCofins | No | ||
| CstIbsCbs | No | ||
| Descricao | Yes | ||
| AliqCofins | No | ||
| AliqIbsMun | No | ||
| Observacao | No | ||
| AliqReducao | No | ||
| AliqDiferimento | No | ||
| EnquadramentoIpi | No | ||
| CodBeneficioFiscal | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| Id | No | |
| Ok | No | |
| Erro | No | |
| Tributacao | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations beyond title, so the description must disclose behavioral traits. It only mentions that CstIbsCbs is required and lists some fields. It does not discuss side effects, authentication needs, error behavior, or what happens upon success. The output schema exists but is not referenced.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (two sentences) and front-loaded with key information. It wastes no words but could benefit from a more structured format (e.g., listing parameter groups).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (23 parameters, creation logic), the description is incomplete. It lacks info on return values, error conditions, prerequisites, and does not leverage the existing output schema. A more comprehensive description is needed for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It groups parameters ('CFOP + CSTs + aliquotas') and notes one required field, but with 23 parameters, this is insufficient. Most parameters are not explained, leaving the agent guessing their meaning and constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a new tax rule, lists key components (CFOP, CSTs, aliquotas), and provides a mapping for Tipo (1=NFe, etc.). It is distinct from sibling tools like tributacao_editar and tributacao_consultar.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for creating new rules but does not explicitly compare with alternatives (e.g., when to use tributacao_criar vs tributacao_editar). It does highlight a requirement (CstIbsCbs is mandatory), but lacks general guidance on when or when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tributacao_editarEditar regra de tributacaoAIdempotentInspect
Atualiza uma regra de tributacao existente. Id obrigatorio. ATENCAO: envie o payload COMPLETO - campos omitidos sao zerados. Faca tributacao_consultar antes pra ter os dados atuais, depois envie tudo + o que muda. Valida ownership por IdEmpresa.
| Name | Required | Description | Default |
|---|---|---|---|
| Id | No | ||
| Cfop | Yes | ||
| Tipo | No | ||
| CstIpi | No | ||
| CstPis | No | ||
| AliqCbs | No | ||
| AliqIpi | No | ||
| AliqPis | No | ||
| ApiCode | No | ||
| CstIcms | No | ||
| AliqIcms | No | ||
| AutoAliq | No | ||
| AliqIbsUf | No | ||
| CstCofins | No | ||
| CstIbsCbs | No | ||
| Descricao | Yes | ||
| AliqCofins | No | ||
| AliqIbsMun | No | ||
| Observacao | No | ||
| AliqReducao | No | ||
| AliqDiferimento | No | ||
| EnquadramentoIpi | No | ||
| CodBeneficioFiscal | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| Id | No | |
| Ok | No | |
| Erro | No | |
| Tributacao | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description warns that omitted fields are zeroed ('ATENCAO: envie o payload COMPLETO - campos omitidos sao zerados'), a critical behavioral trait for a full-replacement update. It also states ownership validation. The annotation idempotentHint=true aligns with the description, as full replacement is idempotent. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single paragraph of three concise sentences, front-loading the main purpose and immediately following with critical usage instructions. Every sentence adds value, with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the essential workflow (fetch first, then update complete payload), ownership validation, and the risk of zeroed fields. However, it does not reference the output schema or explain the response. Given the complexity (23 params, high mutation risk), a brief note about return values would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 23 parameters with 0% description coverage (no parameter-level descriptions in the schema). The description does not explain individual fields like Cfop, AliqIcms, etc. It only provides high-level advice to send the complete payload. Given the large number of parameters, the lack of parameter semantics is a significant gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The tool name 'tributacao_editar' translates to 'edit taxation rule', and the description states 'Atualiza uma regra de tributacao existente' (updates an existing taxation rule), clearly identifying the verb (update) and resource (taxation rule). This distinguishes it from sibling tools like 'tributacao_consultar' (query) and 'tributacao_criar' (create).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly requires the 'Id' parameter ('Id obrigatorio') and instructs the agent to first call 'tributacao_consultar' to obtain current data, then send the complete payload with modifications. It also mentions ownership validation by IdEmpresa (implied in context). This provides clear when-to-use and prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
- Changed
nfe_previsualizar1 field changed- added
Input schema / properties / nfse / properties / nFSInfo / items / properties / Servico / properties / ConfiguracaoImposto / properties / RegimePisCofinsAdded value: +{ + "description": "Regime de apuração do PIS/COFINS usado nas alíquotas do grupo piscofins: 1 = Cumulativo (0,65% / 3,00%), 2 = Não cumulativo (1,65% / 7,60%). Vazio = pelo regime cadastrado na empresa (Lucro Real = não cumulativo, demais = cumulativo). Útil para receitas que a Lei 10.833/2003 art. 10 mantém no cumulativo mesmo no Lucro Real (software, hospitais e clínicas, etc.).", + "type": [ + "integer", + "null" + ] +}
- Changed
nfse_emitir1 field changed- added
Input schema / properties / nFSInfo / items / properties / Servico / properties / ConfiguracaoImposto / properties / RegimePisCofinsAdded value: +{ + "description": "Regime de apuração do PIS/COFINS usado nas alíquotas do grupo piscofins: 1 = Cumulativo (0,65% / 3,00%), 2 = Não cumulativo (1,65% / 7,60%). Vazio = pelo regime cadastrado na empresa (Lucro Real = não cumulativo, demais = cumulativo). Útil para receitas que a Lei 10.833/2003 art. 10 mantém no cumulativo mesmo no Lucro Real (software, hospitais e clínicas, etc.).", + "type": [ + "integer", + "null" + ] +}
2 tool updates
- Changed
nfe_previsualizar1 field changed- added
Input schema / properties / nfse / properties / nFSInfo / items / properties / Servico / properties / ConfiguracaoImposto / properties / DestacarPisCofinsAdded value: +{ + "description": "Destaca na NFS-e (padrão nacional) o PIS/COFINS de apuração própria do prestador (grupo piscofins: CST 01, alíquotas e valores), sem retenção pelo tomador e sem abater o valor líquido. Alíquotas conforme o regime da empresa: Lucro Real 1,65% / 7,60%, demais 0,65% / 3,00%. Somente empresas do Regime Normal (CRT 3). Pode ser combinado com as retenções acima (tpRetPisCofins passa a refletir o que foi retido).", + "type": "boolean" +}
- Changed
nfse_emitir1 field changed- added
Input schema / properties / nFSInfo / items / properties / Servico / properties / ConfiguracaoImposto / properties / DestacarPisCofinsAdded value: +{ + "description": "Destaca na NFS-e (padrão nacional) o PIS/COFINS de apuração própria do prestador (grupo piscofins: CST 01, alíquotas e valores), sem retenção pelo tomador e sem abater o valor líquido. Alíquotas conforme o regime da empresa: Lucro Real 1,65% / 7,60%, demais 0,65% / 3,00%. Somente empresas do Regime Normal (CRT 3). Pode ser combinado com as retenções acima (tpRetPisCofins passa a refletir o que foi retido).", + "type": "boolean" +}
6 tool updates
- Changed
cte_desacordo2 fields changed- added
Output schema / properties / Base64FileAdded value: +{ + "description": "PDF do documento auxiliar do evento (ex.: Carta de Correcao) em Base64. Preenchido apenas quando o evento e autorizado e a nota existe na base. Nulo nos demais casos.", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / Base64XmlAdded value: +{ + "description": "XML do evento processado (procEventoNFe) em Base64. Preenchido apenas quando o evento e autorizado (cStat 135) e o documento e NF-e (modelo 55). Nulo nos demais casos.", + "type": [ + "string", + "null" + ] +}
- Changed
evento_cancelar2 fields changed- added
Output schema / properties / Base64FileAdded value: +{ + "description": "PDF do documento auxiliar do evento (ex.: Carta de Correcao) em Base64. Preenchido apenas quando o evento e autorizado e a nota existe na base. Nulo nos demais casos.", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / Base64XmlAdded value: +{ + "description": "XML do evento processado (procEventoNFe) em Base64. Preenchido apenas quando o evento e autorizado (cStat 135) e o documento e NF-e (modelo 55). Nulo nos demais casos.", + "type": [ + "string", + "null" + ] +}
- Changed
evento_carta_correcao2 fields changed- added
Output schema / properties / Base64FileAdded value: +{ + "description": "PDF do documento auxiliar do evento (ex.: Carta de Correcao) em Base64. Preenchido apenas quando o evento e autorizado e a nota existe na base. Nulo nos demais casos.", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / Base64XmlAdded value: +{ + "description": "XML do evento processado (procEventoNFe) em Base64. Preenchido apenas quando o evento e autorizado (cStat 135) e o documento e NF-e (modelo 55). Nulo nos demais casos.", + "type": [ + "string", + "null" + ] +}
- Changed
evento_inutilizar2 fields changed- added
Output schema / properties / Base64FileAdded value: +{ + "description": "PDF do documento auxiliar do evento (ex.: Carta de Correcao) em Base64. Preenchido apenas quando o evento e autorizado e a nota existe na base. Nulo nos demais casos.", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / Base64XmlAdded value: +{ + "description": "XML do evento processado (procEventoNFe) em Base64. Preenchido apenas quando o evento e autorizado (cStat 135) e o documento e NF-e (modelo 55). Nulo nos demais casos.", + "type": [ + "string", + "null" + ] +}
- Changed
evento_manifestar2 fields changed- added
Output schema / properties / Base64FileAdded value: +{ + "description": "PDF do documento auxiliar do evento (ex.: Carta de Correcao) em Base64. Preenchido apenas quando o evento e autorizado e a nota existe na base. Nulo nos demais casos.", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / Base64XmlAdded value: +{ + "description": "XML do evento processado (procEventoNFe) em Base64. Preenchido apenas quando o evento e autorizado (cStat 135) e o documento e NF-e (modelo 55). Nulo nos demais casos.", + "type": [ + "string", + "null" + ] +}
- Changed
mdfe_encerrar2 fields changed- added
Output schema / properties / Base64FileAdded value: +{ + "description": "PDF do documento auxiliar do evento (ex.: Carta de Correcao) em Base64. Preenchido apenas quando o evento e autorizado e a nota existe na base. Nulo nos demais casos.", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / Base64XmlAdded value: +{ + "description": "XML do evento processado (procEventoNFe) em Base64. Preenchido apenas quando o evento e autorizado (cStat 135) e o documento e NF-e (modelo 55). Nulo nos demais casos.", + "type": [ + "string", + "null" + ] +}
2 tool updates
- Changed
nfe_previsualizar3 fields changed- added
Input schema / properties / nfse / properties / nFSInfo / items / properties / Servico / properties / DocumentoReferenciaAdded value: +{ + "description": "Documento de referência (infoCompl/docRef, até 255 caracteres): contrato, proposta, NF referenciada etc.", + "type": [ + "string", + "null" + ] +} - added
Input schema / properties / nfse / properties / nFSInfo / items / properties / Servico / properties / InformacoesComplementaresAdded value: +{ + "description": "Informações complementares da NFS-e nacional (infoCompl/xInfComp, até 2000 caracteres). Sai no DANFSe.", + "type": [ + "string", + "null" + ] +} - added
Input schema / properties / nfse / properties / nFSInfo / items / properties / Servico / properties / NumeroPedidoAdded value: +{ + "description": "Número do pedido do tomador (infoCompl/xPed, até 60 caracteres).", + "type": [ + "string", + "null" + ] +}
- Changed
nfse_emitir3 fields changed- added
Input schema / properties / nFSInfo / items / properties / Servico / properties / DocumentoReferenciaAdded value: +{ + "description": "Documento de referência (infoCompl/docRef, até 255 caracteres): contrato, proposta, NF referenciada etc.", + "type": [ + "string", + "null" + ] +} - added
Input schema / properties / nFSInfo / items / properties / Servico / properties / InformacoesComplementaresAdded value: +{ + "description": "Informações complementares da NFS-e nacional (infoCompl/xInfComp, até 2000 caracteres). Sai no DANFSe.", + "type": [ + "string", + "null" + ] +} - added
Input schema / properties / nFSInfo / items / properties / Servico / properties / NumeroPedidoAdded value: +{ + "description": "Número do pedido do tomador (infoCompl/xPed, até 60 caracteres).", + "type": [ + "string", + "null" + ] +}
2 tool updates
- Changed
nfe_previsualizar6 fields changed- added
Input schema / properties / nfse / properties / nFSInfo / items / properties / ConstrucaoCivil / descriptionAdded value: +"Dados da obra (grupo obra do DPS nacional). Obrigatório para os serviços 07.02, 07.04, 07.05, 07.06, 07.07, 07.08, 07.17, 07.19 e 14.14 (E0370). Basta UM identificador, nesta prioridade: CodObra, Cib, EnderecoObra. Sem nenhum deles, nesses serviços, usa-se o endereço do tomador como local da obra." - added
Input schema / properties / nfse / properties / nFSInfo / items / properties / ConstrucaoCivil / properties / Art / descriptionAdded value: +"Documento de responsabilidade técnica (ART, RRT, DRT). Vai em infoCompl/idDocTec." - added
Input schema / properties / nfse / properties / nFSInfo / items / properties / ConstrucaoCivil / properties / CibAdded value: +{ + "description": "Código do Cadastro Imobiliário Brasileiro (8 caracteres). Só no leiaute 1.01.", + "type": [ + "string", + "null" + ] +} - added
Input schema / properties / nfse / properties / nFSInfo / items / properties / ConstrucaoCivil / properties / CodObra / descriptionAdded value: +"Número da obra: CNO (Cadastro Nacional de Obras) ou CEI do INSS. Até 30 caracteres." - added
Input schema / properties / nfse / properties / nFSInfo / items / properties / ConstrucaoCivil / properties / EnderecoObraAdded value: +{ + "additionalProperties": false, + "description": "Endereço da obra (CEP, Logradouro, Numero, Complemento, Bairro). Usado quando não há CodObra nem Cib.", + "properties": { + "Bairro": { + "type": [ + "string", + "null" + ] + }, + "Cep": { + "type": [ + "string", + "null" + ] + }, + "CodMunicipio": { + "type": [ + "string", + "null" + ] + }, + "CodPais": { + "default": 1058, + "type": "integer" + }, + "Complemento": { + "type": [ + "string", + "null" + ] + }, + "Logradouro": { + "type": [ + "string", + "null" + ] + }, + "Municipio": { + "type": [ + "string", + "null" + ] + }, + "Numero": { + "type": [ + "string", + "null" + ] + }, + "Pais": { + "default": "BRASIL", + "type": [ + "string", + "null" + ] + }, + "Uf": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] +} - added
Input schema / properties / nfse / properties / nFSInfo / items / properties / ConstrucaoCivil / properties / InscricaoImobiliariaAdded value: +{ + "description": "Inscrição imobiliária fiscal do imóvel na prefeitura. Opcional, complementa o identificador.", + "type": [ + "string", + "null" + ] +}
- Changed
nfse_emitir6 fields changed- added
Input schema / properties / nFSInfo / items / properties / ConstrucaoCivil / descriptionAdded value: +"Dados da obra (grupo obra do DPS nacional). Obrigatório para os serviços 07.02, 07.04, 07.05, 07.06, 07.07, 07.08, 07.17, 07.19 e 14.14 (E0370). Basta UM identificador, nesta prioridade: CodObra, Cib, EnderecoObra. Sem nenhum deles, nesses serviços, usa-se o endereço do tomador como local da obra." - added
Input schema / properties / nFSInfo / items / properties / ConstrucaoCivil / properties / Art / descriptionAdded value: +"Documento de responsabilidade técnica (ART, RRT, DRT). Vai em infoCompl/idDocTec." - added
Input schema / properties / nFSInfo / items / properties / ConstrucaoCivil / properties / CibAdded value: +{ + "description": "Código do Cadastro Imobiliário Brasileiro (8 caracteres). Só no leiaute 1.01.", + "type": [ + "string", + "null" + ] +} - added
Input schema / properties / nFSInfo / items / properties / ConstrucaoCivil / properties / CodObra / descriptionAdded value: +"Número da obra: CNO (Cadastro Nacional de Obras) ou CEI do INSS. Até 30 caracteres." - added
Input schema / properties / nFSInfo / items / properties / ConstrucaoCivil / properties / EnderecoObraAdded value: +{ + "additionalProperties": false, + "description": "Endereço da obra (CEP, Logradouro, Numero, Complemento, Bairro). Usado quando não há CodObra nem Cib.", + "properties": { + "Bairro": { + "type": [ + "string", + "null" + ] + }, + "Cep": { + "type": [ + "string", + "null" + ] + }, + "CodMunicipio": { + "type": [ + "string", + "null" + ] + }, + "CodPais": { + "default": 1058, + "type": "integer" + }, + "Complemento": { + "type": [ + "string", + "null" + ] + }, + "Logradouro": { + "type": [ + "string", + "null" + ] + }, + "Municipio": { + "type": [ + "string", + "null" + ] + }, + "Numero": { + "type": [ + "string", + "null" + ] + }, + "Pais": { + "default": "BRASIL", + "type": [ + "string", + "null" + ] + }, + "Uf": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] +} - added
Input schema / properties / nFSInfo / items / properties / ConstrucaoCivil / properties / InscricaoImobiliariaAdded value: +{ + "description": "Inscrição imobiliária fiscal do imóvel na prefeitura. Opcional, complementa o identificador.", + "type": [ + "string", + "null" + ] +}
2 tool updates
- Changed
nfe_emitir2 fields changed- added
Input schema / properties / ValorFreteAdded value: +{ + "description": "Valor total do frete da nota. Quando informado, é distribuído proporcionalmente entre os itens (proporção pelo ValorTotal de cada item), SUBSTITUINDO o ValorFrete informado em cada produto. Não informado (nulo) = o frete de cada item é usado como enviado.", + "type": [ + "number", + "null" + ] +} - added
Input schema / properties / ValorTotalAdded value: +{ + "description": "Valor total esperado da nota (vNF), usado apenas para validação. Quando informado e diferente do valor total calculado (produtos - descontos + frete + seguro + outras despesas + impostos que compõem o total), a emissão é bloqueada e o erro detalha o cálculo. Não informado (nulo) = sem validação.", + "type": [ + "number", + "null" + ] +}
- Changed
nfe_previsualizar2 fields changed- added
Input schema / properties / notaFiscal / properties / nFInfos / items / properties / ValorFreteAdded value: +{ + "description": "Valor total do frete da nota. Quando informado, é distribuído proporcionalmente entre os itens (proporção pelo ValorTotal de cada item), SUBSTITUINDO o ValorFrete informado em cada produto. Não informado (nulo) = o frete de cada item é usado como enviado.", + "type": [ + "number", + "null" + ] +} - added
Input schema / properties / notaFiscal / properties / nFInfos / items / properties / ValorTotalAdded value: +{ + "description": "Valor total esperado da nota (vNF), usado apenas para validação. Quando informado e diferente do valor total calculado (produtos - descontos + frete + seguro + outras despesas + impostos que compõem o total), a emissão é bloqueada e o erro detalha o cálculo. Não informado (nulo) = sem validação.", + "type": [ + "number", + "null" + ] +}
2 tool updates
- Changed
nfe_emitir3 fields changed- added
Input schema / properties / NFPagamentoAntecipadoAdded value: +{ + "description": "Grupo de notas de antecipação de pagamento (gPagAntecipado - Reforma Tributária).", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] +} - changed
Input schema / properties / TpNFCredito / descriptionPrevious value: -"Tipo de Nota de Crédito. Obrigatório quando Finalidade = 5. Código SEFAZ: Valores: 1 - Multa e juros; 2 - Apropriação de crédito presumido de IBS sobre saldo devedor na ZFM; 3 - Retorno"New value: +"Tipo de Nota de Crédito. Obrigatório quando Finalidade = 5. Código SEFAZ: Valores: 1 - Multa e juros; 2 - Apropriação de crédito presumido de IBS sobre saldo devedor na ZFM; 3 - Retorno por recusa total na entrega ou por não localização do destinatário; 4 - Redução de valores; 5 - Transferência de crédito na sucessão; 6 - Retorno por recusa parcial na entrega" - changed
Input schema / properties / TpNFCredito / enumPrevious value: -[ - 1, - 2, - 3, - null -]New value: +[ + 1, + 2, + 3, + 4, + 5, + 6, + null +]
- Changed
nfe_previsualizar3 fields changed- added
Input schema / properties / notaFiscal / properties / nFInfos / items / properties / NFPagamentoAntecipadoAdded value: +{ + "description": "Grupo de notas de antecipação de pagamento (gPagAntecipado - Reforma Tributária).", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] +} - changed
Input schema / properties / notaFiscal / properties / nFInfos / items / properties / TpNFCredito / descriptionPrevious value: -"Tipo de Nota de Crédito. Obrigatório quando Finalidade = 5. Código SEFAZ: Valores: 1 - Multa e juros; 2 - Apropriação de crédito presumido de IBS sobre saldo devedor na ZFM; 3 - Retorno"New value: +"Tipo de Nota de Crédito. Obrigatório quando Finalidade = 5. Código SEFAZ: Valores: 1 - Multa e juros; 2 - Apropriação de crédito presumido de IBS sobre saldo devedor na ZFM; 3 - Retorno por recusa total na entrega ou por não localização do destinatário; 4 - Redução de valores; 5 - Transferência de crédito na sucessão; 6 - Retorno por recusa parcial na entrega" - changed
Input schema / properties / notaFiscal / properties / nFInfos / items / properties / TpNFCredito / enumPrevious value: -[ - 1, - 2, - 3, - null -]New value: +[ + 1, + 2, + 3, + 4, + 5, + 6, + null +]
1 tool update
- Changed
nota_listar2 fields changed- added
Input schema / properties / TipoParticipacaoAdded value: +{ + "description": "Como a empresa participa das notas de entrada (Padrão 0 - Destinatário). Somente para TipoDocumentoFiscal = 0. Valores: 0 - Destinatário (comportamento padrão); 1 - Transportadora (NF-e onde a empresa é citada como transportadora ou terceiro autorizado); 2 - Ambos", + "enum": [ + 0, + 1, + 2 + ], + "type": "integer" +} - added
Output schema / properties / Notas / items / properties / TipoParticipacaoAdded value: +{ + "description": "Como a empresa participa da nota de entrada (somente TipoDocumentoFiscal = 0): Valores: 0 - Destinatário; 1 - Transportadora/terceiro citado na nota", + "enum": [ + 0, + 1, + null + ], + "type": [ + "integer", + "null" + ] +}
2 tool updates
- Changed
nfe_emitir1 field changed- added
Input schema / properties / TipoDanfeAdded value: +{ + "description": "Formato de impressão do DANFE (tag tpImp da NF-e). Não informado = padrão atual (1-Retrato para NF-e, 4 para NFC-e). Valores: 0 - Sem geração de DANFE; 1 - DANFE normal, Retrato (padrão NF-e); 2 - DANFE normal, Paisagem; 3 - DANFE Simplificado; 4 - DANFE NFC-e (padrão NFC-e; somente modelo 65); 5 - DANFE NFC-e em mensagem eletrônica (somente modelo 65); 6 - DANFE Simplificado Tipo 2 (NT 2026.002/2026.003, Ajuste SINIEF 13/26; somente modelo 55) - NF-e de varejo em operação típica de NFC-e, impressa em bobina com QR Code. Exige operação interna (CFOP 5xxx), consumidor final, finalidade 1-Normal, saída, sem notas referenciadas e IndicadorPresenca 1, 4 ou 5.", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + null + ], + "type": [ + "integer", + "null" + ] +}
- Changed
nfe_previsualizar7 fields changed- added
Input schema / properties / cteAdded value: +{ + "additionalProperties": false, + "description": "CT-e (modelo 57/67). Usado quando TipoEnvio = 1. Gera o DACTE/XML de pré-visualização.", + "properties": { + "Carga": { + "additionalProperties": false, + "description": "Dados da carga transportada (produto predominante, lista de detalhes, documentos fiscais que acompanham). OBRIGATÓRIO. Para Tipo de serviço 0/1/2/6/7/8 também exige Carga.Documentos com ao menos 1 NF-e referenciada.", + "properties": { + "Detalhes": { + "description": "Detalhes das quantidades da carga. (infQ)", + "items": { + "additionalProperties": false, + "properties": { + "CodUnidadeMedida": { + "description": "Código da Unidade de Medida (cUnid) Valores: 0 - Metro Cúbico (M3); 1 - Quilograma (KG); 2 - Tonelada (TON); 3 - Unidade (UNIDADE); 4 - Litros (LITROS); 5 - MMBTU (MMBTU)", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5 + ], + "type": "integer" + }, + "Quantidade": { + "description": "Quantidade da Carga (qCarga). Ex: 10000", + "type": "number" + }, + "TipoMedida": { + "description": "Tipo de Medida. (tpMed). Ex: \"quilos gramas\"", + "type": [ + "string", + "null" + ] + } + }, + "type": "object" + }, + "type": [ + "array", + "null" + ] + }, + "Documentos": { + "description": "Documentos fiscais que acompanham a carga. (infNFe)", + "items": { + "additionalProperties": false, + "properties": { + "Chave": { + "type": [ + "string", + "null" + ] + }, + "PIN": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" + }, + "type": [ + "array", + "null" + ] + }, + "OutrosDocumentos": { + "description": "Outros documentos que acompanham a carga quando não há NF-e (ex.: declaração de mudança, C2C). (infOutros)", + "items": { + "additionalProperties": false, + "description": "Outros documentos que acompanham a carga, quando não há NF/NF-e (ex.: mudança, C2C). Mapeia para infDoc/infOutros do CT-e.", + "properties": { + "Descricao": { + "description": "Descrição do documento. Obrigatória quando TipoDocumento = 99. (descOutros)", + "type": [ + "string", + "null" + ] + }, + "DtEmissao": { + "description": "Data de emissão do documento. (dEmi)", + "type": [ + "string", + "null" + ] + }, + "DtPrevisao": { + "description": "Data prevista de entrega. (dPrev)", + "type": [ + "string", + "null" + ] + }, + "Numero": { + "description": "Número do documento. (nDoc)", + "type": [ + "string", + "null" + ] + }, + "TipoDocumento": { + "description": "Tipo do documento originário. (tpDoc) Valores: 0 - Declaração; 10 - Dutoviário; 59 - CF-e SAT; 65 - NFC-e; 99 - Outros (exige Descricao)", + "enum": [ + 0, + 10, + 59, + 65, + 99 + ], + "type": "integer" + }, + "Valor": { + "description": "Valor do documento fiscal. (vDocFisc)", + "type": [ + "number", + "null" + ] + } + }, + "type": "object" + }, + "type": [ + "array", + "null" + ] + }, + "ProdutoPredominante": { + "description": "Nome do Produto Predominante. (proPred)", + "type": [ + "string", + "null" + ] + }, + "ValorTotal": { + "description": "Valor total da carga. (vCarga)", + "type": "number" + } + }, + "type": "object" + }, + "Cfop": { + "description": "CFOP de 4 dígitos. Primeiro dígito: 1/2/3 = entrada, 5/6/7 = saída.", + "type": "integer" + }, + "Codigo": { + "type": [ + "integer", + "null" + ] + }, + "Destinatario": { + "additionalProperties": false, + "properties": { + "Contato": { + "additionalProperties": false, + "properties": { + "Email": { + "type": [ + "string", + "null" + ] + }, + "Fax": { + "type": [ + "string", + "null" + ] + }, + "Telefone": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "CpfCnpj": { + "type": [ + "string", + "null" + ] + }, + "Endereco": { + "additionalProperties": false, + "properties": { + "Bairro": { + "type": [ + "string", + "null" + ] + }, + "Cep": { + "type": [ + "string", + "null" + ] + }, + "CodMunicipio": { + "type": [ + "string", + "null" + ] + }, + "CodPais": { + "default": 1058, + "type": "integer" + }, + "Complemento": { + "type": [ + "string", + "null" + ] + }, + "Logradouro": { + "type": [ + "string", + "null" + ] + }, + "Municipio": { + "type": [ + "string", + "null" + ] + }, + "Numero": { + "type": [ + "string", + "null" + ] + }, + "Pais": { + "default": "BRASIL", + "type": [ + "string", + "null" + ] + }, + "Uf": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "Ie": { + "type": [ + "string", + "null" + ] + }, + "Nome": { + "type": [ + "string", + "null" + ] + }, + "NomeFantasia": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "DtEmissao": { + "description": "Data/hora ISO 8601 (ex: 2026-07-22T13:45:00-03:00)", + "type": [ + "string", + "null" + ] + }, + "Expedidor": { + "additionalProperties": false, + "properties": { + "Contato": { + "additionalProperties": false, + "properties": { + "Email": { + "type": [ + "string", + "null" + ] + }, + "Fax": { + "type": [ + "string", + "null" + ] + }, + "Telefone": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "CpfCnpj": { + "type": [ + "string", + "null" + ] + }, + "Endereco": { + "additionalProperties": false, + "properties": { + "Bairro": { + "type": [ + "string", + "null" + ] + }, + "Cep": { + "type": [ + "string", + "null" + ] + }, + "CodMunicipio": { + "type": [ + "string", + "null" + ] + }, + "CodPais": { + "default": 1058, + "type": "integer" + }, + "Complemento": { + "type": [ + "string", + "null" + ] + }, + "Logradouro": { + "type": [ + "string", + "null" + ] + }, + "Municipio": { + "type": [ + "string", + "null" + ] + }, + "Numero": { + "type": [ + "string", + "null" + ] + }, + "Pais": { + "default": "BRASIL", + "type": [ + "string", + "null" + ] + }, + "Uf": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "Ie": { + "type": [ + "string", + "null" + ] + }, + "Nome": { + "type": [ + "string", + "null" + ] + }, + "NomeFantasia": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "IdentificadorInterno": { + "type": [ + "string", + "null" + ] + }, + "Imposto": { + "additionalProperties": false, + "properties": { + "Difal": { + "additionalProperties": false, + "description": "Informações sobre o ICMS Partilha (DIFAL/ICMS UF Fim).", + "properties": { + "AliquotaICMSUfDestino": { + "description": "Alíquota interna da UF de destino para o ICMS. (pICMSUFFim)", + "type": "number" + }, + "AliquotaInterestadual": { + "description": "Alíquota interestadual das UF envolvidas. (pICMSInter)", + "type": "number" + }, + "BaseCalculoUfDestino": { + "description": "Base de Cálculo do ICMS na UF de Destino. (vBCUFFim)", + "type": "number" + }, + "PercentualFCPUfDestino": { + "description": "Percentual do Fundo de Combate à Pobreza (FCP) na UF de destino. (pFCPUFFim)", + "type": "number" + }, + "PercentualPartilhaICMS": { + "description": "Percentual de Partilha do ICMS (Ex: 80, 20, 0, etc.). (pICMSInterPart)", + "type": "number" + }, + "ValorFCPUfDestino": { + "description": "Valor do Fundo de Combate à Pobreza (FCP) na UF de destino. (vFCPUFFim)", + "type": "number" + }, + "ValorICMSUfDestino": { + "description": "Valor total do ICMS devido à UF de destino (já com o FCP). (vICMSUFFim)", + "type": "number" + }, + "ValorICMSUfInicio": { + "description": "Valor do ICMS devido à UF de origem (Início). (vICMSUFIni)", + "type": "number" + } + }, + "type": [ + "object", + "null" + ] + }, + "IBSCBS": { + "additionalProperties": false, + "description": "Informações do IBS/CBS (Reforma Tributária - NT 2025.001). Quando preenchido, gera o grupo imp/IBSCBS no XML do CT-e.", + "properties": { + "AliquotaCBS": { + "description": "Alíquota da CBS (pCBS).", + "type": [ + "number", + "null" + ] + }, + "AliquotaIBSMun": { + "description": "Alíquota do IBS de competência do Município (pIBSMun).", + "type": [ + "number", + "null" + ] + }, + "AliquotaIBSUF": { + "description": "Alíquota do IBS de competência das UF (pIBSUF).", + "type": [ + "number", + "null" + ] + }, + "BaseCalculo": { + "description": "Base de cálculo do IBS/CBS (vBC). Quando null, usa o valor total da prestação.", + "type": [ + "number", + "null" + ] + }, + "CodClassificacaoTributaria": { + "description": "Código de Classificação Tributária do IBS/CBS (cClassTrib). O CST é derivado dos 3 primeiros dígitos. Quando vazio, assume \"000001\".", + "type": [ + "string", + "null" + ] + }, + "PercentualDiferimento": { + "description": "Percentual de diferimento (pDif de gDif), usado nos CST 510/515.", + "type": [ + "number", + "null" + ] + }, + "PercentualReducaoCBS": { + "description": "Percentual de redução da alíquota da CBS (pRedAliq de gRed). Pode divergir de PercentualReducaoIBS.", + "type": [ + "number", + "null" + ] + }, + "PercentualReducaoIBS": { + "description": "Percentual de redução da alíquota do IBS (pRedAliq de gRed), usado nos CST 011/200/515. Quando null, não aplica redução.", + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "ICMS": { + "additionalProperties": false, + "description": "Informações do ICMS", + "properties": { + "Aliquota": { + "description": "Alíquota do ICMS (em percentual). (pICMS)", + "type": "number" + }, + "AliquotaOutraUF": { + "description": "Alíquota do ICMS devido a Outra UF. (pICMSOutraUF) Usado no CST OutraUF.", + "type": [ + "number", + "null" + ] + }, + "BaseCalculo": { + "description": "Base de Cálculo do ICMS. (vBC)", + "type": "number" + }, + "CST": { + "description": "Código de Situação Tributária (CST) do ICMS. (Ex: 00, 20, 40, 41, 51, 60, 90, etc.) Para empresas do Simples Nacional, é usando o 90 automáticamente.", + "type": [ + "string", + "null" + ] + }, + "PercentualReducaoBaseCalculo": { + "description": "Percentual de Redução da Base de Cálculo. (pRedBC) Usado nos CSTs 20 e 90.", + "type": [ + "number", + "null" + ] + }, + "Valor": { + "description": "Valor do ICMS. (vICMS)", + "type": "number" + }, + "ValorICMSOutraUF": { + "description": "Valor do ICMS devido a Outra UF. (vICMSOutraUF) Usado no CST OutraUF.", + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "InformacoesAdicionaisFisco": { + "description": "Informações Adicionais de Interesse do Fisco.", + "type": [ + "string", + "null" + ] + }, + "TributosFederal": { + "additionalProperties": false, + "description": "Lista de PIS e COFINS (Tributos Federais).", + "properties": { + "ValorCofins": { + "description": "Valor do COFINS retido. (vCOFINS)", + "type": [ + "number", + "null" + ] + }, + "ValorCsll": { + "description": "Valor da CSLL retida. (vCSLL)", + "type": [ + "number", + "null" + ] + }, + "ValorInss": { + "description": "Valor do INSS retido. (vINSS)", + "type": [ + "number", + "null" + ] + }, + "ValorIr": { + "description": "Valor do Imposto de Renda retido. (vIR)", + "type": [ + "number", + "null" + ] + }, + "ValorPis": { + "description": "Valor do PIS retido. (vPIS)", + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "ValorTotalTributos": { + "description": "Valor total dos tributos federais e estaduais, aproximado conforme Lei 12.741/12.", + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "Lote": { + "type": [ + "integer", + "null" + ] + }, + "Modal": { + "additionalProperties": false, + "description": "Modal de transporte (rodoviário, aéreo, aquaviário, ferroviário, dutoviário, multimodal). OBRIGATÓRIO. Tipo: 1=Rodoviário, 2=Aéreo, 3=Aquaviário, 4=Ferroviário, 5=Dutoviário, 6=Multimodal.", + "properties": { + "Rodoviario": { + "additionalProperties": false, + "properties": { + "OCCs": { + "description": "Lista de coletas realizadas para compor o frete.", + "items": { + "additionalProperties": false, + "properties": { + "DtEmissaoColeta": { + "description": "Data/hora ISO 8601 (ex: 2026-07-22T13:45:00-03:00)", + "type": "string" + }, + "Emissor": { + "additionalProperties": false, + "properties": { + "Cnpj": { + "description": "CNPJ do emissor da OCC", + "type": [ + "string", + "null" + ] + }, + "CodigoInternoOCC": { + "description": "Código interno da OCC na empresa emissora", + "type": [ + "string", + "null" + ] + }, + "Ie": { + "description": "Inscrição estadual do emissor", + "type": [ + "string", + "null" + ] + }, + "Telefone": { + "description": "Telefone do emissor da OCC", + "type": [ + "string", + "null" + ] + }, + "Uf": { + "description": "Estado do emissor da OCC", + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "Numero": { + "type": "integer" + }, + "Serie": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" + }, + "type": [ + "array", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "Tipo": { + "default": 1, + "description": "Modal do CT-e: Valores: 1 - Rodoviário; 2 - Aéreo; 3 - Aquaviário; 4 - Ferroviário; 5 - Dutoviário; 6 - Multimodal", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6 + ], + "type": "integer" + } + }, + "type": "object" + }, + "ModeloDocumento": { + "default": 57, + "description": "Modelo do Conhecimento de Transporte Eletrônico. Valores: 57 - CT-e (Conhecimento de Transporte Eletrônico); 67 - CT-e OS (Outros Serviços de transporte)", + "enum": [ + 57, + 67 + ], + "type": "integer" + }, + "NaturezaOperacao": { + "description": "Descrição da natureza da operação (ex: \"Prestação de serviço de transporte\").", + "type": "string" + }, + "Numero": { + "type": [ + "integer", + "null" + ] + }, + "Observacao": { + "type": [ + "string", + "null" + ] + }, + "Remetente": { + "additionalProperties": false, + "properties": { + "Contato": { + "additionalProperties": false, + "properties": { + "Email": { + "type": [ + "string", + "null" + ] + }, + "Fax": { + "type": [ + "string", + "null" + ] + }, + "Telefone": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "CpfCnpj": { + "type": [ + "string", + "null" + ] + }, + "Endereco": { + "additionalProperties": false, + "properties": { + "Bairro": { + "type": [ + "string", + "null" + ] + }, + "Cep": { + "type": [ + "string", + "null" + ] + }, + "CodMunicipio": { + "type": [ + "string", + "null" + ] + }, + "CodPais": { + "default": 1058, + "type": "integer" + }, + "Complemento": { + "type": [ + "string", + "null" + ] + }, + "Logradouro": { + "type": [ + "string", + "null" + ] + }, + "Municipio": { + "type": [ + "string", + "null" + ] + }, + "Numero": { + "type": [ + "string", + "null" + ] + }, + "Pais": { + "default": "BRASIL", + "type": [ + "string", + "null" + ] + }, + "Uf": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "Ie": { + "type": [ + "string", + "null" + ] + }, + "Nome": { + "type": [ + "string", + "null" + ] + }, + "NomeFantasia": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "Retira": { + "type": "boolean" + }, + "Serie": { + "type": [ + "integer", + "null" + ] + }, + "Servico": { + "additionalProperties": false, + "description": "Dados do serviço prestado (Tipo, CodMunicipioInicio, CodMunicipioFim com 7 dígitos cada, MunicipioInicio/MunicipioFim, ValorPrestacao > 0, ValorReceber > 0). OBRIGATÓRIO. Tipo: 0=Normal, 1=Subcontratação, 2=Redespacho, 3=RedespachoIntermediario, 4=ServicoVinculadoMultimodal.", + "properties": { + "CodMunicipioFim": { + "description": "Código IBGE do município do destino o transporte", + "type": "integer" + }, + "CodMunicipioInicio": { + "description": "Código IBGE do município do início do transporte", + "type": "integer" + }, + "Componentes": { + "description": "Lista de componentes que detalham como o valor total do frete foi formado.", + "items": { + "additionalProperties": false, + "properties": { + "Nome": { + "type": [ + "string", + "null" + ] + }, + "Valor": { + "type": "number" + } + }, + "type": "object" + }, + "type": [ + "array", + "null" + ] + }, + "MunicipioFim": { + "description": "Nome do município do destino do transporte", + "type": [ + "string", + "null" + ] + }, + "MunicipioInicio": { + "description": "Nome do município do início do transporte", + "type": [ + "string", + "null" + ] + }, + "Tipo": { + "description": "Tipo do Serviço: Valores: 0 - Normal; 1 - Subcontratação; 2 - Redespacho; 3 - Redespacho Intermediário; 4 - Serviço Vinculado ao Multimodal; 6 - Transporte de Pessoas; 7 - Transporte de Valores; 8 - Excesso de Bagagem", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 6, + 7, + 8 + ], + "type": "integer" + }, + "ValorPrestacao": { + "description": "O valor total cobrado pela prestação do serviço de transporte.", + "type": "number" + }, + "ValorReceber": { + "description": "O valor líquido a receber pelo transportador.", + "type": "number" + } + }, + "type": "object" + }, + "TipoAmbiente": { + "description": "Identificação do ambiente da SEFAZ. Valores: 1 - Produção (emissão real, irreversível); 2 - Homologação (teste, sem valor fiscal)", + "enum": [ + 1, + 2 + ], + "type": "integer" + }, + "TipoCte": { + "description": "Tipo do CT-e. Valores: 0 - CT-e Normal (caso mais comum); 1 - CT-e de Complemento de Valores; 2 - CT-e de Anulação; 3 - CT-e Substituto", + "enum": [ + 0, + 1, + 2, + 3 + ], + "type": "integer" + }, + "Tomador": { + "additionalProperties": false, + "properties": { + "Contato": { + "additionalProperties": false, + "properties": { + "Email": { + "type": [ + "string", + "null" + ] + }, + "Fax": { + "type": [ + "string", + "null" + ] + }, + "Telefone": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "CpfCnpj": { + "type": [ + "string", + "null" + ] + }, + "Endereco": { + "additionalProperties": false, + "properties": { + "Bairro": { + "type": [ + "string", + "null" + ] + }, + "Cep": { + "type": [ + "string", + "null" + ] + }, + "CodMunicipio": { + "type": [ + "string", + "null" + ] + }, + "CodPais": { + "default": 1058, + "type": "integer" + }, + "Complemento": { + "type": [ + "string", + "null" + ] + }, + "Logradouro": { + "type": [ + "string", + "null" + ] + }, + "Municipio": { + "type": [ + "string", + "null" + ] + }, + "Numero": { + "type": [ + "string", + "null" + ] + }, + "Pais": { + "default": "BRASIL", + "type": [ + "string", + "null" + ] + }, + "Uf": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "Ie": { + "type": [ + "string", + "null" + ] + }, + "IndicadorIe": { + "description": "Indicador de IE: Valores: 1 - Contribuinte do ICMS; 2 - Contribuinte isento de inscrição; 9 - Não contribuinte", + "enum": [ + 1, + 2, + 9 + ], + "type": "integer" + }, + "Nome": { + "type": [ + "string", + "null" + ] + }, + "NomeFantasia": { + "type": [ + "string", + "null" + ] + }, + "TipoTomador": { + "description": "Tipo do participante do CT-e: Valores: 0 - Remetente; 1 - Expedidor; 2 - Recebedor; 3 - Destinatário; 4 - Outros (Informar dados Tomador)", + "enum": [ + 0, + 1, + 2, + 3, + 4 + ], + "type": "integer" + } + }, + "type": [ + "object", + "null" + ] + } + }, + "required": [ + "ModeloDocumento", + "TipoAmbiente", + "TipoCte", + "Cfop", + "NaturezaOperacao", + "Modal", + "Carga", + "Servico" + ], + "type": [ + "object", + "null" + ] +} - added
Input schema / properties / dceAdded value: +{ + "additionalProperties": false, + "description": "DC-e (modelo 99). Usado quando TipoEnvio = 1. Gera o DACE/XML de pré-visualização.", + "properties": { + "CnpjTransportadora": { + "description": "CNPJ da transportadora que leva a carga. Opcional. Quando informado, é usado no XML; quando vazio, mantém o CNPJ da empresa emissora.", + "type": [ + "string", + "null" + ] + }, + "Codigo": { + "type": [ + "integer", + "null" + ] + }, + "DeclaracaoContribuinteICMS": { + "description": "Texto da declaração de contribuinte ICMS (xObs1). OBRIGATÓRIO, até 2000 caracteres. Texto padrão sugerido: \"Declaro, sob as penas da lei, que não sou contribuinte do ICMS.\"", + "type": "string" + }, + "DeclaracaoCrimeTributario": { + "description": "Texto da declaração de crime tributário (xObs2). OBRIGATÓRIO, até 5000 caracteres. Texto padrão sugerido: \"Declaro, sob as penas da lei, que o conteúdo desta declaração é verdadeiro e que não estou cometendo crime contra a ordem tributária.\"", + "type": "string" + }, + "Destinatario": { + "additionalProperties": false, + "description": "Destinatário do pacote. OBRIGATÓRIO. Exige Endereco completo.", + "properties": { + "Contato": { + "additionalProperties": false, + "properties": { + "Email": { + "type": [ + "string", + "null" + ] + }, + "Fax": { + "type": [ + "string", + "null" + ] + }, + "Telefone": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "CpfCnpj": { + "description": "CPF ou CNPJ", + "type": [ + "string", + "null" + ] + }, + "Endereco": { + "additionalProperties": false, + "properties": { + "Bairro": { + "type": [ + "string", + "null" + ] + }, + "Cep": { + "type": [ + "string", + "null" + ] + }, + "CodMunicipio": { + "type": [ + "string", + "null" + ] + }, + "CodPais": { + "default": 1058, + "type": "integer" + }, + "Complemento": { + "type": [ + "string", + "null" + ] + }, + "Logradouro": { + "type": [ + "string", + "null" + ] + }, + "Municipio": { + "type": [ + "string", + "null" + ] + }, + "Numero": { + "type": [ + "string", + "null" + ] + }, + "Pais": { + "default": "BRASIL", + "type": [ + "string", + "null" + ] + }, + "Uf": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "Nome": { + "description": "Nome ou Razão Social", + "type": [ + "string", + "null" + ] + } + }, + "type": "object" + }, + "IdentificadorInterno": { + "type": [ + "string", + "null" + ] + }, + "InformacoesAdicionaisFisco": { + "description": "Informações adicionais de interesse do fisco (opcional, até 2000 caracteres).", + "type": [ + "string", + "null" + ] + }, + "InformacoesComplementares": { + "description": "Informações complementares (opcional, até 5000 caracteres).", + "type": [ + "string", + "null" + ] + }, + "Itens": { + "description": "Itens/produtos declarados no conteúdo (mínimo 1, máximo 999). Cada item exige Descricao (até 120 chars) e ValorTotal > 0. NCM opcional (2 ou 8 dígitos quando informado).", + "items": { + "additionalProperties": false, + "properties": { + "Descricao": { + "description": "Descrição do produto/conteúdo (1-120 caracteres). Obrigatória.", + "type": "string" + }, + "InformacoesAdicionais": { + "description": "Informações adicionais do produto (opcional, até 500 caracteres)", + "type": [ + "string", + "null" + ] + }, + "NCM": { + "description": "Código NCM. Quando informado deve ter 2 ou 8 dígitos. Opcional na DC-e.", + "type": [ + "string", + "null" + ] + }, + "Quantidade": { + "description": "Quantidade do item.", + "type": [ + "number", + "null" + ] + }, + "ValorTotal": { + "description": "Valor total do item. Deve ser > 0.", + "type": "number" + }, + "ValorUnitario": { + "description": "Valor unitário do item.", + "type": [ + "number", + "null" + ] + } + }, + "required": [ + "Descricao", + "ValorTotal" + ], + "type": "object" + }, + "type": "array" + }, + "Lote": { + "type": [ + "integer", + "null" + ] + }, + "ModalidadeTransporte": { + "default": 2, + "description": "Modalidade de transporte: Valores: 0 - Correios; 1 - Conta própria; 2 - Transportadora", + "enum": [ + 0, + 1, + 2 + ], + "type": "integer" + }, + "Numero": { + "type": [ + "integer", + "null" + ] + }, + "Remetente": { + "additionalProperties": false, + "description": "Pessoa física/jurídica que está enviando o pacote. OBRIGATÓRIO. Exige Endereco completo (validado por ValidaPessoaDCe).", + "properties": { + "Contato": { + "additionalProperties": false, + "properties": { + "Email": { + "type": [ + "string", + "null" + ] + }, + "Fax": { + "type": [ + "string", + "null" + ] + }, + "Telefone": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "CpfCnpj": { + "description": "CPF ou CNPJ", + "type": [ + "string", + "null" + ] + }, + "Endereco": { + "additionalProperties": false, + "properties": { + "Bairro": { + "type": [ + "string", + "null" + ] + }, + "Cep": { + "type": [ + "string", + "null" + ] + }, + "CodMunicipio": { + "type": [ + "string", + "null" + ] + }, + "CodPais": { + "default": 1058, + "type": "integer" + }, + "Complemento": { + "type": [ + "string", + "null" + ] + }, + "Logradouro": { + "type": [ + "string", + "null" + ] + }, + "Municipio": { + "type": [ + "string", + "null" + ] + }, + "Numero": { + "type": [ + "string", + "null" + ] + }, + "Pais": { + "default": "BRASIL", + "type": [ + "string", + "null" + ] + }, + "Uf": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "Nome": { + "description": "Nome ou Razão Social", + "type": [ + "string", + "null" + ] + } + }, + "type": "object" + }, + "Serie": { + "type": [ + "integer", + "null" + ] + }, + "SiteMarketplace": { + "description": "URL do site do marketplace (obrigatório quando TipoEmitente=1)", + "type": [ + "string", + "null" + ] + }, + "TipoAmbiente": { + "description": "Tipo de ambiente. Valores: 1 - Produção (emissão real); 2 - Homologação (teste)", + "enum": [ + 1, + 2 + ], + "type": "integer" + }, + "TipoEmitente": { + "default": 3, + "description": "Tipo do emitente: Valores: 0 - App Fisco; 1 - Marketplace; 2 - Emissor próprio; 3 - Transportadora; 4 - ECT (Correios)", + "enum": [ + 0, + 1, + 2, + 3, + 4 + ], + "type": "integer" + }, + "UfFisco": { + "description": "Sigla da UF do órgão fiscalizador (obrigatório quando TipoEmitente=0). Se não preenchido, usa a UF da empresa emissora.", + "type": [ + "string", + "null" + ] + }, + "ValorTotal": { + "description": "Valor total declarado da DC-e. Se omitido, soma dos ValorTotal dos itens. Deve ser > 0.", + "type": [ + "number", + "null" + ] + }, + "XOrgaoFisco": { + "description": "Nome do órgão fiscalizador (obrigatório quando TipoEmitente=0)", + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "TipoAmbiente", + "Remetente", + "Destinatario", + "Itens", + "DeclaracaoContribuinteICMS", + "DeclaracaoCrimeTributario" + ], + "type": [ + "object", + "null" + ] +} - added
Input schema / properties / mdfeAdded value: +{ + "additionalProperties": false, + "description": "MDF-e (modelo 58). Usado quando TipoEnvio = 1. Gera o DAMDFE/XML de pré-visualização.", + "properties": { + "Aereo": { + "additionalProperties": false, + "properties": { + "aerodromoDestino": { + "type": [ + "string", + "null" + ] + }, + "aerodromoEmbarque": { + "type": [ + "string", + "null" + ] + }, + "dataVoo": { + "description": "Data/hora ISO 8601 (ex: 2026-07-22T13:45:00-03:00)", + "type": "string" + }, + "matricula": { + "type": [ + "string", + "null" + ] + }, + "nacionalidade": { + "type": [ + "string", + "null" + ] + }, + "numeroVoo": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "Aquaviario": { + "additionalProperties": false, + "properties": { + "cnpjAgencia": { + "type": [ + "string", + "null" + ] + }, + "codEmbarcacao": { + "type": [ + "string", + "null" + ] + }, + "codPortoDestino": { + "type": [ + "string", + "null" + ] + }, + "codPortoEmbarque": { + "type": [ + "string", + "null" + ] + }, + "nomeEmbarcacao": { + "type": [ + "string", + "null" + ] + }, + "numeroViagem": { + "type": [ + "string", + "null" + ] + }, + "tipoEmbarcacao": { + "type": "integer" + } + }, + "type": [ + "object", + "null" + ] + }, + "DataEmissao": { + "description": "Data/hora ISO 8601 (ex: 2026-07-22T13:45:00-03:00)", + "type": [ + "string", + "null" + ] + }, + "Ferroviario": { + "additionalProperties": false, + "properties": { + "DataLiberacao": { + "description": "Data/hora ISO 8601 (ex: 2026-07-22T13:45:00-03:00)", + "type": "string" + }, + "Vagoes": { + "items": { + "additionalProperties": false, + "properties": { + "numero": { + "type": "integer" + }, + "pesoBc": { + "description": "Peso Base de Cálculo de Frete em Toneladas", + "type": "number" + }, + "pesoReal": { + "description": "Peso Real em Toneladas", + "type": "number" + }, + "sequencia": { + "type": [ + "integer", + "null" + ] + }, + "serie": { + "type": "integer" + }, + "toneladaUtil": { + "type": "number" + } + }, + "type": "object" + }, + "type": [ + "array", + "null" + ] + }, + "destino": { + "type": [ + "string", + "null" + ] + }, + "origem": { + "type": [ + "string", + "null" + ] + }, + "prefixo": { + "type": [ + "string", + "null" + ] + }, + "quantidadeVagoes": { + "type": "integer" + } + }, + "type": [ + "object", + "null" + ] + }, + "Rodoviario": { + "additionalProperties": false, + "description": "Dados do transporte rodoviário (placa 7 caracteres, condutores com CPF/nome, UF do veículo). OBRIGATÓRIO quando modalidade = 1.", + "properties": { + "CIOT": { + "additionalProperties": false, + "properties": { + "cnpj": { + "type": [ + "string", + "null" + ] + }, + "codigo": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "capKG": { + "description": "Capacidade em KG do veículo de tração. Opcional.", + "type": [ + "integer", + "null" + ] + }, + "capM3": { + "description": "Capacidade em M3 do veículo de tração. Opcional.", + "type": [ + "integer", + "null" + ] + }, + "condutores": { + "items": { + "additionalProperties": false, + "properties": { + "cpf": { + "type": [ + "string", + "null" + ] + }, + "nome": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" + }, + "type": [ + "array", + "null" + ] + }, + "contratantes": { + "description": "Contratantes do serviço de transporte (grupo infANTT/infContratante).", + "items": { + "additionalProperties": false, + "properties": { + "cpfCnpj": { + "description": "CPF, CNPJ ou identificador estrangeiro do contratante do transporte.", + "type": [ + "string", + "null" + ] + }, + "nome": { + "description": "Razão social ou nome do contratante.", + "type": [ + "string", + "null" + ] + }, + "nroContrato": { + "description": "Número do contrato do transportador com o contratante, para prestações continuadas.", + "type": [ + "string", + "null" + ] + }, + "vContratoGlobal": { + "description": "Valor global do contrato. Usar somente no pagamento a prazo.", + "type": [ + "number", + "null" + ] + } + }, + "type": "object" + }, + "type": [ + "array", + "null" + ] + }, + "pagamentos": { + "description": "Informações de pagamento do frete (grupo infANTT/infPag).", + "items": { + "additionalProperties": false, + "properties": { + "altoDesempenho": { + "description": "Operação de transporte de alto desempenho (frota dedicada/fidelizada).", + "type": "boolean" + }, + "anteciparAdiantamento": { + "description": "Concordância em antecipar o adiantamento.", + "type": "boolean" + }, + "componentes": { + "description": "Componentes do pagamento do frete.", + "items": { + "additionalProperties": false, + "properties": { + "descricao": { + "description": "Descrição do componente (usar quando tipo = 99).", + "type": [ + "string", + "null" + ] + }, + "tipo": { + "description": "Tipo do componente: 01 - Vale-Pedágio; 02 - Impostos, taxas e contribuições; 03 - Despesas; 99 - Outros.", + "type": [ + "string", + "null" + ] + }, + "valor": { + "description": "Valor do componente.", + "type": "number" + } + }, + "type": "object" + }, + "type": [ + "array", + "null" + ] + }, + "cpfCnpjResponsavel": { + "description": "CPF, CNPJ ou identificador estrangeiro do responsável pelo pagamento do frete.", + "type": [ + "string", + "null" + ] + }, + "indicadorPagamento": { + "description": "Forma de pagamento: 0 - à vista; 1 - a prazo.", + "type": "integer" + }, + "infoBancaria": { + "additionalProperties": false, + "description": "Informações bancárias para recebimento do frete.", + "properties": { + "cnpjInstituicaoPagamento": { + "description": "CNPJ da instituição de pagamento eletrônico do frete (alternativa ao banco/agência).", + "type": [ + "string", + "null" + ] + }, + "codAgencia": { + "description": "Número da agência bancária.", + "type": [ + "string", + "null" + ] + }, + "codBanco": { + "description": "Número do banco. Informar junto com a agência (ou use cnpjInstituicaoPagamento, ou pix).", + "type": [ + "string", + "null" + ] + }, + "pix": { + "description": "Chave PIX para recebimento do frete (alternativa ao banco/agência).", + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "nomeResponsavel": { + "description": "Razão social ou nome do responsável pelo pagamento.", + "type": [ + "string", + "null" + ] + }, + "parcelas": { + "description": "Parcelas do pagamento (informar somente se a prazo).", + "items": { + "additionalProperties": false, + "properties": { + "numero": { + "description": "Número da parcela.", + "type": "integer" + }, + "valor": { + "description": "Valor da parcela.", + "type": [ + "number", + "null" + ] + }, + "vencimento": { + "description": "Data de vencimento da parcela.", + "type": [ + "string", + "null" + ] + } + }, + "type": "object" + }, + "type": [ + "array", + "null" + ] + }, + "tipoAntecipacao": { + "description": "Permissão de antecipação das parcelas: 0 - não permite; 1 - permite; 2 - permite mediante confirmação.", + "type": [ + "integer", + "null" + ] + }, + "valorAdiantamento": { + "description": "Valor do adiantamento (usar apenas em pagamento a prazo).", + "type": [ + "number", + "null" + ] + }, + "valorContrato": { + "description": "Valor total do contrato.", + "type": "number" + } + }, + "type": "object" + }, + "type": [ + "array", + "null" + ] + }, + "placa": { + "type": [ + "string", + "null" + ] + }, + "reboques": { + "description": "Lista de veículos de reboque acoplados à tração. Opcional - se nulo/vazio,", + "items": { + "additionalProperties": false, + "properties": { + "capKG": { + "type": [ + "integer", + "null" + ] + }, + "capM3": { + "type": [ + "integer", + "null" + ] + }, + "placa": { + "description": "Placa do reboque (sem máscara).", + "type": [ + "string", + "null" + ] + }, + "renavam": { + "type": [ + "string", + "null" + ] + }, + "tara": { + "description": "Tara em KG", + "type": [ + "integer", + "null" + ] + }, + "tipoCarroceria": { + "description": "Tipo de Carroceria Valores: 0 - Não aplicável; 1 - Aberta; 2 - Fechado Baú; 3 - Granelera; 4 - Porta Container; 5 - Sider", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5 + ], + "type": "integer" + }, + "uf": { + "description": "UF de licenciamento do reboque (sigla de 2 letras).", + "type": [ + "string", + "null" + ] + } + }, + "type": "object" + }, + "type": [ + "array", + "null" + ] + }, + "renavam": { + "type": [ + "string", + "null" + ] + }, + "tara": { + "description": "Tara em KG", + "type": "integer" + }, + "tipoCarroceria": { + "description": "Tipo de Carroceria (Padrão 1) Valores: 0 - Não aplicavel; 1 - Aberta; 2 - Fechado Baú; 3 - Granelera; 4 - Porta Container; 5 - Sider", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5 + ], + "type": "integer" + }, + "tipoRodado": { + "description": "Tipo de Rodado (Padrão 1) Valores: 1 - Truck; 2 - Toco; 3 - Cavalo Mecânico; 4 - VAN; 5 - Utilitário; 6 - Outros", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6 + ], + "type": "integer" + }, + "uf": { + "type": [ + "string", + "null" + ] + }, + "valePedagio": { + "additionalProperties": false, + "description": "Vale-pedágio (grupo infANTT/valePed).", + "properties": { + "categoriaCombinacaoVeicular": { + "description": "Categoria de combinação veicular (02 a 14, conforme número de eixos).", + "type": [ + "string", + "null" + ] + }, + "dispositivos": { + "description": "Dispositivos do vale-pedágio.", + "items": { + "additionalProperties": false, + "properties": { + "cnpjFornecedor": { + "description": "CNPJ da empresa fornecedora do vale-pedágio.", + "type": [ + "string", + "null" + ] + }, + "cpfCnpjPagador": { + "description": "CPF ou CNPJ do responsável pelo pagamento. Informar quando não for o emitente do MDF-e.", + "type": [ + "string", + "null" + ] + }, + "numeroComprovante": { + "description": "Número do comprovante de compra.", + "type": [ + "string", + "null" + ] + }, + "tipo": { + "description": "Tipo do vale-pedágio: 01 - TAG, 02 - Cupom, 03 - Cartão.", + "type": [ + "string", + "null" + ] + }, + "valor": { + "description": "Valor do vale-pedágio.", + "type": "number" + } + }, + "type": "object" + }, + "type": [ + "array", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "carregamentos": { + "items": { + "additionalProperties": false, + "properties": { + "codMunicipio": { + "type": "integer" + }, + "municipio": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" + }, + "type": [ + "array", + "null" + ] + }, + "codigo": { + "type": [ + "integer", + "null" + ] + }, + "descarregamentos": { + "items": { + "additionalProperties": false, + "properties": { + "chaveDfe": { + "type": [ + "string", + "null" + ] + }, + "codMunicipio": { + "type": "integer" + }, + "municipio": { + "type": [ + "string", + "null" + ] + }, + "transportePerigosos": { + "items": { + "additionalProperties": false, + "properties": { + "codigoONU": { + "type": [ + "string", + "null" + ] + }, + "quantidade": { + "type": "number" + } + }, + "type": "object" + }, + "type": [ + "array", + "null" + ] + } + }, + "type": "object" + }, + "type": [ + "array", + "null" + ] + }, + "identificadorInterno": { + "type": [ + "string", + "null" + ] + }, + "lote": { + "type": [ + "integer", + "null" + ] + }, + "modalidade": { + "default": 1, + "description": "Modalidade de transporte. Valores: 1 - Rodoviário (exige objeto Rodoviario com placa, condutores e percurso); 2 - Aéreo (exige objeto Aereo); 3 - Aquaviário (exige objeto Aquaviario); 4 - Ferroviário (exige objeto Ferroviario)", + "enum": [ + 1, + 2, + 3, + 4 + ], + "type": "integer" + }, + "numero": { + "type": [ + "integer", + "null" + ] + }, + "observacao": { + "type": [ + "string", + "null" + ] + }, + "observacaoFisco": { + "type": [ + "string", + "null" + ] + }, + "percursoUfs": { + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "peso": { + "description": "Peso bruto total das mercadorias em KG. DEVE ser > 0.", + "type": "number" + }, + "produtoPredominante": { + "additionalProperties": false, + "description": "Produto predominante transportado. Opcional.", + "properties": { + "cEan": { + "description": "GTIN/EAN do produto. Opcional. Use \"SEM GTIN\" se não houver.", + "type": [ + "string", + "null" + ] + }, + "descricao": { + "description": "Descrição do produto predominante (1 a 120 caracteres).", + "type": [ + "string", + "null" + ] + }, + "infLotacao": { + "additionalProperties": false, + "description": "Informações de carga lotação. Opcional - só preencha quando o MDF-e for de carga lotação.", + "properties": { + "localCarrega": { + "additionalProperties": false, + "description": "Local de carregamento da lotação. Informe CEP OU (latitude + longitude).", + "properties": { + "cep": { + "description": "CEP do local (8 dígitos). Quando informado, latitude/longitude são ignorados.", + "type": [ + "string", + "null" + ] + }, + "latitude": { + "description": "Latitude. Informe junto com longitude quando não houver CEP.", + "type": [ + "string", + "null" + ] + }, + "longitude": { + "description": "Longitude. Informe junto com latitude quando não houver CEP.", + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "localDescarrega": { + "additionalProperties": false, + "description": "Local de descarregamento da lotação. Informe CEP OU (latitude + longitude).", + "properties": { + "cep": { + "description": "CEP do local (8 dígitos). Quando informado, latitude/longitude são ignorados.", + "type": [ + "string", + "null" + ] + }, + "latitude": { + "description": "Latitude. Informe junto com longitude quando não houver CEP.", + "type": [ + "string", + "null" + ] + }, + "longitude": { + "description": "Longitude. Informe junto com latitude quando não houver CEP.", + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "ncm": { + "description": "Código NCM do produto. Opcional. Aceita 2 ou 8 dígitos.", + "type": [ + "string", + "null" + ] + }, + "tpCarga": { + "description": "Tipo de Carga (Resolução ANTT 5.849/2019). Valor de 1 a 11. Valores: 1 - Granel sólido; 2 - Granel líquido; 3 - Frigorificada; 4 - Conteinerizada; 5 - Carga Geral; 6 - Neogranel; 7 - Perigosa (granel sólido); 8 - Perigosa (granel líquido); 9 - Perigosa (carga frigorificada); 10 - Perigosa (conteinerizada); 11 - Perigosa (carga geral)", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11 + ], + "type": "integer" + } + }, + "type": [ + "object", + "null" + ] + }, + "seguros": { + "items": { + "additionalProperties": false, + "properties": { + "cnpjSegurador": { + "description": "CNPJ da seguradora (somente dígitos).", + "type": [ + "string", + "null" + ] + }, + "cpfCnpjResponsavel": { + "description": "CPF ou CNPJ do responsável pela contratação do seguro. Informar somente quando indicadorResponsavel = 2 (responsável pela contratação); se for o próprio emitente do MDF-e, o CNPJ da empresa é utilizado automaticamente.", + "type": [ + "string", + "null" + ] + }, + "indicadorResponsavel": { + "default": 1, + "description": "Identificação do Ambiente (Padrão 1) Valores: 1 - Emitente do MDF-e; 2 - Responsável pela contratação", + "enum": [ + 1, + 2 + ], + "type": "integer" + }, + "nomeSegurador": { + "description": "Razão social / nome da seguradora.", + "type": [ + "string", + "null" + ] + }, + "numeroApolice": { + "description": "Número da apólice de seguro. Obrigatório para modal rodoviário no MDF-e versão 3.00.", + "type": [ + "string", + "null" + ] + }, + "numerosAverbacao": { + "description": "Lista de números de averbação do seguro (0..N). Opcional.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + } + }, + "type": "object" + }, + "type": [ + "array", + "null" + ] + }, + "serie": { + "type": [ + "integer", + "null" + ] + }, + "tipoAmbiente": { + "default": 1, + "description": "Tipo de ambiente. IMPORTANTE: passe explicitamente. Para testes use 2. Valores: 1 - Produção; 2 - Homologação", + "enum": [ + 1, + 2 + ], + "type": "integer" + }, + "tipoEmitente": { + "default": 2, + "description": "Tipo de emitente. Valores: 1 - Prestador de Serviço de Transporte (transportadora); 2 - Transportador de carga própria (mais comum - empresa transportando seus próprios produtos)", + "enum": [ + 1, + 2 + ], + "type": "integer" + }, + "ufCarregamento": { + "description": "UF de carregamento (origem). Sigla de 2 letras (SP, RJ, MG...).", + "type": "string" + }, + "ufDescarregamento": { + "description": "UF de descarregamento (destino). Sigla de 2 letras (SP, RJ, MG...).", + "type": "string" + }, + "valor": { + "description": "Valor total das mercadorias transportadas. DEVE ser > 0.", + "type": "number" + } + }, + "required": [ + "tipoAmbiente", + "tipoEmitente", + "ufCarregamento", + "ufDescarregamento", + "modalidade", + "valor", + "peso" + ], + "type": [ + "object", + "null" + ] +} - changed
Input schema / properties / mostrarTarjaPreVisualizacao / descriptionPrevious value: -"Mostrar tarja \"SEM VALOR FISCAL - PRÉ-VISUALIZAÇÃO\" (Padrão - Verdadeiro) Somente para o tipo de arquivo 1 - PDF"New value: +"Mostrar tarja \"SEM VALOR FISCAL - PRÉ-VISUALIZAÇÃO\" (Padrão - Verdadeiro) Somente para o tipo de arquivo PDF e se um dos serviços de emissão estiver ativo para a empresa" - added
Input schema / properties / nfseAdded value: +{ + "additionalProperties": false, + "description": "NFS-e. Usado quando TipoEnvio = 1. Gera o DANFSe/XML de pré-visualização (sem validade jurídica).", + "properties": { + "Lote": { + "type": [ + "integer", + "null" + ] + }, + "TipoAmbiente": { + "description": "Identificação do ambiente da prefeitura/portal nacional. Valores: 1 - Produção (emissão REAL, com valor fiscal); 2 - Homologação (teste)", + "enum": [ + 1, + 2 + ], + "type": "integer" + }, + "nFSInfo": { + "description": "Lista de NFS-e a emitir no lote. Mínimo 1 item.", + "items": { + "additionalProperties": false, + "properties": { + "ConstrucaoCivil": { + "additionalProperties": false, + "properties": { + "Art": { + "type": [ + "string", + "null" + ] + }, + "CodObra": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "DataCompetencia": { + "description": "Data de competência do serviço. Se não informado, usa a data de emissão. Não pode ser anterior a 1 ano da data atual.", + "type": [ + "string", + "null" + ] + }, + "DataEmissao": { + "description": "Data/hora ISO 8601 (ex: 2026-07-22T13:45:00-03:00)", + "type": [ + "string", + "null" + ] + }, + "EnviarEmail": { + "type": "boolean" + }, + "IdentificadorInterno": { + "type": [ + "string", + "null" + ] + }, + "Intermediario": { + "additionalProperties": false, + "properties": { + "CPFCNPJ": { + "type": [ + "string", + "null" + ] + }, + "InscricaoMunicipal": { + "type": [ + "string", + "null" + ] + }, + "RzSocial": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "NumeroRps": { + "type": [ + "integer", + "null" + ] + }, + "SerieRps": { + "type": [ + "string", + "null" + ] + }, + "Servico": { + "additionalProperties": false, + "description": "Dados do serviço prestado. OBRIGATÓRIO. Exige ao menos: ItemListaServico (item LC 116/2003 no provedor municipal, ou Código de Tributação Nacional cTribNac no ambiente nacional - ver ItemListaServico) e Valores.ValorServico > 0.", + "properties": { + "CodMunicipioIncidencia": { + "description": "Código do municipio da incedência do serviço (Padrão - Município do Prestador)", + "type": [ + "string", + "null" + ] + }, + "CodMunicipioPrestacao": { + "description": "Código do municipio da prestação do serviço (Padrão - Município do Prestador)", + "type": [ + "string", + "null" + ] + }, + "CodNBS": { + "description": "Código NBS (Nomenclatura Brasileira de Serviços).", + "type": [ + "string", + "null" + ] + }, + "CodTributacaoMunicipio": { + "description": "Código de tributação do município", + "type": [ + "string", + "null" + ] + }, + "CodigoCnae": { + "description": "Código CNAE (Classificação Nacional de Atividades Econômicas)", + "type": [ + "string", + "null" + ] + }, + "ComercioExterior": { + "additionalProperties": false, + "description": "Informações de comércio exterior (grupo comExt do leiaute nacional). Se ExigibilidadeISS = 4 e este objeto não for enviado, valores padrão são aplicados (modo Transfronteiriço, sem vínculo, sem mecanismo de apoio, moeda USD, valor = ValorServico).", + "properties": { + "ApoioPrestador": { + "description": "Mecanismo de apoio/fomento ao comércio exterior pelo prestador (mecAFComexP). Padrão 1. Valores: 1 - Nenhum; 2 - ACC; 3 - ACE; 4 - BNDES-Exim Pós; 5 - BNDES-Exim Pré; 6 - FGE; 7 - PROEX Equalização; 8 - PROEX Financiamento", + "enum": [ + 1, + 2, + null + ], + "type": [ + "integer", + "null" + ] + }, + "ApoioTomador": { + "description": "Mecanismo de apoio/fomento ao comércio exterior pelo tomador (mecAFComexT). Padrão 1.", + "type": [ + "integer", + "null" + ] + }, + "CodMoeda": { + "description": "Código da moeda estrangeira (tpMoeda), ISO 4217 numérico de 3 dígitos. Padrão 840 (USD). Ex: 840 = Dólar americano, 978 = Euro, 826 = Libra esterlina.", + "type": [ + "integer", + "null" + ] + }, + "CompartilharMDIC": { + "description": "Compartilhar as informações da NFS-e com o MDIC/Secretaria de Comércio Exterior (mdic). Padrão 0. Valores: 0 - Não enviar; 1 - Enviar", + "enum": [ + 0, + 1, + null + ], + "type": [ + "integer", + "null" + ] + }, + "ModoPrestacao": { + "description": "Modo de prestação do serviço (mdPrestacao). Padrão 1. Valores: 1 - Transfronteiriço; 2 - Consumo no Brasil; 3 - Presença comercial no exterior; 4 - Movimento temporário de pessoas físicas", + "enum": [ + 1, + 2, + 3, + 4, + null + ], + "type": [ + "integer", + "null" + ] + }, + "MovimentacaoTemporariaBens": { + "description": "Movimentação temporária de bens (movTempBens). Padrão 1. Valores: 1 - Não; 2 - Vinculada à Declaração de Importação; 3 - Vinculada à Declaração de Exportação", + "enum": [ + 1, + 2, + 3, + null + ], + "type": [ + "integer", + "null" + ] + }, + "NumeroDI": { + "description": "Número da Declaração de Importação (nDI). Opcional.", + "type": [ + "string", + "null" + ] + }, + "NumeroRE": { + "description": "Número do Registro de Exportação (nRE). Opcional.", + "type": [ + "string", + "null" + ] + }, + "ValorMoedaEstrangeira": { + "description": "Valor do serviço na moeda estrangeira informada (vServMoeda). Se não informado, usa o ValorServico (valor em reais) - recomenda-se informar o valor real na moeda.", + "type": [ + "number", + "null" + ] + }, + "VinculoPrestador": { + "description": "Vínculo entre prestador e tomador (vincPrest). Padrão 0. Valores: 0 - Sem vínculo; 1 - Controlada; 2 - Controladora; 3 - Coligada; 4 - Matriz; 5 - Filial ou sucursal; 6 - Outro vínculo", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + null + ], + "type": [ + "integer", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "ConfiguracaoImposto": { + "additionalProperties": false, + "properties": { + "ForcarIncidenciaCofins": { + "description": "Indide 3,00% de COFINS independente do valor", + "type": "boolean" + }, + "ForcarIncidenciaCsll": { + "description": "Indide 1,00% de CSLL independente do valor", + "type": "boolean" + }, + "ForcarIncidenciaIr": { + "description": "Indide 1,50% (ou a alíquota informada em (Valores -> AliquotaIr)) de IR independente do valor", + "type": "boolean" + }, + "ForcarIncidenciaPis": { + "description": "Indide 0,65% de PIS independente do valor", + "type": "boolean" + }, + "IncideCofins": { + "description": "Indide 3,00% de COFINS caso o valor for maior que R$215,05", + "type": "boolean" + }, + "IncideCsll": { + "description": "Indide 1,00% de CSLL caso o valor for maior que R$215,05", + "type": "boolean" + }, + "IncideIr": { + "description": "Indide 1,50% (ou a alíquota informada em (Valores -> AliquotaIr)) de IR caso o valor for maior que R$666,66", + "type": "boolean" + }, + "IncidePis": { + "description": "Indide 0,65% de PIS caso o valor for maior que R$215,05", + "type": "boolean" + } + }, + "type": [ + "object", + "null" + ] + }, + "Descricao": { + "type": [ + "string", + "null" + ] + }, + "ExigibilidadeISS": { + "default": 1, + "description": "Exigibilidade ISS (Padrão 1) Valores: 1 - Exigível; 2 - Não incidência; 3 - Isenção; 4 - Exportação; 5 - Imunidade; 6 - Exigibilidade Suspensa por Decisão Judicia; 7 - Exigibilidade Suspensa por Processo Administrativo", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "type": "integer" + }, + "IBSCBS": { + "additionalProperties": false, + "properties": { + "AliqCbs": { + "description": "Alíquota da CBS (pCBS) em %. Se null, usa 0,90% (padrão de teste 2025-2026).", + "type": [ + "number", + "null" + ] + }, + "AliqIbsMun": { + "description": "Alíquota do IBS Municipal (pIBSMun) em %. Se null, usa 0% (padrão de teste 2025-2026).", + "type": [ + "number", + "null" + ] + }, + "AliqIbsUf": { + "description": "Alíquota do IBS Estadual (pIBSUF) em %. Se null, usa 0,10% (padrão de teste 2025-2026).", + "type": [ + "number", + "null" + ] + }, + "BaseCalculo": { + "description": "Base de cálculo do IBS/CBS (vBC). Se null, usa ValorServico - DescontoIncondicionado.", + "type": [ + "number", + "null" + ] + }, + "CodClassTrib": { + "description": "Código de Classificação Tributária (cClassTrib, 6 dígitos). Os 3 primeiros são o CST. Padrão 000001.", + "type": [ + "string", + "null" + ] + }, + "CodIndicadorOperacao": { + "description": "Código Indicador da Operação (cIndOp, 6 dígitos).", + "type": [ + "string", + "null" + ] + }, + "EnderecoImovel": { + "additionalProperties": false, + "description": "Endereço do imóvel onde o serviço foi prestado. Obrigatório (grupo imovel na DPS) quando o cIndOp é de operação sobre bem imóvel (020101/020201/020301) É um endereço próprio da operação (NÃO o do tomador); se ficar vazio nesses casos, cai no endereço do tomador.", + "properties": { + "Bairro": { + "type": [ + "string", + "null" + ] + }, + "Cep": { + "type": [ + "string", + "null" + ] + }, + "CodMunicipio": { + "type": [ + "string", + "null" + ] + }, + "CodPais": { + "default": 1058, + "type": "integer" + }, + "Complemento": { + "type": [ + "string", + "null" + ] + }, + "Logradouro": { + "type": [ + "string", + "null" + ] + }, + "Municipio": { + "type": [ + "string", + "null" + ] + }, + "Numero": { + "type": [ + "string", + "null" + ] + }, + "Pais": { + "default": "BRASIL", + "type": [ + "string", + "null" + ] + }, + "Uf": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "IndicadorDestinatario": { + "description": "Indicador do destinatário dos serviços (indDest). Valores: 0 - O destinatário é o próprio tomador/adquirente (padrão); 1 - O destinatário não é o próprio adquirente (caso com intermediário)", + "enum": [ + 0, + 1 + ], + "type": "integer" + }, + "IndicadorUsoFinal": { + "description": "Indica operação de uso ou consumo pessoal (indFinal, art. 57). Valores: 0 - Não (padrão); 1 - Sim", + "enum": [ + 0, + 1 + ], + "type": "integer" + }, + "InscricaoImobiliariaImovel": { + "description": "Inscrição imobiliária fiscal (IPTU) do imóvel - opcional, dentro do grupo imovel.", + "type": [ + "string", + "null" + ] + }, + "TipoOperacao": { + "description": "Tipo de Operação (tpOper). Obrigatório para os serviços da LC 116/2003 25.05, 15.09, 17.12 e 10.05 (senão a prefeitura recusa com E0903). Se null nesses casos, assume 5 (fornecimento e recebimento concomitantes). Valores: 1 - Fornecimento com pagamento posterior; 2 - Recebimento do pagamento com fornecimento já realizado; 3 - Fornecimento com pagamento já realizado; 4 - Recebimento do pagamento com fornecimento posterior; 5 - Fornecimento e recebimento do pagamento concomitantes", + "enum": [ + 1, + 2, + 3, + 4, + 5, + null + ], + "type": [ + "integer", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "IncentivadorCultural": { + "description": "Incentio Cultural?", + "type": "boolean" + }, + "IncentivoFiscal": { + "description": "Incentivo Fiscal?", + "type": "boolean" + }, + "IssRetido": { + "description": "Iss Retido?", + "type": "boolean" + }, + "ItemListaServico": { + "description": "Código do serviço prestado. OBRIGATÓRIO. O significado depende do provedor do município (IdProvedorNFSe):", + "type": "string" + }, + "NaturezaOperacao": { + "description": "Alguns municípios possui códigos específicos, para mais informações, veja a documentação:", + "type": "integer" + }, + "RegimeEspecialTributacao": { + "description": "0 - Sem Regime Especial; 1 - Microempresa municipal; 2 - Estimativa; 3 - Sociedade de profissionais; 4 - Cooperativa; 5 - MEI - Simples Nacional; 6 - ME EPP - Simples Nacional", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6 + ], + "type": "integer" + }, + "Valores": { + "additionalProperties": false, + "properties": { + "Aliquota": { + "description": "Alíquota do ISS (%).", + "type": "number" + }, + "AliquotaIr": { + "type": [ + "number", + "null" + ] + }, + "AliquotaSimplesNacional": { + "description": "Alíquota do Simples Nacional (%). Preenche o pTotTribSN (percentual total aproximado dos tributos) da NFS-e nacional - equivale à opção \"Informar alíquota do Simples Nacional\" do emissor nacional. Usada por optantes ME/EPP e MEI. Independente de Aliquota (ISS).", + "type": [ + "number", + "null" + ] + }, + "DescontoCondicionado": { + "type": "number" + }, + "DescontoIncondicionado": { + "type": "number" + }, + "OutrasRetencoes": { + "type": "number" + }, + "TotalTributos": { + "type": "number" + }, + "ValorDeducoes": { + "type": "number" + }, + "ValorInss": { + "type": "number" + }, + "ValorServico": { + "description": "Valor total do serviço prestado. DEVE ser maior que 0.", + "type": "number" + } + }, + "required": [ + "ValorServico" + ], + "type": [ + "object", + "null" + ] + } + }, + "required": [ + "ItemListaServico" + ], + "type": "object" + }, + "Tomador": { + "additionalProperties": false, + "description": "Dados do tomador (cliente do serviço). Obrigatório quando a prefeitura exige identificação do tomador (a maioria dos municípios). Para tomador no exterior (Endereco.CodPais != 1058) o CpfCnpj pode ser NIF estrangeiro ou ficar vazio.", + "properties": { + "Contato": { + "additionalProperties": false, + "properties": { + "Email": { + "type": [ + "string", + "null" + ] + }, + "Fax": { + "type": [ + "string", + "null" + ] + }, + "Telefone": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "CpfCnpj": { + "description": "Documento de identificação do tomador.", + "type": [ + "string", + "null" + ] + }, + "Endereco": { + "additionalProperties": false, + "properties": { + "Bairro": { + "type": [ + "string", + "null" + ] + }, + "Cep": { + "type": [ + "string", + "null" + ] + }, + "CodMunicipio": { + "type": [ + "string", + "null" + ] + }, + "CodPais": { + "default": 1058, + "type": "integer" + }, + "Complemento": { + "type": [ + "string", + "null" + ] + }, + "Logradouro": { + "type": [ + "string", + "null" + ] + }, + "Municipio": { + "type": [ + "string", + "null" + ] + }, + "Numero": { + "type": [ + "string", + "null" + ] + }, + "Pais": { + "default": "BRASIL", + "type": [ + "string", + "null" + ] + }, + "Uf": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "Im": { + "type": [ + "string", + "null" + ] + }, + "NmTomador": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + } + }, + "required": [ + "Servico" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "TipoAmbiente", + "nFSInfo" + ], + "type": [ + "object", + "null" + ] +} - added
Input schema / properties / notaFiscal / descriptionAdded value: +"NF-e / NFC-e (modelo 55/65). Usado quando TipoEnvio = 1. Gera o DANFE/XML de pré-visualização." - added
Input schema / properties / notaFiscal / properties / nFInfos / items / properties / TipoDanfeAdded value: +{ + "description": "Formato de impressão do DANFE (tag tpImp da NF-e). Não informado = padrão atual (1-Retrato para NF-e, 4 para NFC-e). Valores: 0 - Sem geração de DANFE; 1 - DANFE normal, Retrato (padrão NF-e); 2 - DANFE normal, Paisagem; 3 - DANFE Simplificado; 4 - DANFE NFC-e (padrão NFC-e; somente modelo 65); 5 - DANFE NFC-e em mensagem eletrônica (somente modelo 65); 6 - DANFE Simplificado Tipo 2 (NT 2026.002/2026.003, Ajuste SINIEF 13/26; somente modelo 55) - NF-e de varejo em operação típica de NFC-e, impressa em bobina com QR Code. Exige operação interna (CFOP 5xxx), consumidor final, finalidade 1-Normal, saída, sem notas referenciadas e IndicadorPresenca 1, 4 ou 5.", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + null + ], + "type": [ + "integer", + "null" + ] +}
2 tool updates
- Changed
nfe_emitir2 fields changed- changed
Input schema / properties / Pagamentos / items / properties / BandeiraOperadora / descriptionPrevious value: -"01 - Visa; 02 - Mastercard; 03 - American Express; 04 - Sorocred; 05 - Diners Club; 06 - Elo; 07 - Hipercard; 08 - Aura; 09 - Cabal; 99 - Outros"New value: +"01 - Visa; 02 - Mastercard; 03 - American Express; 04 - Sorocred; 05 - Diners Club; 06 - Elo; 07 - Hipercard; 08 - Aura; 09 - Cabal; 10 - Alelo; 11 - Banes Card; 12 - CalCard; 13 - Credz; 14 - Discover; 15 - GoodCard; 16 - GreenCard; 17 - Hiper; 18 - JcB; 19 - Mais; 20 - MaxVan; 21 - Policard; 22 - RedeCompras; 23 - Sodexo; 24 - ValeCard; 25 - Verocheque; 26 - VR; 27 - Ticket; 99 - Outros" - changed
Input schema / properties / Pagamentos / items / properties / BandeiraOperadora / enumPrevious value: -[ - "01", - "02", - "03", - "04", - "05", - "06", - "07", - "08", - "09", - "99", - null -]New value: +[ + "01", + "02", + "03", + "04", + "05", + "06", + "07", + "08", + "09", + "10", + "11", + "12", + "13", + "14", + "15", + "16", + "17", + "18", + "19", + "20", + "21", + "22", + "23", + "24", + "25", + "26", + "27", + "99", + null +]
- Changed
nfe_previsualizar2 fields changed- changed
Input schema / properties / notaFiscal / properties / nFInfos / items / properties / Pagamentos / items / properties / BandeiraOperadora / descriptionPrevious value: -"01 - Visa; 02 - Mastercard; 03 - American Express; 04 - Sorocred; 05 - Diners Club; 06 - Elo; 07 - Hipercard; 08 - Aura; 09 - Cabal; 99 - Outros"New value: +"01 - Visa; 02 - Mastercard; 03 - American Express; 04 - Sorocred; 05 - Diners Club; 06 - Elo; 07 - Hipercard; 08 - Aura; 09 - Cabal; 10 - Alelo; 11 - Banes Card; 12 - CalCard; 13 - Credz; 14 - Discover; 15 - GoodCard; 16 - GreenCard; 17 - Hiper; 18 - JcB; 19 - Mais; 20 - MaxVan; 21 - Policard; 22 - RedeCompras; 23 - Sodexo; 24 - ValeCard; 25 - Verocheque; 26 - VR; 27 - Ticket; 99 - Outros" - changed
Input schema / properties / notaFiscal / properties / nFInfos / items / properties / Pagamentos / items / properties / BandeiraOperadora / enumPrevious value: -[ - "01", - "02", - "03", - "04", - "05", - "06", - "07", - "08", - "09", - "99", - null -]New value: +[ + "01", + "02", + "03", + "04", + "05", + "06", + "07", + "08", + "09", + "10", + "11", + "12", + "13", + "14", + "15", + "16", + "17", + "18", + "19", + "20", + "21", + "22", + "23", + "24", + "25", + "26", + "27", + "99", + null +]
1 tool update
- Changed
nota_listar1 field changed- added
Output schema / properties / Notas / items / properties / SerieAdded value: +{ + "type": [ + "string", + "null" + ] +}
3 tool updates
- Changed
nfe_emitir7 fields changed- added
Input schema / properties / Pagamentos / items / properties / CNPJPagamentoAdded value: +{ + "description": "CNPJ do estabelecimento onde o pagamento foi processado/transacionado/recebido (CNPJPag - NT 2023.004). Informar junto com UFPagamento (os dois ou nenhum). Opcional.", + "type": [ + "string", + "null" + ] +} - added
Input schema / properties / Pagamentos / items / properties / CNPJRecebedorAdded value: +{ + "description": "CNPJ do beneficiário do pagamento (CNPJReceb - NT 2023.004). Opcional.", + "type": [ + "string", + "null" + ] +} - added
Input schema / properties / Pagamentos / items / properties / DataPagamentoAdded value: +{ + "description": "Data do pagamento (dPag - NT 2023.004). Opcional.", + "type": [ + "string", + "null" + ] +} - added
Input schema / properties / Pagamentos / items / properties / IdTerminalPagamentoAdded value: +{ + "description": "Identificador do terminal de pagamento (idTermPag - NT 2023.004). Opcional, 1-40 caracteres.", + "type": [ + "string", + "null" + ] +} - added
Input schema / properties / Pagamentos / items / properties / NumeroAutorizacao / descriptionAdded value: +"Número de autorização da operação (cAut). Para PIX, informar o EndToEndId (e2eid) da transação." - added
Input schema / properties / Pagamentos / items / properties / UFPagamentoAdded value: +{ + "description": "UF do estabelecimento onde o pagamento foi processado (UFPag - NT 2023.004). Opcional.", + "type": [ + "string", + "null" + ] +} - changed
Input schema / properties / Produtos / items / properties / Imposto / properties / ICMS / properties / motivoDesoneracaoIcms / descriptionPrevious value: -"1 - Táxi;; 2 - Deficiente Físico;; 3 - Produtor Agropecuário;; 4 - Frotista / Locadora;; 5 - Diplomático / Consular;; 6 - Utilitários e Motocicletas da Amazônia Ocidental e Áreas de Livre Comércio (Resolução 714/88 e 790/94 – CONTRAN e suas alterações);; 7 - SUFRAMA; 8 - Venda a Orgãos Publicos; 9 - Outros. (v2.0); 10 - Deficiente Condutor (Convênio ICMS 38/12). (v3.1); 11 - Deficiente não Condutor (Convênio ICMS 38/12). (v3.1); 16 - Olimpíadas Rio 2016"New value: +"1 - Táxi;; 2 - Deficiente Físico;; 3 - Produtor Agropecuário;; 4 - Frotista / Locadora;; 5 - Diplomático / Consular;; 6 - Utilitários e Motocicletas da Amazônia Ocidental e Áreas de Livre Comércio (Resolução 714/88 e 790/94 - CONTRAN e suas alterações);; 7 - SUFRAMA; 8 - Venda a Orgãos Publicos; 9 - Outros. (v2.0); 10 - Deficiente Condutor (Convênio ICMS 38/12). (v3.1); 11 - Deficiente não Condutor (Convênio ICMS 38/12). (v3.1); 16 - Olimpíadas Rio 2016"
- Changed
nfe_emitir_complementar1 field changed- changed
Input schema / properties / Produtos / items / properties / Imposto / properties / ICMS / properties / motivoDesoneracaoIcms / descriptionPrevious value: -"1 - Táxi;; 2 - Deficiente Físico;; 3 - Produtor Agropecuário;; 4 - Frotista / Locadora;; 5 - Diplomático / Consular;; 6 - Utilitários e Motocicletas da Amazônia Ocidental e Áreas de Livre Comércio (Resolução 714/88 e 790/94 – CONTRAN e suas alterações);; 7 - SUFRAMA; 8 - Venda a Orgãos Publicos; 9 - Outros. (v2.0); 10 - Deficiente Condutor (Convênio ICMS 38/12). (v3.1); 11 - Deficiente não Condutor (Convênio ICMS 38/12). (v3.1); 16 - Olimpíadas Rio 2016"New value: +"1 - Táxi;; 2 - Deficiente Físico;; 3 - Produtor Agropecuário;; 4 - Frotista / Locadora;; 5 - Diplomático / Consular;; 6 - Utilitários e Motocicletas da Amazônia Ocidental e Áreas de Livre Comércio (Resolução 714/88 e 790/94 - CONTRAN e suas alterações);; 7 - SUFRAMA; 8 - Venda a Orgãos Publicos; 9 - Outros. (v2.0); 10 - Deficiente Condutor (Convênio ICMS 38/12). (v3.1); 11 - Deficiente não Condutor (Convênio ICMS 38/12). (v3.1); 16 - Olimpíadas Rio 2016"
- Changed
nfe_previsualizar7 fields changed- added
Input schema / properties / notaFiscal / properties / nFInfos / items / properties / Pagamentos / items / properties / CNPJPagamentoAdded value: +{ + "description": "CNPJ do estabelecimento onde o pagamento foi processado/transacionado/recebido (CNPJPag - NT 2023.004). Informar junto com UFPagamento (os dois ou nenhum). Opcional.", + "type": [ + "string", + "null" + ] +} - added
Input schema / properties / notaFiscal / properties / nFInfos / items / properties / Pagamentos / items / properties / CNPJRecebedorAdded value: +{ + "description": "CNPJ do beneficiário do pagamento (CNPJReceb - NT 2023.004). Opcional.", + "type": [ + "string", + "null" + ] +} - added
Input schema / properties / notaFiscal / properties / nFInfos / items / properties / Pagamentos / items / properties / DataPagamentoAdded value: +{ + "description": "Data do pagamento (dPag - NT 2023.004). Opcional.", + "type": [ + "string", + "null" + ] +} - added
Input schema / properties / notaFiscal / properties / nFInfos / items / properties / Pagamentos / items / properties / IdTerminalPagamentoAdded value: +{ + "description": "Identificador do terminal de pagamento (idTermPag - NT 2023.004). Opcional, 1-40 caracteres.", + "type": [ + "string", + "null" + ] +} - added
Input schema / properties / notaFiscal / properties / nFInfos / items / properties / Pagamentos / items / properties / NumeroAutorizacao / descriptionAdded value: +"Número de autorização da operação (cAut). Para PIX, informar o EndToEndId (e2eid) da transação." - added
Input schema / properties / notaFiscal / properties / nFInfos / items / properties / Pagamentos / items / properties / UFPagamentoAdded value: +{ + "description": "UF do estabelecimento onde o pagamento foi processado (UFPag - NT 2023.004). Opcional.", + "type": [ + "string", + "null" + ] +} - changed
Input schema / properties / notaFiscal / properties / nFInfos / items / properties / Produtos / items / properties / Imposto / properties / ICMS / properties / motivoDesoneracaoIcms / descriptionPrevious value: -"1 - Táxi;; 2 - Deficiente Físico;; 3 - Produtor Agropecuário;; 4 - Frotista / Locadora;; 5 - Diplomático / Consular;; 6 - Utilitários e Motocicletas da Amazônia Ocidental e Áreas de Livre Comércio (Resolução 714/88 e 790/94 – CONTRAN e suas alterações);; 7 - SUFRAMA; 8 - Venda a Orgãos Publicos; 9 - Outros. (v2.0); 10 - Deficiente Condutor (Convênio ICMS 38/12). (v3.1); 11 - Deficiente não Condutor (Convênio ICMS 38/12). (v3.1); 16 - Olimpíadas Rio 2016"New value: +"1 - Táxi;; 2 - Deficiente Físico;; 3 - Produtor Agropecuário;; 4 - Frotista / Locadora;; 5 - Diplomático / Consular;; 6 - Utilitários e Motocicletas da Amazônia Ocidental e Áreas de Livre Comércio (Resolução 714/88 e 790/94 - CONTRAN e suas alterações);; 7 - SUFRAMA; 8 - Venda a Orgãos Publicos; 9 - Outros. (v2.0); 10 - Deficiente Condutor (Convênio ICMS 38/12). (v3.1); 11 - Deficiente não Condutor (Convênio ICMS 38/12). (v3.1); 16 - Olimpíadas Rio 2016"
1 tool update
- Changed
nfse_emitir2 fields changed- added
Input schema / properties / nFSInfo / items / properties / Servico / properties / IBSCBS / properties / EnderecoImovelAdded value: +{ + "additionalProperties": false, + "description": "Endereço do imóvel onde o serviço foi prestado. Obrigatório (grupo imovel na DPS) quando o cIndOp é de operação sobre bem imóvel (020101/020201/020301) É um endereço próprio da operação (NÃO o do tomador); se ficar vazio nesses casos, cai no endereço do tomador.", + "properties": { + "Bairro": { + "type": [ + "string", + "null" + ] + }, + "Cep": { + "type": [ + "string", + "null" + ] + }, + "CodMunicipio": { + "type": [ + "string", + "null" + ] + }, + "CodPais": { + "default": 1058, + "type": "integer" + }, + "Complemento": { + "type": [ + "string", + "null" + ] + }, + "Logradouro": { + "type": [ + "string", + "null" + ] + }, + "Municipio": { + "type": [ + "string", + "null" + ] + }, + "Numero": { + "type": [ + "string", + "null" + ] + }, + "Pais": { + "default": "BRASIL", + "type": [ + "string", + "null" + ] + }, + "Uf": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] +} - added
Input schema / properties / nFSInfo / items / properties / Servico / properties / IBSCBS / properties / InscricaoImobiliariaImovelAdded value: +{ + "description": "Inscrição imobiliária fiscal (IPTU) do imóvel - opcional, dentro do grupo imovel.", + "type": [ + "string", + "null" + ] +}
1 tool update
- Changed
nfse_emitir1 field changed- added
Input schema / properties / nFSInfo / items / properties / Servico / properties / IBSCBS / properties / TipoOperacaoAdded value: +{ + "description": "Tipo de Operação (tpOper). Obrigatório para os serviços da LC 116/2003 25.05, 15.09, 17.12 e 10.05 (senão a prefeitura recusa com E0903). Se null nesses casos, assume 5 (fornecimento e recebimento concomitantes). Valores: 1 - Fornecimento com pagamento posterior; 2 - Recebimento do pagamento com fornecimento já realizado; 3 - Fornecimento com pagamento já realizado; 4 - Recebimento do pagamento com fornecimento posterior; 5 - Fornecimento e recebimento do pagamento concomitantes", + "enum": [ + 1, + 2, + 3, + 4, + 5, + null + ], + "type": [ + "integer", + "null" + ] +}
1 tool update
- Changed
nota_listar1 field changed- added
Input schema / properties / TipoAmbienteAdded value: +{ + "default": 1, + "description": "Tipo de ambiente (Padrão 1 - Produção) Valores: 1 - Produção; 2 - Homologação", + "enum": [ + 1, + 2 + ], + "type": "integer" +}
1 tool update
- Changed
mdfe_emitir1 field changed- added
Input schema / properties / Rodoviario / properties / pagamentosAdded value: +{ + "description": "Informações de pagamento do frete (grupo infANTT/infPag).", + "items": { + "additionalProperties": false, + "properties": { + "altoDesempenho": { + "description": "Operação de transporte de alto desempenho (frota dedicada/fidelizada).", + "type": "boolean" + }, + "anteciparAdiantamento": { + "description": "Concordância em antecipar o adiantamento.", + "type": "boolean" + }, + "componentes": { + "description": "Componentes do pagamento do frete.", + "items": { + "additionalProperties": false, + "properties": { + "descricao": { + "description": "Descrição do componente (usar quando tipo = 99).", + "type": [ + "string", + "null" + ] + }, + "tipo": { + "description": "Tipo do componente: 01 - Vale-Pedágio; 02 - Impostos, taxas e contribuições; 03 - Despesas; 99 - Outros.", + "type": [ + "string", + "null" + ] + }, + "valor": { + "description": "Valor do componente.", + "type": "number" + } + }, + "type": "object" + }, + "type": [ + "array", + "null" + ] + }, + "cpfCnpjResponsavel": { + "description": "CPF, CNPJ ou identificador estrangeiro do responsável pelo pagamento do frete.", + "type": [ + "string", + "null" + ] + }, + "indicadorPagamento": { + "description": "Forma de pagamento: 0 - à vista; 1 - a prazo.", + "type": "integer" + }, + "infoBancaria": { + "additionalProperties": false, + "description": "Informações bancárias para recebimento do frete.", + "properties": { + "cnpjInstituicaoPagamento": { + "description": "CNPJ da instituição de pagamento eletrônico do frete (alternativa ao banco/agência).", + "type": [ + "string", + "null" + ] + }, + "codAgencia": { + "description": "Número da agência bancária.", + "type": [ + "string", + "null" + ] + }, + "codBanco": { + "description": "Número do banco. Informar junto com a agência (ou use cnpjInstituicaoPagamento, ou pix).", + "type": [ + "string", + "null" + ] + }, + "pix": { + "description": "Chave PIX para recebimento do frete (alternativa ao banco/agência).", + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "nomeResponsavel": { + "description": "Razão social ou nome do responsável pelo pagamento.", + "type": [ + "string", + "null" + ] + }, + "parcelas": { + "description": "Parcelas do pagamento (informar somente se a prazo).", + "items": { + "additionalProperties": false, + "properties": { + "numero": { + "description": "Número da parcela.", + "type": "integer" + }, + "valor": { + "description": "Valor da parcela.", + "type": [ + "number", + "null" + ] + }, + "vencimento": { + "description": "Data de vencimento da parcela.", + "type": [ + "string", + "null" + ] + } + }, + "type": "object" + }, + "type": [ + "array", + "null" + ] + }, + "tipoAntecipacao": { + "description": "Permissão de antecipação das parcelas: 0 - não permite; 1 - permite; 2 - permite mediante confirmação.", + "type": [ + "integer", + "null" + ] + }, + "valorAdiantamento": { + "description": "Valor do adiantamento (usar apenas em pagamento a prazo).", + "type": [ + "number", + "null" + ] + }, + "valorContrato": { + "description": "Valor total do contrato.", + "type": "number" + } + }, + "type": "object" + }, + "type": [ + "array", + "null" + ] +}
1 tool update
- Changed
mdfe_emitir2 fields changed- added
Input schema / properties / Rodoviario / properties / contratantesAdded value: +{ + "description": "Contratantes do serviço de transporte (grupo infANTT/infContratante).", + "items": { + "additionalProperties": false, + "properties": { + "cpfCnpj": { + "description": "CPF, CNPJ ou identificador estrangeiro do contratante do transporte.", + "type": [ + "string", + "null" + ] + }, + "nome": { + "description": "Razão social ou nome do contratante.", + "type": [ + "string", + "null" + ] + }, + "nroContrato": { + "description": "Número do contrato do transportador com o contratante, para prestações continuadas.", + "type": [ + "string", + "null" + ] + }, + "vContratoGlobal": { + "description": "Valor global do contrato. Usar somente no pagamento a prazo.", + "type": [ + "number", + "null" + ] + } + }, + "type": "object" + }, + "type": [ + "array", + "null" + ] +} - added
Input schema / properties / Rodoviario / properties / valePedagioAdded value: +{ + "additionalProperties": false, + "description": "Vale-pedágio (grupo infANTT/valePed).", + "properties": { + "categoriaCombinacaoVeicular": { + "description": "Categoria de combinação veicular (02 a 14, conforme número de eixos).", + "type": [ + "string", + "null" + ] + }, + "dispositivos": { + "description": "Dispositivos do vale-pedágio.", + "items": { + "additionalProperties": false, + "properties": { + "cnpjFornecedor": { + "description": "CNPJ da empresa fornecedora do vale-pedágio.", + "type": [ + "string", + "null" + ] + }, + "cpfCnpjPagador": { + "description": "CPF ou CNPJ do responsável pelo pagamento. Informar quando não for o emitente do MDF-e.", + "type": [ + "string", + "null" + ] + }, + "numeroComprovante": { + "description": "Número do comprovante de compra.", + "type": [ + "string", + "null" + ] + }, + "tipo": { + "description": "Tipo do vale-pedágio: 01 - TAG, 02 - Cupom, 03 - Cartão.", + "type": [ + "string", + "null" + ] + }, + "valor": { + "description": "Valor do vale-pedágio.", + "type": "number" + } + }, + "type": "object" + }, + "type": [ + "array", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] +}
2 tool updates
- Changed
nfse_emitir2 fields changed- changed
Input schema / properties / nFSInfo / items / properties / Servico / descriptionPrevious value: -"Dados do serviço prestado. OBRIGATÓRIO. Exige ao menos: ItemListaServico (código LC 116/2003 do município) e Valores.ValorServico > 0."New value: +"Dados do serviço prestado. OBRIGATÓRIO. Exige ao menos: ItemListaServico (item LC 116/2003 no provedor municipal, ou Código de Tributação Nacional cTribNac no ambiente nacional - ver ItemListaServico) e Valores.ValorServico > 0." - changed
Input schema / properties / nFSInfo / items / properties / Servico / properties / ItemListaServico / descriptionPrevious value: -"Código do serviço prestado conforme a Lista de Serviços da LC 116/2003 (ex: \"1.01\", \"7.02\", \"14.01\"). Cada município tem regras próprias - alguns aceitam o código nacional, outros exigem código municipal específico. Para o padrão nacional unificado (DPS) use o código LC 116. OBRIGATÓRIO."New value: +"Código do serviço prestado. OBRIGATÓRIO. O significado depende do provedor do município (IdProvedorNFSe):"
- Changed
sefaz_status17 fields changed- added
Input schema / properties / ModeloDocumento / defaultAdded value: +55 - added
Input schema / properties / ModeloDocumento / descriptionAdded value: +"Modelo do documento fiscal usado para determinar o webservice de status da SEFAZ (Padrão 55). Valores: 55 - NF-e; 65 - NFC-e" - added
Input schema / properties / ModeloDocumento / enumAdded value: +[ + 55, + 65 +] - removed
Input schema / properties / TipoAmbienteRemoved value: -{ - "type": "integer" -} - removed
Output schema / properties / AvisosRemoved value: -{ - "description": "Avisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] -} - added
Output schema / properties / CodEstadoEmitenteAdded value: +{ + "type": "integer" +} - added
Output schema / properties / CodStatusRespostaSefazAdded value: +{ + "type": "integer" +} - added
Output schema / properties / CodTipoAmbienteAdded value: +{ + "type": "integer" +} - added
Output schema / properties / DsEstadoEmitenteAdded value: +{ + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / DsStatusRespostaSefazAdded value: +{ + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / DsTipoAmbienteAdded value: +{ + "type": [ + "string", + "null" + ] +} - removed
Output schema / properties / ErrorRemoved value: -{ - "description": "Mensagem de erro da operação. Vazia (\"\") quando foi bem-sucedida.", - "type": [ - "string", - "null" - ] -} - removed
Output schema / properties / StatusSefazRemoved value: -{ - "additionalProperties": false, - "properties": { - "CodEstadoEmitente": { - "type": "integer" - }, - "CodStatusRespostaSefaz": { - "type": "integer" - }, - "CodTipoAmbiente": { - "type": "integer" - }, - "DsEstadoEmitente": { - "type": [ - "string", - "null" - ] - }, - "DsStatusRespostaSefaz": { - "type": [ - "string", - "null" - ] - }, - "DsTipoAmbiente": { - "type": [ - "string", - "null" - ] - }, - "Versao": { - "type": [ - "string", - "null" - ] - } - }, - "type": [ - "object", - "null" - ] -} - added
Output schema / properties / VersaoAdded value: +{ + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / avisosAdded value: +{ + "description": "Avisos não bloqueantes. Pode vir preenchida mesmo em sucesso.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] +} - added
Output schema / properties / errosAdded value: +{ + "description": "Lista de erros quando a operação falha. Vazia em caso de sucesso. Cada item traz codigo, descricao e correcao.", + "items": { + "additionalProperties": false, + "properties": { + "codigo": { + "description": "Código do erro/rejeição (quando houver).", + "type": [ + "string", + "null" + ] + }, + "correcao": { + "description": "Sugestão de correção, quando disponível.", + "type": [ + "string", + "null" + ] + }, + "descricao": { + "description": "Descrição do erro.", + "type": [ + "string", + "null" + ] + } + }, + "type": "object" + }, + "type": [ + "array", + "null" + ] +} - added
Output schema / properties / statusAdded value: +{ + "description": "Status do resultado da operação: 1 = sucesso; 2 = erro (a lista erros é preenchida).", + "type": "integer" +}
2 tool updates
- Changed
cte_emitir1 field changed- added
Input schema / properties / Imposto / properties / IBSCBSAdded value: +{ + "additionalProperties": false, + "description": "Informações do IBS/CBS (Reforma Tributária - NT 2025.001). Quando preenchido, gera o grupo imp/IBSCBS no XML do CT-e.", + "properties": { + "AliquotaCBS": { + "description": "Alíquota da CBS (pCBS).", + "type": [ + "number", + "null" + ] + }, + "AliquotaIBSMun": { + "description": "Alíquota do IBS de competência do Município (pIBSMun).", + "type": [ + "number", + "null" + ] + }, + "AliquotaIBSUF": { + "description": "Alíquota do IBS de competência das UF (pIBSUF).", + "type": [ + "number", + "null" + ] + }, + "BaseCalculo": { + "description": "Base de cálculo do IBS/CBS (vBC). Quando null, usa o valor total da prestação.", + "type": [ + "number", + "null" + ] + }, + "CodClassificacaoTributaria": { + "description": "Código de Classificação Tributária do IBS/CBS (cClassTrib). O CST é derivado dos 3 primeiros dígitos. Quando vazio, assume \"000001\".", + "type": [ + "string", + "null" + ] + }, + "PercentualDiferimento": { + "description": "Percentual de diferimento (pDif de gDif), usado nos CST 510/515.", + "type": [ + "number", + "null" + ] + }, + "PercentualReducaoCBS": { + "description": "Percentual de redução da alíquota da CBS (pRedAliq de gRed). Pode divergir de PercentualReducaoIBS.", + "type": [ + "number", + "null" + ] + }, + "PercentualReducaoIBS": { + "description": "Percentual de redução da alíquota do IBS (pRedAliq de gRed), usado nos CST 011/200/515. Quando null, não aplica redução.", + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] +}
- Changed
nota_listar2 fields changed- added
Input schema / properties / IdentificadorInternoAdded value: +{ + "description": "Busca notas que possui o código interno informado (somente saídas)", + "type": [ + "string", + "null" + ] +} - removed
Input schema / properties / IndentificadorInternoRemoved value: -{ - "description": "Busca notas que possui o código interno informado (somente saídas)", - "type": [ - "string", - "null" - ] -}
Related MCP Connectors
Issue and manage Brazilian fiscal documents: NF-e for goods, NFS-e for services.
Brazilian SEFAZ e-invoices (NF-e, CT-e) issued against your company. A1 cert, DANFE PDF.
Notas fiscais eletrônicas brasileiras: consulta, análise, manifestação e emissão de NFS-e.
Issue and manage Brazilian service invoices (NFS-e) by chatting with your agent, platform-hosted, no
Related MCP Servers
- AlicenseAqualityAmaintenanceModel Context Protocol (MCP) server for Brazilian Electronic Invoicing (NF-e / NFC-e, modelo 55/65, schema 4.00). Provides CPF/CNPJ validation tools, with NF-e/NFC-e generation and SEFAZ integration planned.22369 PyPIApache 2.0
- AlicenseNot gradedqualityCmaintenanceMCP server to validate Brazilian fiscal documents (NF-e and NFS-e) locally before transmission, offering actionable feedback without requiring certificates or sending data anywhere.MIT
- AlicenseNot gradedqualityCmaintenanceEnables querying official electronic service invoice (NFS-e) data from the Recife city government through a read-only, hosted MCP server with pay-per-use prepaid credits.MIT
- AlicenseNot gradedqualityCmaintenanceRead-only MCP server for querying official SEFAZ GO NFC-e (Brazilian electronic invoice) data via a single tool. Uses pre-paid credits for usage.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.