Skip to main content
Esta página lista exatamente o que a engineAPI aceita hoje no payload de emissão de NFe, nem mais, nem menos, com a tag do leiaute de cada campo onde ela já foi catalogada. Alguns campos aceitos aqui ainda não têm efeito completo no documento fiscal final (ex.: os campos ANTIGOS de ICMS-ST, baseCalculoST/aliquotaST/valorST, hoje recusados com 422 ICMS_ST_NAO_SUPORTADO porque a substituição tributária passou a usar os nomes do leiaute; ver Erros e Rejeições); 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; os pesos 12v3 aceitam até 3 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. 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-17 206 campos documentados abaixo (contagem recursiva, incluindo objetos aninhados e itens de array).
  1. Identificação
  2. Documento referenciado
  3. Emitente
  4. Destinatário
  5. Itens
  6. Totais (sem campo no contrato hoje, ver nota)
  7. Transporte
  8. Cobrança
  9. Pagamento
  10. Informações adicionais
  11. Tributação assistida (Cérebro Fiscal)

Identificação

string
Tamanho: 1-60 · Tag do leiaute: natOp (grupo ide: Identificação da NF-e) · Obrigatoriedade do leiaute: obrigatório no leiaute · Preenche: você, na requisiçãoNatureza da operação, texto livre (ex.: “VENDA DE MERCADORIA”)Condição do leiaute: Texto livre. Ausente, a engineAPI escreve “Venda de Mercadoria”, porque o leiaute exige a tag preenchida.Fonte do leiaute: leiauteNFe_v4.00.xsd (PL_009p_NT2024_003_v103): TNFe/infNFe/ide/natOp
integer
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 engineAPISérie da NF-e. Ausente = série padrão do emissorCondiçã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)
integer
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 engineAPINúmero da NF-e (passthrough). Ausente = alocado automaticamente pela engineAPICondiçã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)
integer
Tamanho: 1 · Tag do leiaute: tpNF (grupo ide: Identificação da NF-e) · Obrigatoriedade do leiaute: obrigatório no leiaute · Preenche: você, na requisiçãoTipo de operação: 0=entrada, 1=saída. Padrão: saídaCondição do leiaute: Ausente = 1 (saída).Fonte do leiaute: leiauteNFe_v4.00.xsd (PL_009p_NT2024_003_v103): TNFe/infNFe/ide/tpNF
number
Tamanho: 1 · Tag do leiaute: idDest (grupo ide: Identificação da NF-e) · Obrigatoriedade do leiaute: obrigatório no leiaute · Preenche: derivado de outros campos (calculado)Identificador de local de destino: 1=interna, 2=interestadual, 3=exterior. Ausente: a API deriva do 1º dígito do CFOP dos itens (1/5=interna, 2/6=interestadual, 3/7=exterior). A UF do emissor vem do cadastro da empresa. Valor explícito vence sempre. Itens com CFOPs que derivam idDest diferentes recusam 422 CFOP_IDDEST_DIVERGENTE nomeando os códigosCondição do leiaute: Ausente: derivado do 1º dígito do CFOP dos itens (1/5=interna, 2/6=interestadual, 3/7=exterior). Valor explícito vence sempre. Itens com CFOPs que derivam idDest diferentes: 422 CFOP_IDDEST_DIVERGENTE. A UF do emissor vem do cadastro.Fonte do leiaute: leiauteNFe_v4.00.xsd (PL_009p_NT2024_003_v103): TNFe/infNFe/ide/idDest
integer
Tamanho: 1 · Tag do leiaute: indFinal (grupo ide: Identificação da NF-e) · Obrigatoriedade do leiaute: obrigatório no leiaute · Preenche: você, na requisiçãoIndica operação com consumidor final: 0=não, 1=sim. Ausente: o motor deriva 1 quando o destinatário é não contribuinte (indicadorIE=9 ou CPF), conforme NT 2016.002 da SEFAZ; nos demais casos vale 0. Informar 0 com destinatário não contribuinte recusa com 422 INDFINAL_INCOERENTE_COM_DESTINATARIO antes de numerarCondição do leiaute: Ausente = 0.Fonte do leiaute: leiauteNFe_v4.00.xsd (PL_009p_NT2024_003_v103): TNFe/infNFe/ide/indFinal
integer
Tamanho: 1 · Tag do leiaute: indPres (grupo ide: Identificação da NF-e) · Obrigatoriedade do leiaute: obrigatório no leiaute · Preenche: você, na requisiçãoIndicador de presença do comprador: 0=não se aplica, 1=presencial, 2=internet, 3=teleatendimento, etc.Condição do leiaute: Ausente = 1 (presencial).Fonte do leiaute: leiauteNFe_v4.00.xsd (PL_009p_NT2024_003_v103): TNFe/infNFe/ide/indPres
integer
Tamanho: 1 · Tag do leiaute: finNFe (grupo ide: Identificação da NF-e) · Obrigatoriedade do leiaute: obrigatório no leiaute · Preenche: você, na requisiçãoFinalidade da emissão: 1=normal, 2=complementar, 3=ajuste, 4=devolução, 5=nota de crédito, 6=nota de débito. Ausente = 1. As finalidades 2, 3 e 4 exigem “referenciadas” (a nota original): sem o grupo a SEFAZ rejeitaria a nota DEPOIS de consumir o número (cStat 254 na finalidade 2, cStat 321 na 4), então a API recusa com 422 FINALIDADE_SEM_NFREF antes de numerar. As finalidades 3 e 4 exigem ainda “pagamentos” com forma “90” (sem pagamento).Condição do leiaute: Ausente = 1 (normal). A engineAPI deriva desta lista a validação do contrato e recusa valores fora de 1 a 6 antes da numeração. As finalidades 2, 3 e 4 exigem o grupo de documento referenciado (campo referenciadas): sem ele a engineAPI recusa com 422 FINALIDADE_SEM_NFREF ANTES de numerar. É regra de validação de negócio da SEFAZ (tabela cStat), não constraint do XSD: sem a guarda, a SEFAZ rejeitaria a nota DEPOIS de consumir o número, com cStat 254 na finalidade 2 (complementar) e cStat 321 na finalidade 4 (devolução); a finalidade 3 (ajuste) não tem cStat dedicado confirmado. As finalidades 3 e 4 exigem ainda pagamentos com forma 90 (sem pagamento), regra YA02-04 do MOC.Fonte do leiaute: leiauteNFe_v4.00.xsd (PL_009p_NT2024_003_v103): TNFe/infNFe/ide/finNFe (TFinNFe)

