> ## Documentation Index
> Fetch the complete documentation index at: https://docs.engineapi.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# Referência de campos: NFCe

> Todo campo do payload de emissão de NFCe (POST /v1/nfce): tipo, tamanho, tag do leiaute e obrigatoriedade.

Esta página lista **exatamente** o que a engineAPI aceita hoje no payload de emissão
de NFCe, nem mais, nem menos, com a tag do leiaute de cada campo onde ela já
foi catalogada. O modelo 65 (NFCe) não tem IPI nem ICMS-ST no leiaute oficial: os campos `items[].ipi` e `items[].icms.baseCalculoST/aliquotaST/valorST` são **aceitos no contrato** só para poderem ser recusados com `422 IPI_NAO_SUPORTADO`/`422 ICMS_ST_NAO_SUPORTADO` em vez de descartados em silêncio; ver [Erros e Rejeições](/guides/errors). Esta página descreve o **contrato de entrada**, não a cobertura fiscal completa do leiaute oficial. Formatos decimais fixos respeitam casas e teto do dicionário: `13v2` aceita até 13 dígitos inteiros e 2 casas. Excesso devolve `400` com campo e valor, sem arredondamento silencioso. `valorUnitario` conserva as até 10 casas e respeita os 11 dígitos inteiros do `11v0-10`. Ver [Erros e respostas](/guides/errors#casas-decimais-em-valores-monetrios-400). Tamanho, formato e enumeração do leiaute recusam **400** na entrada, nomeando campo e faixa, **antes** de alocar número fiscal.

**Leiaute:** versão 4.00  · **Contrato revisado em:** 2026-09-19&#x20;

**128 campos** documentados abaixo (contagem recursiva, incluindo objetos aninhados e itens de array).

***

## Navegação por grupo do leiaute

1. [Identificação](#grupo-identificacao)
2. [Emitente](#grupo-emitente)
3. [Destinatário](#grupo-destinatario)
4. [Itens](#grupo-itens)
5. [Totais](#grupo-totais) *(sem campo no contrato hoje, ver nota)*
6. [Transporte](#grupo-transporte) *(sem campo no contrato hoje, ver nota)*
7. [Cobrança](#grupo-cobranca)
8. [Pagamento](#grupo-pagamento)
9. [Informações adicionais](#grupo-informacoes-adicionais)
10. [Tributação assistida (Cérebro Fiscal)](#grupo-cerebro-fiscal)

***

<h2 id="grupo-identificacao">
  Identificação
</h2>

<ParamField path="serie" type="number">
  **Tamanho:** 1-3 (0 a 999) · **Tag do leiaute:** `serie` (grupo `ide: Identificação da NF-e`) · **Obrigatoriedade do leiaute:** obrigatório no leiaute · **Preenche:** preenchido automaticamente pela engineAPI

  Série da NFC-e. Ausente = série padrão do emissor

  **Condição do leiaute:** Ausente = série padrão do emissor. Emitente comum usa 0-889; o leiaute reserva 890-899 para avulsa do Fisco e 900-999 para contingência.

  *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/ide/serie (TSerie)*
</ParamField>

<ParamField path="numero" type="number">
  **Tamanho:** 1-9 · **Tag do leiaute:** `nNF` (grupo `ide: Identificação da NF-e`) · **Obrigatoriedade do leiaute:** obrigatório no leiaute · **Preenche:** preenchido automaticamente pela engineAPI

  Número da NFC-e (passthrough). Ausente = alocado automaticamente pela engineAPI

  **Condição do leiaute:** Ausente = número alocado pela engineAPI no controle de numeração do emissor. Informar o número é passthrough e a responsabilidade pela sequência passa a ser do integrador.

  *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/ide/nNF (TNF)*
</ParamField>

<ParamField path="indPres" type="number">
  **Tamanho:** 1 · **Tag do leiaute:** `indPres` (grupo `ide: Identificação da NF-e`) · **Obrigatoriedade do leiaute:** obrigatório no leiaute · **Preenche:** você, na requisição

  Indicador de presença do comprador no estabelecimento no momento da operação. 1=operação presencial, 2=não presencial pela internet, 3=não presencial por teleatendimento, 4=NFC-e com entrega em domicílio, 5=operação presencial fora do estabelecimento, 9=não presencial, outros. 0 ("não se aplica") NÃO é aceito: esse valor descreve nota complementar/de ajuste (finNFe 2/3), documento que esta NFC-e nunca emite (finNFe=1 fixo). Ausente = 1 (presencial), o padrão histórico da NFC-e no balcão. Declare o valor real da operação: venda por delivery/telefone/internet com indPres=1 é uma declaração falsa ao fisco

  **Condição do leiaute:** Ausente = 1 (presencial). O valor 0 (não se aplica, usado em nota complementar ou de ajuste) não é aceito: a NFC-e sempre emite como nota normal.

  *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/ide/indPres*

  | Valor | Significado                                  |
  | ----- | -------------------------------------------- |
  | `1`   | Operação presencial                          |
  | `2`   | Operação não presencial, pela internet       |
  | `3`   | Operação não presencial, teleatendimento     |
  | `4`   | Entrega em domicílio                         |
  | `5`   | Operação presencial, fora do estabelecimento |
  | `9`   | Operação não presencial, outros              |
</ParamField>

<ParamField path="contingencia" type="boolean">
  **Tamanho:** 1 · **Tag do leiaute:** `tpEmis` (grupo `ide: Identificação da NF-e`) · **Obrigatoriedade do leiaute:** obrigatório no leiaute · **Preenche:** você, na requisição

  Emitir em contingência offline (tpEmis 9): a NFC-e é assinada e devolvida com XML e DANFE para o PDV imprimir SEM passar pela SEFAZ, e a engineAPI retransmite automaticamente quando o autorizador voltar (prazo legal de 24 h). true = forçar contingência; false = proibir contingência automática nesta nota (a emissão falha se a SEFAZ estiver fora); ausente = a engineAPI decide pelo monitor de disponibilidade da UF

  **Condição do leiaute:** Governa o tpEmis do documento. true força 9 (contingência offline), que é a única contingência prevista para o modelo 65, já que a NFC-e não tem SEFAZ Virtual de Contingência. false proíbe a contingência automática nesta nota. Ausente deixa a engineAPI decidir pelo monitoramento de disponibilidade da UF e pela falha de transmissão. Em contingência a nota volta assinada e imprimível, sem protocolo, e é transmitida em até 24 horas.

  *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/ide/tpEmis*
</ParamField>

<ParamField path="justificativaContingencia" type="string">
  **Tamanho:** 15-256 · **Tag do leiaute:** `xJust` (grupo `ide: Identificação da NF-e`) · **Obrigatoriedade do leiaute:** condicional no leiaute · **Preenche:** você, na requisição

  Justificativa da entrada em contingência (xJust do leiaute, 15 a 256 caracteres). Vai impressa no documento fiscal. Ausente = "Indisponibilidade do servico de autorizacao da SEFAZ da UF do emitente"

  **Condição do leiaute:** Obrigatório no documento sempre que tpEmis é 9. Ausente no payload, a engineAPI escreve a justificativa padrão de indisponibilidade da SEFAZ. Texto fora da faixa de 15 a 256 caracteres recusa com 422 JUSTIFICATIVA\_CONTINGENCIA\_INVALIDA antes de consumir número. O texto nunca é completado nem truncado, porque é a declaração que o contribuinte faz ao fisco.

  *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/ide/xJust*
</ParamField>

***

<h2 id="grupo-emitente">
  Emitente
</h2>

Os dados completos do emitente (razão social, CNPJ, endereço, Inscrição Estadual) vêm do cadastro da empresa selecionada em `issuerId`, não são enviados campo a campo no payload de emissão.

<ParamField path="issuerId" type="string">
  **Tag do leiaute:** sem tag própria no XML (grupo `engineAPI: plataforma`) · **Obrigatoriedade do leiaute:** não é campo do leiaute (informativo/de compatibilidade) · **Preenche:** você, na requisição

  UUID do emissor (retornado por POST /v1/companies). Opcional com 1 emissor cadastrado; obrigatório com 2+ (padrão: `^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$`)

  **Condição do leiaute:** Opcional com um emissor cadastrado; obrigatório com dois ou mais (a API não escolhe o CNPJ emitente por conta própria).

  **Nota do leiaute:** Campo de plataforma: identifica qual emissor cadastrado assina o documento. Não existe no leiaute fiscal, onde o emitente é identificado pelo CNPJ no grupo emit.

  *Fonte do leiaute: contrato da engineAPI (POST /v1/companies devolve o UUID)*
</ParamField>

***

<h2 id="grupo-destinatario">
  Destinatário
</h2>

NFC-e identifica o consumidor só por CPF e nome (os dois opcionais); não há endereço completo como na NF-e.

<ParamField path="destCPF" type="string">
  **Tamanho:** 11 (CPF) ou 14 (CNPJ) · **Tag do leiaute:** `CPF` (grupo `dest: Identificação do Destinatário`) · **Obrigatoriedade do leiaute:** condicional no leiaute · **Preenche:** você, na requisição

  CPF do consumidor final, só dígitos. Ausente = venda sem identificação

  **Condição do leiaute:** Na NFC-e o grupo do destinatário é opcional: sem documento informado, a venda sai sem identificação do consumidor e o grupo não é emitido. Emitido o grupo, o documento é obrigatório dentro dele, e o motor fiscal escolhe entre as tags CPF e CNPJ pelo tamanho informado.

  *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/dest/CPF (TCpf) e /CNPJ (TCnpj)*
</ParamField>

<ParamField path="destNome" type="string">
  **Tamanho:** 2-60 · **Tag do leiaute:** `xNome` (grupo `dest: Identificação do Destinatário`) · **Obrigatoriedade do leiaute:** condicional no leiaute · **Preenche:** você, na requisição

  Nome do consumidor final. Ausente = "CONSUMIDOR FINAL"

  **Condição do leiaute:** Obrigatório sempre que o grupo do destinatário é emitido, que na NFC-e depende de destCPF: sem documento do consumidor o grupo inteiro não sai. Com documento e sem nome, a engineAPI escreve "CONSUMIDOR FINAL".

  *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/dest/xNome*
</ParamField>

***

<h2 id="grupo-itens">
  Itens
</h2>

<ParamField path="items" type="object[]" required>
  **Tag do leiaute:** `det` (grupo `I: Produtos e Serviços`) · **Obrigatoriedade do leiaute:** obrigatório no leiaute

  Itens da nota (mínimo 1)

  **Nota do leiaute:** Grupo, não campo: `det` é o contêiner do item e não carrega valor próprio (só o atributo nItem, gerado pela ordem do array).

  *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det (maxOccurs="990")*

  <Expandable title="cada item tem 25 campo(s)">
    <ParamField path="items[].codigo" type="string" required>
      **Tamanho:** 1-60 · **Tag do leiaute:** `cProd` (grupo `I: Produtos e Serviços`) · **Obrigatoriedade do leiaute:** obrigatório no leiaute · **Preenche:** você, na requisição

      Código interno do produto (seu SKU)

      *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/prod/cProd*
    </ParamField>

    <ParamField path="items[].descricao" type="string" required>
      **Tamanho:** 1-120 · **Tag do leiaute:** `xProd` (grupo `I: Produtos e Serviços`) · **Obrigatoriedade do leiaute:** obrigatório no leiaute · **Preenche:** você, na requisição

      Descrição do produto

      *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/prod/xProd*
    </ParamField>

    <ParamField path="items[].ean" type="string">
      **Tamanho:** 8, 12, 13 ou 14 (ou o literal SEM GTIN) · **Tag do leiaute:** `cEAN` (grupo `I: Produtos e Serviços`) · **Obrigatoriedade do leiaute:** obrigatório no leiaute · **Preenche:** você, na requisição

      Código de barras EAN/GTIN do produto. Ausente = "SEM GTIN"

      **Condição do leiaute:** A tag é sempre emitida: sem GTIN cadastrado, o leiaute manda escrever o literal "SEM GTIN", que é o que a engineAPI faz quando o campo vem ausente.

      *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/prod/cEAN*
    </ParamField>

    <ParamField path="items[].ncm" type="string" required>
      **Tamanho:** 2 ou 8 · **Tag do leiaute:** `NCM` (grupo `I: Produtos e Serviços`) · **Obrigatoriedade do leiaute:** obrigatório no leiaute · **Preenche:** você, na requisição

      Nomenclatura Comum do Mercosul, com 2 ou 8 dígitos (padrão: `^(?:\d{2}|\d{8})$`)

      **Condição do leiaute:** O leiaute admite 2 ou 8 posições. Com 2 posições, informa-se o gênero do NCM fora de comércio exterior e de produto tributado pelo IPI.

      *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/prod/NCM*
    </ParamField>

    <ParamField path="items[].cest" type="string">
      **Tamanho:** 7 · **Tag do leiaute:** `CEST` (grupo `I: Produtos e Serviços`) · **Obrigatoriedade do leiaute:** condicional no leiaute · **Preenche:** você, na requisição

      Código Especificador da Substituição Tributária, 7 dígitos sem pontuação (ex.: "0100100"). Transmitido no produto do documento; formato inválido devolve 422 CEST\_INVALIDO

      **Condição do leiaute:** Obrigatório para mercadoria sujeita a substituição tributária ou antecipação do recolhimento do imposto. A engineAPI tira a máscara antes de escrever (aceita "01.001.00").

      *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/prod/CEST (dentro de xs:sequence minOccurs="0")*
    </ParamField>

    <ParamField path="items[].cBenef" type="string">
      **Tamanho:** 8 ou 10 (ou o literal SEM CBENEF) · **Tag do leiaute:** `cBenef` (grupo `I: Produtos e Serviços`) · **Obrigatoriedade do leiaute:** condicional no leiaute · **Preenche:** você, na requisição

      Código do benefício fiscal (cBenef) concedido pela UF, exigido por algumas UFs quando o CST/CSOSN indica benefício (ex.: GO exige cBenef no CST 61 monofásico). Passthrough: o código vem da tabela de benefícios da própria UF, o motor não calcula nem confere

      **Condição do leiaute:** Exigido por algumas UFs quando o CST/CSOSN indica benefício fiscal concedido pela própria UF (ex.: GO no CST 61 monofásico). O código vem da tabela de benefícios da UF: passthrough, o motor não confere.

      *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/prod/cBenef*
    </ParamField>

    <ParamField path="items[].cfop" type="string" required>
      **Tamanho:** 4 · **Tag do leiaute:** `CFOP` (grupo `I: Produtos e Serviços`) · **Obrigatoriedade do leiaute:** obrigatório no leiaute · **Preenche:** você, na requisição

      Código Fiscal de Operações e Prestações (predominantemente estadual, ex.: "5102")

      **Condição do leiaute:** O leiaute restringe o primeiro dígito a 1, 2, 3, 5, 6 ou 7 (natureza da operação por origem/destino).

      *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/prod/CFOP*
    </ParamField>

    <ParamField path="items[].unidade" type="string" required>
      **Tamanho:** 1-6 · **Tag do leiaute:** `uCom` (grupo `I: Produtos e Serviços`) · **Obrigatoriedade do leiaute:** obrigatório no leiaute · **Preenche:** você, na requisição

      Unidade comercial: "UN", "KG", "MT", "CX", etc.

      **Condição do leiaute:** Unidade COMERCIAL do item (como o produto é vendido). O leiaute tem duas unidades; a tributável tem campo próprio (`unidadeTributavel`) e, quando ele não vem, uTrib repete este valor.

      *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/prod/uCom*
    </ParamField>

    <ParamField path="items[].quantidade" type="number" required>
      **Tamanho:** 11v0-4 · **Tag do leiaute:** `qCom` (grupo `I: Produtos e Serviços`) · **Obrigatoriedade do leiaute:** obrigatório no leiaute · **Preenche:** você, na requisição

      Quantidade vendida (mínimo 0.0001)

      **Condição do leiaute:** Quantidade na unidade COMERCIAL. Sem quantidadeTributavel, qTrib repete este valor.

      *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/prod/qCom (TDec\_1104v)*
    </ParamField>

    <ParamField path="items[].valorUnitario" type="number" required>
      **Tamanho:** 11v0-10 · **Tag do leiaute:** `vUnCom` (grupo `I: Produtos e Serviços`) · **Obrigatoriedade do leiaute:** obrigatório no leiaute · **Preenche:** você, na requisição

      Valor unitário do produto em R\$ (mínimo 0.01)

      **Condição do leiaute:** Valor unitário na unidade COMERCIAL. Sem valorUnitarioTributavel, vUnTrib repete este valor.

      *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/prod/vUnCom (TDec\_1110v)*
    </ParamField>

    <ParamField path="items[].valorTotal" type="number">
      **Tamanho:** 13v2 · **Tag do leiaute:** `vProd` (grupo `I: Produtos e Serviços`) · **Obrigatoriedade do leiaute:** obrigatório no leiaute · **Preenche:** derivado de outros campos (calculado)

      Redundante: sempre recalculado como quantidade × valorUnitario. Se enviado e divergente, 400

      **Condição do leiaute:** O valor transmitido é SEMPRE quantidade × valorUnitario (a SEFAZ valida vProd = qCom × vUnCom). Informar valorTotal divergente devolve 400 antes de emitir; o campo é redundante no contrato.

      *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/prod/vProd (TDec\_1302)*
    </ParamField>

    <ParamField path="items[].desconto" type="number">
      **Tamanho:** 13v2 · **Tag do leiaute:** `vDesc` (grupo `I: Produtos e Serviços`) · **Obrigatoriedade do leiaute:** opcional no leiaute · **Preenche:** você, na requisição

      Desconto INCONDICIONAL do item em R\$ (vDesc do leiaute). Reduz a base do ICMS e do IBS/CBS. NÃO informe desconto condicional (sob condição/evento posterior): por lei ele integra a base e não tem campo no item

      **Condição do leiaute:** Desconto INCONDICIONAL. Só é escrito quando maior que zero e reduz a base do ICMS e do IBS/CBS. Desconto condicional (sob evento posterior) integra a base por lei e não tem campo no item.

      *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/prod/vDesc (TDec\_1302Opc)*
    </ParamField>

    <ParamField path="items[].valorFrete" type="number">
      **Tamanho:** 13v2 · **Tag do leiaute:** `vFrete` (grupo `I: Produtos e Serviços`) · **Obrigatoriedade do leiaute:** opcional no leiaute · **Preenche:** você, na requisição

      Frete do item em R\$ (vFrete do leiaute). NÃO SUPORTADO na NFC-e: qualquer valor > 0 devolve 422 FRETE\_SEGURO\_OUTRO\_INVALIDO. O motivo NÃO é o indicador de presença (indPres pode declarar entrega em domicílio, indPres=4): é que o grupo de transporte não existe no contrato da NFC-e, e o builder sempre escreve modFrete=9 ("sem ocorrência de transporte"), incompatível com qualquer item cobrando frete. Emita uma NF-e (modelo 55) para documentos com frete

      **Condição do leiaute:** A NFC-e sempre é emitida como venda presencial, sem transporte (modalidade de frete 9 e indicador de presença 1, fixos).

      *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/prod/vFrete (TDec\_1302Opc)*
    </ParamField>

    <ParamField path="items[].valorSeguro" type="number">
      **Tamanho:** 13v2 · **Tag do leiaute:** `vSeg` (grupo `I: Produtos e Serviços`) · **Obrigatoriedade do leiaute:** opcional no leiaute · **Preenche:** você, na requisição

      Seguro do item em R\$ (vSeg do leiaute). Soma no vNF e integra a base do ICMS e do IBS/CBS

      **Condição do leiaute:** Só é escrito quando maior que zero. Soma no total da nota e integra a base do ICMS e do IBS/CBS.

      *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/prod/vSeg (TDec\_1302Opc)*
    </ParamField>

    <ParamField path="items[].outrasDespesas" type="number">
      **Tamanho:** 13v2 · **Tag do leiaute:** `vOutro` (grupo `I: Produtos e Serviços`) · **Obrigatoriedade do leiaute:** opcional no leiaute · **Preenche:** você, na requisição

      Outras despesas acessórias do item em R\$ (vOutro do leiaute). Soma no vNF e integra a base do ICMS e do IBS/CBS

      **Condição do leiaute:** Só é escrito quando maior que zero. Soma no total da nota e integra a base do ICMS e do IBS/CBS.

      *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/prod/vOutro (TDec\_1302Opc)*
    </ParamField>

    <ParamField path="items[].unidadeTributavel" type="string">
      **Tamanho:** 1-6 · **Tag do leiaute:** `uTrib` (grupo `I: Produtos e Serviços`) · **Obrigatoriedade do leiaute:** obrigatório no leiaute · **Preenche:** você, na requisição

      Unidade TRIBUTÁVEL do item (uTrib do leiaute), 1 a 6 caracteres, quando ela difere da unidade comercial: vende em "CX" e tributa em "UN". Ausente = igual a `unidade`. Vai junto com quantidadeTributavel e valorUnitarioTributavel

      **Condição do leiaute:** Unidade TRIBUTÁVEL do item, quando difere da comercial (vende em "CX", tributa em "UN"). Opcional no contrato: ausente, o documento repete a unidade comercial. Vai junto com quantidadeTributavel e valorUnitarioTributavel, e o par quantidade×valor tem que fechar com o mesmo vProd.

      *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/prod/uTrib*
    </ParamField>

    <ParamField path="items[].quantidadeTributavel" type="number">
      **Tamanho:** 11v0-4 · **Tag do leiaute:** `qTrib` (grupo `I: Produtos e Serviços`) · **Obrigatoriedade do leiaute:** obrigatório no leiaute · **Preenche:** você, na requisição

      Quantidade na unidade TRIBUTÁVEL (qTrib do leiaute, até 4 casas). Ausente = igual a `quantidade`. quantidadeTributavel × valorUnitarioTributavel tem que dar o mesmo vProd de quantidade × valorUnitario

      **Condição do leiaute:** Quantidade na unidade TRIBUTÁVEL. Opcional no contrato: ausente, o documento repete a quantidade comercial.

      *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/prod/qTrib (TDec\_1104v)*
    </ParamField>

    <ParamField path="items[].valorUnitarioTributavel" type="number">
      **Tamanho:** 11v0-10 · **Tag do leiaute:** `vUnTrib` (grupo `I: Produtos e Serviços`) · **Obrigatoriedade do leiaute:** obrigatório no leiaute · **Preenche:** você, na requisição

      Valor unitário na unidade TRIBUTÁVEL em R$ (vUnTrib do leiaute, até 10 casas). Ausente = igual a `valorUnitario`. Caixa de 12 a R$ 100,00 tributada em unidades vira 8.3333333333

      **Condição do leiaute:** Valor unitário na unidade TRIBUTÁVEL. Opcional no contrato: ausente, o documento repete o valor unitário comercial. Aceita até 10 casas porque a conversão raramente é exata (caixa de 12 a R\$ 100,00 → 8,3333333333).

      *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/prod/vUnTrib (TDec\_1110v)*
    </ParamField>

    <ParamField path="items[].indTot" type="number">
      **Tamanho:** 1 · **Tag do leiaute:** `indTot` (grupo `I: Produtos e Serviços`) · **Obrigatoriedade do leiaute:** obrigatório no leiaute · **Preenche:** você, na requisição

      Indica se o vProd do item compõe o vProd/vNF do total da nota (indTot do leiaute). Na NFC-e só aceita 1 (ausente = 1, default do leiaute): o leiaute rejeita indTot=0 no modelo 65 (item que não participa do total)

      **Condição do leiaute:** No modelo 65 o leiaute só admite 1 (ausente = 1): item que não participa do total é rejeitado na NFC-e.

      *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/prod/indTot*
    </ParamField>

    <ParamField path="items[].icms" type="object">
      **Tag do leiaute:** `ICMS` (grupo `N: ICMS Normal e ST`) · **Obrigatoriedade do leiaute:** obrigatório no leiaute

      Tributação de ICMS do item (obrigatório de fato só sem resolverTributacao)

      **Nota do leiaute:** Grupo, não campo: o leiaute escolhe o subgrupo (ICMS00, ICMS61, ICMSSN102...) pelo CST/CSOSN informado, e é o subgrupo que carrega as tags.

      *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/imposto/ICMS (choice entre ICMS00..ICMS90 e ICMSSN101..ICMSSN900)*

      <Expandable title="26 campo(s)">
        <ParamField path="items[].icms.origem" type="integer">
          **Tamanho:** 1 · **Tag do leiaute:** `orig` (grupo `N: ICMS Normal e ST`) · **Obrigatoriedade do leiaute:** obrigatório no leiaute · **Preenche:** você, na requisição

          Origem da mercadoria, conforme Torig do leiaute: aceita os códigos 0 a 8. Ausente = 0

          **Condição do leiaute:** Ausente = 0 (nacional). A engineAPI deriva desta lista a validação do contrato e recusa valores fora de 0 a 8 antes da numeração. Os códigos 3 a 8 declaram percentual de conteúdo de importação, produto sem similar nacional da lista CAMEX e gás natural.

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/imposto/ICMS/\*/orig (Torig)*
        </ParamField>

        <ParamField path="items[].icms.csosn" type="string">
          **Tamanho:** 3 · **Tag do leiaute:** `CSOSN` (grupo `N: ICMS Normal e ST`) · **Obrigatoriedade do leiaute:** condicional no leiaute · **Preenche:** você, na requisição

          Código de Situação da Operação do Simples Nacional, ex.: "102" tributada pelo Simples sem crédito, "400" não tributada

          **Condição do leiaute:** Obrigatório no Simples Nacional (substitui o CST). Ausente = 102. Com resolverTributacao ligado, o Cérebro Fiscal resolve o CSOSN dos itens sem tributação manual.

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/imposto/ICMS/ICMSSN\{csosn}/CSOSN*
        </ParamField>

        <ParamField path="items[].icms.cst" type="string">
          **Tamanho:** 2 · **Tag do leiaute:** `CST` (grupo `N: ICMS Normal e ST`) · **Obrigatoriedade do leiaute:** condicional no leiaute · **Preenche:** você, na requisição

          Código de Situação Tributária do ICMS (Lucro Real/Presumido), ex.: "00" tributada integralmente. "61" é a tributação monofásica de combustíveis cobrada anteriormente (revenda de posto/GLP) e vale nos dois regimes, inclusive Simples: exige o grupo combustivel e os campos qBCMonoRet/adRemICMSRet/vICMSMonoRet

          **Condição do leiaute:** O modelo 65 tem lista fechada de CST, mais restrita que a da NF-e. No Simples Nacional o leiaute usa CSOSN no lugar; as duas tags nunca convivem no mesmo item. Dos quatro CST monofásicos de combustível do leiaute (02, 15, 53 e 61), o único admitido no modelo 65 é o 61 (a revenda do posto e da distribuidora de GLP no balcão).

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/imposto/ICMS/ICMS\{cst}/CST (o CST é o SUFIXO do nome do subgrupo)*
        </ParamField>

        <ParamField path="items[].icms.aliquota" type="number">
          **Tamanho:** 3v2-4 · **Tag do leiaute:** `pICMS` (grupo `N: ICMS Normal e ST`) · **Obrigatoriedade do leiaute:** condicional no leiaute · **Preenche:** você, na requisição

          Alíquota do ICMS em % (só com cst, regime CST)

          **Condição do leiaute:** Obrigatória junto com vBC nos CST que tributam.

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/imposto/ICMS/ICMS00/pICMS (TDec\_0302a04)*
        </ParamField>

        <ParamField path="items[].icms.baseCalculo" type="number">
          **Tamanho:** 13v2 · **Tag do leiaute:** `vBC` (grupo `N: ICMS Normal e ST`) · **Obrigatoriedade do leiaute:** condicional no leiaute · **Preenche:** você, na requisição

          Base de cálculo do ICMS em R\$ (só com cst, regime CST)

          **Condição do leiaute:** Obrigatório nos CST que tributam (00, 10, 20, 51, 70, 90). No motor de regime normal a base é calculada do valor líquido do item; este campo é o passthrough para quem informa a tributação à mão.

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/imposto/ICMS/ICMS00/vBC (TDec\_1302)*
        </ParamField>

        <ParamField path="items[].icms.valor" type="number">
          **Tamanho:** 13v2 · **Tag do leiaute:** `vICMS` (grupo `N: ICMS Normal e ST`) · **Obrigatoriedade do leiaute:** condicional no leiaute · **Preenche:** você, na requisição

          Valor do ICMS em R\$ (só com cst, regime CST)

          **Condição do leiaute:** Obrigatório junto com vBC e pICMS nos CST que tributam.

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/imposto/ICMS/ICMS00/vICMS (TDec\_1302)*
        </ParamField>

        <ParamField path="items[].icms.baseCalculoST" type="number">
          **Tamanho:** 13v2 · **Tag do leiaute:** `vBCST` (grupo `N: ICMS Normal e ST`) · **Obrigatoriedade do leiaute:** condicional no leiaute · **Preenche:** você, na requisição

          Base de cálculo do ICMS-ST em R\$. NÃO SUPORTADO: informar ST devolve 422 ICMS\_ST\_NAO\_SUPORTADO

          **Condição do leiaute:** Obrigatório nos CST com substituição tributária (10, 30, 70, 90) e no CSOSN 201/202/203.

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/imposto/ICMS/ICMS10/vBCST (TDec\_1302)*
        </ParamField>

        <ParamField path="items[].icms.aliquotaST" type="number">
          **Tamanho:** 3v2-4 · **Tag do leiaute:** `pICMSST` (grupo `N: ICMS Normal e ST`) · **Obrigatoriedade do leiaute:** condicional no leiaute · **Preenche:** você, na requisição

          Alíquota do ICMS-ST em %. NÃO SUPORTADO: ver baseCalculoST (422 ICMS\_ST\_NAO\_SUPORTADO)

          **Condição do leiaute:** Obrigatória junto com vBCST nos CST com substituição tributária.

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/imposto/ICMS/ICMS10/pICMSST (TDec\_0302a04)*
        </ParamField>

        <ParamField path="items[].icms.valorST" type="number">
          **Tamanho:** 13v2 · **Tag do leiaute:** `vICMSST` (grupo `N: ICMS Normal e ST`) · **Obrigatoriedade do leiaute:** condicional no leiaute · **Preenche:** você, na requisição

          Valor do ICMS-ST em R\$. NÃO SUPORTADO: ver baseCalculoST (422 ICMS\_ST\_NAO\_SUPORTADO)

          **Condição do leiaute:** Obrigatório junto com vBCST nos CST com substituição tributária.

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/imposto/ICMS/ICMS10/vICMSST (TDec\_1302)*
        </ParamField>

        <ParamField path="items[].icms.qBCMono" type="number">
          **Tamanho:** 11v0-4 · **Tag do leiaute:** `qBCMono` (grupo `N: ICMS Normal e ST`) · **Obrigatoriedade do leiaute:** condicional no leiaute · **Preenche:** você, na requisição

          CST 02: NÃO SUPORTADO na NFC-e, porque o leiaute do modelo 65 não aceita CST 02 (rejeição 766). Emita CST 61 (revenda) ou use NF-e

          **Condição do leiaute:** Tributação monofásica PRÓPRIA (CST 02). É uma QUANTIDADE na unidade do produto, não um valor em reais.

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/imposto/ICMS/ICMS02/qBCMono (TDec\_1104v)*
        </ParamField>

        <ParamField path="items[].icms.adRemICMS" type="number">
          **Tamanho:** 3v2-4 · **Tag do leiaute:** `adRemICMS` (grupo `N: ICMS Normal e ST`) · **Obrigatoriedade do leiaute:** condicional no leiaute · **Preenche:** você, na requisição

          CST 02: NÃO SUPORTADO na NFC-e (ver qBCMono)

          **Condição do leiaute:** Tributação monofásica própria (CST 02): alíquota AD REM, em reais por unidade, definida em lei para o produto ANP. Não é percentual.

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/imposto/ICMS/ICMS02/adRemICMS (TDec\_0302a04)*
        </ParamField>

        <ParamField path="items[].icms.vICMSMono" type="number">
          **Tamanho:** 13v2 · **Tag do leiaute:** `vICMSMono` (grupo `N: ICMS Normal e ST`) · **Obrigatoriedade do leiaute:** condicional no leiaute · **Preenche:** você, na requisição

          CST 02: NÃO SUPORTADO na NFC-e (ver qBCMono)

          **Condição do leiaute:** Tributação monofásica própria (CST 02). Precisa bater com qBCMono × adRemICMS (tolerância de R\$ 0,01); divergente devolve 422 ICMS\_MONOFASICO\_INVALIDO.

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/imposto/ICMS/ICMS02/vICMSMono (TDec\_1302)*
        </ParamField>

        <ParamField path="items[].icms.qBCMonoRet" type="number">
          **Tamanho:** 11v0-4 · **Tag do leiaute:** `qBCMonoRet` (grupo `N: ICMS Normal e ST`) · **Obrigatoriedade do leiaute:** condicional no leiaute · **Preenche:** você, na requisição

          CST 61: quantidade tributada do ICMS monofásico retido anteriormente, na unidade do produto (não em R\$). Obrigatória com cst "61" (a SEFAZ rejeita com 769)

          **Condição do leiaute:** Tributação monofásica COBRADA ANTERIORMENTE, a revenda (CST 61). É uma QUANTIDADE na unidade do produto, não um valor em reais.

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/imposto/ICMS/ICMS61/qBCMonoRet (TDec\_1104v)*
        </ParamField>

        <ParamField path="items[].icms.adRemICMSRet" type="number">
          **Tamanho:** 3v2-4 · **Tag do leiaute:** `adRemICMSRet` (grupo `N: ICMS Normal e ST`) · **Obrigatoriedade do leiaute:** condicional no leiaute · **Preenche:** você, na requisição

          CST 61: alíquota AD REM do ICMS retido anteriormente, em R\$ por unidade (não é percentual)

          **Condição do leiaute:** Revenda monofásica (CST 61): alíquota AD REM do imposto retido anteriormente, em reais por unidade. Não é percentual.

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/imposto/ICMS/ICMS61/adRemICMSRet (TDec\_0302a04)*
        </ParamField>

        <ParamField path="items[].icms.vICMSMonoRet" type="number">
          **Tamanho:** 13v2 · **Tag do leiaute:** `vICMSMonoRet` (grupo `N: ICMS Normal e ST`) · **Obrigatoriedade do leiaute:** condicional no leiaute · **Preenche:** você, na requisição

          CST 61: valor do ICMS monofásico retido anteriormente em R$. Precisa bater com qBCMonoRet × adRemICMSRet (tolerância de R$ 0,01); divergente devolve 422 ICMS\_MONOFASICO\_INVALIDO antes de emitir

          **Condição do leiaute:** Revenda monofásica (CST 61). Precisa bater com qBCMonoRet × adRemICMSRet (tolerância de R\$ 0,01); divergente devolve 422 ICMS\_MONOFASICO\_INVALIDO.

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/imposto/ICMS/ICMS61/vICMSMonoRet (TDec\_1302)*
        </ParamField>

        <ParamField path="items[].icms.modBC" type="string">
          **Tamanho:** 1 · **Tag do leiaute:** `modBC` (grupo `N: ICMS Normal e ST`) · **Obrigatoriedade do leiaute:** condicional no leiaute · **Preenche:** você, na requisição

          CST 20: modalidade de determinação da base de cálculo do ICMS. 0=margem de valor agregado (%), 1=pauta (valor), 2=preço tabelado máximo (valor), 3=valor da operação. Obrigatório no CST 20

          **Condição do leiaute:** Obrigatório no CST 20 (redução de base), onde o leiaute exige o grupo completo. Opcional nos CST 51 e 90. No caminho assistido a engineAPI resolve a tributação e escreve a modalidade 3 (valor da operação).

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/imposto/ICMS/ICMS20/modBC*

          | Valor | Significado                   |
          | ----- | ----------------------------- |
          | `0`   | Margem de valor agregado (%)  |
          | `1`   | Pauta (valor)                 |
          | `2`   | Preço tabelado máximo (valor) |
          | `3`   | Valor da operação             |
        </ParamField>

        <ParamField path="items[].icms.pRedBC" type="number">
          **Tamanho:** 3v2-4 · **Tag do leiaute:** `pRedBC` (grupo `N: ICMS Normal e ST`) · **Obrigatoriedade do leiaute:** condicional no leiaute · **Preenche:** você, na requisição

          CST 20: percentual de redução da base de cálculo, em %. Obrigatório no CST 20. A base JÁ REDUZIDA é o que vai em vBC

          **Condição do leiaute:** Obrigatório no CST 20 (redução de base). A base transmitida em vBC JÁ É a base reduzida: a engineAPI não aplica a redução por você, e confere vICMS contra vBC vezes a alíquota, com tolerância de um centavo.

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/imposto/ICMS/ICMS20/pRedBC (TDec\_0302a04)*
        </ParamField>

        <ParamField path="items[].icms.vBC" type="number">
          **Tamanho:** 13v2 · **Tag do leiaute:** `vBC` (grupo `N: ICMS Normal e ST`) · **Obrigatoriedade do leiaute:** condicional no leiaute · **Preenche:** você, na requisição

          CST 20: base de cálculo do ICMS próprio em R$, como vai no documento (JÁ REDUZIDA pelo pRedBC). O motor confere vICMS = vBC x pICMS, com tolerância de R$ 0,01

          **Condição do leiaute:** Base de cálculo do ICMS próprio, como vai no documento. Obrigatória nos CST que têm ICMS próprio: 10 e 70 (substituição tributária cobrada nesta operação) e 20, 51 e 90 (benefício fiscal). Nos CST 20 e 70 ela já entra REDUZIDA pelo pRedBC: a engineAPI não recalcula. É o vocabulário canônico do contrato para esta tag; baseCalculo continua aceito no ICMS clássico e no Simples Nacional, mas junto de um desses CST é recusado (dois nomes para a mesma tag é ambiguidade).

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/imposto/ICMS/ICMS20/vBC (TDec\_1302)*
        </ParamField>

        <ParamField path="items[].icms.pICMS" type="number">
          **Tamanho:** 3v2-4 · **Tag do leiaute:** `pICMS` (grupo `N: ICMS Normal e ST`) · **Obrigatoriedade do leiaute:** condicional no leiaute · **Preenche:** você, na requisição

          CST 20: alíquota do ICMS próprio em %, ex.: 18 para 18%

          **Condição do leiaute:** Alíquota do ICMS próprio. Obrigatória junto de vBC nos CST 10, 20, 51, 70 e 90. Vocabulário canônico do contrato para esta tag (aliquota segue aceito no ICMS clássico e no Simples Nacional).

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/imposto/ICMS/ICMS20/pICMS (TDec\_0302a04)*
        </ParamField>

        <ParamField path="items[].icms.vICMS" type="number">
          **Tamanho:** 13v2 · **Tag do leiaute:** `vICMS` (grupo `N: ICMS Normal e ST`) · **Obrigatoriedade do leiaute:** condicional no leiaute · **Preenche:** você, na requisição

          CST 20: valor do ICMS próprio em R$. Precisa bater com vBC x pICMS (tolerância de R$ 0,01); divergente devolve 422 ICMS\_BENEFICIO\_INVALIDO antes de emitir

          **Condição do leiaute:** Valor do ICMS próprio. Obrigatório junto de vBC e pICMS nos CST 10, 20, 51, 70 e 90, e precisa bater com a base vezes a alíquota (tolerância de um centavo): a engineAPI recusa antes de numerar em vez de deixar a SEFAZ rejeitar depois. Soma no total de ICMS do documento. Vocabulário canônico do contrato para esta tag (valor segue aceito no ICMS clássico e no Simples Nacional).

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/imposto/ICMS/ICMS20/vICMS (TDec\_1302)*
        </ParamField>

        <ParamField path="items[].icms.vBCFCP" type="number">
          **Tamanho:** 13v2 · **Tag do leiaute:** `vBCFCP` (grupo `N: ICMS Normal e ST`) · **Obrigatoriedade do leiaute:** condicional no leiaute · **Preenche:** você, na requisição

          CST 20: base de cálculo do Fundo de Combate à Pobreza, em R\$. Bloco indivisível: vai com pFCP e vFCP

          **Condição do leiaute:** Fundo de Combate à Pobreza, bloco indivisível: obrigatório junto com pFCP e vFCP. Disponível nos CST 20, 51 e 90.

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/imposto/ICMS/ICMS20/vBCFCP (TDec\_1302)*
        </ParamField>

        <ParamField path="items[].icms.pFCP" type="number">
          **Tamanho:** 3v2-4 (o tipo do leiaute não aceita zero) · **Tag do leiaute:** `pFCP` (grupo `N: ICMS Normal e ST`) · **Obrigatoriedade do leiaute:** condicional no leiaute · **Preenche:** você, na requisição

          CST 20: percentual do Fundo de Combate à Pobreza, em %. Vai com vBCFCP e vFCP

          **Condição do leiaute:** Fundo de Combate à Pobreza, bloco indivisível: obrigatório junto com vBCFCP e vFCP.

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/imposto/ICMS/ICMS20/pFCP (TDec\_0302a04Opc)*
        </ParamField>

        <ParamField path="items[].icms.vFCP" type="number">
          **Tamanho:** 13v2 · **Tag do leiaute:** `vFCP` (grupo `N: ICMS Normal e ST`) · **Obrigatoriedade do leiaute:** condicional no leiaute · **Preenche:** você, na requisição

          CST 20: valor do Fundo de Combate à Pobreza, em R\$. Vai com vBCFCP e pFCP

          **Condição do leiaute:** Fundo de Combate à Pobreza, bloco indivisível: obrigatório junto com vBCFCP e pFCP. Soma no total de FCP do documento.

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/imposto/ICMS/ICMS20/vFCP (TDec\_1302)*
        </ParamField>

        <ParamField path="items[].icms.vICMSDeson" type="number">
          **Tamanho:** 13v2 · **Tag do leiaute:** `vICMSDeson` (grupo `N: ICMS Normal e ST`) · **Obrigatoriedade do leiaute:** condicional no leiaute · **Preenche:** você, na requisição

          CST 20/40/41: valor do ICMS desonerado, em R\$. Bloco indivisível: vai SEMPRE com motDesICMS e indDeduzDeson

          **Condição do leiaute:** Desoneração do ICMS, bloco indivisível: obrigatório junto com motDesICMS e indDeduzDeson. Disponível nos CST 20, 40, 41, 50 e 90. Soma no total de ICMS desonerado do documento, que a SEFAZ confere contra a soma dos itens.

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/imposto/ICMS/ICMS20/vICMSDeson (TDec\_1302)*
        </ParamField>

        <ParamField path="items[].icms.motDesICMS" type="string">
          **Tamanho:** 1-2 · **Tag do leiaute:** `motDesICMS` (grupo `N: ICMS Normal e ST`) · **Obrigatoriedade do leiaute:** condicional no leiaute · **Preenche:** você, na requisição

          CST 20/40/41: motivo da desoneração do ICMS. Os códigos válidos DIFEREM por CST (no 20 o leiaute só admite 3, 9 e 12; no 40 e no 41 admite 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 16 e 90)

          **Condição do leiaute:** Obrigatório sempre que vICMSDeson é informado. Os códigos válidos DIFEREM por CST: nos CST 20 e 90 o leiaute admite apenas 3, 9 e 12; nos CST 40, 41 e 50 admite 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 16 e 90. Motivo fora do conjunto do CST devolve 422 antes de consumir número fiscal.

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/imposto/ICMS/ICMS20/motDesICMS*
        </ParamField>

        <ParamField path="items[].icms.indDeduzDeson" type="string">
          **Tamanho:** 1 · **Tag do leiaute:** `indDeduzDeson` (grupo `N: ICMS Normal e ST`) · **Obrigatoriedade do leiaute:** condicional no leiaute · **Preenche:** você, na requisição

          CST 20/40/41: o valor desonerado deduz do total da nota? "1"=deduz, "0"=não deduz. Obrigatório sempre que vICMSDeson é informado

          **Condição do leiaute:** Opcional no leiaute e OBRIGATÓRIO na engineAPI sempre que vICMSDeson é informado: o total da nota depende dele, e o leiaute define o significado de 0 e de 1 sem definir o da ausência. Exigir o indicador é mais estrito que a norma, de propósito: total de nota errado em silêncio é a pior classe de defeito de um motor fiscal.

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/imposto/ICMS/ICMS20/indDeduzDeson (minOccurs="0")*

          | Valor | Significado                                   |
          | ----- | --------------------------------------------- |
          | `0`   | O valor desonerado NÃO deduz do total da nota |
          | `1`   | O valor desonerado deduz do total da nota     |
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="items[].pis" type="object">
      **Tag do leiaute:** `PIS` (grupo `PIS: Programa de Integração Social`) · **Obrigatoriedade do leiaute:** condicional no leiaute

      Tributação de PIS do item

      **Condição do leiaute:** O leiaute marca o grupo como opcional na estrutura. A engineAPI o emite SEMPRE: item que não informa o tributo sai com CST 99 e valores zerados, em vez de sair sem o grupo.

      **Nota do leiaute:** Grupo, não campo: o leiaute escolhe o subgrupo pelo CST informado, e é o subgrupo que carrega as tags.

      *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/imposto/PIS (choice entre PISAliq, PISQtde, PISNT e PISOutr)*

      <Expandable title="6 campo(s)">
        <ParamField path="items[].pis.cst" type="string">
          **Tamanho:** 2 · **Tag do leiaute:** `CST` (grupo `PIS: Programa de Integração Social`) · **Obrigatoriedade do leiaute:** obrigatório no leiaute · **Preenche:** você, na requisição

          Código de Situação Tributária do PIS. "01"/"02" por alíquota (exige baseCalculo, aliquota e valor), "03" por quantidade (exige quantidadeVendida, valorAliquotaUnidade e valor), "04"-"09" não tributado, outras operações: "49"-"56", "60"-"67", "70"-"75", "98" e "99". Ausente = "99" zerado

          **Condição do leiaute:** Tributado por alíquota: 01 e 02 (exigem base, alíquota e valor). Tributado por quantidade: 03 (exige quantidade vendida, alíquota por unidade e valor; vira qBCProd/vAliqProd; base e alíquota percentual não existem nesse subgrupo). Não tributado: 04 a 09 (só o CST vai no documento). Outras operações: 49 a 56, 60 a 67, 70 a 75, 98 e 99. Ausente = 99 com valores zerados.

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/imposto/PIS/PISAliq/CST e demais subgrupos*
        </ParamField>

        <ParamField path="items[].pis.baseCalculo" type="number">
          **Tamanho:** 13v2 · **Tag do leiaute:** `vBC` (grupo `PIS: Programa de Integração Social`) · **Obrigatoriedade do leiaute:** condicional no leiaute · **Preenche:** você, na requisição

          Base de cálculo do PIS em R\$ (transmitida como vBC). Só existe no grupo por ALÍQUOTA (cst "01"/"02"/"49"-"99")

          **Condição do leiaute:** Obrigatória nos CST que carregam valores por ALÍQUOTA (01, 02 e a faixa de outras operações). Nos CST não tributados o subgrupo do leiaute só tem o CST; no CST 03 (por quantidade) o subgrupo não tem esta tag: usa quantidadeVendida/valorAliquotaUnidade.

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/imposto/PIS/PISAliq/vBC (TDec\_1302)*
        </ParamField>

        <ParamField path="items[].pis.aliquota" type="number">
          **Tamanho:** 3v2-4 · **Tag do leiaute:** `pPIS` (grupo `PIS: Programa de Integração Social`) · **Obrigatoriedade do leiaute:** condicional no leiaute · **Preenche:** você, na requisição

          Alíquota do PIS em % (transmitida como pPIS). Só existe no grupo por ALÍQUOTA (cst "01"/"02"/"49"-"99")

          **Condição do leiaute:** Obrigatória junto com a base nos CST que carregam valores por ALÍQUOTA. No CST 03 (por quantidade) o subgrupo não tem esta tag.

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/imposto/PIS/PISAliq/pPIS (TDec\_0302a04)*
        </ParamField>

        <ParamField path="items[].pis.quantidadeVendida" type="number">
          **Tamanho:** 12v0-4 · **Tag do leiaute:** `qBCProd` (grupo `PIS: Programa de Integração Social`) · **Obrigatoriedade do leiaute:** condicional no leiaute · **Preenche:** você, na requisição

          CST "03" (PIS por quantidade): quantidade vendida na unidade de tributação do PIS (transmitida como qBCProd). Passthrough: não deriva de "items\[].quantidade"

          **Condição do leiaute:** Obrigatória junto com valorAliquotaUnidade e valor no CST 03 (tributado por quantidade). Não existe nos demais CST.

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/imposto/PIS/PISQtde/qBCProd (TDec\_1204v)*
        </ParamField>

        <ParamField path="items[].pis.valorAliquotaUnidade" type="number">
          **Tamanho:** 11v0-4 · **Tag do leiaute:** `vAliqProd` (grupo `PIS: Programa de Integração Social`) · **Obrigatoriedade do leiaute:** condicional no leiaute · **Preenche:** você, na requisição

          CST "03" (PIS por quantidade): alíquota do PIS em R\$ por unidade de produto (transmitida como vAliqProd)

          **Condição do leiaute:** Obrigatória junto com quantidadeVendida e valor no CST 03 (tributado por quantidade). Não existe nos demais CST.

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/imposto/PIS/PISQtde/vAliqProd (TDec\_1104v)*
        </ParamField>

        <ParamField path="items[].pis.valor" type="number">
          **Tamanho:** 13v2 · **Tag do leiaute:** `vPIS` (grupo `PIS: Programa de Integração Social`) · **Obrigatoriedade do leiaute:** condicional no leiaute · **Preenche:** você, na requisição

          Valor do PIS em R\$ (transmitido como vPIS e somado no total)

          **Condição do leiaute:** Obrigatório nos CST que carregam valores, seja por ALÍQUOTA (base + alíquota) seja por QUANTIDADE (quantidadeVendida + valorAliquotaUnidade, CST 03). Soma no total da nota (tag de mesmo nome no grupo de totais), mas não compõe o valor a pagar.

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/imposto/PIS/PISAliq/vPIS (TDec\_1302)*
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="items[].cofins" type="object">
      **Tag do leiaute:** `COFINS` (grupo `COFINS: Contribuição para Financiamento da Seguridade Social`) · **Obrigatoriedade do leiaute:** condicional no leiaute

      Tributação de COFINS do item

      **Condição do leiaute:** O leiaute marca o grupo como opcional na estrutura. A engineAPI o emite SEMPRE: item que não informa o tributo sai com CST 99 e valores zerados, em vez de sair sem o grupo.

      **Nota do leiaute:** Grupo, não campo: o leiaute escolhe o subgrupo pelo CST informado, e é o subgrupo que carrega as tags.

      *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/imposto/COFINS (choice entre COFINSAliq, COFINSQtde, COFINSNT e COFINSOutr)*

      <Expandable title="6 campo(s)">
        <ParamField path="items[].cofins.cst" type="string">
          **Tamanho:** 2 · **Tag do leiaute:** `CST` (grupo `COFINS: Contribuição para Financiamento da Seguridade Social`) · **Obrigatoriedade do leiaute:** obrigatório no leiaute · **Preenche:** você, na requisição

          Código de Situação Tributária da COFINS. Mesmas faixas do PIS (inclui "03" por quantidade). Ausente = "99" zerado

          **Condição do leiaute:** Tributado por alíquota: 01 e 02 (exigem base, alíquota e valor). Tributado por quantidade: 03 (exige quantidade vendida, alíquota por unidade e valor; vira qBCProd/vAliqProd; base e alíquota percentual não existem nesse subgrupo). Não tributado: 04 a 09 (só o CST vai no documento). Outras operações: 49 a 56, 60 a 67, 70 a 75, 98 e 99. Ausente = 99 com valores zerados.

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/imposto/COFINS/COFINSAliq/CST e demais subgrupos*
        </ParamField>

        <ParamField path="items[].cofins.baseCalculo" type="number">
          **Tamanho:** 13v2 · **Tag do leiaute:** `vBC` (grupo `COFINS: Contribuição para Financiamento da Seguridade Social`) · **Obrigatoriedade do leiaute:** condicional no leiaute · **Preenche:** você, na requisição

          Base de cálculo da COFINS em R\$ (transmitida como vBC). Só existe no grupo por ALÍQUOTA (cst "01"/"02"/"49"-"99")

          **Condição do leiaute:** Obrigatória nos CST que carregam valores por ALÍQUOTA (01, 02 e a faixa de outras operações). Nos CST não tributados o subgrupo do leiaute só tem o CST; no CST 03 (por quantidade) o subgrupo não tem esta tag: usa quantidadeVendida/valorAliquotaUnidade.

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/imposto/COFINS/COFINSAliq/vBC (TDec\_1302)*
        </ParamField>

        <ParamField path="items[].cofins.aliquota" type="number">
          **Tamanho:** 3v2-4 · **Tag do leiaute:** `pCOFINS` (grupo `COFINS: Contribuição para Financiamento da Seguridade Social`) · **Obrigatoriedade do leiaute:** condicional no leiaute · **Preenche:** você, na requisição

          Alíquota da COFINS em % (transmitida como pCOFINS). Só existe no grupo por ALÍQUOTA (cst "01"/"02"/"49"-"99")

          **Condição do leiaute:** Obrigatória junto com a base nos CST que carregam valores por ALÍQUOTA. No CST 03 (por quantidade) o subgrupo não tem esta tag.

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/imposto/COFINS/COFINSAliq/pCOFINS (TDec\_0302a04)*
        </ParamField>

        <ParamField path="items[].cofins.quantidadeVendida" type="number">
          **Tamanho:** 12v0-4 · **Tag do leiaute:** `qBCProd` (grupo `COFINS: Contribuição para Financiamento da Seguridade Social`) · **Obrigatoriedade do leiaute:** condicional no leiaute · **Preenche:** você, na requisição

          CST "03" (COFINS por quantidade): quantidade vendida na unidade de tributação da COFINS (transmitida como qBCProd). Passthrough: não deriva de "items\[].quantidade"

          **Condição do leiaute:** Obrigatória junto com valorAliquotaUnidade e valor no CST 03 (tributado por quantidade). Não existe nos demais CST.

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/imposto/COFINS/COFINSQtde/qBCProd (TDec\_1204v)*
        </ParamField>

        <ParamField path="items[].cofins.valorAliquotaUnidade" type="number">
          **Tamanho:** 11v0-4 · **Tag do leiaute:** `vAliqProd` (grupo `COFINS: Contribuição para Financiamento da Seguridade Social`) · **Obrigatoriedade do leiaute:** condicional no leiaute · **Preenche:** você, na requisição

          CST "03" (COFINS por quantidade): alíquota da COFINS em R\$ por unidade de produto (transmitida como vAliqProd)

          **Condição do leiaute:** Obrigatória junto com quantidadeVendida e valor no CST 03 (tributado por quantidade). Não existe nos demais CST.

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/imposto/COFINS/COFINSQtde/vAliqProd (TDec\_1104v)*
        </ParamField>

        <ParamField path="items[].cofins.valor" type="number">
          **Tamanho:** 13v2 · **Tag do leiaute:** `vCOFINS` (grupo `COFINS: Contribuição para Financiamento da Seguridade Social`) · **Obrigatoriedade do leiaute:** condicional no leiaute · **Preenche:** você, na requisição

          Valor da COFINS em R\$ (transmitido como vCOFINS e somado no total)

          **Condição do leiaute:** Obrigatório nos CST que carregam valores, seja por ALÍQUOTA (base + alíquota) seja por QUANTIDADE (quantidadeVendida + valorAliquotaUnidade, CST 03). Soma no total da nota (tag de mesmo nome no grupo de totais), mas não compõe o valor a pagar.

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/imposto/COFINS/COFINSAliq/vCOFINS (TDec\_1302)*
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="items[].ipi" type="object">
      **Tag do leiaute:** `IPI` (grupo `IPI: Imposto sobre Produtos Industrializados`) · **Obrigatoriedade do leiaute:** condicional no leiaute

      IPI: NÃO SUPORTADO na NFC-e (o modelo 65 não tem o grupo no leiaute). Aceito no contrato só para recusar com 422 IPI\_NAO\_SUPORTADO em vez de descartar em silêncio

      **Condição do leiaute:** Grupo do leiaute exigido de indústria e de importador equiparado a industrial.

      **Nota do leiaute:** Grupo, não campo: o leiaute escolhe entre IPITrib e IPINT pelo CST, e é o subgrupo que carrega as tags de valor.

      *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/imposto/IPI (TIpi, choice entre IPITrib e IPINT)*

      <Expandable title="7 campo(s)">
        <ParamField path="items[].ipi.cst" type="string">
          **Tamanho:** 2 · **Tag do leiaute:** `CST` (grupo `IPI: Imposto sobre Produtos Industrializados`) · **Obrigatoriedade do leiaute:** obrigatório no leiaute · **Preenche:** você, na requisição

          CST do IPI. NÃO SUPORTADO na NFC-e (422 IPI\_NAO\_SUPORTADO)

          **Condição do leiaute:** Tributados (subgrupo IPITrib, exigem base, alíquota e valor): 00, 49, 50 e 99. Não tributados (subgrupo IPINT, só o CST vai no documento): 01 a 05 e 51 a 55.

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TIpi/IPITrib/CST e TIpi/IPINT/CST*
        </ParamField>

        <ParamField path="items[].ipi.baseCalculo" type="number">
          **Tamanho:** 13v2 · **Tag do leiaute:** `vBC` (grupo `IPI: Imposto sobre Produtos Industrializados`) · **Obrigatoriedade do leiaute:** condicional no leiaute · **Preenche:** você, na requisição

          NÃO SUPORTADO na NFC-e

          **Condição do leiaute:** Obrigatória nos CST tributados (00, 49, 50, 99) quando o item é tributado por ALÍQUOTA; não combina com quantidadeUnidadeTributavel/valorUnidadeTributavel no mesmo item (o leiaute é um choice entre os dois pares).

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TIpi/IPITrib/vBC (TDec\_1302)*
        </ParamField>

        <ParamField path="items[].ipi.aliquota" type="number">
          **Tamanho:** 3v2-4 · **Tag do leiaute:** `pIPI` (grupo `IPI: Imposto sobre Produtos Industrializados`) · **Obrigatoriedade do leiaute:** condicional no leiaute · **Preenche:** você, na requisição

          NÃO SUPORTADO na NFC-e

          **Condição do leiaute:** Obrigatória nos CST tributados, junto com a base, quando o item é tributado por ALÍQUOTA; não combina com quantidadeUnidadeTributavel/valorUnidadeTributavel no mesmo item.

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TIpi/IPITrib/pIPI (TDec\_0302a04)*
        </ParamField>

        <ParamField path="items[].ipi.quantidadeUnidadeTributavel" type="number">
          **Tamanho:** 12v0-4 · **Tag do leiaute:** `qUnid` (grupo `IPI: Imposto sobre Produtos Industrializados`) · **Obrigatoriedade do leiaute:** condicional no leiaute · **Preenche:** você, na requisição

          NÃO SUPORTADO na NFC-e

          **Condição do leiaute:** Obrigatória junto com valorUnidadeTributavel e valor nos CST tributados (00, 49, 50, 99) quando o item é tributado por QUANTIDADE/pauta (ex.: cigarro, bebida); não combina com baseCalculo/aliquota no mesmo item.

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TIpi/IPITrib/qUnid (TDec\_1204v)*
        </ParamField>

        <ParamField path="items[].ipi.valorUnidadeTributavel" type="number">
          **Tamanho:** 11v0-4 · **Tag do leiaute:** `vUnid` (grupo `IPI: Imposto sobre Produtos Industrializados`) · **Obrigatoriedade do leiaute:** condicional no leiaute · **Preenche:** você, na requisição

          NÃO SUPORTADO na NFC-e

          **Condição do leiaute:** Obrigatória junto com quantidadeUnidadeTributavel e valor nos CST tributados quando o item é tributado por QUANTIDADE/pauta.

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TIpi/IPITrib/vUnid (TDec\_1104)*
        </ParamField>

        <ParamField path="items[].ipi.valor" type="number">
          **Tamanho:** 13v2 · **Tag do leiaute:** `vIPI` (grupo `IPI: Imposto sobre Produtos Industrializados`) · **Obrigatoriedade do leiaute:** condicional no leiaute · **Preenche:** você, na requisição

          NÃO SUPORTADO na NFC-e

          **Condição do leiaute:** Obrigatório nos CST tributados, seja por ALÍQUOTA (base + alíquota) seja por QUANTIDADE/pauta (quantidadeUnidadeTributavel + valorUnidadeTributavel). Atenção: o IPI COMPÕE o total da nota (vNF = produtos - desconto + frete + seguro + outras despesas + IPI), então os pagamentos precisam fechar com esse total.

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TIpi/IPITrib/vIPI (TDec\_1302)*
        </ParamField>

        <ParamField path="items[].ipi.cEnq" type="string">
          **Tamanho:** 1-3 · **Tag do leiaute:** `cEnq` (grupo `IPI: Imposto sobre Produtos Industrializados`) · **Obrigatoriedade do leiaute:** obrigatório no leiaute · **Preenche:** você, na requisição

          NÃO SUPORTADO na NFC-e

          **Condição do leiaute:** Código de Enquadramento Legal do IPI (tabela da Receita Federal). Ausente = 999 (demais casos), escrito explicitamente pela engineAPI.

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TIpi/cEnq*
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="items[].ibsCbs" type="object">
      **Tag do leiaute:** `IBSCBS` (grupo `UB: Tributação do IBS e da CBS`) · **Obrigatoriedade do leiaute:** opcional no leiaute

      Grupo IBS/CBS da Reforma Tributária (opcional, NT 2025.002). Aceita o grupo completo (passthrough) ou só \{ cClassTrib }; nesse caso o Cérebro Fiscal resolve os percentuais oficiais da classe (requer resolverTributacao: true)

      **Condição do leiaute:** Grupo da Reforma Tributária (NT 2025.002). Aceita o grupo completo (passthrough) ou só \{ cClassTrib }; nesse segundo formato o Cérebro Fiscal resolve os percentuais oficiais da classe e exige resolverTributacao: true.

      **Nota do leiaute:** Grupo, não campo: IBSCBS é o contêiner do CST, do cClassTrib e dos subgrupos de alíquota.

      *Fonte do leiaute: DFeTiposBasicos\_v1.00.xsd: TNFe/infNFe/det/imposto/IBSCBS (tipo TTribNFe)*

      <Expandable title="7 campo(s)">
        <ParamField path="items[].ibsCbs.cst" type="string">
          **Tamanho:** 3 · **Tag do leiaute:** `CST` (grupo `UB: Tributação do IBS e da CBS`) · **Obrigatoriedade do leiaute:** obrigatório no leiaute · **Preenche:** você, na requisição

          Código de Situação Tributária do IBS/CBS (Reforma Tributária). Ausente = "000" (padrão: `^\d{1,3}$`)

          **Condição do leiaute:** Código de Situação Tributária do IBS/CBS, 3 dígitos exatos no leiaute. Ausente = 000 (tributação integral).

          *Fonte do leiaute: DFeTiposBasicos\_v1.00.xsd: TTribNFe/CST (TCST)*
        </ParamField>

        <ParamField path="items[].ibsCbs.cClassTrib" type="string">
          **Tamanho:** 6 · **Tag do leiaute:** `cClassTrib` (grupo `UB: Tributação do IBS e da CBS`) · **Obrigatoriedade do leiaute:** obrigatório no leiaute · **Preenche:** você, na requisição

          Código de Classificação Tributária do IBS/CBS. Ausente = "000001" (tributação integral) (padrão: `^\d{1,6}$`)

          **Condição do leiaute:** Código de Classificação Tributária do IBS/CBS, 6 dígitos exatos no leiaute. Ausente = 000001 (tributação integral). Sozinho no grupo, vira a dica de classe que o Cérebro Fiscal resolve.

          *Fonte do leiaute: DFeTiposBasicos\_v1.00.xsd: TTribNFe/cClassTrib (TcClassTrib)*
        </ParamField>

        <ParamField path="items[].ibsCbs.vBC" type="number">
          **Tamanho:** 13v2 · **Tag do leiaute:** `vBC` (grupo `UB: Tributação do IBS e da CBS`) · **Obrigatoriedade do leiaute:** obrigatório no leiaute · **Preenche:** derivado de outros campos (calculado)

          Base de cálculo do IBS/CBS em R\$. Ausente = vProd − desconto + valorFrete + valorSeguro + outrasDespesas do item (LC 214/2025 art. 12 § 1º III soma frete/seguro/outras despesas; art. 12 § 2º III: descontos incondicionais não integram a base)

          **Condição do leiaute:** Base de cálculo do IBS/CBS. Ausente = valor do produto menos desconto incondicional, mais frete, seguro e outras despesas do item.

          *Fonte do leiaute: DFeTiposBasicos\_v1.00.xsd: TCIBS/vBC (TDec1302RTC)*
        </ParamField>

        <ParamField path="items[].ibsCbs.ibsUf" type="object" required>
          **Tag do leiaute:** `gIBSUF` (grupo `UB: Tributação do IBS e da CBS`) · **Obrigatoriedade do leiaute:** obrigatório no leiaute

          Componente estadual do IBS (Imposto sobre Bens e Serviços)

          **Condição do leiaute:** Subgrupo do componente estadual do IBS. Os três subgrupos são obrigatórios quando o grupo de tributação IBS/CBS existe no item.

          **Nota do leiaute:** Grupo, não campo: o subgrupo é o contêiner da alíquota e do valor do componente.

          *Fonte do leiaute: DFeTiposBasicos\_v1.00.xsd: TCIBS/gIBSUF*

          <Expandable title="4 campo(s)">
            <ParamField path="items[].ibsCbs.ibsUf.p" type="number" required>
              **Tamanho:** 3v2-4 · **Tag do leiaute:** `pAliqEfet` (grupo `UB: Tributação do IBS e da CBS`) · **Obrigatoriedade do leiaute:** obrigatório no leiaute · **Preenche:** você, na requisição

              Alíquota EFETIVA do componente, em % (ex.: 0.04). É ela que gera o valor do tributo (v = p × vBC). Em item COM redução, vai no documento dentro de gRed/pAliqEfet

              **Condição do leiaute:** Alíquota EFETIVA do componente estadual do IBS. Em item COM redução ela vai em pAliqEfet, dentro do subgrupo gRed; em item SEM redução ela é a própria pIBSUF (nominal e efetiva coincidem).

              *Fonte do leiaute: DFeTiposBasicos\_v1.00.xsd: TRed/pAliqEfet e TCIBS/gIBSUF/pIBSUF (TDec\_0302\_04RTC)*
            </ParamField>

            <ParamField path="items[].ibsCbs.ibsUf.pNominal" type="number">
              **Tamanho:** 3v2-4 · **Tag do leiaute:** `pIBSUF` (grupo `UB: Tributação do IBS e da CBS`) · **Obrigatoriedade do leiaute:** obrigatório no leiaute · **Preenche:** você, na requisição

              Alíquota NOMINAL do componente, em % (ex.: 0.1). É a alíquota cheia, antes da redução do cClassTrib, e a que o documento grava em pIBSUF/pIBSMun/pCBS. Obrigatória junto com pRedAliq; ausente = item sem redução (nominal = efetiva)

              **Condição do leiaute:** Alíquota NOMINAL (cheia, antes da redução do cClassTrib). É o que o documento grava em pIBSUF. Obrigatória junto com pRedAliq; ausente = item sem redução, e a efetiva é gravada como nominal.

              *Fonte do leiaute: DFeTiposBasicos\_v1.00.xsd: TCIBS/gIBSUF/pIBSUF (TDec\_0302\_04RTC)*
            </ParamField>

            <ParamField path="items[].ibsCbs.ibsUf.pRedAliq" type="number">
              **Tamanho:** 3v2-4 · **Tag do leiaute:** `pRedAliq` (grupo `UB: Tributação do IBS e da CBS`) · **Obrigatoriedade do leiaute:** condicional no leiaute · **Preenche:** você, na requisição

              Percentual de redução de alíquota do cClassTrib, em % (ex.: 60 para o Anexo VII). Presente e maior que 0 faz o documento emitir o grupo gRed\{pRedAliq, pAliqEfet}. Obrigatória junto com pNominal

              **Condição do leiaute:** Percentual de redução de alíquota do cClassTrib. Presente e maior que zero faz o documento emitir o subgrupo gRed\{pRedAliq, pAliqEfet}. Obrigatória junto com pNominal. A SEFAZ valida a redução contra o cClassTrib do item.

              *Fonte do leiaute: DFeTiposBasicos\_v1.00.xsd: TRed/pRedAliq (TDec\_0302\_04RTC)*
            </ParamField>

            <ParamField path="items[].ibsCbs.ibsUf.v" type="number">
              **Tamanho:** 13v2 · **Tag do leiaute:** `vIBSUF` (grupo `UB: Tributação do IBS e da CBS`) · **Obrigatoriedade do leiaute:** obrigatório no leiaute · **Preenche:** derivado de outros campos (calculado)

              Valor do componente em R\$. Ausente = calculado como p × vBC

              **Condição do leiaute:** Valor do componente estadual do IBS. Ausente = calculado pela engineAPI como alíquota efetiva × base do grupo.

              *Fonte do leiaute: DFeTiposBasicos\_v1.00.xsd: TCIBS/gIBSUF/vIBSUF (TDec1302RTC)*
            </ParamField>
          </Expandable>
        </ParamField>

        <ParamField path="items[].ibsCbs.ibsMun" type="object" required>
          **Tag do leiaute:** `gIBSMun` (grupo `UB: Tributação do IBS e da CBS`) · **Obrigatoriedade do leiaute:** obrigatório no leiaute

          Componente municipal do IBS

          **Condição do leiaute:** Subgrupo do componente municipal do IBS. Os três subgrupos são obrigatórios quando o grupo de tributação IBS/CBS existe no item.

          **Nota do leiaute:** Grupo, não campo: o subgrupo é o contêiner da alíquota e do valor do componente.

          *Fonte do leiaute: DFeTiposBasicos\_v1.00.xsd: TCIBS/gIBSMun*

          <Expandable title="4 campo(s)">
            <ParamField path="items[].ibsCbs.ibsMun.p" type="number" required>
              **Tamanho:** 3v2-4 · **Tag do leiaute:** `pAliqEfet` (grupo `UB: Tributação do IBS e da CBS`) · **Obrigatoriedade do leiaute:** obrigatório no leiaute · **Preenche:** você, na requisição

              Alíquota EFETIVA do componente, em % (ex.: 0.04). É ela que gera o valor do tributo (v = p × vBC). Em item COM redução, vai no documento dentro de gRed/pAliqEfet

              **Condição do leiaute:** Alíquota EFETIVA do componente municipal do IBS. Em item COM redução ela vai em pAliqEfet, dentro do subgrupo gRed; em item SEM redução ela é a própria pIBSMun (nominal e efetiva coincidem).

              *Fonte do leiaute: DFeTiposBasicos\_v1.00.xsd: TRed/pAliqEfet e TCIBS/gIBSMun/pIBSMun (TDec\_0302\_04RTC)*
            </ParamField>

            <ParamField path="items[].ibsCbs.ibsMun.pNominal" type="number">
              **Tamanho:** 3v2-4 · **Tag do leiaute:** `pIBSMun` (grupo `UB: Tributação do IBS e da CBS`) · **Obrigatoriedade do leiaute:** obrigatório no leiaute · **Preenche:** você, na requisição

              Alíquota NOMINAL do componente, em % (ex.: 0.1). É a alíquota cheia, antes da redução do cClassTrib, e a que o documento grava em pIBSUF/pIBSMun/pCBS. Obrigatória junto com pRedAliq; ausente = item sem redução (nominal = efetiva)

              **Condição do leiaute:** Alíquota NOMINAL (cheia, antes da redução do cClassTrib). É o que o documento grava em pIBSMun. Obrigatória junto com pRedAliq; ausente = item sem redução, e a efetiva é gravada como nominal.

              *Fonte do leiaute: DFeTiposBasicos\_v1.00.xsd: TCIBS/gIBSMun/pIBSMun (TDec\_0302\_04RTC)*
            </ParamField>

            <ParamField path="items[].ibsCbs.ibsMun.pRedAliq" type="number">
              **Tamanho:** 3v2-4 · **Tag do leiaute:** `pRedAliq` (grupo `UB: Tributação do IBS e da CBS`) · **Obrigatoriedade do leiaute:** condicional no leiaute · **Preenche:** você, na requisição

              Percentual de redução de alíquota do cClassTrib, em % (ex.: 60 para o Anexo VII). Presente e maior que 0 faz o documento emitir o grupo gRed\{pRedAliq, pAliqEfet}. Obrigatória junto com pNominal

              **Condição do leiaute:** Percentual de redução de alíquota do cClassTrib. Presente e maior que zero faz o documento emitir o subgrupo gRed\{pRedAliq, pAliqEfet}. Obrigatória junto com pNominal. A SEFAZ valida a redução contra o cClassTrib do item.

              *Fonte do leiaute: DFeTiposBasicos\_v1.00.xsd: TRed/pRedAliq (TDec\_0302\_04RTC)*
            </ParamField>

            <ParamField path="items[].ibsCbs.ibsMun.v" type="number">
              **Tamanho:** 13v2 · **Tag do leiaute:** `vIBSMun` (grupo `UB: Tributação do IBS e da CBS`) · **Obrigatoriedade do leiaute:** obrigatório no leiaute · **Preenche:** derivado de outros campos (calculado)

              Valor do componente em R\$. Ausente = calculado como p × vBC

              **Condição do leiaute:** Valor do componente municipal do IBS. Ausente = calculado pela engineAPI como alíquota efetiva × base do grupo.

              *Fonte do leiaute: DFeTiposBasicos\_v1.00.xsd: TCIBS/gIBSMun/vIBSMun (TDec1302RTC)*
            </ParamField>
          </Expandable>
        </ParamField>

        <ParamField path="items[].ibsCbs.vIbs" type="number">
          **Tamanho:** 13v2 · **Tag do leiaute:** `vIBS` (grupo `UB: Tributação do IBS e da CBS`) · **Obrigatoriedade do leiaute:** obrigatório no leiaute · **Preenche:** derivado de outros campos (calculado)

          Valor total do IBS em R\$ (UF + Município). Ausente = vIbsUf + vIbsMun

          **Condição do leiaute:** Valor total do IBS do item (estadual + municipal). Ausente = soma dos dois componentes.

          *Fonte do leiaute: DFeTiposBasicos\_v1.00.xsd: TCIBS/vIBS (TDec1302RTC)*
        </ParamField>

        <ParamField path="items[].ibsCbs.cbs" type="object" required>
          **Tag do leiaute:** `gCBS` (grupo `UB: Tributação do IBS e da CBS`) · **Obrigatoriedade do leiaute:** obrigatório no leiaute

          CBS (Contribuição sobre Bens e Serviços, componente federal)

          **Condição do leiaute:** Subgrupo do CBS, o componente federal. Os três subgrupos são obrigatórios quando o grupo de tributação IBS/CBS existe no item.

          **Nota do leiaute:** Grupo, não campo: o subgrupo é o contêiner da alíquota e do valor do componente.

          *Fonte do leiaute: DFeTiposBasicos\_v1.00.xsd: TCIBS/gCBS*

          <Expandable title="4 campo(s)">
            <ParamField path="items[].ibsCbs.cbs.p" type="number" required>
              **Tamanho:** 3v2-4 · **Tag do leiaute:** `pAliqEfet` (grupo `UB: Tributação do IBS e da CBS`) · **Obrigatoriedade do leiaute:** obrigatório no leiaute · **Preenche:** você, na requisição

              Alíquota EFETIVA do componente, em % (ex.: 0.04). É ela que gera o valor do tributo (v = p × vBC). Em item COM redução, vai no documento dentro de gRed/pAliqEfet

              **Condição do leiaute:** Alíquota EFETIVA do CBS, o componente federal. Em item COM redução ela vai em pAliqEfet, dentro do subgrupo gRed; em item SEM redução ela é a própria pCBS (nominal e efetiva coincidem).

              *Fonte do leiaute: DFeTiposBasicos\_v1.00.xsd: TRed/pAliqEfet e TCIBS/gCBS/pCBS (TDec\_0302\_04RTC)*
            </ParamField>

            <ParamField path="items[].ibsCbs.cbs.pNominal" type="number">
              **Tamanho:** 3v2-4 · **Tag do leiaute:** `pCBS` (grupo `UB: Tributação do IBS e da CBS`) · **Obrigatoriedade do leiaute:** obrigatório no leiaute · **Preenche:** você, na requisição

              Alíquota NOMINAL do componente, em % (ex.: 0.1). É a alíquota cheia, antes da redução do cClassTrib, e a que o documento grava em pIBSUF/pIBSMun/pCBS. Obrigatória junto com pRedAliq; ausente = item sem redução (nominal = efetiva)

              **Condição do leiaute:** Alíquota NOMINAL (cheia, antes da redução do cClassTrib). É o que o documento grava em pCBS. Obrigatória junto com pRedAliq; ausente = item sem redução, e a efetiva é gravada como nominal.

              *Fonte do leiaute: DFeTiposBasicos\_v1.00.xsd: TCIBS/gCBS/pCBS (TDec\_0302\_04RTC)*
            </ParamField>

            <ParamField path="items[].ibsCbs.cbs.pRedAliq" type="number">
              **Tamanho:** 3v2-4 · **Tag do leiaute:** `pRedAliq` (grupo `UB: Tributação do IBS e da CBS`) · **Obrigatoriedade do leiaute:** condicional no leiaute · **Preenche:** você, na requisição

              Percentual de redução de alíquota do cClassTrib, em % (ex.: 60 para o Anexo VII). Presente e maior que 0 faz o documento emitir o grupo gRed\{pRedAliq, pAliqEfet}. Obrigatória junto com pNominal

              **Condição do leiaute:** Percentual de redução de alíquota do cClassTrib. Presente e maior que zero faz o documento emitir o subgrupo gRed\{pRedAliq, pAliqEfet}. Obrigatória junto com pNominal. A SEFAZ valida a redução contra o cClassTrib do item.

              *Fonte do leiaute: DFeTiposBasicos\_v1.00.xsd: TRed/pRedAliq (TDec\_0302\_04RTC)*
            </ParamField>

            <ParamField path="items[].ibsCbs.cbs.v" type="number">
              **Tamanho:** 13v2 · **Tag do leiaute:** `vCBS` (grupo `UB: Tributação do IBS e da CBS`) · **Obrigatoriedade do leiaute:** obrigatório no leiaute · **Preenche:** derivado de outros campos (calculado)

              Valor do componente em R\$. Ausente = calculado como p × vBC

              **Condição do leiaute:** Valor do CBS, o componente federal. Ausente = calculado pela engineAPI como alíquota efetiva × base do grupo.

              *Fonte do leiaute: DFeTiposBasicos\_v1.00.xsd: TCIBS/gCBS/vCBS (TDec1302RTC)*
            </ParamField>
          </Expandable>
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="items[].combustivel" type="object">
      **Tag do leiaute:** `comb` (grupo `LA: Combustível`) · **Obrigatoriedade do leiaute:** condicional no leiaute

      Grupo de combustíveis do leiaute (comb/LA). Obrigatório junto com a tributação monofásica (icms.cst "61"): sem o código ANP a SEFAZ rejeita o CST monofásico. Passthrough: o motor não calcula nada aqui

      **Condição do leiaute:** Obrigatório junto com a tributação monofásica (CST 61, a revenda do posto e da distribuidora de GLP): sem o código ANP no mesmo item a SEFAZ rejeita o CST monofásico. Também é exigido quando o CFOP do item é de operação com combustível.

      **Nota do leiaute:** Grupo, não campo: comb é o contêiner do detalhamento específico de combustíveis.

      *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/prod/comb*

      <Expandable title="7 campo(s)">
        <ParamField path="items[].combustivel.cProdANP" type="string" required>
          **Tamanho:** 9 · **Tag do leiaute:** `cProdANP` (grupo `LA: Combustível`) · **Obrigatoriedade do leiaute:** obrigatório no leiaute · **Preenche:** você, na requisição

          Código do produto na tabela SIMP da ANP, 9 dígitos (ex.: "210203001" para GLP). Código inexistente na tabela da ANP é rejeitado pela SEFAZ (cStat 761) (padrão: `^\d{9}$`)

          **Condição do leiaute:** Código do produto na tabela SIMP da ANP. Código inexistente na tabela é rejeitado pela SEFAZ (cStat 761).

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/prod/comb/cProdANP*
        </ParamField>

        <ParamField path="items[].combustivel.descANP" type="string" required>
          **Tamanho:** 2-95 · **Tag do leiaute:** `descANP` (grupo `LA: Combustível`) · **Obrigatoriedade do leiaute:** obrigatório no leiaute · **Preenche:** você, na requisição

          Descrição do produto conforme a ANP (tabela SIMP), 2 a 95 caracteres (ex.: "GLP")

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/prod/comb/descANP*
        </ParamField>

        <ParamField path="items[].combustivel.ufConsumo" type="string" required>
          **Tamanho:** 2 · **Tag do leiaute:** `UFCons` (grupo `LA: Combustível`) · **Obrigatoriedade do leiaute:** obrigatório no leiaute · **Preenche:** você, na requisição

          Sigla da UF de consumo do combustível (campo UFCons do leiaute, obrigatório). Use "EX" para exterior

          **Condição do leiaute:** Sigla da UF de consumo do combustível. Use EX para exterior.

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/prod/comb/UFCons (TUf)*
        </ParamField>

        <ParamField path="items[].combustivel.pGLP" type="number">
          **Tamanho:** 3v2-4 (0 a 100) · **Tag do leiaute:** `pGLP` (grupo `LA: Combustível`) · **Obrigatoriedade do leiaute:** condicional no leiaute · **Preenche:** você, na requisição

          Percentual do GLP derivado de petróleo no produto, 0 a 100. SÓ para cProdANP "210203001" (GLP); em outro produto a emissão é recusada com 422 COMBUSTIVEL\_INVALIDO (a SEFAZ rejeitaria com cStat 461)

          **Condição do leiaute:** Só existe para GLP (cProdANP 210203001). Em outro produto a emissão é recusada com 422 COMBUSTIVEL\_INVALIDO (a SEFAZ rejeitaria com cStat 461). A soma pGLP + pGNn + pGNi tem que dar 100 (cStat 855).

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/prod/comb/pGLP (TDec\_0302a04Max100)*
        </ParamField>

        <ParamField path="items[].combustivel.pGNn" type="number">
          **Tamanho:** 3v2-4 (0 a 100) · **Tag do leiaute:** `pGNn` (grupo `LA: Combustível`) · **Obrigatoriedade do leiaute:** condicional no leiaute · **Preenche:** você, na requisição

          Percentual de gás natural NACIONAL (GLGNn) no produto GLP, 0 a 100. Mesma restrição de pGLP

          **Condição do leiaute:** Percentual de gás natural NACIONAL no GLP. Mesma restrição de pGLP: só para cProdANP 210203001, e a soma dos três percentuais tem que dar 100.

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/prod/comb/pGNn (TDec\_0302a04Max100)*
        </ParamField>

        <ParamField path="items[].combustivel.pGNi" type="number">
          **Tamanho:** 3v2-4 (0 a 100) · **Tag do leiaute:** `pGNi` (grupo `LA: Combustível`) · **Obrigatoriedade do leiaute:** condicional no leiaute · **Preenche:** você, na requisição

          Percentual de gás natural IMPORTADO (GLGNi) no produto GLP, 0 a 100. Mesma restrição de pGLP. Regra da SEFAZ: pGLP + pGNn + pGNi = 100 (cStat 855)

          **Condição do leiaute:** Percentual de gás natural IMPORTADO no GLP. Mesma restrição de pGLP: só para cProdANP 210203001, e a soma dos três percentuais tem que dar 100.

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/prod/comb/pGNi (TDec\_0302a04Max100)*
        </ParamField>

        <ParamField path="items[].combustivel.vPart" type="number">
          **Tamanho:** 13v2 · **Tag do leiaute:** `vPart` (grupo `LA: Combustível`) · **Obrigatoriedade do leiaute:** condicional no leiaute · **Preenche:** você, na requisição

          Valor de partida em R\$ por quilograma, SEM ICMS. Obrigatório para GLP (cStat 856) e aceito apenas nele

          **Condição do leiaute:** Valor de partida por quilograma, sem ICMS. Aceito apenas em GLP (cProdANP 210203001).

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/det/prod/comb/vPart (TDec\_1302)*
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

***

<h2 id="grupo-totais">
  Totais
</h2>

O grupo de totais do leiaute não é enviado no payload: a engineAPI soma os itens e calcula o total automaticamente.

***

<h2 id="grupo-transporte">
  Transporte
</h2>

NFC-e (modelo 65) é venda presencial ao consumidor final: o leiaute não tem grupo de transporte.

***

<h2 id="grupo-cobranca">
  Cobrança
</h2>

O grupo é aceito pelo contrato, mas a validação de negócio da NFC-e recusa hoje toda emissão com cobrança a prazo (é venda com pagamento imediato ao consumidor final); ver [Estado dos campos do leiaute](#estado-dos-campos), abaixo.

<ParamField path="cobranca" type="object">
  **Tag do leiaute:** `cobr` (grupo `Y: Cobrança`) · **Obrigatoriedade do leiaute:** opcional no leiaute

  NÃO SUPORTADO na NFC-e: devolve 422 COBRANCA\_NAO\_SUPORTADA\_NFCE. NFC-e documenta venda com pagamento imediato ao consumidor final; use NF-e (modelo 55) para venda a prazo

  **Condição do leiaute:** Grupo informativo/financeiro na NF-e; não altera o total nem substitui pagamentos. Na NFC-e não chega a importar: qualquer cobranca com fatura e/ou duplicatas é recusada com 422 COBRANCA\_NAO\_SUPORTADA\_NFCE antes da validação Y01-20/Y10-10 da NF-e, que só vale no modelo 55. Não é a regra de "duplicata sem fatura", é o grupo inteiro.

  **Nota do leiaute:** Grupo, não campo: cobr é o contêiner da fatura e das duplicatas.

  *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/cobr*

  <Expandable title="2 campo(s)">
    <ParamField path="cobranca.fatura" type="object">
      **Tag do leiaute:** `fat` (grupo `Y: Cobrança`) · **Obrigatoriedade do leiaute:** opcional no leiaute

      Dados da fatura (grupo fat). Se enviado, os 4 campos são obrigatórios

      **Condição do leiaute:** Se a fatura for enviada, os quatro campos são obrigatórios: o motor fiscal gera as quatro tags sempre que o bloco existe, e uma fatura parcial produziria tag vazia que o leiaute rejeita.

      **Nota do leiaute:** Grupo, não campo: fat é o contêiner dos dados da fatura.

      *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/cobr/fat*

      <Expandable title="4 campo(s)">
        <ParamField path="cobranca.fatura.numero" type="string" required>
          **Tamanho:** 1-60 · **Tag do leiaute:** `nFat` (grupo `Y: Cobrança`) · **Obrigatoriedade do leiaute:** condicional no leiaute · **Preenche:** você, na requisição

          Número da fatura (nFat do leiaute), 1 a 60 caracteres

          **Condição do leiaute:** Obrigatório quando a fatura é enviada (ver o grupo fat).

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/cobr/fat/nFat*
        </ParamField>

        <ParamField path="cobranca.fatura.valorOriginal" type="number" required>
          **Tamanho:** 13v2 · **Tag do leiaute:** `vOrig` (grupo `Y: Cobrança`) · **Obrigatoriedade do leiaute:** condicional no leiaute · **Preenche:** você, na requisição

          Valor original da fatura em R\$ (vOrig)

          **Condição do leiaute:** Obrigatório quando a fatura é enviada.

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/cobr/fat/vOrig (TDec\_1302)*
        </ParamField>

        <ParamField path="cobranca.fatura.valorDesconto" type="number" required>
          **Tamanho:** 13v2 · **Tag do leiaute:** `vDesc` (grupo `Y: Cobrança`) · **Obrigatoriedade do leiaute:** condicional no leiaute · **Preenche:** você, na requisição

          Valor do desconto da fatura em R\$ (vDesc). Não pode ser maior que valorOriginal

          **Condição do leiaute:** Obrigatório quando a fatura é enviada. Não pode ser maior que o valor original (regra do grupo de cobrança).

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/cobr/fat/vDesc (TDec\_1302)*
        </ParamField>

        <ParamField path="cobranca.fatura.valorLiquido" type="number" required>
          **Tamanho:** 13v2 · **Tag do leiaute:** `vLiq` (grupo `Y: Cobrança`) · **Obrigatoriedade do leiaute:** condicional no leiaute · **Preenche:** você, na requisição

          Valor líquido da fatura em R\$ (vLiq). Precisa ser igual a valorOriginal − valorDesconto, e igual à soma de duplicatas\[].valor quando houver duplicatas (regras do grupo Y do leiaute, MOC Anexo I)

          **Condição do leiaute:** Obrigatório quando a fatura é enviada. Precisa ser igual a valorOriginal menos valorDesconto e igual à soma das duplicatas, quando houver duplicatas.

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/cobr/fat/vLiq (TDec\_1302)*
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="cobranca.duplicatas" type="object[]">
      **Tag do leiaute:** `dup` (grupo `Y: Cobrança`) · **Obrigatoriedade do leiaute:** opcional no leiaute

      Duplicatas do parcelamento (grupo dup, até 120). No XSD é irmã de `fatura` (ambas minOccurs=0). Este campo é compartilhado entre NF-e e NFC-e (mesmo `CobrancaSchema`), e o desfecho difere por modelo: na NF-e, as regras nacionais Y01-20/Y10-10 do MOC exigem `fatura` junto, duplicatas sem fatura é recusada com 422 (COBRANCA\_INVALIDA) antes de numerar (na emissão medida em GO o retorno observado foi 851); na NFC-e essa distinção não chega a rodar, qualquer cobranca com conteúdo, com ou sem fatura, é recusada antes com 422 COBRANCA\_NAO\_SUPORTADA\_NFCE. numero é tudo-ou-nada: se UMA duplicata tem numero, todas precisam ter

      **Condição do leiaute:** Uma entrada do array vira um subgrupo dup do leiaute (até 120). Na NF-e, duplicata SEM fatura recusa com 422 COBRANCA\_INVALIDA (Y01-20/Y10-10); na NFC-e essa distinção não chega a rodar: qualquer cobranca com conteúdo, com ou sem fatura, recusa antes com 422 COBRANCA\_NAO\_SUPORTADA\_NFCE.

      **Nota do leiaute:** Grupo, não campo: dup é o contêiner de uma parcela.

      *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/cobr/dup (maxOccurs="120")*

      <Expandable title="cada item tem 3 campo(s)">
        <ParamField path="cobranca.duplicatas[].numero" type="string">
          **Tamanho:** 1-60 · **Tag do leiaute:** `nDup` (grupo `Y: Cobrança`) · **Obrigatoriedade do leiaute:** opcional no leiaute · **Preenche:** preenchido automaticamente pela engineAPI

          Número da duplicata (nDup do leiaute), 1 a 60 caracteres. Ausente = a engineAPI preenche sequencial (001, 002...): o documento sempre leva um nDup, nunca vazio

          **Condição do leiaute:** Opcional no contrato, mas o documento SEMPRE leva um nDup: ausente, a engineAPI preenche sequencial (001, 002...). É tudo-ou-nada: se uma duplicata informa numero, todas precisam informar.

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/cobr/dup/nDup*
        </ParamField>

        <ParamField path="cobranca.duplicatas[].vencimento" type="string" required>
          **Tamanho:** 10 (AAAA-MM-DD) · **Tag do leiaute:** `dVenc` (grupo `Y: Cobrança`) · **Obrigatoriedade do leiaute:** condicional no leiaute · **Preenche:** você, na requisição

          Data de vencimento da duplicata, formato AAAA-MM-DD (dVenc do leiaute). Precisa ser >= à data de emissão e não-decrescente entre as parcelas (regras do grupo Y do leiaute, MOC Anexo I) (padrão: `^\d{4}-\d{2}-\d{2}$`)

          **Condição do leiaute:** Obrigatório no contrato: o leiaute rejeita duplicata sem vencimento ou com vencimento anterior à data de emissão. As parcelas precisam estar em ordem não decrescente.

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/cobr/dup/dVenc (TData)*
        </ParamField>

        <ParamField path="cobranca.duplicatas[].valor" type="number" required>
          **Tamanho:** 13v2 · **Tag do leiaute:** `vDup` (grupo `Y: Cobrança`) · **Obrigatoriedade do leiaute:** obrigatório no leiaute · **Preenche:** você, na requisição

          Valor da duplicata em R\$ (vDup do leiaute)

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/cobr/dup/vDup (TDec\_1302Opc)*
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

***

<h2 id="grupo-pagamento">
  Pagamento
</h2>

<ParamField path="pagamentos" type="object[]" required>
  **Tag do leiaute:** `pag` (grupo `pag: Informações de Pagamento`) · **Obrigatoriedade do leiaute:** obrigatório no leiaute

  Formas de pagamento (mínimo 1, máximo 100). Atenção: o campo é "pagamentos" (array), não "pagamento"

  **Condição do leiaute:** Uma entrada do array vira um subgrupo detPag do leiaute (máximo 100). A soma dos valores tem que fechar com o total do documento.

  **Nota do leiaute:** Grupo, não campo: pag é o contêiner das formas de pagamento e do troco.

  *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/pag e /pag/detPag (maxOccurs="100")*

  <Expandable title="cada item tem 3 campo(s)">
    <ParamField path="pagamentos[].forma" type="string" required>
      **Tamanho:** 2 · **Tag do leiaute:** `tPag` (grupo `pag: Informações de Pagamento`) · **Obrigatoriedade do leiaute:** obrigatório no leiaute · **Preenche:** você, na requisição

      Código da forma de pagamento SEFAZ (ex.: "01" dinheiro, "03" cartão de crédito, "15" boleto)

      **Condição do leiaute:** O leiaute só restringe o formato a 2 dígitos; a lista fechada acima é a que a engineAPI valida, porque o motor fiscal converte código desconhecido em 01 (dinheiro) sem avisar.

      *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/pag/detPag/tPag (o XSD só restringe o formato; a lista de códigos é a do MOC)*

      | Valor | Significado                                         |
      | ----- | --------------------------------------------------- |
      | `10`  | Vale alimentação                                    |
      | `11`  | Vale refeição                                       |
      | `12`  | Vale presente                                       |
      | `13`  | Vale combustível                                    |
      | `14`  | Duplicata mercantil                                 |
      | `15`  | Boleto bancário                                     |
      | `16`  | Depósito bancário                                   |
      | `17`  | PIX dinâmico                                        |
      | `18`  | Transferência bancária ou carteira digital          |
      | `19`  | Programa de fidelidade, cashback ou crédito virtual |
      | `20`  | PIX estático                                        |
      | `21`  | Crédito em loja                                     |
      | `22`  | Falha de hardware do sistema emissor                |
      | `90`  | Sem pagamento                                       |
      | `98`  | Regime especial NFF                                 |
      | `99`  | Outro                                               |
      | `01`  | Dinheiro                                            |
      | `02`  | Cheque                                              |
      | `03`  | Cartão de crédito                                   |
      | `04`  | Cartão de débito                                    |
      | `05`  | Cartão da loja (private label)                      |
    </ParamField>

    <ParamField path="pagamentos[].cartao" type="object">
      **Tag do leiaute:** `card` (grupo `pag: Informações de Pagamento`) · **Obrigatoriedade do leiaute:** condicional no leiaute

      Grupo cartao do leiaute (tag card): dados do meio de pagamento eletrônico. Obrigatório para forma "03" (crédito), "04" (débito) e "17" (PIX), com ao menos tpIntegra; os demais campos são opcionais e validados quando informados.

      **Condição do leiaute:** Obrigatório quando a forma é 03 (crédito), 04 (débito) ou 17 (PIX): NT 2023.004 v1.11 RV YA04-10, rejeição 391. Dentro do grupo só tpIntegra é minOccurs=1 no XSD; os demais campos são opcionais. Aceito também para 10, 11, 12, 13, 15 e 18 (RV YA04-20). Fora dessas formas o builder ignora o grupo.

      **Nota do leiaute:** Grupo, não campo: card é o contêiner dos dados do meio de pagamento eletrônico.

      *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/pag/detPag/card (minOccurs="0")*

      <Expandable title="6 campo(s)">
        <ParamField path="pagamentos[].cartao.tpIntegra" type="number" required>
          **Tamanho:** 1 · **Tag do leiaute:** `tpIntegra` (grupo `pag: Informações de Pagamento`) · **Obrigatoriedade do leiaute:** obrigatório no leiaute · **Preenche:** você, na requisição

          Tipo de integração do pagamento (tag tpIntegra do leiaute): 1 = integrado (TEF, e-commerce, POS integrado); 2 = não integrado (POS simples). Único campo obrigatório do grupo cartao.

          **Condição do leiaute:** Obrigatório sempre que o grupo card existe. 1 = integrado; 2 = não integrado.

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/pag/detPag/card/tpIntegra*

          | Valor | Significado                                                                     |
          | ----- | ------------------------------------------------------------------------------- |
          | `1`   | Pagamento integrado com o sistema de automação (TEF, e-commerce, POS integrado) |
          | `2`   | Pagamento não integrado (POS simples)                                           |
        </ParamField>

        <ParamField path="pagamentos[].cartao.cnpjInstituicao" type="string">
          **Tamanho:** 14 · **Tag do leiaute:** `CNPJ` (grupo `pag: Informações de Pagamento`) · **Obrigatoriedade do leiaute:** opcional no leiaute · **Preenche:** você, na requisição

          CNPJ da instituição de pagamento (tag CNPJ do leiaute, 14 dígitos). Opcional; obrigatório na recusa de negócio quando tpIntegra=1. (padrão: `^\d{14}$`)

          **Condição do leiaute:** CNPJ da instituição de pagamento (adquirente ou subadquirente). Opcional no contrato e no XSD (minOccurs=0). Recusa de negócio quando tpIntegra=1 sem este campo (grupo inconsistente).

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/pag/detPag/card/CNPJ (TCnpj, minOccurs="0")*
        </ParamField>

        <ParamField path="pagamentos[].cartao.bandeira" type="string">
          **Tamanho:** 2 · **Tag do leiaute:** `tBand` (grupo `pag: Informações de Pagamento`) · **Obrigatoriedade do leiaute:** opcional no leiaute · **Preenche:** você, na requisição

          Bandeira da operadora de cartão (tag tBand). Gate: 2 dígitos \[0-9]\{2} (XSD v4.00). Tabela YA06 do Portal Nacional (aviso, não recusa 400): 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. PIX sem operadora: "99". (padrão: `^[0-9]{2}$`)

          **Condição do leiaute:** Código da Tabela de Operadoras do Portal Nacional (YA06). Gate do contrato = XSD v4.00 pattern \[0-9]\{2}; a tabela 01–27+99 é aviso/documentação, nunca 400 para código fora da lista (a tabela muda sem mudar leiaute). Opcional (minOccurs=0).

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/pag/detPag/card/tBand (pattern \[0-9]\{2}, minOccurs="0")*
        </ParamField>

        <ParamField path="pagamentos[].cartao.autorizacao" type="string">
          **Tamanho:** 1-128 · **Tag do leiaute:** `cAut` (grupo `pag: Informações de Pagamento`) · **Obrigatoriedade do leiaute:** opcional no leiaute · **Preenche:** você, na requisição

          Número de autorização da operação com cartão/PIX (tag cAut do leiaute, 1 a 128 caracteres). Opcional.

          **Condição do leiaute:** Número de autorização da operação com cartão, PIX, boleto ou outro pagamento eletrônico. Opcional no contrato e no XSD (minOccurs=0). PIX estático (chave copia-e-cola) não tem cAut.

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/pag/detPag/card/cAut (minOccurs="0")*
        </ParamField>

        <ParamField path="pagamentos[].cartao.cnpjRecebedor" type="string">
          **Tamanho:** 14 · **Tag do leiaute:** `CNPJReceb` (grupo `pag: Informações de Pagamento`) · **Obrigatoriedade do leiaute:** opcional no leiaute · **Preenche:** você, na requisição

          CNPJ do beneficiário do pagamento (tag CNPJReceb do leiaute, opcional, 14 dígitos) (padrão: `^\d{14}$`)

          **Condição do leiaute:** CNPJ do estabelecimento beneficiário do pagamento. Opcional.

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/pag/detPag/card/CNPJReceb (TCnpj, minOccurs="0")*
        </ParamField>

        <ParamField path="pagamentos[].cartao.idTerminal" type="string">
          **Tamanho:** 1-40 · **Tag do leiaute:** `idTermPag` (grupo `pag: Informações de Pagamento`) · **Obrigatoriedade do leiaute:** opcional no leiaute · **Preenche:** você, na requisição

          Identificador do terminal de pagamento (tag idTermPag do leiaute, opcional, 1 a 40 caracteres)

          **Condição do leiaute:** Identificador do terminal em que o pagamento foi realizado. Opcional.

          *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/pag/detPag/card/idTermPag (minOccurs="0")*
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="pagamentos[].valor" type="number" required>
      **Tamanho:** 13v2 · **Tag do leiaute:** `vPag` (grupo `pag: Informações de Pagamento`) · **Obrigatoriedade do leiaute:** obrigatório no leiaute · **Preenche:** você, na requisição

      Valor pago nesta forma, em R\$ (máximo 2 casas decimais)

      **Condição do leiaute:** Cada entrada vira uma tag vPag própria, com 2 casas decimais. O leiaute permite omitir só quando a forma é 90 (sem pagamento).

      *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/pag/detPag/vPag (TDec\_1302)*
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="troco" type="number">
  **Tamanho:** 13v2 · **Tag do leiaute:** `vTroco` (grupo `pag: Informações de Pagamento`) · **Obrigatoriedade do leiaute:** opcional no leiaute · **Preenche:** você, na requisição

  Valor do troco em R\$, para venda com pagamento em dinheiro (máximo 2 casas decimais)

  **Condição do leiaute:** Só é escrito quando maior que zero. No documento a tag é irmã de detPag (pertence ao grupo de pagamento inteiro, não a uma forma). O pré-voo confere soma dos pagamentos menos troco contra o total.

  *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/pag/vTroco (TDec\_1302)*
</ParamField>

***

<h2 id="grupo-informacoes-adicionais">
  Informações adicionais
</h2>

<ParamField path="informacoesComplementares" type="string">
  **Tamanho:** 1-5000 · **Tag do leiaute:** `infCpl` (grupo `infAdic: Informações Adicionais`) · **Obrigatoriedade do leiaute:** opcional no leiaute · **Preenche:** você, na requisição

  Informações complementares de interesse do contribuinte, impressas no cupom

  **Condição do leiaute:** Texto livre de interesse do contribuinte, IMPRESSO no cupom. Ausente, a engineAPI escreve o texto padrão "NFC-e emitida via Engine", que sai impresso no cupom; informe o campo para substituí-lo. Observação ESTRUTURADA (blocos nomeados obsCont) ainda não é suportada.

  *Fonte do leiaute: leiauteNFe\_v4.00.xsd (PL\_009p\_NT2024\_003\_v103): TNFe/infNFe/infAdic/infCpl*
</ParamField>

***

<h2 id="grupo-cerebro-fiscal">
  Tributação assistida (Cérebro Fiscal)
</h2>

Fora da taxonomia clássica do leiaute: `resolverTributacao` ativa a emissão assistida; ver [guia do Cérebro Fiscal](/guides/cerebro-fiscal). O grupo IBS/CBS por item (`items[].ibsCbs`) já aparece em contexto, dentro de **Itens**, acima.

<ParamField path="resolverTributacao" type="boolean">
  **Tag do leiaute:** sem tag própria no XML (grupo `engineAPI: plataforma`) · **Obrigatoriedade do leiaute:** não é campo do leiaute (informativo/de compatibilidade) · **Preenche:** você, na requisição

  Ativa a emissão assistida (Cérebro Fiscal): resolve CSOSN e o grupo IBS/CBS de itens sem tributação manual. Requer plano com fiscalBrain + Issuer.fiscalBrainEnabled

  **Nota do leiaute:** Chave de comportamento, não campo fiscal: liga a emissão assistida, em que a engineAPI resolve CSOSN e o grupo IBS/CBS dos itens sem tributação manual. Não vira tag nenhuma no documento.

  *Fonte do leiaute: contrato da engineAPI (Cérebro Fiscal)*
</ParamField>

***

<h2 id="indice-reverso">
  Índice reverso: tag do leiaute → nosso campo
</h2>

Procure pelo nome que o leiaute usa (ex.: `natOp`, `vFrete`) e encontre o campo correspondente no contrato da engineAPI.

| Tag do leiaute  | Nosso campo                                                                                 |
| --------------- | ------------------------------------------------------------------------------------------- |
| `adRemICMS`     | [`items[].icms.adRemICMS`](#param-items-icms-ad-rem-icms)                                   |
| `adRemICMSRet`  | [`items[].icms.adRemICMSRet`](#param-items-icms-ad-rem-icms-ret)                            |
| `card`          | [`pagamentos[].cartao`](#param-pagamentos-cartao)                                           |
| `cAut`          | [`pagamentos[].cartao.autorizacao`](#param-pagamentos-cartao-autorizacao)                   |
| `cBenef`        | [`items[].cBenef`](#param-items-c-benef)                                                    |
| `cClassTrib`    | [`items[].ibsCbs.cClassTrib`](#param-items-ibs-cbs-c-class-trib)                            |
| `cEAN`          | [`items[].ean`](#param-items-ean)                                                           |
| `cEnq`          | [`items[].ipi.cEnq`](#param-items-ipi-c-enq)                                                |
| `CEST`          | [`items[].cest`](#param-items-cest)                                                         |
| `CFOP`          | [`items[].cfop`](#param-items-cfop)                                                         |
| `CNPJ`          | [`pagamentos[].cartao.cnpjInstituicao`](#param-pagamentos-cartao-cnpj-instituicao)          |
| `CNPJReceb`     | [`pagamentos[].cartao.cnpjRecebedor`](#param-pagamentos-cartao-cnpj-recebedor)              |
| `cobr`          | [`cobranca`](#param-cobranca)                                                               |
| `COFINS`        | [`items[].cofins`](#param-items-cofins)                                                     |
| `comb`          | [`items[].combustivel`](#param-items-combustivel)                                           |
| `comb`          | [`items[].combustivel`](#param-items-combustivel)                                           |
| `CPF`           | [`destCPF`](#param-dest-cpf)                                                                |
| `cProd`         | [`items[].codigo`](#param-items-codigo)                                                     |
| `cProdANP`      | [`items[].combustivel.cProdANP`](#param-items-combustivel-c-prod-anp)                       |
| `cProdANP`      | [`items[].combustivel.cProdANP`](#param-items-combustivel-c-prod-anp)                       |
| `CSOSN`         | [`items[].icms.csosn`](#param-items-icms-csosn)                                             |
| `CST`           | [`items[].icms.cst`](#param-items-icms-cst)                                                 |
| `CST`           | [`items[].pis.cst`](#param-items-pis-cst)                                                   |
| `CST`           | [`items[].cofins.cst`](#param-items-cofins-cst)                                             |
| `CST`           | [`items[].ipi.cst`](#param-items-ipi-cst)                                                   |
| `CST`           | [`items[].ibsCbs.cst`](#param-items-ibs-cbs-cst)                                            |
| `descANP`       | [`items[].combustivel.descANP`](#param-items-combustivel-desc-anp)                          |
| `det`           | [`items`](#param-items)                                                                     |
| `dup`           | [`cobranca.duplicatas`](#param-cobranca-duplicatas)                                         |
| `dVenc`         | [`cobranca.duplicatas[].vencimento`](#param-cobranca-duplicatas-vencimento)                 |
| `fat`           | [`cobranca.fatura`](#param-cobranca-fatura)                                                 |
| `gCBS`          | [`items[].ibsCbs.cbs`](#param-items-ibs-cbs-cbs)                                            |
| `gIBSMun`       | [`items[].ibsCbs.ibsMun`](#param-items-ibs-cbs-ibs-mun)                                     |
| `gIBSUF`        | [`items[].ibsCbs.ibsUf`](#param-items-ibs-cbs-ibs-uf)                                       |
| `IBSCBS`        | [`items[].ibsCbs`](#param-items-ibs-cbs)                                                    |
| `ICMS`          | [`items[].icms`](#param-items-icms)                                                         |
| `idTermPag`     | [`pagamentos[].cartao.idTerminal`](#param-pagamentos-cartao-id-terminal)                    |
| `indDeduzDeson` | [`items[].icms.indDeduzDeson`](#param-items-icms-ind-deduz-deson)                           |
| `indPres`       | [`indPres`](#param-ind-pres)                                                                |
| `indTot`        | [`items[].indTot`](#param-items-ind-tot)                                                    |
| `infCpl`        | [`informacoesComplementares`](#param-informacoes-complementares)                            |
| `IPI`           | [`items[].ipi`](#param-items-ipi)                                                           |
| `modBC`         | [`items[].icms.modBC`](#param-items-icms-mod-bc)                                            |
| `motDesICMS`    | [`items[].icms.motDesICMS`](#param-items-icms-mot-des-icms)                                 |
| `NCM`           | [`items[].ncm`](#param-items-ncm)                                                           |
| `nDup`          | [`cobranca.duplicatas[].numero`](#param-cobranca-duplicatas-numero)                         |
| `nFat`          | [`cobranca.fatura.numero`](#param-cobranca-fatura-numero)                                   |
| `nNF`           | [`numero`](#param-numero)                                                                   |
| `orig`          | [`items[].icms.origem`](#param-items-icms-origem)                                           |
| `pag`           | [`pagamentos`](#param-pagamentos)                                                           |
| `pAliqEfet`     | [`items[].ibsCbs.ibsUf.p`](#param-items-ibs-cbs-ibs-uf-p)                                   |
| `pAliqEfet`     | [`items[].ibsCbs.ibsMun.p`](#param-items-ibs-cbs-ibs-mun-p)                                 |
| `pAliqEfet`     | [`items[].ibsCbs.cbs.p`](#param-items-ibs-cbs-cbs-p)                                        |
| `pCBS`          | [`items[].ibsCbs.cbs.pNominal`](#param-items-ibs-cbs-cbs-p-nominal)                         |
| `pCOFINS`       | [`items[].cofins.aliquota`](#param-items-cofins-aliquota)                                   |
| `pFCP`          | [`items[].icms.pFCP`](#param-items-icms-p-fcp)                                              |
| `pGLP`          | [`items[].combustivel.pGLP`](#param-items-combustivel-p-glp)                                |
| `pGNi`          | [`items[].combustivel.pGNi`](#param-items-combustivel-p-g-ni)                               |
| `pGNn`          | [`items[].combustivel.pGNn`](#param-items-combustivel-p-g-nn)                               |
| `pIBSMun`       | [`items[].ibsCbs.ibsMun.pNominal`](#param-items-ibs-cbs-ibs-mun-p-nominal)                  |
| `pIBSUF`        | [`items[].ibsCbs.ibsUf.pNominal`](#param-items-ibs-cbs-ibs-uf-p-nominal)                    |
| `pICMS`         | [`items[].icms.aliquota`](#param-items-icms-aliquota)                                       |
| `pICMS`         | [`items[].icms.pICMS`](#param-items-icms-p-icms)                                            |
| `pICMSST`       | [`items[].icms.aliquotaST`](#param-items-icms-aliquota-st)                                  |
| `pIPI`          | [`items[].ipi.aliquota`](#param-items-ipi-aliquota)                                         |
| `PIS`           | [`items[].pis`](#param-items-pis)                                                           |
| `pPIS`          | [`items[].pis.aliquota`](#param-items-pis-aliquota)                                         |
| `pRedAliq`      | [`items[].ibsCbs.ibsUf.pRedAliq`](#param-items-ibs-cbs-ibs-uf-p-red-aliq)                   |
| `pRedAliq`      | [`items[].ibsCbs.ibsMun.pRedAliq`](#param-items-ibs-cbs-ibs-mun-p-red-aliq)                 |
| `pRedAliq`      | [`items[].ibsCbs.cbs.pRedAliq`](#param-items-ibs-cbs-cbs-p-red-aliq)                        |
| `pRedBC`        | [`items[].icms.pRedBC`](#param-items-icms-p-red-bc)                                         |
| `qBCMono`       | [`items[].icms.qBCMono`](#param-items-icms-q-bc-mono)                                       |
| `qBCMonoRet`    | [`items[].icms.qBCMonoRet`](#param-items-icms-q-bc-mono-ret)                                |
| `qBCProd`       | [`items[].pis.quantidadeVendida`](#param-items-pis-quantidade-vendida)                      |
| `qBCProd`       | [`items[].cofins.quantidadeVendida`](#param-items-cofins-quantidade-vendida)                |
| `qCom`          | [`items[].quantidade`](#param-items-quantidade)                                             |
| `qTrib`         | [`items[].quantidadeTributavel`](#param-items-quantidade-tributavel)                        |
| `qUnid`         | [`items[].ipi.quantidadeUnidadeTributavel`](#param-items-ipi-quantidade-unidade-tributavel) |
| `serie`         | [`serie`](#param-serie)                                                                     |
| `tBand`         | [`pagamentos[].cartao.bandeira`](#param-pagamentos-cartao-bandeira)                         |
| `tPag`          | [`pagamentos[].forma`](#param-pagamentos-forma)                                             |
| `tpEmis`        | [`contingencia`](#param-contingencia)                                                       |
| `tpIntegra`     | [`pagamentos[].cartao.tpIntegra`](#param-pagamentos-cartao-tp-integra)                      |
| `uCom`          | [`items[].unidade`](#param-items-unidade)                                                   |
| `UFCons`        | [`items[].combustivel.ufConsumo`](#param-items-combustivel-uf-consumo)                      |
| `uTrib`         | [`items[].unidadeTributavel`](#param-items-unidade-tributavel)                              |
| `vAliqProd`     | [`items[].pis.valorAliquotaUnidade`](#param-items-pis-valor-aliquota-unidade)               |
| `vAliqProd`     | [`items[].cofins.valorAliquotaUnidade`](#param-items-cofins-valor-aliquota-unidade)         |
| `vBC`           | [`items[].icms.baseCalculo`](#param-items-icms-base-calculo)                                |
| `vBC`           | [`items[].icms.vBC`](#param-items-icms-v-bc)                                                |
| `vBC`           | [`items[].pis.baseCalculo`](#param-items-pis-base-calculo)                                  |
| `vBC`           | [`items[].cofins.baseCalculo`](#param-items-cofins-base-calculo)                            |
| `vBC`           | [`items[].ipi.baseCalculo`](#param-items-ipi-base-calculo)                                  |
| `vBC`           | [`items[].ibsCbs.vBC`](#param-items-ibs-cbs-v-bc)                                           |
| `vBCFCP`        | [`items[].icms.vBCFCP`](#param-items-icms-v-bcfcp)                                          |
| `vBCST`         | [`items[].icms.baseCalculoST`](#param-items-icms-base-calculo-st)                           |
| `vCBS`          | [`items[].ibsCbs.cbs.v`](#param-items-ibs-cbs-cbs-v)                                        |
| `vCOFINS`       | [`items[].cofins.valor`](#param-items-cofins-valor)                                         |
| `vDesc`         | [`items[].desconto`](#param-items-desconto)                                                 |
| `vDesc`         | [`cobranca.fatura.valorDesconto`](#param-cobranca-fatura-valor-desconto)                    |
| `vDup`          | [`cobranca.duplicatas[].valor`](#param-cobranca-duplicatas-valor)                           |
| `vFCP`          | [`items[].icms.vFCP`](#param-items-icms-v-fcp)                                              |
| `vFrete`        | [`items[].valorFrete`](#param-items-valor-frete)                                            |
| `vFrete`        | [`items[].valorFrete`](#param-items-valor-frete)                                            |
| `vIBS`          | [`items[].ibsCbs.vIbs`](#param-items-ibs-cbs-v-ibs)                                         |
| `vIBSMun`       | [`items[].ibsCbs.ibsMun.v`](#param-items-ibs-cbs-ibs-mun-v)                                 |
| `vIBSUF`        | [`items[].ibsCbs.ibsUf.v`](#param-items-ibs-cbs-ibs-uf-v)                                   |
| `vICMS`         | [`items[].icms.valor`](#param-items-icms-valor)                                             |
| `vICMS`         | [`items[].icms.vICMS`](#param-items-icms-v-icms)                                            |
| `vICMSDeson`    | [`items[].icms.vICMSDeson`](#param-items-icms-v-icms-deson)                                 |
| `vICMSMono`     | [`items[].icms.vICMSMono`](#param-items-icms-v-icms-mono)                                   |
| `vICMSMonoRet`  | [`items[].icms.vICMSMonoRet`](#param-items-icms-v-icms-mono-ret)                            |
| `vICMSST`       | [`items[].icms.valorST`](#param-items-icms-valor-st)                                        |
| `vIPI`          | [`items[].ipi.valor`](#param-items-ipi-valor)                                               |
| `vLiq`          | [`cobranca.fatura.valorLiquido`](#param-cobranca-fatura-valor-liquido)                      |
| `vOrig`         | [`cobranca.fatura.valorOriginal`](#param-cobranca-fatura-valor-original)                    |
| `vOutro`        | [`items[].outrasDespesas`](#param-items-outras-despesas)                                    |
| `vOutro`        | [`items[].outrasDespesas`](#param-items-outras-despesas)                                    |
| `vPag`          | [`pagamentos[].valor`](#param-pagamentos-valor)                                             |
| `vPart`         | [`items[].combustivel.vPart`](#param-items-combustivel-v-part)                              |
| `vPIS`          | [`items[].pis.valor`](#param-items-pis-valor)                                               |
| `vProd`         | [`items[].valorTotal`](#param-items-valor-total)                                            |
| `vSeg`          | [`items[].valorSeguro`](#param-items-valor-seguro)                                          |
| `vSeg`          | [`items[].valorSeguro`](#param-items-valor-seguro)                                          |
| `vTroco`        | [`troco`](#param-troco)                                                                     |
| `vUnCom`        | [`items[].valorUnitario`](#param-items-valor-unitario)                                      |
| `vUnid`         | [`items[].ipi.valorUnidadeTributavel`](#param-items-ipi-valor-unidade-tributavel)           |
| `vUnTrib`       | [`items[].valorUnitarioTributavel`](#param-items-valor-unitario-tributavel)                 |
| `xJust`         | [`justificativaContingencia`](#param-justificativa-contingencia)                            |
| `xNome`         | [`destNome`](#param-dest-nome)                                                              |
| `xProd`         | [`items[].descricao`](#param-items-descricao)                                               |

***

<h2 id="estado-dos-campos">
  Estado dos campos do leiaute
</h2>

Todo campo listado acima é **suportado**: está no contrato e a engineAPI o usa. Esta seção cobre o resto do leiaute: o que a API aceita com outro nome, o que ela recusa hoje e as ressalvas de campos que estão no contrato mas o leiaute trata de um jeito específico.

### Preenchidos automaticamente ou derivados

| Campo                                                               | Como                                      |
| ------------------------------------------------------------------- | ----------------------------------------- |
| [`serie`](#param-serie)                                             | preenchido automaticamente pela engineAPI |
| [`numero`](#param-numero)                                           | preenchido automaticamente pela engineAPI |
| [`items[].valorTotal`](#param-items-valor-total)                    | derivado de outros campos (calculado)     |
| [`items[].ibsCbs.vBC`](#param-items-ibs-cbs-v-bc)                   | derivado de outros campos (calculado)     |
| [`items[].ibsCbs.ibsUf.v`](#param-items-ibs-cbs-ibs-uf-v)           | derivado de outros campos (calculado)     |
| [`items[].ibsCbs.ibsMun.v`](#param-items-ibs-cbs-ibs-mun-v)         | derivado de outros campos (calculado)     |
| [`items[].ibsCbs.vIbs`](#param-items-ibs-cbs-v-ibs)                 | derivado de outros campos (calculado)     |
| [`items[].ibsCbs.cbs.v`](#param-items-ibs-cbs-cbs-v)                | derivado de outros campos (calculado)     |
| [`cobranca.duplicatas[].numero`](#param-cobranca-duplicatas-numero) | preenchido automaticamente pela engineAPI |

### Aceitos, mas com outro nome

| Termo do leiaute | Nosso campo                                                           |
| ---------------- | --------------------------------------------------------------------- |
| `comb`           | [`items[].combustivel`](#param-items-combustivel)                     |
| `cProdANP`       | [`items[].combustivel.cProdANP`](#param-items-combustivel-c-prod-anp) |
| `vFrete`         | [`items[].valorFrete`](#param-items-valor-frete)                      |
| `vSeg`           | [`items[].valorSeguro`](#param-items-valor-seguro)                    |
| `vOutro`         | [`items[].outrasDespesas`](#param-items-outras-despesas)              |

### Aceitos no contrato, com ressalva do leiaute

* [`issuerId`](#param-issuer-id): Campo de plataforma: identifica qual emissor cadastrado assina o documento. Não existe no leiaute fiscal, onde o emitente é identificado pelo CNPJ no grupo emit.
* [`items[].icms`](#param-items-icms): Grupo, não campo: o leiaute escolhe o subgrupo (ICMS00, ICMS61, ICMSSN102...) pelo CST/CSOSN informado, e é o subgrupo que carrega as tags.
* [`items[].pis`](#param-items-pis): Grupo, não campo: o leiaute escolhe o subgrupo pelo CST informado, e é o subgrupo que carrega as tags.
* [`items[].cofins`](#param-items-cofins): Grupo, não campo: o leiaute escolhe o subgrupo pelo CST informado, e é o subgrupo que carrega as tags.
* [`items[].ipi`](#param-items-ipi): Grupo, não campo: o leiaute escolhe entre IPITrib e IPINT pelo CST, e é o subgrupo que carrega as tags de valor.
* [`items[].ibsCbs.ibsUf`](#param-items-ibs-cbs-ibs-uf): Grupo, não campo: o subgrupo é o contêiner da alíquota e do valor do componente.
* [`items[].ibsCbs.ibsMun`](#param-items-ibs-cbs-ibs-mun): Grupo, não campo: o subgrupo é o contêiner da alíquota e do valor do componente.
* [`items[].ibsCbs.cbs`](#param-items-ibs-cbs-cbs): Grupo, não campo: o subgrupo é o contêiner da alíquota e do valor do componente.
* [`items[].ibsCbs`](#param-items-ibs-cbs): Grupo, não campo: IBSCBS é o contêiner do CST, do cClassTrib e dos subgrupos de alíquota.
* [`items[].combustivel`](#param-items-combustivel): Grupo, não campo: comb é o contêiner do detalhamento específico de combustíveis.
* [`items`](#param-items): Grupo, não campo: `det` é o contêiner do item e não carrega valor próprio (só o atributo nItem, gerado pela ordem do array).
* [`cobranca.fatura`](#param-cobranca-fatura): Grupo, não campo: fat é o contêiner dos dados da fatura.
* [`cobranca.duplicatas`](#param-cobranca-duplicatas): Grupo, não campo: dup é o contêiner de uma parcela.
* [`cobranca`](#param-cobranca): Grupo, não campo: cobr é o contêiner da fatura e das duplicatas.
* [`pagamentos[].cartao`](#param-pagamentos-cartao): Grupo, não campo: card é o contêiner dos dados do meio de pagamento eletrônico.
* [`pagamentos`](#param-pagamentos): Grupo, não campo: pag é o contêiner das formas de pagamento e do troco.
* [`resolverTributacao`](#param-resolver-tributacao): Chave de comportamento, não campo fiscal: liga a emissão assistida, em que a engineAPI resolve CSOSN e o grupo IBS/CBS dos itens sem tributação manual. Não vira tag nenhuma no documento.

### Não suportados hoje (fora do contrato)

| Termo(s) do leiaute                                                                                                                                                                               | Motivo                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `NFref`, `refNFe`, `notareferenciada`, `documentoreferenciado`, `referenciada`                                                                                                                    | O documento fiscal referenciado é suportado, mas com outro nome: o grupo é `referenciadas`, um array na raiz do corpo, com o campo `chaveAcesso` (a chave de acesso de 44 dígitos da nota original). `NFref` e `refNFe` são nomes do XML do leiaute. É esse grupo que as finalidades 2 (complementar), 3 (ajuste) e 4 (devolução) exigem.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| `refNF`, `refNFP`, `refCTe`, `refECF`, `refNFeSig`                                                                                                                                                | O grupo de documento referenciado (`referenciadas`) hoje aceita apenas a chave de acesso de NF-e/NFC-e (`chaveAcesso`, a tag `refNFe` do leiaute). As demais variantes do grupo ainda não são suportadas: nota fiscal de papel modelo 1/1A ou 2 (`refNF`), nota de produtor rural (`refNFP`), CT-e (`refCTe`), cupom fiscal de ECF (`refECF`) e a chave com código numérico zerado (`refNFeSig`). Informar esses campos não geraria o grupo no documento.                                                                                                                                                                                                                                                                                                                                                                                        |
| `comb`, `encerrante`, `codif`, `ufcons`                                                                                                                                                           | Combustível e GLP são suportados, mas com outro nome: o grupo é `items[].combustivel` (campos: cProdANP, descANP, ufConsumo, pGLP, pGNn, pGNi, vPart). `comb` e os campos soltos são nomes do XML do leiaute; no corpo da requisição eles vão dentro de `combustivel`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| `icms60`, `vBCSTRet`, `pST`, `vICMSSubstituto`, `vICMSSTRet`, `vBCFCPSTRet`, `pFCPSTRet`, `vFCPSTRet`, `pRedBCEfet`, `vBCEfet`, `pICMSEfet`, `vICMSEfet`                                          | Os campos do ICMS-ST retido anteriormente (vBCSTRet, pST, vICMSSubstituto, vICMSSTRet, o FCP-ST retido em vBCFCPSTRet/pFCPSTRet/vFCPSTRet e o ICMS efetivo em pRedBCEfet/vBCEfet/pICMSEfet/vICMSEfet) existem só na NF-e (modelo 55), dentro de `items[].icms`, acompanhando `icms.cst` "60", com emissor em Regime Normal (crt 3) ou no Simples com excesso de sublimite (crt 2). Na NFC-e (modelo 65) esse grupo ainda não é suportado pela engineAPI: emita uma NF-e para documentar a revenda de mercadoria com ICMS-ST já retido.                                                                                                                                                                                                                                                                                                           |
| `ICMS02`, `ICMS61`, `icms15`, `icms53`, `monofasico`, `qBCMonoReten`, `adRemICMSReten`, `vICMSMonoReten`, `pRedAdRem`, `motRedAdRem`, `vICMSMonoOp`, `vICMSMonoDif`, `qBCMonoDif`, `adRemICMSDif` | A tributação monofásica de combustíveis é suportada nos CST 02 (própria: qBCMono, adRemICMS, vICMSMono) e 61 (cobrada anteriormente, a revenda: qBCMonoRet, adRemICMSRet, vICMSMonoRet), dentro de `items[].icms` (os grupos ICMS02 e ICMS61 do XML não são objetos do corpo da requisição: os campos vão direto em `icms`, junto do `cst`). O que ainda não é suportado é o CST 15 (monofásica própria com responsabilidade por RETENÇÃO: qBCMonoReten, adRemICMSReten, vICMSMonoReten, pRedAdRem, motRedAdRem) e o CST 53 (monofásica com DIFERIMENTO: vICMSMonoOp, vICMSMonoDif, qBCMonoDif, adRemICMSDif). Informar esses campos não geraria o grupo no documento.                                                                                                                                                                           |
| `ICMSUFDest`, `ufDestino`, `vBCUFDest`, `vBCFCPUFDest`, `pFCPUFDest`, `pICMSUFDest`, `pICMSInter`, `pICMSInterPart`, `vFCPUFDest`, `vICMSUFDest`, `vICMSUFRemet`                                  | A partilha do ICMS interestadual para consumidor final não contribuinte (o DIFAL da EC 87/2015) é suportada na NF-e, mas com outro nome: o grupo é `items[].icms.ufDestino` (campos: vBCUFDest, vBCFCPUFDest, pFCPUFDest, pICMSUFDest, pICMSInter, pICMSInterPart, vFCPUFDest, vICMSUFDest, vICMSUFRemet). `ICMSUFDest` e os campos soltos são nomes do XML do leiaute; no corpo da requisição eles vão dentro de `ufDestino`, no `icms` do item. Na NFC-e (modelo 65) o grupo não existe: aquele documento é sempre operação interna.                                                                                                                                                                                                                                                                                                           |
| `veiculo`, `veictransp`, `placa`, `rntc`, `reboque`, `lacres`, `rettransp`, `balsa`, `vagao`                                                                                                      | Os dados detalhados de transporte (veículo, reboque, lacres, retenção do ICMS de transporte) ainda não são suportados pela engineAPI. O contrato aceita hoje, em transporte, apenas modFrete, transportadora e volumes.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| `rastro`, `nlote`, `qlote`, `dfab`, `dval`                                                                                                                                                        | A rastreabilidade por item (grupo rastro: lote, data de fabricação e validade) ainda não é suportada pela engineAPI. Medicamento e alimento que exigem rastro não podem ser emitidos por enquanto.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| `med`, `cProdANVISA`, `vPMC`                                                                                                                                                                      | O grupo de medicamentos (cProdANVISA, vPMC) ainda não é suportado pela engineAPI.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| `infAdProd`, `gta`, `guiatransitoanimal`                                                                                                                                                          | A informação adicional por item (infAdProd), onde entra a Guia de Trânsito Animal, ainda não é suportada pela engineAPI. Sem ela a SEFAZ rejeita transporte de animal vivo com cStat 836.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| `icms20`, `icms40`, `icms41`, `icms50`, `icms90`                                                                                                                                                  | Os campos do benefício fiscal de ICMS (modBC, pRedBC, o Fundo de Combate à Pobreza em vBCFCP/pFCP/vFCP e a desoneração em vICMSDeson/motDesICMS/indDeduzDeson) ficam dentro de `items[].icms`, acompanhando `icms.cst` com o código do benefício (20 = redução de base, 40 = isenta, 41 = não tributada, 50 = suspensão, 90 = outras), e valem para emissor em Regime Normal (crt 3) ou no Simples com excesso de sublimite (crt 2). A base de cálculo, a alíquota e o valor do ICMS próprio continuam em `icms.baseCalculo`, `icms.aliquota` e `icms.valor`. Na NFC-e (modelo 65) o leiaute só admite os códigos 20, 40 e 41.                                                                                                                                                                                                                   |
| `vICMSDif`, `pDif`, `vICMSOp`, `cBenefRBC`, `pFCPDif`, `vFCPDif`, `vFCPEfet`, `icms51`                                                                                                            | Os campos do diferimento de ICMS (vICMSOp, pDif, vICMSDif, cBenefRBC e o Fundo de Combate à Pobreza diferido em pFCPDif/vFCPDif/vFCPEfet) ficam dentro de `items[].icms`, acompanhando `icms.cst` "51", e existem só na NF-e (modelo 55): o leiaute da NFC-e tem lista fechada de códigos de situação tributária e não admite o diferimento. Emita uma NF-e para essa operação.                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| `icms10`, `icms30`, `icms70`, `modBCST`, `pMVAST`, `pRedBCST`, `vBCST`, `pICMSST`, `vicmsst`, `vBCFCPST`, `pFCPST`, `vFCPST`                                                                      | Os campos da substituição tributária cobrada NESTA operação (modBCST, pMVAST, pRedBCST, vBCST, pICMSST e o FCP-ST em vBCFCPST/pFCPST/vFCPST) existem só na NF-e (modelo 55), dentro de `items[].icms`, acompanhando `icms.cst` "10" (tributada com ST), "30" (isenta ou não tributada com ST) ou "70" (redução de base com ST), com emissor em Regime Normal (crt 3) ou no Simples com excesso de sublimite (crt 2). Na NFC-e (modelo 65) esse grupo não é suportado pela engineAPI (o leiaute não admite esses códigos de situação tributária nesse documento): emita uma NF-e para a operação com ST. O ICMS PRÓPRIO (modBC, pRedBC, vBC, pICMS, vICMS) e o FCP próprio (vBCFCP, pFCP, vFCP) não são exclusivos da substituição: os mesmos campos servem aos códigos de benefício fiscal (20, 51 e 90), e nos códigos 20 e 41 também na NFC-e. |
| `vICMSSTDeson`, `motDesICMSST`                                                                                                                                                                    | A desoneração do ICMS (vICMSDeson, motDesICMS, indDeduzDeson) fica dentro de `items[].icms`, acompanhando `icms.cst` "20", "40", "41", "50" ou "90", numa NF-e (modelo 55) ou, para os códigos 20, 40 e 41, também numa NFC-e (modelo 65). O bloco vai INTEIRO: o indicador de dedução é obrigatório porque é ele que decide o total da nota. No CST "30" a engineAPI ainda não escreve a desoneração, e a desoneração da substituição tributária (vICMSSTDeson, motDesICMSST) também não: o valor interfere no total do documento por uma regra que não está fundamentada em fonte oficial conclusiva, e recusar vale mais que transmitir um total possivelmente errado.                                                                                                                                                                        |
| `ICMSPart`, `ICMSST`, `UFST`, `pBCOp`, `IEST`, `vBCSTDest`, `vICMSSTDest`                                                                                                                         | A partilha do ICMS entre a UF de origem e a de destino (grupo ICMSPart, com UFST e pBCOp), o repasse de ICMS-ST em operação interestadual com combustível (grupo ICMSST, com vBCSTDest e vICMSSTDest) e a inscrição estadual de substituto tributário do emitente (IEST) ainda não são suportados pela engineAPI. A substituição tributária comum tem caminho na NF-e: `icms.cst` "10", "30" ou "70" para o imposto cobrado nesta operação, e "60" para a mercadoria que já veio com ST retida pelo fornecedor.                                                                                                                                                                                                                                                                                                                                  |
| `DI`, `adi`, `II`, `vDespAdu`, `vIOF`                                                                                                                                                             | O grupo de importação (DI e adições, mais o imposto de importação: II, vDespAdu, vIOF do item) ainda não é suportado pela engineAPI.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| `detExport`, `exporta`                                                                                                                                                                            | Os grupos de exportação (exporta, detExport) ainda não são suportados pela engineAPI.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| `cobr`, `fat`, `dup`, `nDup`, `dVenc`, `vDup`, `duplicata`                                                                                                                                        | Cobrança (fatura + duplicatas) é suportada na NF-e, mas com outro nome: o grupo é `cobranca` na raiz do payload (`cobranca.fatura`: numero, valorOriginal, valorDesconto, valorLiquido; `cobranca.duplicatas[]`: numero, vencimento, valor). `cobr`, `fat`, `dup`, `nDup`, `dVenc` e `vDup` são nomes do XML do leiaute; no corpo da requisição eles vão dentro de `cobranca`. Na NFC-e o grupo não é suportado (422 COBRANCA\_NAO\_SUPORTADA\_NFCE): é venda com pagamento imediato ao consumidor final.                                                                                                                                                                                                                                                                                                                                        |
| `vFrete`, `vSeg`, `vOutro`                                                                                                                                                                        | Frete, seguro e outras despesas são suportados, mas com outro nome: `vFrete` é `items[].valorFrete`, `vSeg` é `items[].valorSeguro` e `vOutro` é `items[].outrasDespesas`. `vFrete`/`vSeg`/`vOutro` são nomes do XML do leiaute; no corpo da requisição eles vão com o nome do contrato.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `uTrib`, `qTrib`, `vUnTrib`                                                                                                                                                                       | A unidade tributável do item (a segunda unidade: vender em caixa e tributar por unidade ou por quilo) é suportada, mas com outro nome: `uTrib` é `items[].unidadeTributavel`, `qTrib` é `items[].quantidadeTributavel` e `vUnTrib` é `items[].valorUnitarioTributavel`. `uTrib`/`qTrib`/`vUnTrib` são nomes do XML do leiaute. Os três vão JUNTOS, e `quantidadeTributavel × valorUnitarioTributavel` tem que dar o mesmo valor de produto que `quantidade × valorUnitario` (senão 422 UNIDADE\_TRIBUTAVEL\_INVALIDA). Omitidos, o documento repete a unidade comercial nas duas, como sempre fez.                                                                                                                                                                                                                                               |
| `infIntermed`, `intermediador`, `idCadIntTran`                                                                                                                                                    | O grupo infIntermed (identificação do intermediador/marketplace da venda: CNPJ e idCadIntTran) ainda não é suportado pela engineAPI. Venda por marketplace que a SEFAZ exige identificar não pode ser emitida com essa informação por enquanto.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| `autXML`, `pessoasautorizadas`                                                                                                                                                                    | O grupo autXML (CNPJ/CPF de terceiros autorizados a baixar o XML da nota pelo portal da SEFAZ, ex.: contador ou parceiro logístico) ainda não é suportado pela engineAPI.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| `infRespTec`, `responsaveltecnico`                                                                                                                                                                | O grupo infRespTec (dados do responsável técnico pelo sistema emissor: CNPJ, contato, e-mail, telefone, hash de idCSRT) ainda não é suportado pela engineAPI.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| `entrega`, `retirada`, `localentrega`, `localretirada`                                                                                                                                            | Os grupos de entrega e retirada (endereço de entrega/retirada diferente do destinatário/emitente, com CNPJ/CPF próprio) ainda não são suportados pela engineAPI. O documento sai só com o endereço de `destinatario`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| `compra`, `xNEmp`, `xPed`, `nItemPed`                                                                                                                                                             | O grupo compra (xNEmp, xPed, nItemPed: número do empenho, do pedido de compra e do item do pedido no ERP do comprador) ainda não é suportado pela engineAPI.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| `dPag`                                                                                                                                                                                            | dPag (data do pagamento) ainda não é suportado pela engineAPI. O contrato aceita hoje, em `pagamentos`, `forma`, `valor`, `indicador` (só NF-e) e o grupo `cartao`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| `tBand`, `cAut`, `card`, `cnpjcredenciadora`, `cnpjreceb`, `idtermpag`                                                                                                                            | O grupo de cartão/PIX do pagamento é suportado, mas com outro nome: o grupo é `pagamentos[].cartao` (obrigatório: tpIntegra; opcionais: cnpjInstituicao, bandeira, autorizacao, cnpjRecebedor, idTerminal). `card`, `tBand`, `cAut`, `tpIntegra` e o CNPJ da credenciadora soltos são nomes do XML do leiaute.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| `ISSQN`, `vissqn`, `clistserv`                                                                                                                                                                    | O grupo ISSQN do item (prestação de serviço sujeita a ISS dentro de um documento de mercadoria, CFOP misto) ainda não é suportado pela engineAPI. Serviço puro tem NFS-e própria; mercadoria com serviço embutido não pode ser emitida com essa tributação combinada por enquanto.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| `pisSt`, `cofinsSt`                                                                                                                                                                               | pisSt e cofinsSt (substituição tributária de PIS/COFINS, retida por outro contribuinte na cadeia) ainda não são suportados pela engineAPI. O contrato aceita PIS e COFINS próprios (grupos `pis` e `cofins` do item); a parcela retida por substituição não tem campo.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| `obsCont`, `obsFisco`                                                                                                                                                                             | obsCont e obsFisco (observações ESTRUTURADAS em blocos nomeados, xCampo/xTexto) ainda não são suportados pela engineAPI. Existe o equivalente em texto livre: `informacoesComplementares` (um obsCont único) e `informacoesFisco` (um obsFisco único); use um desses quando o conteúdo cabe em texto corrido: bloco nomeado estruturado ainda não tem campo.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| `dhSaiEnt`, `tpImp`                                                                                                                                                                               | dhSaiEnt (data/hora de saída ou entrada da mercadoria) e tpImp (formato de impressão do DANFE: retrato, paisagem, NFC-e ou sem impressão) ainda não são suportados pela engineAPI.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| `IS`, `ISTot`, `cstis`, `cclasstribis`, `vbcis`, `pis_seletivo`, `pisespec`, `vis`, `impostoseletivo`                                                                                             | O Imposto Seletivo (grupo `IS` do item e `ISTot` do total, criado pela Reforma Tributária) não é suportado pela engineAPI: não há campo no contrato e o motor não escreve o grupo no documento. Não existe nome alternativo, porque é ausência de funcionalidade e não de tradução.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| `retTrib`, `vretpis`, `vretcofins`, `vretcsll`, `vbcirrf`, `virrf`, `vbcretprev`, `vretprev`                                                                                                      | As retenções federais na NF-e (grupo `retTrib`: IRRF, CSLL, INSS, PIS e COFINS retidos) não são suportadas pela engineAPI. Atenção ao caminho: na NFS-e as retenções ficam dentro de `retencoes` e funcionam; esta recusa vale só para a NF-e e a NFC-e, onde o grupo do leiaute não tem correspondência no contrato.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| `vTotTrib`                                                                                                                                                                                        | O valor aproximado dos tributos da Lei da Transparência (Lei 12.741/2012, `vTotTrib` no item e no total) não é suportado na NF-e nem na NFC-e. Quem precisa exibir o valor ao consumidor hoje escreve o texto da lei em `informacoesComplementares`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| `gibscbsmono`, `gdevtrib`, `gtribregular`, `gtribcompragov`, `gcredpres`, `gcredpresif`, `gtransfcred`, `gajustecompet`, `gestornocred`                                                           | Este grupo do IBS/CBS não é suportado pela engineAPI. O que existe hoje é o núcleo do `ibsCbs` (CST, classificação tributária e os valores de UF e município); os grupos de regime específico, devolução de tributo, crédito presumido, transferência de crédito, ajuste de competitividade, compra governamental e estorno de crédito seguem fora do contrato.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| `indPag`, `indicador`                                                                                                                                                                             | indPag: na NFC-e o indicador de pagamento ainda não é suportado; na NF-e use `pagamentos[].indicador`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
