Skip to main content
Glama

Server Details

Brazilian fiscal MCP server - issue NF-e, NFC-e, NFS-e, CT-e, MDF-e and DC-e via SEFAZ.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
99.6% over 54 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
BrasilNFe/brasilnfe-mcp
GitHub Stars
0
Server Listing
brasilnfe-mcp

TDQS

B3.4/5.0

Scored across 34 tools

Disambiguation4/5

Tools are mostly distinct by document type and action; cadastro_consultar vs cliente_consultar is the main overlap, explicitly warned against, and multiple 'emitir' tools require knowing the document type. Descriptions largely resolve these, but the set is not completely free of potential misselection.

Naming Consistency4/5

Nearly all names use lower snake_case with noun_verb structure (cliente_criar, nfe_emitir, tributacao_editar), which is predictable. A few deviations (health, cte_desacordo, evento_carta_correcao, arquivo_baixar_evento) break the pattern slightly but remain readable.

Tool Count3/5

34 tools is heavy, but the fiscal domain legitimately spans NF-e, NFC-e, NFS-e, CT-e, MDF-e, DC-e, NF-EnerCom, plus events and CRUD for clients/products/tax rules. Each tool targets a distinct operation, though the count is at the upper end and could feel overwhelming.

Completeness4/5

Core lifecycle for the main fiscal documents is well covered: emission, preview, cancellation, correction letter, manifestation, inutilization, download, and status checks. Minor gaps include no listing/consultation for CT-e and MDF-e (nota_listar only covers NF-e/NFC-e/NFS-e) and no delete operations for client/product/tax-rule CRUD.

Available Tools

34 tools
arquivo_baixarBaixar XML ou PDF do documentoB
Read-onlyIdempotent
Inspect

Baixa o arquivo (XML ou PDF/DANFE) de uma NF-e/NFC-e/NFS-e por chave de acesso. Retorna conteúdo em base64.

ParametersJSON Schema
NameRequiredDescriptionDefault
ChavesNo
ChaveNFNo
FileTypeNoTipo do documento fiscal (Padrão 1 - XML) Valores: 1 - XML; 2 - DANFE
Base64LogoNo
TipoDocumentoFiscalNoTipo do documento fiscal (Padrão 1 - Saída) Valores: 0 - Entrada; 1 - Saída

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the full safety profile (readOnly, idempotent, non-destructive, closed-world). The description adds useful return-format context ('Retorna conteúdo em base64'), but says nothing about rate limits, batching behavior, or what happens with multiple Chaves.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with no filler, and the core operation is front-loaded. It is appropriately sized, though the brevity contributes to the unaddressed parameters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-parameter tool with 40% schema coverage and no output schema, the description omits essential detail on three undocumented parameters and provides no sibling differentiation. Only the base64 return hint rounds it out.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 40%; only FileType and TipoDocumentoFiscal carry descriptions. The description's 'por chave de acesso' partially maps to ChaveNF/Chaves, but it does not clarify the Chaves-vs-ChaveNF relationship or the purpose of Base64Logo, leaving the coverage gap only partly compensated.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Baixa) and resource (arquivo XML/PDF de NF-e/NFC-e/NFS-e), and names the lookup key (chave de acesso). It does not distinguish itself from the closely named siblings arquivo_baixar_evento and arquivo_baixar_periodo, which an agent must disambiguate against.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no when-to-use guidance and never references the sibling download tools or the conditions that select this one over them. Usage is only implied from the tool name.

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 eventoA
Read-onlyIdempotent
Inspect

Baixa o arquivo de um evento (CC-e, cancelamento, manifestação, encerramento) por chave de acesso + número sequencial. Retorna conteúdo em base64.

ParametersJSON Schema
NameRequiredDescriptionDefault
ChaveNFNoChave de acesso da Nota Fiscal (44 dígitos) à qual o evento está vinculado.
NuProtocoloNoNúmero do protocolo do evento (somente dígitos). Identifica o evento específico (ex.: Carta de Correção, Cancelamento) registrado para a nota fiscal.
TipoArquivoNoTipo do arquivo do evento a ser retornado. Valores: 1 - XML do evento; 2 - PDF da Carta de Correção (CC-e)

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safe-read profile (readOnlyHint, idempotentHint, destructiveHint=false, openWorldHint=false). The description adds genuinely useful behavior beyond that: the return is base64-encoded content, and the file type is driven by the TipoArquivo choice. That disclosure matters because there is no output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero filler, with the scoping keys and return format front-loaded. Nothing could be removed without losing information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, naming the base64 return is the key missing piece and it is present. The remaining gap is minor: it does not say what happens if the event does not exist or whether TipoArquivo has a default, but the schema's enum values (1=XML, 2=PDF CC-e) cover the parameter side well.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 little beyond the schema, and in fact is slightly looser: it says 'número sequencial' where the parameter is NuProtocolo (event protocol number), a mild terminology mismatch that could confuse an agent.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Baixa o arquivo de um evento') and enumerates the event types covered (CC-e, cancelamento, manifestação, encerramento), which helps separate it from the generic arquivo_baixar. It does not explicitly name the sibling tools it differs from, so the differentiation is inferable rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the scoping phrase 'por chave de acesso + número sequencial', which tells an agent this is the per-event download path. However, it never states when to choose this over arquivo_baixar or arquivo_baixar_periodo, nor any prerequisites (e.g. event must already exist on the NF).

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íodoA
Read-only
Inspect

Exporta múltiplos arquivos (XML/PDF) de um período em um único ZIP base64. Útil para backup, contabilidade ou auditoria.

ParametersJSON Schema
NameRequiredDescriptionDefault
TypeNoTipo do documento fiscal (Padrão 1 - XML) Valores: 0 - PDF; 1 - XML; 2 - EXCEL
DtFimNoData/hora ISO 8601 (ex: 2026-07-22T13:45:00-03:00)
ChavesNoChaves pagar pegar notas fiscal especificas
DtInicioNoData/hora ISO 8601 (ex: 2026-07-22T13:45:00-03:00)
TipoNotaNoTipo de ambiente (Padrão 1 - Saída) Valores: 1 - Saídas; 2 - Entradas; 3 - Saídas e Entradas
cpfCnpjsNoCPFs ou CNPJs dos clientes das notas
SituacoesNoFiltra por situação. Vazio = todas (comportamento padrão). Combinável.
incluirCCeNoIncluir carta de correção emitidas no periodo
TipoAmbienteNoTipo de ambiente (Padrão 1 - Produção) Valores: 1 - Produção; 2 - Homologação
JuntarArquivosPDFNoAnexar todas as notas fiscais retornadas em um unico arquivo PDF
aplicarPlanoAjustesNoAplicar plano de ajustes de impostos

Output Schema

ParametersJSON Schema
NameRequiredDescription
ErrorNoMensagem de erro da operação. Vazia ("") quando foi bem-sucedida.
AvisosNoAvisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida.
QuantidadeNo
Base64FilesCompactedNo

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so safety is covered. The description usefully discloses the return packaging (single ZIP in base64), but says nothing about volume limits, size caps, or that XML/PDF/EXCEL are all selectable, which matters for an 11-parameter export.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with zero redundancy, and the core capability (multi-file export of a period into one ZIP base64) is front-loaded before the use-case hint.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and 0 required parameters means no mandatory-input caveats are missing. For an 11-parameter tool the description is thin on filtering behavior (e.g. how Chaves, cpfCnpjs and Situacoes combine), but it is not required for a correct call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 every parameter including enum meanings and defaults. The description adds no parameter-level detail, and even narrows the format to "XML/PDF" while the Type enum also offers EXCEL (0-PDF, 1-XML, 2-EXCEL). Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Exporta), resource (múltiplos arquivos XML/PDF), scope (um período) and output form (ZIP base64). This implicitly distinguishes it from the singular sibling arquivo_baixar, but neither sibling is named, so an agent must infer the difference rather than read it.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Útil para backup, contabilidade ou auditoria" gives positive usage contexts but no when-not conditions and no references to arquivo_baixar or arquivo_baixar_evento as alternatives. The agent gets a hint of intent but no routing rule.

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 SEFAZA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
ufNoUF do CPF, CNPJ, IE
cpfCnpjIeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
ieNo
fonteNoFonte 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".
statusNoStatus Consulta Valores: 0 - Não Encontrada;; 1 - Encontrada;
ContatoNo
cpfCnpjNo
ieAtualNo
ieUnicaNo
EnderecoNo
mensagemNoMensagem 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.
situacaoNoSituação do contribuinte: 0 - não habilitado; 1 - habilitado.
razaoSocialNo
nomeFantasiaNo
ufConsultadaNo
cnaePrincipalNo
regimeApuracaoNo
dataInicioAtividadeNoData/hora ISO 8601 (ex: 2026-07-22T13:45:00-03:00)
dataOcorrenciaBaixaNoData/hora ISO 8601 (ex: 2026-07-22T13:45:00-03:00)
indicadorCredenciamentoCTeNoIndicador 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.
indicadorCredenciamentoNFeNoIndicador 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.
dataUltimaAlteracaoCadastralNoData/hora ISO 8601 (ex: 2026-07-22T13:45:00-03:00)

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safe-read profile (readOnly, idempotent, openWorld, non-destructive), and the description layers on the traits that matter: absent IE does not imply an inactive CNPJ, automatic Receita Federal fallback for CNPJs with the 'fonte'='receita' marker, and an instruction to always read 'mensagem'. This is behavioral disclosure well beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action, then caveats and the fallback rule. Dense and largely waste-free, though the capitalized warnings make it longer than a minimal summary and could be trimmed slightly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need no explanation, and the description still covers the interpretive traps (missing IE != inactive CNPJ, fallback source, 'mensagem' field). Given the open-world external dependency, this is complete enough for an agent to call and interpret results correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50% and the 'cpfCnpjIe' property has no schema description, but the description compensates by stating the accepted identifier types (CNPJ/CPF/IE) and pairing them with UF. It adds real meaning over the bare schema, though it doesn't spell out format expectations.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Consulta a Inscrição Estadual (IE) ... na SEFAZ estadual'), scopes it to the NF-e/ICMS domain, and names the input keys (CNPJ/CPF/IE + UF). It also distinguishes itself from cliente_consultar, so an agent can route between them without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly names the alternative ('Para apenas saber se um CNPJ está ativo ... prefira cliente_consultar') and the condition that selects it. It also warns when the tool will not yield a useful IE (UFs without the service, service providers), which is exactly the when/when-not guidance an agent needs.

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 nomeA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
UfNo
TermoNo
FontesNo
LimiteNo
OffsetNo
TipoBuscaNo
IncluirInativasNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
AvisosNo
LimiteNo
OffsetNo
MatchesNo
TotalGeralNo
TotalLocalNo
TipoDetectadoNo
TermoNormalizadoNo
ConsultouBrasilApiNo

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/openWorld/idempotent, and the description goes well beyond them: local-first fallback to an external government API, the CPF limitation, and pagination behavior (default 10, max 50, TotalGeral reconciliation instead of inventing data). That is meaningful context an agent needs before calling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core purpose and labels pagination clearly, so it scans well. It is still fairly long and repeats the cadastro_consultar/IE guidance twice, which is minor redundancy rather than bloat.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a multi-source, externally dependent search tool the description supplies the decision-critical behavior and pagination rules, and an output schema exists so return fields are not the description's burden. The main gap is that four of seven parameters get no explanation anywhere.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 does give real semantics for Termo (name/nickname/CNPJ, valid-CNPJ triggers BrasilAPI), Limite (default 10, max 50) and Offset, but leaves Uf, Fontes, TipoBusca and IncluirInativas entirely undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a clear verb+resource (“Pesquisa unificada de cliente/fornecedor”) and defines the two-stage strategy (local registry first, then BrasilAPI/Receita for valid CNPJ). It explicitly distinguishes itself from cadastro_consultar, so an agent can tell the siblings apart without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit when-to-use (“Use ANTES de pedir CNPJ ao usuario”), when-not (“consulta na Receita so funciona por CNPJ - CPF nao tem base publica”), and names the alternative with its condition (“Para obter a Inscricao Estadual ... use cadastro_consultar”). Routing is unambiguous.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
IdNo
IeNo
ImNo
NomeYes
EmailNo
CpfCnpjYes
EnderecoNo
TelefoneNo
IndicadorIeNo
ConsumidorFinalNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
IdNo
OkNo
ErroNo
ClienteNo

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the write/non-destructive profile, but the description adds real behavioral context: the operation is scoped to the logged-in company, and a duplicate CpfCnpj triggers a specific error carrying the existing Id. It stops short of stating permission/auth requirements or whether partially-specified addresses are normalized, so it is strong 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three compact sentences with the core action front-loaded and the workflow/error guidance trailing. Nothing is filler, though the parenthetical field list is slightly compressed relative to the parameter surface.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with an output schema, the description need not explain return values, and it covers the duplicate-error workflow well. The gap is the input side: 10 parameters at 0% schema coverage remain largely unexplained, which is a meaningful omission for a create operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 10 parameters, so the description carries the full burden and only glosses about four of them (CpfCnpj, Nome, Endereco, Ie). Optional fields like Im, Email, Telefone, IndicadorIe, ConsumidorFinal, and the entire nested Endereco structure (9 subfields) get no meaning, format, or nullability guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Cadastra um novo Cliente no sistema da empresa logada') and enumerates the core identity fields (CNPJ/CPF, razao social, endereco, IE). It clearly distinguishes itself from cliente_consultar (read) and cliente_editar (update) by naming both siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit sequencing ('Use depois de cliente_consultar quando o usuario confirmar') and an explicit failure branch: duplicate CpfCnpj returns an error with the existing Id, in which case use cliente_editar. Both when-to-use and the alternative path are spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cliente_editarEditar cliente cadastradoA
DestructiveIdempotent
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
IdNo
IeNo
ImNo
NomeYes
EmailNo
CpfCnpjYes
EnderecoNo
TelefoneNo
IndicadorIeNo
ConsumidorFinalNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
IdNo
OkNo
ErroNo
ClienteNo

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (destructiveHint=true, idempotentHint=true), it discloses the critical destructive behavior that omitted fields are zeroed rather than preserved, plus ownership validation (UserCreate) and empresa-scoping rules. This is the kind of consequence detail annotations cannot convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well front-loaded: purpose, then the full-payload warning, then the alternative workflow, then ownership rules. Dense but each sentence carries weight; only minor redundancy in the ownership sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values are covered, and the mutation risks are explained. However, with 0% param coverage and references to a non-existent IdEmpresa plus a required-Id claim that conflicts with the schema, the definition leaves real gaps for a 10-param mutation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 10 params, so the description should carry the field-level burden but does not. Worse, it states "Id e obrigatorio" while the schema's required list is only CpfCnpj/Nome, and it references an IdEmpresa field that does not exist in the schema, so it misleads on parameters rather than clarifying them.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource ("Atualiza dados de um Cliente existente no cadastro"), making it clearly distinct from cliente_criar and cliente_consultar. An agent can immediately tell this is the update path for an existing customer.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly routes the agent: use a full payload for edits, and for partial edits call cliente_consultar first and resend existing data plus changes. It names the alternative tool and the condition that selects it, which is exactly the when/when-not guidance the dimension asks for.

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-eA
Destructive
Inspect