Documento referenciado

Array na raiz do corpo, cada entrada com chaveAcesso (44 dígitos da nota original), que vira a tag do documento referenciado no leiaute. finNFe: 2 (complementar), 3 (ajuste) e 4 (devolução) exigem este campo; ver Erros e Rejeições.
object[]
Tag do leiaute: NFref (grupo ide: Identificação da NF-e) · Obrigatoriedade do leiaute: condicional no leiauteDocumentos fiscais referenciados (grupo NFref do leiaute, máximo 500). Obrigatório em finNFe 2 (complementar), 3 (ajuste) e 4 (devolução): é o que liga a nota nova à original. Em finNFe 2 vale exatamente umCondição do leiaute: Opcional no XSD (minOccurs 0), mas obrigatório por regra de negócio da SEFAZ nas finalidades 2 (complementar), 3 (ajuste) e 4 (devolução). Uma entrada do array vira um subgrupo NFref do leiaute, até 999. Cada chave entra uma única vez.Nota do leiaute: Grupo, não campo: NFref é o contêiner de um documento referenciado.Fonte do leiaute: leiauteNFe_v4.00.xsd (PL_009p_NT2024_003_v103): TNFe/infNFe/ide/NFref (minOccurs=“0” maxOccurs=“999”)

Emitente

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.
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çãoUUID 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)

Destinatário

object
required
Tag do leiaute: dest (grupo dest: Identificação do Destinatário) · Obrigatoriedade do leiaute: condicional no leiauteCondição do leiaute: Obrigatório na NF-e. O leiaute marca o grupo como opcional na estrutura porque o mesmo tipo descreve a NFC-e, em que a venda pode sair sem identificação do consumidor.Nota do leiaute: Grupo, não campo: dest é o contêiner dos dados de identificação do destinatário.Fonte do leiaute: leiauteNFe_v4.00.xsd (PL_009p_NT2024_003_v103): TNFe/infNFe/dest

Itens

object[]
required
Tag do leiaute: det (grupo I: Produtos e Serviços) · Obrigatoriedade do leiaute: obrigatório no leiauteItens da nota (mínimo 1). Atenção: o campo é “items”, não “itens”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”)

Totais

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

Transporte

object
Tag do leiaute: transp (grupo X: Informações do Transporte) · Obrigatoriedade do leiaute: obrigatório no leiauteDados de transporte. Se enviado, modFrete é obrigatórioCondição do leiaute: O grupo é SEMPRE emitido: sem transporte no payload, a engineAPI declara modalidade 9 (sem ocorrência de transporte) explicitamente, em vez de deixar o motor fiscal assumir o default 0 (frete por conta do emitente).Nota do leiaute: Grupo, não campo: transp é o contêiner da modalidade do frete, do transportador e dos volumes.Fonte do leiaute: leiauteNFe_v4.00.xsd (PL_009p_NT2024_003_v103): TNFe/infNFe/transp

Cobrança

object
Tag do leiaute: cobr (grupo Y: Cobrança) · Obrigatoriedade do leiaute: opcional no leiauteCobrança a prazo: fatura (numero, valorOriginal, valorDesconto, valorLiquido) sozinha, ou fatura + duplicatas[] (numero, vencimento, valor) juntas. O XSD aceita duplicatas sem fatura (irmãos, minOccurs=0); a API recusa essa combinação antes de numerar, pelas regras nacionais Y01-20 e Y10-10 (422 COBRANCA_INVALIDA). Informativo/financeiro: NÃO altera vNF nem pagamentos (quem fecha o total transmitido continua sendo pagamentos)Condição do leiaute: Grupo informativo/financeiro: não altera o total do documento nem substitui pagamentos. fat e dup são IRMÃOS no XSD, mas as regras nacionais Y01-20/Y10-10 do MOC exigem fat quando há dup: duplicata sem fatura é recusada com 422 (COBRANCA_INVALIDA) antes de numerar. Na emissão medida em GO o retorno observado foi 851.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

Pagamento

object[]
required
Tag do leiaute: pag (grupo pag: Informações de Pagamento) · Obrigatoriedade do leiaute: obrigatório no leiauteFormas 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”)
number
Tamanho: 13v2 · Tag do leiaute: vTroco (grupo pag: Informações de Pagamento) · Obrigatoriedade do leiaute: opcional no leiaute · Preenche: você, na requisiçãoValor 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)

Informações adicionais