Registra desacordo do tomador com um CT-e recebido (evento tipo 4 do CT-e). Prazo: 45 dias da emissão.

ParametersJSON Schema
NameRequiredDescriptionDefault
ChaveNo
ObservacaoNo
TipoAmbienteNoTipo do Documento Fiscal: Valores: 1 - Produção; 2 - Homologação
NumeroSequencialNoNúmero sequencial do evento

Output Schema

ParametersJSON Schema
NameRequiredDescription
ErrorNoMensagem de erro da operação. Vazia ("") quando foi bem-sucedida.
AvisosNoAvisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida.
StatusNo1 - Evento Processado; 2 - Aguardando processamento do evento; 3 - Ocorreu um erro ao processar o evento
DsEventoNo
DsMotivoNo
Base64XmlNoXML 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.
Base64FileNoPDF 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.
DsAmbienteNo
NuProtocoloNo
NumeroSequencialNo
CodStatusRespostaSefazNo

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and openWorldHint=true, so the agent knows this is a mutating, externally-visible operation. The description adds the 45-day validity window, which is real behavioral context, but says nothing about irreversibility or the meaning of the event registration.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences: purpose front-loaded, constraint second. No filler; every clause carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and annotations cover the mutation profile. But with 4 parameters at 50% coverage and no guidance on key/observation inputs, the definition leaves real gaps for an agent invoking it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50%: TipoAmbiente and NumeroSequencial are documented in the schema, but 'Chave' and 'Observacao' are bare. The description adds no parameter meaning at all, so it fails to compensate for the undocumented half of the input surface.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Registra) and resource (desacordo do tomador com um CT-e recebido), and cites the exact event type (evento tipo 4 do CT-e). This cleanly distinguishes it from sibling event tools like evento_cancelar, evento_carta_correcao, and evento_manifestar.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The '45 dias da emissão' deadline gives a concrete precondition for use, which is genuinely useful. However, it never states when to prefer this over adjacent event tools (e.g. evento_manifestar) or what else must be true before calling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cte_emitirEmitir CT-eB
Destructive
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
CfopYesCFOP de 4 dígitos. Primeiro dígito: 1/2/3 = entrada, 5/6/7 = saída.
LoteNo
CargaYesDados 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.
ModalYesModal 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.
SerieNo
CodigoNo
NumeroNo
RetiraNo
ImpostoNo
ServicoYesDados 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.
TipoCteYesTipo 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
TomadorNo
DtEmissaoNoData/hora ISO 8601 (ex: 2026-07-22T13:45:00-03:00)
ExpedidorNo
RemetenteNo
ObservacaoNo
DestinatarioNo
TipoAmbienteYesIdentificação do ambiente da SEFAZ. Valores: 1 - Produção (emissão real, irreversível); 2 - Homologação (teste, sem valor fiscal)
ModeloDocumentoYesModelo do Conhecimento de Transporte Eletrônico. Valores: 57 - CT-e (Conhecimento de Transporte Eletrônico); 67 - CT-e OS (Outros Serviços de transporte)
NaturezaOperacaoYesDescrição da natureza da operação (ex: "Prestação de serviço de transporte").
IdentificadorInternoNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
chaveNo
errosNoLista de erros quando a operação falha. Vazia em caso de sucesso. Cada item traz codigo, descricao e correcao.
serieNo
avisosNoAvisos não bloqueantes. Pode vir preenchida mesmo em sucesso.
numeroNo
statusNoStatus do resultado da operação: 1 = sucesso; 2 = erro (a lista erros é preenchida).
base64XmlNo
base64DACTeNo
tipoAmbienteNo

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and openWorldHint=true, so the agent knows this is an outward-facing, mutating call. The description usefully adds the auth/config prerequisites (enabled service, A1/A3 certificate), but it does not warn that TipoAmbiente=1 emits a real, irreversible fiscal document, nor say anything about what is created or returned. Adds some value beyond annotations, but leaves the biggest behavioral risk implicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero filler, and the core action is front-loaded before the prerequisites. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Because an output schema exists, the description need not explain return values, and the annotations cover the safety profile. But for a 21-parameter, deeply nested, fiscally consequential emission tool, the description is thin: it omits any orientation to the payload structure or the production/homologation distinction that the schema encodes. Adequate minimum, clear gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 43%, below the 50% threshold, so the description is expected to compensate for undocumented parameters — yet it contains no parameter-level information at all. With 21 parameters and 8 required, the description gives no help on the structural payload (Carga, Modal, Servico, Tomador, etc.) that the schema leaves partly unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Emite) and resource (CT-e, with the acronym spelled out in Portuguese), so an agent knows exactly what operation this is. It does not, however, differentiate itself from sibling emission tools such as dce_emitir, mdfe_emitir, or nfe_emitir beyond the document type in the name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives real prerequisites — CT-e service must be enabled on the company registration and an A1 or A3 digital certificate must be configured — which is useful context for deciding if the call can succeed. It offers no when-to-use versus when-to-use-an-alternative guidance and no exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dce_emitirEmitir DC-eB
Destructive
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
LoteNo
ItensYesItens/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).
SerieNo
CodigoNo
NumeroNo
UfFiscoNoSigla da UF do órgão fiscalizador (obrigatório quando TipoEmitente=0). Se não preenchido, usa a UF da empresa emissora.
RemetenteYesPessoa física/jurídica que está enviando o pacote. OBRIGATÓRIO. Exige Endereco completo (validado por ValidaPessoaDCe).
ValorTotalNoValor total declarado da DC-e. Se omitido, soma dos ValorTotal dos itens. Deve ser > 0.
XOrgaoFiscoNoNome do órgão fiscalizador (obrigatório quando TipoEmitente=0)
DestinatarioYesDestinatário do pacote. OBRIGATÓRIO. Exige Endereco completo.
TipoAmbienteYesTipo de ambiente. Valores: 1 - Produção (emissão real); 2 - Homologação (teste)
TipoEmitenteNoTipo do emitente: Valores: 0 - App Fisco; 1 - Marketplace; 2 - Emissor próprio; 3 - Transportadora; 4 - ECT (Correios)
SiteMarketplaceNoURL do site do marketplace (obrigatório quando TipoEmitente=1)
CnpjTransportadoraNoCNPJ da transportadora que leva a carga. Opcional. Quando informado, é usado no XML; quando vazio, mantém o CNPJ da empresa emissora.
IdentificadorInternoNo
ModalidadeTransporteNoModalidade de transporte: Valores: 0 - Correios; 1 - Conta própria; 2 - Transportadora
DeclaracaoCrimeTributarioYesTexto 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."
InformacoesComplementaresNoInformações complementares (opcional, até 5000 caracteres).
DeclaracaoContribuinteICMSYesTexto 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."
InformacoesAdicionaisFiscoNoInformações adicionais de interesse do fisco (opcional, até 2000 caracteres).

Output Schema

ParametersJSON Schema
NameRequiredDescription
chaveNo
errosNoLista de erros quando a operação falha. Vazia em caso de sucesso. Cada item traz codigo, descricao e correcao.
serieNo
avisosNoAvisos não bloqueantes. Pode vir preenchida mesmo em sucesso.
numeroNo
statusNoStatus do resultado da operação: 1 = sucesso; 2 = erro (a lista erros é preenchida).
base64XmlNo
protocoloNo
base64DACENo
tipoAmbienteNo

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=true and openWorldHint=true, so the mutating/irreversible nature is covered structurally. The description adds a real behavioral constraint — the tool only covers non-fiscal content shipped by an individual or MEI, and requires prior service enablement — but says nothing about production vs test impact, ID return, or authorization flow.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero padding, and the identifying scope is front-loaded before the prerequisite. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 20-parameter, nested-object, enum-bearing emission tool, the description is thin: it omits the ambient (1/2) choice consequence, the mandatory declaration texts, and any note on what a successful emission returns, even though an output schema exists for the last point. Purpose and one prerequisite are the only gaps it closes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 20 parameters at 75% schema coverage, the description must contribute something, and it contributes nothing: not one parameter name, format, enum, default, or required-field caveat (e.g. UfFisco/XOrgaoFisco when TipoEmitente=0) appears in the text. All semantics live in the schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Emite') and resource ('DC-e'), spells out the acronym's meaning, and scopes it to 'transporte de itens não-fiscais por pessoa física ou MEI'. That scope implicitly separates it from fiscal-document siblings like nfe_emitir/cte_emitir, though no sibling is named explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives one hard prerequisite ('Requer serviço DC-e habilitado no cadastro'), which is useful. But it never says when to prefer this over nfe_emitir/cte_emitir/mdfe_emitir for a given shipment, nor any exclusions or environment guidance, leaving selection largely to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

evento_cancelarCancelar documento fiscalA
Destructive
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
ChaveNFYesChave 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.
DataEventoNoData do evento de cancelamento do documento (Caso não for enviado é considerada a data e hora atual)
NumeroNFSeNoNúmero da NFS-e a ser cancelada
TipoAmbienteYesAmbiente 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
JustificativaYesMotivo 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).
TipoDocumentoYesTipo 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)
NumeroProtocoloNoNú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.
NumeroSequencialNoNúmero sequencial do evento
CodCancelamentoNFSeNoCó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
CpfCnpjRemetenteDCeNoCPF 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

ParametersJSON Schema
NameRequiredDescription
ErrorNoMensagem de erro da operação. Vazia ("") quando foi bem-sucedida.
AvisosNoAvisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida.
StatusNo1 - Evento Processado; 2 - Aguardando processamento do evento; 3 - Ocorreu um erro ao processar o evento
DsEventoNo
DsMotivoNo
Base64XmlNoXML 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.
Base64FileNoPDF 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.
DsAmbienteNo
NuProtocoloNo
NumeroSequencialNo
CodStatusRespostaSefazNo

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, readOnlyHint=false, and openWorldHint=true, so the irreversible write nature is covered structurally. The description adds the genuinely useful SEFAZ 24h post-authorization window, but says nothing about permissions, idempotency, or what happens if the window has passed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four dense sentences, front-loaded with the action and its supported document types, with no filler. Slightly crowded by packing the NFS-e branch and the SEFAZ deadline into the same block, but every sentence carries operational information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need no explanation, and the description covers document routing, required inputs, and the critical time constraint. Missing only ancillary context such as authorization requirements or consequences of cancellation after the deadline.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and every parameter is already documented in detail, including the cross-parameter branching for TipoDocumento. The description largely restates that routing logic (TipoDocumento=1 → NumeroNFSe, otherwise chave) rather than adding syntax or format detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Cancela) and resource (documento fiscal autorizado), and enumerates the exact document types covered (NF-e, NFC-e, NFS-e, CT-e, MDF-e, DC-e). This clearly separates it from siblings like evento_inutilizar and evento_carta_correcao, which act on unused numbers or corrections rather than authorized documents.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete invocation conditions: supply the 44-digit chave plus a justification of at least 15 characters, and use TipoDocumento=1 with NumeroNFSe for NFS-e. It also flags the real-world SEFAZ 24-hour deadline that gates whether the call can succeed, though it never explicitly contrasts itself with sibling event tools.

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)A
Destructive
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
ChaveNFYesChave de acesso de 44 dígitos da NF-e ou CT-e a corrigir.
CorrecaoNoTexto 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.
CorrecoesNoLista de correções estruturadas (campo, grupo, valor). Usado SOMENTE para CT-e (modelo 57). Para NF-e/NFC-e use o campo Correcao acima.
TipoAmbienteYesAmbiente 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
NumeroSequencialNoNúmero sequencial do evento (1 a 20). Se omitido, o sistema usa o próximo disponível.

Output Schema

ParametersJSON Schema
NameRequiredDescription
ErrorNoMensagem de erro da operação. Vazia ("") quando foi bem-sucedida.
AvisosNoAvisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida.
StatusNo1 - Evento Processado; 2 - Aguardando processamento do evento; 3 - Ocorreu um erro ao processar o evento
DsEventoNo
DsMotivoNo
Base64XmlNoXML 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.
Base64FileNoPDF 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.
DsAmbienteNo
NuProtocoloNo
NumeroSequencialNo
CodStatusRespostaSefazNo

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already convey destructive, non-read-only, open-world behavior. The description adds valuable business-rule context beyond annotations: specific correction exclusions (values, dates, parties, tax regimes, document number/series) and a per-document event limit, which help the agent understand what will happen and what is prohibited.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three tight sentences, front-loading the core action and purpose before listing exclusions and limits. Every sentence adds material information with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema, full parameter descriptions, and annotations covering safety, the description supplies the remaining essential context: what the event does, what it cannot correct, and the CC-e limit. Nothing critical for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all five parameters are already documented in the input schema. The description restates some correction restrictions but adds no syntax or format details beyond what the schema provides, making 3 the appropriate baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Envia') and resource ('Carta de Correção (CC-e)') for an authorized NF-e or CT-e, explicitly noting the event type (2). It is clearly distinguishable from sibling event tools like evento_cancelar or evento_manifestar.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides clear constraints on when this tool is appropriate: only for authorized documents, and it lists fields that cannot be corrected plus a 20-per-NF-e limit. However, it does not explicitly name alternative tools (e.g., evento_cancelar) for cases where correction is not allowed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

evento_inutilizarInutilizar numeraçãoA
Destructive
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
SerieYesSérie referente ao modelo do documento. Deve ser > 0.
TipoAmbienteYesIdentificaçã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)
JustificativaYesJustificativa 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").
NumeracaoFinalYesFinal da faixa numérica a inutilizar. Deve ser >= NumeracaoInicial.
ModeloDocumentoYesCódigo do modelo do Documento Fiscal a inutilizar. Valores: 55 - NF-e; 65 - NFC-e; 57 - CT-e
NumeracaoInicialYesInício da faixa numérica a inutilizar. Deve ser > 0 e <= NumeracaoFinal.

Output Schema

ParametersJSON Schema
NameRequiredDescription
ErrorNoMensagem de erro da operação. Vazia ("") quando foi bem-sucedida.
AvisosNoAvisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida.
StatusNo1 - Evento Processado; 2 - Aguardando processamento do evento; 3 - Ocorreu um erro ao processar o evento
DsEventoNo
DsMotivoNo
Base64XmlNoXML 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.
Base64FileNoPDF 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.
DsAmbienteNo
NuProtocoloNo
NumeroSequencialNo
CodStatusRespostaSefazNo

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructiveHint=true and openWorldHint=true. The description adds that the action cannot be undone, is a rare operation, and requires user confirmation before execution, which goes beyond the annotation's binary destructive flag and gives operational context. No mention of authentication or rate limits, but for a rare irreversible action this is helpful.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with purpose, then usage context, then caution. Every sentence earns its place; no redundant restatement of schema or annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the destructive, rare nature and full schema/annotation/output schema coverage, the description supplies the necessary usage caution and irreversibility warning. An agent has enough to decide and invoke correctly, especially since output details are in the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and all six parameters have detailed descriptions (enums, min/max, production irreversibility). The description adds no parameter-level information beyond the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description states a specific verb ('Inutiliza') and resource ('faixa de numeração não utilizada na SEFAZ'), and clarifies the scenario ('quebra de sequência por erro de emissão'). It implicitly distinguishes from siblings like evento_cancelar by targeting unused numbering ranges, not cancellation of issued documents.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides when to use: 'quebra de sequência por erro de emissão' and warns it's rare and irreversible, advising user confirmation. However, it does not name explicit alternatives (e.g., evento_cancelar) or state when not to use it, leaving some routing inference to the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

evento_manifestarManifestar destinatárioC
Destructive
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
ChaveYesChave de acesso de 44 dígitos da NF-e a manifestar.
TipoAmbienteYesAmbiente 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
JustificativaNoJustificativa. OBRIGATÓRIA quando TipoManifestacao = 4 (mínimo 15 caracteres). Para outros tipos pode omitir.
NumeroSequencialNoNúmero sequencial do evento (1 a 20). Se omitido, o sistema usa o próximo disponível.
TipoManifestacaoYesTipo 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

ParametersJSON Schema
NameRequiredDescription
ErrorNoMensagem de erro da operação. Vazia ("") quando foi bem-sucedida.
AvisosNoAvisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida.
StatusNo1 - Evento Processado; 2 - Aguardando processamento do evento; 3 - Ocorreu um erro ao processar o evento
DsEventoNo
DsMotivoNo
Base64XmlNoXML 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.
Base64FileNoPDF 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.
DsAmbienteNo
NuProtocoloNo
NumeroSequencialNo
CodStatusRespostaSefazNo

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and openWorldHint=true, so the safety profile is covered structurally. The description adds nothing behavioral – it omits that this transmits an irreversible fiscal event to SEFAZ, that repeated manifestations are limited, or any timing constraint, which matters greatly for a destructive, open-world write.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Only two sentences and front-loaded with the core action, which is good. But the second sentence is not merely redundant – it is incorrect relative to the schema, so it does not earn its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation. Still, for a destructive fiscal mutation with three required parameters and a legal-deadline semantics, the description omits environment-matching rationale, irreversibility, and correct enum documentation – the essentials for calling it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline would be 3, but the description actively misleads: it references "TipoEvento" with values 0=ciência, 1=confirmação, 2=desconhecimento, 3=não realizada, while the actual schema parameter is "TipoManifestacao" with a different numbering (1=Confirmação, 2=Ciência, 3=Desconhecimento, 4=Não Realizada). An agent following the description could send a wrong enum value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Registra a manifestação do destinatário sobre uma NF-e"), so an agent knows the core action. However, it then describes a parameter named "TipoEvento" with values 0-3 that does not exist in the schema, which muddies rather than sharpens the stated purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to manifest versus using siblings such as evento_cancelar or evento_carta_correcao, nor any mention of the legal deadline or prerequisites (e.g., the NF-e must exist and the environment must match). The agent must infer usage entirely.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
ProdutosNoProdutos para gerar os registros do arquivo FCI
TransmitirNoQuando verdadeiro, além de gerar o arquivo, assina e transmite a mídia via programa TED. Requer certificado e-CNPJ configurado na empresa.
ValidarCodigosNoQuando verdadeiro retorna erro caso envie produtos com código repetido

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=false, so the agent knows this is a non-destructive, closed-world write. The description adds no behavior beyond that — it does not mention optional signing/transmission, certificate requirements, or what the generation produces (all carried by the schema instead). Adequate only because annotations lower the bar.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence that identifies the artifact and its regulatory trigger with no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, yet the description never says what is returned (generated file reference, bytes, status) or that output can be signed and transmitted via TED. The regulatory purpose is well stated, but return behavior and the transmit path remain undocumented in prose.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: Ncm, Gtin, ValorSaida, ValorImportado/PercentualImportado mutual requirement, and the Transmitir/ValidarCodigos semantics are all documented in the schema. The description adds nothing about parameters, so it sits at the baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Gera') and resource ('arquivo FCI') and even expands the acronym (Ficha de Conteúdo de Importação), so the agent knows exactly what artifact is produced and for what domain. No sibling tool covers FCI, so differentiation is implicit, but it does not explicitly contrast with any sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It supplies the business condition that triggers use ('requerido para produtos com conteúdo importado em operações interestaduais'), which is genuine implied usage guidance. However, it gives no explicit when-to-use/when-not-to-use instruction and names no alternative or prerequisite workflow.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

healthHealth-checkA
Read-onlyIdempotent
Inspect

Verifica a saúde da API BrasilNFe (status, timestamp, versão). Não recebe parâmetros.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, covering the safety profile. The description adds the return content (status, timestamp, versão), but with no output schema it does not describe failure behavior, auth requirements, or return format.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, fully front-loaded with the purpose first and the no-parameter fact second. Every phrase earns its place with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-parameter, annotation-covered health check this is nearly sufficient, and the returned fields are named despite the absence of an output schema. It could go slightly further by disambiguating from the sibling status tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, so the baseline is 4. The description's 'Não recebe parâmetros' correctly and concisely matches the empty schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (verifica) and resource (a saúde da API BrasilNFe) plus the returned fields. It is clear what the tool does, but it offers no differentiation from the similarly-named sibling sefaz_status, which is also a status-style tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use or when-not-to-use guidance is given. An agent cannot tell from the description when to call health versus sefaz_status for a status/liveness need, so the choice is left to inference.

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 impostosB
Read-onlyIdempotent
Inspect

Simula o cálculo de impostos (ICMS, PIS, COFINS, IPI, ST) sobre uma lista de produtos sem emitir nota. Útil para precificação.