string
Tamanho: 1-5000 · Tag do leiaute: infCpl (grupo infAdic: Informações Adicionais) · Obrigatoriedade do leiaute: opcional no leiaute · Preenche: você, na requisiçãoInformações complementares de interesse do contribuinte, impressas no DANFECondição do leiaute: Texto livre de interesse do contribuinte, IMPRESSO no documento auxiliar. Ausente, a engineAPI escreve o texto padrão “Nota Fiscal emitida via NFe Engine”, que sai impresso na nota; 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
string
Tamanho: 1-2000 · Tag do leiaute: infAdFisco (grupo infAdic: Informações Adicionais) · Obrigatoriedade do leiaute: opcional no leiaute · Preenche: você, na requisiçãoInformações adicionais de interesse do fiscoCondição do leiaute: Texto livre de interesse do fisco. Observação ESTRUTURADA (blocos nomeados obsFisco) ainda não é suportada.Fonte do leiaute: leiauteNFe_v4.00.xsd (PL_009p_NT2024_003_v103): TNFe/infNFe/infAdic/infAdFisco
object[]
Tag do leiaute: procRef (grupo infAdic: Informações Adicionais) · Obrigatoriedade do leiaute: opcional no leiauteProcessos ou atos concessórios referenciados (grupo procRef das informações adicionais do leiaute, máximo 100). É onde se declara o regime especial, o termo de acordo ou o convênio que ampara o benefício fiscal informado nos itensCondição do leiaute: Processos ou atos concessórios referenciados, até 100 no leiaute. É onde se declara o regime especial, o termo de acordo ou o convênio que ampara o benefício fiscal informado nos itens. Uma entrada do array vira um grupo procRef do documento.Fonte do leiaute: leiauteNFe_v4.00.xsd (PL_009p_NT2024_003_v103): TNFe/infNFe/infAdic/procRef (minOccurs=“0” maxOccurs=“100”)

Tributação assistida (Cérebro Fiscal)

Fora da taxonomia clássica do leiaute: resolverTributacao ativa a emissão assistida (com resolverTributacao: true, a engineAPI resolve o CSOSN e o grupo IBS/CBS de itens sem tributação manual; ver guia do Cérebro Fiscal). O grupo IBS/CBS por item (items[].ibsCbs) já aparece em contexto, dentro de Itens, acima.
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çãoAtiva 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.fiscalBrainEnabledNota 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)

Índice reverso: tag do leiaute → nosso campo

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

Estado dos campos do leiaute

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

Aceitos, mas com outro nome

Aceitos no contrato, com ressalva do leiaute

  • referenciadas: Grupo, não campo: NFref é o contêiner de um documento referenciado.
  • issuerId: 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.
  • destinatario.endereco: Grupo, não campo: enderDest é o contêiner do endereço.
  • destinatario: Grupo, não campo: dest é o contêiner dos dados de identificação do destinatário.
  • items[].icms.ufDestino: Grupo, não campo: ICMSUFDest é o contêiner da partilha e não carrega valor próprio. As tags estão nos campos de dentro.
  • 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: Grupo, não campo: o leiaute escolhe o subgrupo pelo CST informado, e é o subgrupo que carrega as tags.
  • items[].cofins: Grupo, não campo: o leiaute escolhe o subgrupo pelo CST informado, e é o subgrupo que carrega as tags.
  • 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: Grupo, não campo: o subgrupo é o contêiner da alíquota e do valor do componente.
  • items[].ibsCbs.ibsMun: Grupo, não campo: o subgrupo é o contêiner da alíquota e do valor do componente.
  • items[].ibsCbs.cbs: Grupo, não campo: o subgrupo é o contêiner da alíquota e do valor do componente.
  • items[].ibsCbs: Grupo, não campo: IBSCBS é o contêiner do CST, do cClassTrib e dos subgrupos de alíquota.
  • items[].combustivel: Grupo, não campo: comb é o contêiner do detalhamento específico de combustíveis.
  • 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).
  • transporte.transportadora: Grupo, não campo: transporta é o contêiner dos dados do transportador.
  • transporte.volumes: Grupo, não campo: vol é o contêiner de um volume transportado.
  • transporte: Grupo, não campo: transp é o contêiner da modalidade do frete, do transportador e dos volumes.
  • cobranca.fatura: Grupo, não campo: fat é o contêiner dos dados da fatura.
  • cobranca.duplicatas: Grupo, não campo: dup é o contêiner de uma parcela.
  • cobranca: Grupo, não campo: cobr é o contêiner da fatura e das duplicatas.
  • pagamentos[].cartao: Grupo, não campo: card é o contêiner dos dados do meio de pagamento eletrônico.
  • pagamentos: Grupo, não campo: pag é o contêiner das formas de pagamento e do troco.
  • resolverTributacao: 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)