ParametersJSON Schema
NameRequiredDescriptionDefault
CountNo
CapacityNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
ErrorNoMensagem de erro da operação. Vazia ("") quando foi bem-sucedida.
TotalNo
AvisosNoAvisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida.
ImpostosNo

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description's 'sem emitir nota' restates the no-side-effect nature rather than adding new context (rate limits, permissions, return shape). With annotations doing the heavy lifting, this is adequate but not additive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the core action and tax scope; the pricing note is brief and functional. No wasted preamble.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, but the description asserts a 'lista de produtos' input while the schema exposes generic Count/Capacity fields, leaving the agent without a coherent picture of how to actually call the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for two parameters, and the description mentions only 'uma lista de produtos', which does not correspond to the declared 'Count'/'Capacity' parameters at all. The description fails to compensate for the coverage gap and appears inconsistent with the actual inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (simula), resource (cálculo de impostos with the named taxes ICMS/PIS/COFINS/IPI/ST) and scope (sobre uma lista de produtos). The phrase 'sem emitir nota' cleanly separates it from the emission siblings like nfe_emitir and nfse_emitir, so an agent can route without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Útil para precificação' gives a use context and 'sem emitir nota' implies the when-not (use emission tools if you need an actual document). However, no sibling is named and there is no explicit when-to-use vs when-to-use-something-else statement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mdfe_emitirEmitir MDF-eB
Destructive
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
loteNo
pesoYesPeso bruto total das mercadorias em KG. DEVE ser > 0.
AereoNo
serieNo
valorYesValor total das mercadorias transportadas. DEVE ser > 0.
codigoNo
numeroNo
segurosNo
AquaviarioNo
RodoviarioNoDados do transporte rodoviário (placa 7 caracteres, condutores com CPF/nome, UF do veículo). OBRIGATÓRIO quando modalidade = 1.
modalidadeYesModalidade 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)
observacaoNo
DataEmissaoNoData/hora ISO 8601 (ex: 2026-07-22T13:45:00-03:00)
FerroviarioNo
percursoUfsNo
tipoAmbienteYesTipo de ambiente. IMPORTANTE: passe explicitamente. Para testes use 2. Valores: 1 - Produção; 2 - Homologação
tipoEmitenteYesTipo 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)
carregamentosNo
ufCarregamentoYesUF de carregamento (origem). Sigla de 2 letras (SP, RJ, MG...).
observacaoFiscoNo
descarregamentosNo
ufDescarregamentoYesUF de descarregamento (destino). Sigla de 2 letras (SP, RJ, MG...).
produtoPredominanteNoProduto predominante transportado. Opcional.
identificadorInternoNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
ErrorNoMensagem de erro da operação. Vazia ("") quando foi bem-sucedida.
chaveNo
AvisosNoAvisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida.
numeroNo
statusNo1 - Lote processado; 2 - Aguardando processamento; 3 - Ocorreu um erro ao processar o lote
base64XmlNo
base64DAMDFeNo
tipoAmbienteNo
codRespostaSefazNo

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, readOnlyHint=false, openWorldHint=true, so the write/irreversibility profile is covered structurally. The description adds the grouping semantics and the legal-obligation context, but says nothing about SEFAZ submission, authorization response, numbering, or what happens on rejection — useful additions beyond annotations are thin.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with zero waste; the purpose and the usage condition are front-loaded. Nothing is padded or restated from the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a heavy 24-parameter emission tool with nested modal-specific branches, an output schema, and a side-effecting SEFAZ call, a two-sentence description is inadequate. An agent gets no help on which modal object to supply, required field interplay, or what the emission result looks like beyond the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 24 parameters and only 42% schema description coverage, the description carries a real compensation burden, and it mentions no parameters at all (not modalidade, ufCarregamento, peso, Rodoviario, etc.). The schema does describe many nested fields, but the modal-dependent requirements (Rodoviario when modalidade=1) remain undisclosed in the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Emite) and resource (MDF-e), and clarifies the key semantic that it groups multiple CT-e/NF-e into one transport, which distinguishes it from cte_emitir and nfe_emitir. However, it never names those siblings or explicitly contrasts its role with them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The sentence 'Obrigatório para transportadores com vários DFs no mesmo veículo' gives an implied usage condition (multiple fiscal documents, one vehicle). There is no explicit when-to-use vs. alternative routing, no mention of prerequisites, and no exclusions, so guidance is only inferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mdfe_encerrarEncerrar MDF-eA
Destructive
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
chaveYesChave de acesso de 44 dígitos do MDF-e a encerrar.
protocoloNoProtocolo de autorização do MDF-e original. Opcional - se omitido, o sistema localiza pela chave.
tipoAmbienteYesAmbiente 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
numeroSequencialNoNúmero sequencial do evento. Se omitido, o sistema usa o próximo disponível.

Output Schema

ParametersJSON Schema
NameRequiredDescription
ErrorNoMensagem de erro da operação. Vazia ("") quando foi bem-sucedida.
AvisosNoAvisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida.
StatusNo1 - Evento Processado; 2 - Aguardando processamento do evento; 3 - Ocorreu um erro ao processar o evento
DsEventoNo
DsMotivoNo
Base64XmlNoXML 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.
Base64FileNoPDF 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.
DsAmbienteNo
NuProtocoloNo
NumeroSequencialNo
CodStatusRespostaSefazNo

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and openWorldHint=true, so the safety profile is covered. The description adds regulatory consequence (new manifests blocked by SEFAZ without closure), which is real context beyond the annotations, though it does not itself restate irreversibility.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, each earning its place: what it does, when it is required, and the consequence of skipping it. The purpose is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and rich annotations, the description need not explain returns or safety. It covers purpose, obligation, and consequence adequately, though it says nothing about error/duplicate-closure behavior for an operation the schema calls definitive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the enum/default for tipoAmbiente plus the optional protocolo fallback are all documented in the schema itself. The description adds no parameter-level syntax or format detail, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Encerra um MDF-e já autorizado') and pins the domain event type ('evento tipo 3'), which separates it from mdfe_emitir and evento_cancelar without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear when-to-use context: it is mandatory at the end of every transport, and omitting it can cause SEFAZ to block new MDF-e. It stops short of naming a sibling alternative or an explicit when-not-to-use case.

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-e
Destructive
Inspect

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. TRANSMITE DE VERDADE: só chame depois que o usuário aprovou a pré-visualização final (nfe_previsualizar) e confirmou a emissão; envie confirmacaoUsuario=true (conexões OAuth são recusadas sem ele).

ParametersJSON Schema
NameRequiredDescriptionDefault
LoteNoLote da Nota Fiscal
SerieNoSérie da nota Fiscal
CodigoNoB03 - Código numérico que compõe a Chave de Acesso. Número aleatório gerado pelo emitente para cada NF-e.
NumeroNoNúmero da nota fiscal
ClienteNoDestinatá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).
EntregaNo
ExportaNo
CobrancaNo
ProdutosYesItens da nota fiscal. Mínimo 1 item.
RetencoesNoRetenções federais totais da nota (IRRF, PIS/COFINS/CSLL retidos, Previdência). Gera a tag retTrib no XML.
TipoDanfeNoFormato 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.
FinalidadeYesFinalidade 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
ObservacaoNo
PagamentosNoFormas 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).
TpNFDebitoNoTipo 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
TransporteNo
ValorFreteNoValor 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.
ValorTotalNoValor 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.
DataEmissaoNoData e Hora da saída ou de entrada da produto/serviço (Envia a data atual caso não informada)
EnviarEmailNo
TpNFCreditoNoTipo 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
CalcularIBPTNoCalcula o valor aproximado dos tributos (vTotTrib, tabela IBPT, Lei 12.741/2012). Padrão: verdadeiro.
NFReferenciaNoNotas fiscal de Referência
TipoAmbienteYesIdentificaçã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)
IntermediadorNoDados do intermediador/marketplace (site ou plataforma de terceiros).
JustificativaNoUtilizar quando o tipo de emissão for diferente normal
ValorDescontoNoValor total do desconto da nota. Quando informado, é distribuído proporcionalmente entre os itens (proporção pelo ValorTotal de cada item), SUBSTITUINDO o ValorDesconto informado em cada produto. Não informado (nulo) = o desconto de cada item é usado como enviado.
ConsumidorFinalNoIndica operação com Consumidor final (NFCe de ser 1 Validar!)
ModeloDocumentoYesCódigo do modelo do Documento Fiscal. Valores: 55 - NF-e (B2B / com destinatário CPF/CNPJ identificado); 65 - NFC-e (consumidor final / varejo)
ObservacaoFiscoNo
DataEntradaSaidaNoData e Hora da saída ou de entrada da produto/serviço
NaturezaOperacaoYesDescrição da natureza da operação (máx 60 caracteres). Exemplos: "Venda de mercadoria", "Remessa para industrialização", "Devolução de venda".
IndicadorPresencaYesIndicador 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.
confirmacaoUsuarioNoEnvie true SOMENTE depois que o usuário viu a pré-visualização final e confirmou explicitamente a emissão nesta conversa. Obrigatório em conexões OAuth.
IdentificadorInternoNo
NFPagamentoAntecipadoNoGrupo de notas de antecipação de pagamento (gPagAntecipado - Reforma Tributária).

Output Schema

ParametersJSON Schema
NameRequiredDescription
ErrorNoMensagem de erro da operação. Vazia ("") quando foi bem-sucedida.
AvisosNoAvisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida.
ReturnNFNo
Base64XmlNo
Base64FileNo
nfe_emitir_complementarEmitir NF-e complementar
Destructive
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
CFOPNoCFOP
LoteNoLote da Nota Fiscal
SerieNoSérie da nota Fiscal
CodigoNoCódigo numérico que compõe a Chave de Acesso. Número aleatório gerado pelo emitente para cada NF-e.
NumeroNoNúmero da nota fiscal
ClienteNo
CobrancaNo
ProdutosNo
ObservacaoNo
TransporteNo
NFReferenciaNoNotas fiscal de Referência
TipoAmbienteNoIdentificação do Ambiente Valores: 1 - Produção; 2 - Homologação
ObservacaoFiscoNo
TipoComplementoNoTipo de complemento Valores: 0 - Complementar quantidade ou valor; 1 - Complementar impostos
NaturezaOperacaoNoDescrição da Natureza da Operação
ImpostoComplementarNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
ErrorNoMensagem de erro da operação. Vazia ("") quando foi bem-sucedida.
AvisosNoAvisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida.
ReturnNFNo
Base64XmlNo
Base64FileNo
nfenercom_emitirEmitir NF-EnerComB
Destructive
Inspect

Envia a NF-EnerCom (Nota Fiscal de Energia Comercializada) para autorização na SEFAZ.

ParametersJSON Schema
NameRequiredDescriptionDefault
serieNoSérie da nota fiscal. Quando não informado é controlado pelo Painel
numeroNoNúmero da nota fiscal. Quando não informado é controlado pelo Painel
energiaNoInformações referente a nota de Energia
produtosYesItens da nota (mínimo 1). Cada item exige codigo, descricao, unidadeMedida, quantidade, valor, CFOP.
situacaoNoSituaçã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
comunicaoNoInformações referente a nota de comunicação e Telecomunicação
dataEmissaoYesData de emissão do documento. Obrigatória.
destinatarioYesInformações do destinatário (cliente). OBRIGATÓRIO.
tipoAmbienteYesTipo de ambiente. Valores: 1 - Produção; 2 - Homologação
modeloDocumentoYesModelo do documento. Valores: 6 - Energia elétrica; 21 - Comunicação; 22 - Telecomunicação
valorTotalFaturaYesValor total da fatura comercial. Deve ser > 0.
identificadorInternoNoCódigo de controle interno unico da venda. Evita duplicidades, caso configurado.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errosNoLista de erros quando a operação falha. Vazia em caso de sucesso. Cada item traz codigo, descricao e correcao.
avisosNoAvisos não bloqueantes. Pode vir preenchida mesmo em sucesso.
statusNoStatus do resultado da operação: 1 = sucesso; 2 = erro (a lista erros é preenchida).

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=true, and openWorldHint=true, so the write/external-call profile is covered. The description usefully adds that the document is submitted to SEFAZ for authorization, confirming the external authority, but says nothing about irreversibility, whether homologation is safe, or what happens after authorization.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler; the verb and destination come first. It is efficiently structured though extremely terse given the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 12-parameter, destructive, open-world emission tool, the description omits critical context: that it is an irreversible fiscal transmission, the Production vs Homologation implications, and any preconditions. An output schema exists so return values need not be explained, but the operational stakes are left undisclosed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with 12 parameters, nested objects, and 3 enums, so the schema fully documents field meaning (modeloDocumento, tipoAmbiente, produtos requirements, etc.). The description adds no parameter-level guidance beyond what the schema already provides, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Envia/sends), a specific resource (NF-EnerCom, with the Portuguese expansion of the acronym), and the target destination (SEFAZ authorization). This separates it from peers like nfenercom_gerar_arquivo, though it never names that sibling to sharpen the distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No indication of when to use this tool versus nfenercom_gerar_arquivo, nfe_emitir, or nfe_emitir_complementar, and no prerequisites stated (e.g. that it actually transmits for authorization rather than pre-visualizing). The agent must infer usage entirely from the name.

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-EnerComBInspect

Gera o arquivo da Nota Fiscal de Energia (NF-EnerCom). Pré-requisito para nfenercom_emitir.

ParametersJSON Schema
NameRequiredDescriptionDefault
anoNoAno de emissão das notas (4 dígitos). Obrigatório quando tipoGeracao = 1.
mesNoMês de emissão das notas (1-12). Obrigatório quando tipoGeracao = 1.
notasNoNotas Fiscais de Energia/Comunicação/Telecomunicação a incluir no arquivo. Obrigatório quando tipoGeracao = 2.
tipoGeracaoYesTipo 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"
tipoAmbienteYesTipo de ambiente. Valores: 1 - Produção; 2 - Homologação

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false with destructiveHint=false, so the agent knows this writes something without being destructive. The description adds that it is a prerequisite step for emission, but says nothing about whether the generated file is persisted, whether calls are idempotent, or what happens on repeated generation for the same period.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the action and resource, with the dependency stated last. Zero filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with a deeply nested notas payload and a two-mode tipoGeracao switch, the description never mentions the two generation modes or the notes-vs-period distinction. With no output schema and no explanation of what the generated file is or where it goes, an agent lacks enough context to call this confidently beyond the simplest path.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the two required parameters (tipoGeracao, tipoAmbiente) and the nested notas payload are fully documented in the schema itself. The description contributes no additional parameter semantics, which is the expected baseline when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Gera') and resource ('arquivo da Nota Fiscal de Energia (NF-EnerCom)'), and explicitly names the sibling it precedes (nfenercom_emitir), which helps distinguish it. The term 'arquivo' remains somewhat abstract (file content vs. stored artifact) but the intent is clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Pré-requisito para nfenercom_emitir' gives an implied ordering constraint, which is useful context for sequencing. However, there is no explicit when-to-use guidance, no statement of when NOT to use it, and no mention of the arquivo_baixar* siblings that handle the resulting file.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nfe_previsualizarPré-visualizar DANFE
Read-onlyIdempotent
Inspect

Gera o DANFE em PDF e o XML como pré-visualização, sem enviar para a SEFAZ. Envie a nota completa em 'notaFiscal' (mesmo formato de nfe_emitir) com TipoEnvio=1 e TipoArquivo=2 (PDF + XML juntos). O resultado abre num painel ao lado da conversa: chame de novo a cada alteração pedida pelo usuário (CFOP, itens, destinatário, valores) para o painel refletir a nota atual. Erros de validação voltam em 'Error'/'Avisos'.

ParametersJSON Schema
NameRequiredDescriptionDefault
cteNoCT-e (modelo 57/67). Usado quando TipoEnvio = 1. Gera o DACTE/XML de pré-visualização.
dceNoDC-e (modelo 99). Usado quando TipoEnvio = 1. Gera o DACE/XML de pré-visualização.
mdfeNoMDF-e (modelo 58). Usado quando TipoEnvio = 1. Gera o DAMDFE/XML de pré-visualização.
nfseNoNFS-e. Usado quando TipoEnvio = 1. Gera o DANFSe/XML de pré-visualização (sem validade jurídica).
Base64XmlNo
TipoEnvioNoTipo 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
notaFiscalNoNF-e / NFC-e (modelo 55/65). Usado quando TipoEnvio = 1. Gera o DANFE/XML de pré-visualização.
TipoArquivoNoTipo do arquivo que deseja pré-visualizar (Padrão - 0) Valores: 0 - XML; 1 - PDF; 2 - PDF em Base64File e XML em Base64Xml na mesma chamada
mostrarTarjaPreVisualizacaoNoMostrar 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

ParametersJSON Schema
NameRequiredDescription
ErrorNoMensagem de erro da operação. Vazia ("") quando foi bem-sucedida.
AvisosNoAvisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida.
StatusNo
Base64XmlNoXML da pré-visualização. Preenchido somente quando TipoArquivo = 2.
Base64FileNo
nfse_consultarConsultar NFS-eB
Read-onlyIdempotent
Inspect

Consulta status e dados de uma NFS-e já enviada por número, série e ambiente.

ParametersJSON Schema
NameRequiredDescriptionDefault
RpsNoRps para retornar (Se não enviar retorna todos)
codLoteNoCódigo do lote

Output Schema

ParametersJSON Schema
NameRequiredDescription
LoteNoNúmero do lote enviado;
ErrorNoMensagem de erro da operação. Vazia ("") quando foi bem-sucedida.
NotasNo
AvisosNoAvisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida.
CodLoteNoCódigo atrelado ao lote; - Usado para busca de lotes
ProtocoloNoNúmero de protocolo do lote
StatusLoteNo1 - Lote processado; 2 - Aguardando processamento; 3 - Ocorreu um erro ao processar o lote; 4 - Ocorreu um erro ao analisar as informações do lote
Base64XmlLoteNoDados xml do lote, bytes em base64
DsTipoAmbienteNoDescrição do ambiente de envio
MunicipioEnvioNoMunicipio onde foi enviado
CodTipoAmbienteNoCódigo do ambiente de envio
DataRecebimentoNoData de recebimento do lote;
TempoRequisicaoPrefeituraNoTempo total da transmissão para prefeitura em milisegundos

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered by structured data. The description adds only the qualifier that the NFS-e must have already been sent, which is modest but genuine context beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler, and the resource is stated before the qualifying clause. It is tight, though it wastes its one clause on parameters that do not match the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the one-parameter-plus-optional list is small. Still, the description omits the actual parameter semantics (Rps selector, lote code) and gives no usage routing, leaving the agent to reconcile a mismatch between prose and schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, which normally sets a baseline of 3. However, the description cites lookup keys ('por número, série e ambiente') that do not exist among the actual parameters (Rps, codLote), so it actively misdescribes the input rather than reinforcing it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (consulta) and resource (NFS-e) plus scope ('já enviada'), which separates it from the write-oriented siblings nfse_emitir and nota_listar. The purpose is unmistakable, though it never names a sibling or alternative by name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this versus nfse_emitir, nota_listar, or any other read tool in the sibling list. An agent must infer usage entirely from the one-line purpose statement.

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)A
Destructive
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
LoteNo
nFSInfoYesLista de NFS-e a emitir no lote. Mínimo 1 item.
TipoAmbienteYesIdentificação do ambiente da prefeitura/portal nacional. Valores: 1 - Produção (emissão REAL, com valor fiscal); 2 - Homologação (teste)

Output Schema

ParametersJSON Schema
NameRequiredDescription
LoteNoNúmero do lote enviado;
ErrorNoMensagem de erro da operação. Vazia ("") quando foi bem-sucedida.
NotasNo
AvisosNoAvisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida.
CodLoteNoCódigo atrelado ao lote; - Usado para busca de lotes
ProtocoloNoNúmero de protocolo do lote
StatusLoteNo1 - Lote processado; 2 - Aguardando processamento; 3 - Ocorreu um erro ao processar o lote; 4 - Ocorreu um erro ao analisar as informações do lote
Base64XmlLoteNoDados xml do lote, bytes em base64
DsTipoAmbienteNoDescrição do ambiente de envio
MunicipioEnvioNoMunicipio onde foi enviado
CodTipoAmbienteNoCódigo do ambiente de envio
DataRecebimentoNoData de recebimento do lote;
TempoRequisicaoPrefeituraNoTempo total da transmissão para prefeitura em milisegundos

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=true and openWorldHint=true, so the agent knows this is a real, externally-visible write. The description adds the municipal-heterogeneity caveat and the portal-vs-city-hall routing, but says nothing about environment risk (production vs homologação lives only in the schema), idempotency, or duplicate-emission behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, purpose front-loaded, followed by the municipality caution and the routing note. No filler; each sentence contributes.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a highly complex fiscal-emission tool with a deep schema, an output schema (so returns need no explanation) and strong annotations, the description is on the thin side. It covers the municipality prerequisite but omits things like company/certificate prerequisites, duplicate-NFS-e risk, and what happens on partial lote failure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 67% and the description adds no parameter-level detail at all for Lote, nFSInfo or TipoAmbiente. With the schema already carrying rich nested documentation, the schema does the heavy lifting, so the baseline 3 is appropriate rather than a lower score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Emite NFS-e - Nota Fiscal de Serviços Eletrônica'), which is clearly the municipal service invoice and distinguishable from the goods-invoice siblings like nfe_emitir and cte_emitir. It also names the two emission channels (Portal Nacional vs prefeitura), adding scope beyond the name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a real prerequisite ('confira o município emissor antes') and a routing condition based on the company's cadastro, which is useful context. However, it names no alternatives (e.g., nfse_consultar to verify, nfe_emitir for goods) and gives no when-not guidance, so usage is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nota_listarListar notas fiscaisA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
DtFimNoData final da busca
DtInicioNoData inicial da busca
TipoAmbienteNoTipo de ambiente (Padrão 1 - Produção) Valores: 1 - Produção; 2 - Homologação
TipoParticipacaoNoComo 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
TipoDocumentoFiscalNoTipo do documento fiscal (Padrão 0 - Entrada) Valores: 0 - Entradas; 1 - Saídas
IdentificadorInternoNoBusca notas que possui o código interno informado (somente saídas)

Output Schema

ParametersJSON Schema
NameRequiredDescription
ErrorNoMensagem de erro da operação. Vazia ("") quando foi bem-sucedida.
NotasNo
AvisosNoAvisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description adds the document-type coverage and date-range scoping, which is useful, but it also advertises filters ('chave, número, status') that have no matching schema parameter, which is mildly misleading about what can actually be filtered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with the primary purpose front-loaded and the supported scope right behind it. No waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and the read-only annotations carry the safety profile. The one gap is the mismatch between the advertised filters and the actual parameters, but for a simple list tool the definition is otherwise sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the schema documents every parameter including enum meanings and defaults, so the baseline is 3. The description adds no syntax or format detail beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Lista) plus the exact resources (NF-e/NFC-e/NFS-e) and scope (emitted or received within a date range). This clearly separates it from the many emit/emitir siblings, though it never names a specific alternative tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the stated scope (date-ranged listing with filters), but there is no explicit when-to-use, when-not-to-use, or pointing to a sibling for narrowing results. Adequate but leaves routing to inference.

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 descricaoA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
TermoNo
LimiteNo
OffsetNo
TipoBuscaNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
AvisosNo
LimiteNo
OffsetNo
MatchesNo
TotalGeralNo
TotalLocalNo
TipoDetectadoNo
TermoNormalizadoNo

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, so safety is covered. The description adds real behavioral context beyond that: default page size of 20, max 50, offset-based continuation, and a TotalGeral indicator for detecting truncation. It does not discuss empty-result or error semantics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose, then the anti-duplicate guidance, then a clearly labeled PAGINACAO block. Every sentence carries actionable information with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return format needn't be spelled out, yet the description still surfaces TotalGeral as the truncation signal, which is exactly what an agent needs to page correctly. The unexplained TipoBusca parameter is the one remaining gap for a 4-parameter tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry the parameter burden, and it explains Termo's accepted formats (codigo/NCM 8 digits/GTIN 8-14 digits/partial description), Limite's default and ceiling, and Offset's purpose. TipoBusca is never explained, leaving one of four parameters undocumented in both schema and description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Pesquisa) and resource (produto no cadastro da empresa logada), plus the accepted search keys (codigo interno, NCM, GTIN/EAN, descricao parcial). This clearly separates it from the sibling write tools produto_criar and produto_editar.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says to run this BEFORE creating new products to avoid duplicates, which is the exact decision point against produto_criar. It also gives concrete continuation guidance: if TotalGeral exceeds the returned matches, request more pages rather than inventing/grouping results.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

produto_criarCadastrar novo produtoBInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
IdNo
EanNo
NcmNo
CestNo
CodigoYes
DescricaoYes
FatorConversaoNo
QuantidadeEstoqueNo
ValorUnitarioVendaYes
UnidadeMedidaVendaSiglaYes
UnidadeMedidaCompraSiglaNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
IdNo
OkNo
ErroNo
ProdutoNo

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover only safety hints (readOnlyHint=false, destructiveHint=false). The description adds real behavioral context beyond that: duplicate rejection by Codigo, NCM zero-pad normalization for 7/8 digits, and EAN/GTIN check-digit validation. It omits auth/permission requirements and failure modes for other fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three compact sentences, no filler, with the creation statement and the most error-prone validation rules front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, and the validation rules cover the trickiest inputs. However, for an 11-parameter create tool with 0% schema documentation, the majority of fields remain unexplained in both schema and description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 11 parameters, so the description carries the full burden. It clarifies only three fields (Codigo, Ncm, Ean) and says nothing about Cest, FatorConversao, QuantidadeEstoque, ValorUnitarioVenda, or the unidade-medida fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Cadastra') and resource ('novo Produto') plus scope ('na empresa logada'), which clearly separates it from produto_editar and produto_consultar. It stops short of naming those siblings explicitly, so it isn't a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance on when to use this over produto_editar or produto_consultar, nor any stated prerequisites. The creation intent is only implied by the verb and the duplicate-check note.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

produto_editarEditar produto cadastradoA
DestructiveIdempotent
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
IdNo
EanNo
NcmNo
CestNo
CodigoYes
DescricaoYes
FatorConversaoNo
QuantidadeEstoqueNo
ValorUnitarioVendaYes
UnidadeMedidaVendaSiglaYes
UnidadeMedidaCompraSiglaNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
IdNo
OkNo
ErroNo
ProdutoNo

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructiveHint=true and idempotentHint=true, but the description explains WHY it is destructive ('omitted fields are zeroed') and adds ownership/auth semantics (UserCreate check, IdEmpresa must be the logged company or 0). That is substantive context beyond the structured annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action and the required Id, then the critical warning, then ownership rules. Dense but every sentence (zeroing risk, consult-first, ownership) earns its place; slightly run-on but well prioritized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and the description covers the key gotchas for a destructive update (zeroing, ownership, read-before-write). Minor gap: it references an IdEmpresa not present in the input schema, but overall it is complete enough to call correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 11 parameters, so the schema documents nothing. The description conveys the critical global semantic (send the full payload; omitted fields reset) and that Id is required, but gives no meaning for individual fields (Ean, Ncm, Cest, FatorConversao, etc.), so it only partially compensates for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Atualiza) and resource (Produto existente), and names the sibling it complements (produto_consultar), so it is clearly distinguishable from produto_criar and produto_consultar without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly prescribes the workflow: call produto_consultar first to fetch current data, then resend the whole payload plus changes. It also names the selection condition (an existing product the user owns) and the company constraint, leaving little to inference.

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 SEFAZA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
ModeloDocumentoNoModelo do documento fiscal usado para determinar o webservice de status da SEFAZ (Padrão 55). Valores: 55 - NF-e; 65 - NFC-e

Output Schema

ParametersJSON Schema
NameRequiredDescription
errosNoLista de erros quando a operação falha. Vazia em caso de sucesso. Cada item traz codigo, descricao e correcao.
VersaoNo
avisosNoAvisos não bloqueantes. Pode vir preenchida mesmo em sucesso.
statusNoStatus do resultado da operação: 1 = sucesso; 2 = erro (a lista erros é preenchida).
DsTipoAmbienteNo
CodTipoAmbienteNo
DsEstadoEmitenteNo
CodEstadoEmitenteNo
DsStatusRespostaSefazNo
CodStatusRespostaSefazNo

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered. The description adds usage timing but does not disclose additional operational behavior such as authentication scope, rate limits, or how the UF/ambiente are resolved.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the core purpose and then the usage condition. Every sentence earns its place with no redundant repetition of schema or annotation data.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter read-only status tool, the description plus annotations and output schema provide enough to select and invoke it correctly. The only minor gap is the mention of UF and ambiente, which are not represented in the input schema and could briefly confuse an agent about required inputs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the single ModeloDocumento enum is fully documented in the schema. The description adds no further parameter detail and refers to "UF e ambiente" even though those are not input properties, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource: "Consulta o status do serviço de autorização da SEFAZ". It also states the scope (UF and ambiente), making clear how this differs from a generic health check or other status tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly recommends usage before batch emission and when instability is suspected: "Use antes de uma emissão em lote ou quando suspeitar de instabilidade." This is clear context, though it does not name when not to use it or point to an alternative sibling tool.

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 tributacaoA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
CfopNo
TipoNo
TermoNo
LimiteNo
OffsetNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
TotalNo
AvisosNo
LimiteNo
OffsetNo
MatchesNo
TotalGeralNo

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds real behavioral context beyond that: default page size 20, hard max 50, presence of TotalGeral in the response, and an explicit anti-hallucination instruction to page rather than invent or aggregate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose and filters, then pagination guidance, all in a few dense sentences with no filler. Every clause carries operational information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only filtered-list tool with an output schema, the description covers everything an agent needs to call it correctly: filters, page sizing, and how to interpret TotalGeral for continued paging. No meaningful gap remains.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description compensates fully: it defines Tipo's enum-like values (1=NFe, 2=NFCe, 3=Energia/Comunicacao) that the schema lacks, explains CFOP and Termo as filters, and gives Limite's default (20) and max (50) plus Offset's role.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb+resource: it lists the company's tax rules and enumerates the domains covered (CFOP, CST, ICMS/PIS/COFINS/IPI/IBS/CBS), cleanly separating it from the sibling mutation tools tributacao_criar and tributacao_editar.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit when-to-use ('Use antes de criar nota fiscal pra LLM saber quais tributos aplicar') plus filter conditions (Tipo/CFOP/termo). It does not name the sibling alternatives for maintaining rules, so it stops short of 5.

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 tributacaoCInspect

Cadastra uma nova regra de tributacao (CFOP + CSTs + aliquotas). Tipo 1=NFe, 2=NFCe, 3=Energia/Comunicacao. CstIbsCbs e obrigatorio (Reforma Tributaria).

ParametersJSON Schema
NameRequiredDescriptionDefault
IdNo
CfopYes
TipoNo
CstIpiNo
CstPisNo
AliqCbsNo
AliqIpiNo
AliqPisNo
ApiCodeNo
CstIcmsNo
AliqIcmsNo
AutoAliqNo
AliqIbsUfNo
CstCofinsNo
CstIbsCbsNo
DescricaoYes
AliqCofinsNo
AliqIbsMunNo
ObservacaoNo
AliqReducaoNo
AliqDiferimentoNo
EnquadramentoIpiNo
CodBeneficioFiscalNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
IdNo
OkNo
ErroNo
TributacaoNo

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false and destructiveHint=false, so the write/safe-mutation profile is covered. The description adds the useful constraint that CstIbsCbs is mandatory under the tax reform, but says nothing about permissions, validation failure modes, or uniqueness of a rule. Note the claimed obligation sits oddly with the schema, where CstIbsCbs is nullable and not in the required list.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three compact sentences with the purpose front-loaded and zero padding. It is efficient, though the payoff per sentence is limited given how much parameter detail is omitted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 23-parameter mutation tool with 0% schema description coverage, the description covers only one enum and one mandatory-field note. An output schema exists, so return values need not be explained, but the input contract is far too thin for an agent to populate the tax fields correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 23 parameters, so the schema carries essentially no meaning and the description must compensate. It only explains the Tipo enum (1=NFe, 2=NFCe, 3=Energia/Comunicacao) and flags CstIbsCbs as required, leaving roughly 20 tax fields (CstIcms, AliqCbs, AutoAliq, EnquadramentoIpi, etc.) completely unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb+resource ('Cadastra uma nova regra de tributacao') and scopes the entity (CFOP + CSTs + aliquotas). It is clearly distinguishable from tributacao_consultar, though it never explicitly contrasts itself with tributacao_editar, the closest sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to create a rule versus editing one with tributacao_editar, nor any prerequisite or context condition. Usage is only implied by the verb 'Cadastra'.

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 tributacaoA
DestructiveIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
IdNo
CfopYes
TipoNo
CstIpiNo
CstPisNo
AliqCbsNo
AliqIpiNo
AliqPisNo
ApiCodeNo
CstIcmsNo
AliqIcmsNo
AutoAliqNo
AliqIbsUfNo
CstCofinsNo
CstIbsCbsNo
DescricaoYes
AliqCofinsNo
AliqIbsMunNo
ObservacaoNo
AliqReducaoNo
AliqDiferimentoNo
EnquadramentoIpiNo
CodBeneficioFiscalNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
IdNo
OkNo
ErroNo
TributacaoNo

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds behavior beyond the annotations: the payload is a full replace where omitted fields are zeroed, and ownership is validated via IdEmpresa. These are exactly the traits an agent needs since destructiveHint=true alone does not explain the zeroing risk, and the annotation set is consistent with the described overwrite semantics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the purpose, then the critical zeroing warning, then the recommended workflow. Every sentence earns its place, though the Id/payload/workflow instructions could be tightened slightly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive 23-parameter overwrite with an output schema present, the description covers the essential risks (zeroing, ownership check, prior consult) without needing to explain return values. It could say more about what happens on validation/ownership failure, but it is sufficient to call correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 23 parameters at 0% schema description coverage, the schema explains almost nothing, so the description must carry the burden. It clarifies the Id input and the all-fields-required nature of the payload, but note 'Id obrigatorio' conflicts slightly with the schema where Id is nullable and not in the required list; per-field meanings remain undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Atualiza uma regra de tributacao existente'), making the update semantics clear and distinguishing it implicitly from tributacao_criar. It does not explicitly name a sibling to route against, but 'existente' plus the consult-first workflow leaves little ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a concrete prerequisite workflow: call tributacao_consultar first to fetch current data, then resend everything with modifications. It names the alternative sibling and the condition for using it, though it never states when NOT to use this tool (e.g., use tributacao_criar for new rules).

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.

  1. 3 tool updates
    • Changednfe_emitir1 field changed
      • changedInput schema / properties / Produtos / items / properties / Imposto / properties / ICMS / properties / RedICMSST / description
        Previous value: -"Redução ICMS ST"New value: +"Percentual de redução da base de cálculo do ICMS ST (pRedBCST). Informado (inclusive 0): a base do ST parte do valor da operação sem a redução própria (RedICMS) e aplica só este percentual. Não informado: a redução própria (RedICMS) também reduz a base do ST."
    • Changednfe_emitir_complementar1 field changed
      • changedInput schema / properties / Produtos / items / properties / Imposto / properties / ICMS / properties / RedICMSST / description
        Previous value: -"Redução ICMS ST"New value: +"Percentual de redução da base de cálculo do ICMS ST (pRedBCST). Informado (inclusive 0): a base do ST parte do valor da operação sem a redução própria (RedICMS) e aplica só este percentual. Não informado: a redução própria (RedICMS) também reduz a base do ST."
    • Changednfe_previsualizar1 field changed
      • changedInput schema / properties / notaFiscal / properties / nFInfos / items / properties / Produtos / items / properties / Imposto / properties / ICMS / properties / RedICMSST / description
        Previous value: -"Redução ICMS ST"New value: +"Percentual de redução da base de cálculo do ICMS ST (pRedBCST). Informado (inclusive 0): a base do ST parte do valor da operação sem a redução própria (RedICMS) e aplica só este percentual. Não informado: a redução própria (RedICMS) também reduz a base do ST."
  2. 3 tool updates
    • Changednfe_emitir4 fields changed
      • addedInput schema / properties / Produtos / items / properties / Combustivel / properties / PercentualGLP
        Added value: +{
        +  "description": "GLP (ANP 210203001): percentuais de GLP derivado do petróleo, gás natural nacional e importado; a soma deve ser 100",
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • addedInput schema / properties / Produtos / items / properties / Combustivel / properties / PercentualGasNaturalImportado
        Added value: +{
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • addedInput schema / properties / Produtos / items / properties / Combustivel / properties / PercentualGasNaturalNacional
        Added value: +{
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • addedInput schema / properties / Produtos / items / properties / Combustivel / properties / ValorPartida
        Added value: +{
        +  "description": "GLP (ANP 210203001): valor de partida por quilograma, sem ICMS",
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
    • Changednfe_emitir_complementar4 fields changed
      • addedInput schema / properties / Produtos / items / properties / Combustivel / properties / PercentualGLP
        Added value: +{
        +  "description": "GLP (ANP 210203001): percentuais de GLP derivado do petróleo, gás natural nacional e importado; a soma deve ser 100",
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • addedInput schema / properties / Produtos / items / properties / Combustivel / properties / PercentualGasNaturalImportado
        Added value: +{
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • addedInput schema / properties / Produtos / items / properties / Combustivel / properties / PercentualGasNaturalNacional
        Added value: +{
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • addedInput schema / properties / Produtos / items / properties / Combustivel / properties / ValorPartida
        Added value: +{
        +  "description": "GLP (ANP 210203001): valor de partida por quilograma, sem ICMS",
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
    • Changednfe_previsualizar4 fields changed
      • addedInput schema / properties / notaFiscal / properties / nFInfos / items / properties / Produtos / items / properties / Combustivel / properties / PercentualGLP
        Added value: +{
        +  "description": "GLP (ANP 210203001): percentuais de GLP derivado do petróleo, gás natural nacional e importado; a soma deve ser 100",
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • addedInput schema / properties / notaFiscal / properties / nFInfos / items / properties / Produtos / items / properties / Combustivel / properties / PercentualGasNaturalImportado
        Added value: +{
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • addedInput schema / properties / notaFiscal / properties / nFInfos / items / properties / Produtos / items / properties / Combustivel / properties / PercentualGasNaturalNacional
        Added value: +{
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • addedInput schema / properties / notaFiscal / properties / nFInfos / items / properties / Produtos / items / properties / Combustivel / properties / ValorPartida
        Added value: +{
        +  "description": "GLP (ANP 210203001): valor de partida por quilograma, sem ICMS",
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
  3. 3 tool updates
    • Changednfe_emitir4 fields changed
      • addedInput schema / properties / Produtos / items / properties / Imposto / properties / ICMS / properties / AliquotaFCP
        Added value: +{
        +  "description": "pFCP - Percentual do Fundo de Combate à Pobreza (FCP) da operação própria. Aceito nos CST 00, 10, 20, 51, 70 e 90. O valor (vFCP) é calculado por BaseCalculoFCP x AliquotaFCP / 100 e somado no total vFCP da nota (não soma no vNF). Quando não informado (null), é preenchido pelo FCP geral da UF do emitente (RJ 2%, AL 1%, SE 1%) em NF-e/NFC-e de saída normal interna, CST 00 ou 10, sem redução de base e com AliquotaICMS igual à alíquota modal da UF. Informe 0 para não destacar o FCP. Não informe em venda interestadual para consumidor final não contribuinte: lá o FCP da UF de destino vai no grupo do DIFAL (vFCPUFDest), calculado automaticamente (rejeição 876).",
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • addedInput schema / properties / Produtos / items / properties / Imposto / properties / ICMS / properties / AliquotaFCPST
        Added value: +{
        +  "description": "pFCPST - Percentual do FCP retido por substituição tributária. Aceito nos CST 10, 30, 70 e 90 e nos CSOSN 201, 202, 203 e 900. O valor (vFCPST) é BaseCalculoFCPST x AliquotaFCPST / 100 - vFCP (regra N23d-10 da SEFAZ) e soma no total da nota (vNF), como o ICMS-ST. Informe em AliquotaICMSST só a alíquota do ICMS, sem o FCP.",
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • addedInput schema / properties / Produtos / items / properties / Imposto / properties / ICMS / properties / BaseCalculoFCP
        Added value: +{
        +  "description": "vBCFCP - Base de cálculo do FCP da operação própria. Quando não informada, é a base do ICMS (vBC). No CST 00 o schema não tem vBCFCP: o FCP é sempre calculado sobre a base do ICMS.",
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • addedInput schema / properties / Produtos / items / properties / Imposto / properties / ICMS / properties / BaseCalculoFCPST
        Added value: +{
        +  "description": "vBCFCPST - Base de cálculo do FCP-ST. Quando não informada, é a base do ICMS-ST (vBCST).",
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
    • Changednfe_emitir_complementar4 fields changed
      • addedInput schema / properties / Produtos / items / properties / Imposto / properties / ICMS / properties / AliquotaFCP
        Added value: +{
        +  "description": "pFCP - Percentual do Fundo de Combate à Pobreza (FCP) da operação própria. Aceito nos CST 00, 10, 20, 51, 70 e 90. O valor (vFCP) é calculado por BaseCalculoFCP x AliquotaFCP / 100 e somado no total vFCP da nota (não soma no vNF). Quando não informado (null), é preenchido pelo FCP geral da UF do emitente (RJ 2%, AL 1%, SE 1%) em NF-e/NFC-e de saída normal interna, CST 00 ou 10, sem redução de base e com AliquotaICMS igual à alíquota modal da UF. Informe 0 para não destacar o FCP. Não informe em venda interestadual para consumidor final não contribuinte: lá o FCP da UF de destino vai no grupo do DIFAL (vFCPUFDest), calculado automaticamente (rejeição 876).",
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • addedInput schema / properties / Produtos / items / properties / Imposto / properties / ICMS / properties / AliquotaFCPST
        Added value: +{
        +  "description": "pFCPST - Percentual do FCP retido por substituição tributária. Aceito nos CST 10, 30, 70 e 90 e nos CSOSN 201, 202, 203 e 900. O valor (vFCPST) é BaseCalculoFCPST x AliquotaFCPST / 100 - vFCP (regra N23d-10 da SEFAZ) e soma no total da nota (vNF), como o ICMS-ST. Informe em AliquotaICMSST só a alíquota do ICMS, sem o FCP.",
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • addedInput schema / properties / Produtos / items / properties / Imposto / properties / ICMS / properties / BaseCalculoFCP
        Added value: +{
        +  "description": "vBCFCP - Base de cálculo do FCP da operação própria. Quando não informada, é a base do ICMS (vBC). No CST 00 o schema não tem vBCFCP: o FCP é sempre calculado sobre a base do ICMS.",
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • addedInput schema / properties / Produtos / items / properties / Imposto / properties / ICMS / properties / BaseCalculoFCPST
        Added value: +{
        +  "description": "vBCFCPST - Base de cálculo do FCP-ST. Quando não informada, é a base do ICMS-ST (vBCST).",
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
    • Changednfe_previsualizar4 fields changed
      • addedInput schema / properties / notaFiscal / properties / nFInfos / items / properties / Produtos / items / properties / Imposto / properties / ICMS / properties / AliquotaFCP
        Added value: +{
        +  "description": "pFCP - Percentual do Fundo de Combate à Pobreza (FCP) da operação própria. Aceito nos CST 00, 10, 20, 51, 70 e 90. O valor (vFCP) é calculado por BaseCalculoFCP x AliquotaFCP / 100 e somado no total vFCP da nota (não soma no vNF). Quando não informado (null), é preenchido pelo FCP geral da UF do emitente (RJ 2%, AL 1%, SE 1%) em NF-e/NFC-e de saída normal interna, CST 00 ou 10, sem redução de base e com AliquotaICMS igual à alíquota modal da UF. Informe 0 para não destacar o FCP. Não informe em venda interestadual para consumidor final não contribuinte: lá o FCP da UF de destino vai no grupo do DIFAL (vFCPUFDest), calculado automaticamente (rejeição 876).",
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • addedInput schema / properties / notaFiscal / properties / nFInfos / items / properties / Produtos / items / properties / Imposto / properties / ICMS / properties / AliquotaFCPST
        Added value: +{
        +  "description": "pFCPST - Percentual do FCP retido por substituição tributária. Aceito nos CST 10, 30, 70 e 90 e nos CSOSN 201, 202, 203 e 900. O valor (vFCPST) é BaseCalculoFCPST x AliquotaFCPST / 100 - vFCP (regra N23d-10 da SEFAZ) e soma no total da nota (vNF), como o ICMS-ST. Informe em AliquotaICMSST só a alíquota do ICMS, sem o FCP.",
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • addedInput schema / properties / notaFiscal / properties / nFInfos / items / properties / Produtos / items / properties / Imposto / properties / ICMS / properties / BaseCalculoFCP
        Added value: +{
        +  "description": "vBCFCP - Base de cálculo do FCP da operação própria. Quando não informada, é a base do ICMS (vBC). No CST 00 o schema não tem vBCFCP: o FCP é sempre calculado sobre a base do ICMS.",
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • addedInput schema / properties / notaFiscal / properties / nFInfos / items / properties / Produtos / items / properties / Imposto / properties / ICMS / properties / BaseCalculoFCPST
        Added value: +{
        +  "description": "vBCFCPST - Base de cálculo do FCP-ST. Quando não informada, é a base do ICMS-ST (vBCST).",
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
  4. 2 tool updates
    • Changednfe_emitir1 field changed
      • addedInput schema / properties / ValorDesconto
        Added value: +{
        +  "description": "Valor total do desconto da nota. Quando informado, é distribuído proporcionalmente entre os itens (proporção pelo ValorTotal de cada item), SUBSTITUINDO o ValorDesconto informado em cada produto. Não informado (nulo) = o desconto de cada item é usado como enviado.",
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
    • Changednfe_previsualizar1 field changed
      • addedInput schema / properties / notaFiscal / properties / nFInfos / items / properties / ValorDesconto
        Added value: +{
        +  "description": "Valor total do desconto da nota. Quando informado, é distribuído proporcionalmente entre os itens (proporção pelo ValorTotal de cada item), SUBSTITUINDO o ValorDesconto informado em cada produto. Não informado (nulo) = o desconto de cada item é usado como enviado.",
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
  5. 2 tool updates
    • Changednfe_emitir1 field changed
      • addedInput schema / properties / confirmacaoUsuario
        Added value: +{
        +  "description": "Envie true SOMENTE depois que o usuário viu a pré-visualização final e confirmou explicitamente a emissão nesta conversa. Obrigatório em conexões OAuth.",
        +  "type": "boolean"
        +}
    • Changednfe_previsualizar3 fields changed
      • changedInput schema / properties / TipoArquivo / description
        Previous value: -"Tipo do arquivo que deseja pré-visualizar (Padrão - 0) Valores: 0 - XML; 1 - PDF"New value: +"Tipo do arquivo que deseja pré-visualizar (Padrão - 0) Valores: 0 - XML; 1 - PDF; 2 - PDF em Base64File e XML em Base64Xml na mesma chamada"
      • changedInput schema / properties / TipoArquivo / enum
        Previous value: -[
        -  0,
        -  1
        -]New value: +[
        +  0,
        +  1,
        +  2
        +]
      • addedOutput schema / properties / Base64Xml
        Added value: +{
        +  "description": "XML da pré-visualização. Preenchido somente quando TipoArquivo = 2.",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
  6. 2 tool updates
    • Changednfe_emitir1 field changed
      • changedInput schema / properties / CalcularIBPT / description
        Previous value: -"Indica operação com Consumidor final (NFCe de ser 1 Validar!)"New value: +"Calcula o valor aproximado dos tributos (vTotTrib, tabela IBPT, Lei 12.741/2012). Padrão: verdadeiro."
    • Changednfe_previsualizar1 field changed
      • changedInput schema / properties / notaFiscal / properties / nFInfos / items / properties / CalcularIBPT / description
        Previous value: -"Indica operação com Consumidor final (NFCe de ser 1 Validar!)"New value: +"Calcula o valor aproximado dos tributos (vTotTrib, tabela IBPT, Lei 12.741/2012). Padrão: verdadeiro."
  7. 2 tool updates
    • Changednfe_previsualizar1 field changed
      • addedInput schema / properties / nfse / properties / nFSInfo / items / properties / Servico / properties / ConfiguracaoImposto / properties / RegimePisCofins
        Added 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"
        +  ]
        +}
    • Changednfse_emitir1 field changed
      • addedInput schema / properties / nFSInfo / items / properties / Servico / properties / ConfiguracaoImposto / properties / RegimePisCofins
        Added 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"
        +  ]
        +}
  8. 2 tool updates
    • Changednfe_previsualizar1 field changed
      • addedInput schema / properties / nfse / properties / nFSInfo / items / properties / Servico / properties / ConfiguracaoImposto / properties / DestacarPisCofins
        Added 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"
        +}
    • Changednfse_emitir1 field changed
      • addedInput schema / properties / nFSInfo / items / properties / Servico / properties / ConfiguracaoImposto / properties / DestacarPisCofins
        Added 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"
        +}
  9. 6 tool updates
    • Changedcte_desacordo2 fields changed
      • addedOutput schema / properties / Base64File
        Added 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"
        +  ]
        +}
      • addedOutput schema / properties / Base64Xml
        Added 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"
        +  ]
        +}
    • Changedevento_cancelar2 fields changed
      • addedOutput schema / properties / Base64File
        Added 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"
        +  ]
        +}
      • addedOutput schema / properties / Base64Xml
        Added 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"
        +  ]
        +}
    • Changedevento_carta_correcao2 fields changed
      • addedOutput schema / properties / Base64File
        Added 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"
        +  ]
        +}
      • addedOutput schema / properties / Base64Xml
        Added 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"
        +  ]
        +}
    • Changedevento_inutilizar2 fields changed
      • addedOutput schema / properties / Base64File
        Added 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"
        +  ]
        +}
      • addedOutput schema / properties / Base64Xml
        Added 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"
        +  ]
        +}
    • Changedevento_manifestar2 fields changed
      • addedOutput schema / properties / Base64File
        Added 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"
        +  ]
        +}
      • addedOutput schema / properties / Base64Xml
        Added 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"
        +  ]
        +}
    • Changedmdfe_encerrar2 fields changed
      • addedOutput schema / properties / Base64File
        Added 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"
        +  ]
        +}
      • addedOutput schema / properties / Base64Xml
        Added 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"
        +  ]
        +}
  10. 2 tool updates
    • Changednfe_previsualizar3 fields changed
      • addedInput schema / properties / nfse / properties / nFSInfo / items / properties / Servico / properties / DocumentoReferencia
        Added value: +{
        +  "description": "Documento de referência (infoCompl/docRef, até 255 caracteres): contrato, proposta, NF referenciada etc.",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedInput schema / properties / nfse / properties / nFSInfo / items / properties / Servico / properties / InformacoesComplementares
        Added value: +{
        +  "description": "Informações complementares da NFS-e nacional (infoCompl/xInfComp, até 2000 caracteres). Sai no DANFSe.",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedInput schema / properties / nfse / properties / nFSInfo / items / properties / Servico / properties / NumeroPedido
        Added value: +{
        +  "description": "Número do pedido do tomador (infoCompl/xPed, até 60 caracteres).",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
    • Changednfse_emitir3 fields changed
      • addedInput schema / properties / nFSInfo / items / properties / Servico / properties / DocumentoReferencia
        Added value: +{
        +  "description": "Documento de referência (infoCompl/docRef, até 255 caracteres): contrato, proposta, NF referenciada etc.",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedInput schema / properties / nFSInfo / items / properties / Servico / properties / InformacoesComplementares
        Added value: +{
        +  "description": "Informações complementares da NFS-e nacional (infoCompl/xInfComp, até 2000 caracteres). Sai no DANFSe.",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedInput schema / properties / nFSInfo / items / properties / Servico / properties / NumeroPedido
        Added value: +{
        +  "description": "Número do pedido do tomador (infoCompl/xPed, até 60 caracteres).",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
  11. 2 tool updates
    • Changednfe_previsualizar6 fields changed
      • addedInput schema / properties / nfse / properties / nFSInfo / items / properties / ConstrucaoCivil / description
        Added 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."
      • addedInput schema / properties / nfse / properties / nFSInfo / items / properties / ConstrucaoCivil / properties / Art / description
        Added value: +"Documento de responsabilidade técnica (ART, RRT, DRT). Vai em infoCompl/idDocTec."
      • addedInput schema / properties / nfse / properties / nFSInfo / items / properties / ConstrucaoCivil / properties / Cib
        Added value: +{
        +  "description": "Código do Cadastro Imobiliário Brasileiro (8 caracteres). Só no leiaute 1.01.",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedInput schema / properties / nfse / properties / nFSInfo / items / properties / ConstrucaoCivil / properties / CodObra / description
        Added value: +"Número da obra: CNO (Cadastro Nacional de Obras) ou CEI do INSS. Até 30 caracteres."
      • addedInput schema / properties / nfse / properties / nFSInfo / items / properties / ConstrucaoCivil / properties / EnderecoObra
        Added 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"
        +  ]
        +}
      • addedInput schema / properties / nfse / properties / nFSInfo / items / properties / ConstrucaoCivil / properties / InscricaoImobiliaria
        Added value: +{
        +  "description": "Inscrição imobiliária fiscal do imóvel na prefeitura. Opcional, complementa o identificador.",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
    • Changednfse_emitir6 fields changed
      • addedInput schema / properties / nFSInfo / items / properties / ConstrucaoCivil / description
        Added 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."
      • addedInput schema / properties / nFSInfo / items / properties / ConstrucaoCivil / properties / Art / description
        Added value: +"Documento de responsabilidade técnica (ART, RRT, DRT). Vai em infoCompl/idDocTec."
      • addedInput schema / properties / nFSInfo / items / properties / ConstrucaoCivil / properties / Cib
        Added value: +{
        +  "description": "Código do Cadastro Imobiliário Brasileiro (8 caracteres). Só no leiaute 1.01.",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedInput schema / properties / nFSInfo / items / properties / ConstrucaoCivil / properties / CodObra / description
        Added value: +"Número da obra: CNO (Cadastro Nacional de Obras) ou CEI do INSS. Até 30 caracteres."
      • addedInput schema / properties / nFSInfo / items / properties / ConstrucaoCivil / properties / EnderecoObra
        Added 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"
        +  ]
        +}
      • addedInput schema / properties / nFSInfo / items / properties / ConstrucaoCivil / properties / InscricaoImobiliaria
        Added value: +{
        +  "description": "Inscrição imobiliária fiscal do imóvel na prefeitura. Opcional, complementa o identificador.",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
  12. 2 tool updates
    • Changednfe_emitir2 fields changed
      • addedInput schema / properties / ValorFrete
        Added 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"
        +  ]
        +}
      • addedInput schema / properties / ValorTotal
        Added 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"
        +  ]
        +}
    • Changednfe_previsualizar2 fields changed
      • addedInput schema / properties / notaFiscal / properties / nFInfos / items / properties / ValorFrete
        Added 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"
        +  ]
        +}
      • addedInput schema / properties / notaFiscal / properties / nFInfos / items / properties / ValorTotal
        Added 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"
        +  ]
        +}
  13. 2 tool updates
    • Changednfe_emitir3 fields changed
      • addedInput schema / properties / NFPagamentoAntecipado
        Added value: +{
        +  "description": "Grupo de notas de antecipação de pagamento (gPagAntecipado - Reforma Tributária).",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": [
        +    "array",
        +    "null"
        +  ]
        +}
      • changedInput schema / properties / TpNFCredito / description
        Previous 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"
      • changedInput schema / properties / TpNFCredito / enum
        Previous value: -[
        -  1,
        -  2,
        -  3,
        -  null
        -]New value: +[
        +  1,
        +  2,
        +  3,
        +  4,
        +  5,
        +  6,
        +  null
        +]
    • Changednfe_previsualizar3 fields changed
      • addedInput schema / properties / notaFiscal / properties / nFInfos / items / properties / NFPagamentoAntecipado
        Added value: +{
        +  "description": "Grupo de notas de antecipação de pagamento (gPagAntecipado - Reforma Tributária).",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": [
        +    "array",
        +    "null"
        +  ]
        +}
      • changedInput schema / properties / notaFiscal / properties / nFInfos / items / properties / TpNFCredito / description
        Previous 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"
      • changedInput schema / properties / notaFiscal / properties / nFInfos / items / properties / TpNFCredito / enum
        Previous value: -[
        -  1,
        -  2,
        -  3,
        -  null
        -]New value: +[
        +  1,
        +  2,
        +  3,
        +  4,
        +  5,
        +  6,
        +  null
        +]
  14. 1 tool update
    • Changednota_listar2 fields changed
      • addedInput schema / properties / TipoParticipacao
        Added 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"
        +}
      • addedOutput schema / properties / Notas / items / properties / TipoParticipacao
        Added 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"
        +  ]
        +}
  15. 2 tool updates
    • Changednfe_emitir1 field changed
      • addedInput schema / properties / TipoDanfe
        Added 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"
        +  ]
        +}
    • Changednfe_previsualizar7 fields changed
      • addedInput schema / properties / cte
        Added 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"
        +  ]
        +}
      • addedInput schema / properties / dce
        Added 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"
        +  ]
        +}
      • addedInput schema / properties / mdfe
        Added 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"
        +  ]
        +}
      • changedInput schema / properties / mostrarTarjaPreVisualizacao / description
        Previous 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"
      • addedInput schema / properties / nfse
        Added 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"
        +  ]
        +}
      • addedInput schema / properties / notaFiscal / description
        Added value: +"NF-e / NFC-e (modelo 55/65). Usado quando TipoEnvio = 1. Gera o DANFE/XML de pré-visualização."
      • addedInput schema / properties / notaFiscal / properties / nFInfos / items / properties / TipoDanfe
        Added 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"
        +  ]
        +}
  16. 2 tool updates
    • Changednfe_emitir2 fields changed
      • changedInput schema / properties / Pagamentos / items / properties / BandeiraOperadora / description
        Previous 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"
      • changedInput schema / properties / Pagamentos / items / properties / BandeiraOperadora / enum
        Previous 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
        +]
    • Changednfe_previsualizar2 fields changed
      • changedInput schema / properties / notaFiscal / properties / nFInfos / items / properties / Pagamentos / items / properties / BandeiraOperadora / description
        Previous 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"
      • changedInput schema / properties / notaFiscal / properties / nFInfos / items / properties / Pagamentos / items / properties / BandeiraOperadora / enum
        Previous 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
        +]
  17. 1 tool update
    • Changednota_listar1 field changed
      • addedOutput schema / properties / Notas / items / properties / Serie
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
  18. 3 tool updates
    • Changednfe_emitir7 fields changed
      • addedInput schema / properties / Pagamentos / items / properties / CNPJPagamento
        Added 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"
        +  ]
        +}
      • addedInput schema / properties / Pagamentos / items / properties / CNPJRecebedor
        Added value: +{
        +  "description": "CNPJ do beneficiário do pagamento (CNPJReceb - NT 2023.004). Opcional.",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedInput schema / properties / Pagamentos / items / properties / DataPagamento
        Added value: +{
        +  "description": "Data do pagamento (dPag - NT 2023.004). Opcional.",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedInput schema / properties / Pagamentos / items / properties / IdTerminalPagamento
        Added value: +{
        +  "description": "Identificador do terminal de pagamento (idTermPag - NT 2023.004). Opcional, 1-40 caracteres.",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedInput schema / properties / Pagamentos / items / properties / NumeroAutorizacao / description
        Added value: +"Número de autorização da operação (cAut). Para PIX, informar o EndToEndId (e2eid) da transação."
      • addedInput schema / properties / Pagamentos / items / properties / UFPagamento
        Added value: +{
        +  "description": "UF do estabelecimento onde o pagamento foi processado (UFPag - NT 2023.004). Opcional.",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • changedInput schema / properties / Produtos / items / properties / Imposto / properties / ICMS / properties / motivoDesoneracaoIcms / description
        Previous 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"
    • Changednfe_emitir_complementar1 field changed
      • changedInput schema / properties / Produtos / items / properties / Imposto / properties / ICMS / properties / motivoDesoneracaoIcms / description
        Previous 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"
    • Changednfe_previsualizar7 fields changed
      • addedInput schema / properties / notaFiscal / properties / nFInfos / items / properties / Pagamentos / items / properties / CNPJPagamento
        Added 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"
        +  ]
        +}
      • addedInput schema / properties / notaFiscal / properties / nFInfos / items / properties / Pagamentos / items / properties / CNPJRecebedor
        Added value: +{
        +  "description": "CNPJ do beneficiário do pagamento (CNPJReceb - NT 2023.004). Opcional.",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedInput schema / properties / notaFiscal / properties / nFInfos / items / properties / Pagamentos / items / properties / DataPagamento
        Added value: +{
        +  "description": "Data do pagamento (dPag - NT 2023.004). Opcional.",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedInput schema / properties / notaFiscal / properties / nFInfos / items / properties / Pagamentos / items / properties / IdTerminalPagamento
        Added value: +{
        +  "description": "Identificador do terminal de pagamento (idTermPag - NT 2023.004). Opcional, 1-40 caracteres.",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedInput schema / properties / notaFiscal / properties / nFInfos / items / properties / Pagamentos / items / properties / NumeroAutorizacao / description
        Added value: +"Número de autorização da operação (cAut). Para PIX, informar o EndToEndId (e2eid) da transação."
      • addedInput schema / properties / notaFiscal / properties / nFInfos / items / properties / Pagamentos / items / properties / UFPagamento
        Added value: +{
        +  "description": "UF do estabelecimento onde o pagamento foi processado (UFPag - NT 2023.004). Opcional.",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • changedInput schema / properties / notaFiscal / properties / nFInfos / items / properties / Produtos / items / properties / Imposto / properties / ICMS / properties / motivoDesoneracaoIcms / description
        Previous 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"
  19. 1 tool update
    • Changednfse_emitir2 fields changed
      • addedInput schema / properties / nFSInfo / items / properties / Servico / properties / IBSCBS / properties / EnderecoImovel
        Added 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"
        +  ]
        +}
      • addedInput schema / properties / nFSInfo / items / properties / Servico / properties / IBSCBS / properties / InscricaoImobiliariaImovel
        Added value: +{
        +  "description": "Inscrição imobiliária fiscal (IPTU) do imóvel - opcional, dentro do grupo imovel.",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Model 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.
    22
    77 PyPI
    Apache 2.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP 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
  • A
    license
    Not graded
    quality
    C
    maintenance
    Read-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
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.