Referência de campos: NFCe
Todo campo do payload de emissão de NFCe (POST /v1/nfce): tipo, obrigatoriedade e condição de uso.
Referência de campos: NFCe
Esta página lista exatamente o que a engineAPI aceita hoje no payload de emissão
de NFCe, nem mais, nem menos. 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. Esta página descreve o contrato de entrada, não a cobertura fiscal completa do leiaute oficial.
69 campos documentados abaixo (contagem recursiva, incluindo objetos aninhados e itens de array).
Tributação assistida (Cérebro Fiscal)
Campos que ativam ou compõem a emissão assistida. Com resolverTributacao: true, a engineAPI resolve tributos automaticamente para itens sem tributação manual. Ver guia do Cérebro Fiscal. Os mesmos campos abaixo também aparecem em contexto, no grupo estrutural onde o schema os declara.
resolverTributacao: booleano, opcional. 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
items[].ibsCbs (Cérebro Fiscal)
cst: string, opcional. Código de Situação Tributária do IBS/CBS (Reforma Tributária). Ausente = "000" (padrão:^\d{1,3}$)cClassTrib: string, opcional. Código de Classificação Tributária do IBS/CBS. Ausente = "000001" (tributação integral) (padrão:^\d{1,6}$)vBC: número decimal, opcional. Base de cálculo do IBS/CBS em R$. Ausente = vProd − desconto do item (LC 214/2025 art. 12 § 2º III: descontos incondicionais não integram a base) (mínimo 0)ibsUf: objeto (ver seção abaixo), obrigatório. Componente estadual do IBS (Imposto sobre Bens e Serviços) (detalhado emitems[].ibsCbs.ibsUf, abaixo)ibsMun: objeto (ver seção abaixo), obrigatório. Componente municipal do IBS (detalhado emitems[].ibsCbs.ibsMun, abaixo)vIbs: número decimal, opcional. Valor total do IBS em R$ (UF + Município). Ausente = vIbsUf + vIbsMun (mínimo 0)cbs: objeto (ver seção abaixo), obrigatório. CBS (Contribuição sobre Bens e Serviços, componente federal) (detalhado emitems[].ibsCbs.cbs, abaixo)
items[].ibsCbs.ibsUf (Cérebro Fiscal)
p: número decimal, obrigatório. 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 (mínimo 0)pNominal: número decimal, opcional. 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) (mínimo 0)pRedAliq: número decimal, opcional. 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 (mínimo 0; máximo 100)v: número decimal, opcional. Valor do componente em R$. Ausente = calculado como p × vBC (mínimo 0)
items[].ibsCbs.ibsMun (Cérebro Fiscal)
p: número decimal, obrigatório. 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 (mínimo 0)pNominal: número decimal, opcional. 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) (mínimo 0)pRedAliq: número decimal, opcional. 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 (mínimo 0; máximo 100)v: número decimal, opcional. Valor do componente em R$. Ausente = calculado como p × vBC (mínimo 0)
items[].ibsCbs.cbs (Cérebro Fiscal)
p: número decimal, obrigatório. 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 (mínimo 0)pNominal: número decimal, opcional. 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) (mínimo 0)pRedAliq: número decimal, opcional. 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 (mínimo 0; máximo 100)v: número decimal, opcional. Valor do componente em R$. Ausente = calculado como p × vBC (mínimo 0)
Campos de nível superior
issuerId: string (UUID), opcional. 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)$)serie: número decimal, opcional. Série da NFCe. Ausente = série padrão do emissornumero: número decimal, opcional. Número da NFCe (passthrough). Ausente = alocado automaticamente pela engineAPIdestCPF: string, opcional. CPF do consumidor final, só dígitos. Ausente = venda sem identificaçãodestNome: string, opcional. Nome do consumidor final. Ausente = "CONSUMIDOR FINAL"items: array de objeto (ver seção abaixo), obrigatório. Itens da nota (mínimo 1) (detalhado emitems[], abaixo)pagamentos: array de objeto (ver seção abaixo), obrigatório. Formas de pagamento (mínimo 1). Atenção: o campo é "pagamentos" (array), não "pagamento" (detalhado empagamentos[], abaixo)troco: número decimal, opcional. Valor do troco em R$, para venda com pagamento em dinheiroinformacoesComplementares: string, opcional. Informações complementares de interesse do contribuinte, impressas no cupomresolverTributacao: booleano, opcional. 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
items[]
codigo: string, obrigatório. Código interno do produto (seu SKU) (mínimo 1 caractere(s))descricao: string, obrigatório. Descrição do produto (mínimo 1 caractere(s))ean: string, opcional. Código de barras EAN/GTIN do produto. Ausente = "SEM GTIN"ncm: string, obrigatório. Nomenclatura Comum do Mercosul, 8 dígitos exatos (mínimo 8 caractere(s); máximo 8 caractere(s))cest: string, opcional. 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_INVALIDOcfop: string, obrigatório. Código Fiscal de Operações e Prestações (predominantemente estadual, ex.: "5102") (mínimo 1 caractere(s))unidade: string, obrigatório. Unidade comercial: "UN", "KG", "MT", "CX", etc. (mínimo 1 caractere(s))quantidade: número decimal, obrigatório. Quantidade vendida (mínimo 0.0001) (mínimo 0.0001)valorUnitario: número decimal, obrigatório. Valor unitário do produto em R$ (mínimo 0.01) (mínimo 0.01)valorTotal: número decimal, opcional. Redundante: sempre recalculado como quantidade × valorUnitario. Se enviado e divergente, 400desconto: número decimal, opcional. 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 (mínimo 0)icms: objeto (ver seção abaixo), opcional. Tributação de ICMS do item (obrigatório de fato só sem resolverTributacao) (detalhado emitems[].icms, abaixo)pis: objeto (ver seção abaixo), opcional. Tributação de PIS do item (detalhado emitems[].pis, abaixo)cofins: objeto (ver seção abaixo), opcional. Tributação de COFINS do item (detalhado emitems[].cofins, abaixo)ipi: objeto (ver seção abaixo), opcional. 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 (detalhado emitems[].ipi, abaixo)ibsCbs: objeto (ver seção abaixo), opcional. 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) (detalhado emitems[].ibsCbs, abaixo)
items[].icms
origem: número inteiro, opcional. Origem da mercadoria: 0=nacional, 1=estrangeira (importação direta), 2=estrangeira (mercado interno). Ausente = 0csosn: string, opcional. Código de Situação da Operação do Simples Nacional, ex.: "102" tributada pelo Simples sem crédito, "400" não tributadacst: string, opcional. Código de Situação Tributária do ICMS (Lucro Real/Presumido), ex.: "00" tributada integralmentealiquota: número decimal, opcional. Alíquota do ICMS em % (só com cst, regime CST)baseCalculo: número decimal, opcional. Base de cálculo do ICMS em R$ (só com cst, regime CST)valor: número decimal, opcional. Valor do ICMS em R$ (só com cst, regime CST)baseCalculoST: número decimal, opcional. Base de cálculo do ICMS-ST em R$. NÃO SUPORTADO: informar ST devolve 422 ICMS_ST_NAO_SUPORTADOaliquotaST: número decimal, opcional. Alíquota do ICMS-ST em %. NÃO SUPORTADO: ver baseCalculoST (422 ICMS_ST_NAO_SUPORTADO)valorST: número decimal, opcional. Valor do ICMS-ST em R$. NÃO SUPORTADO: ver baseCalculoST (422 ICMS_ST_NAO_SUPORTADO)
items[].pis
cst: string, opcional. Código de Situação Tributária do PIS. "01"/"02" por alíquota (exige baseCalculo, aliquota e valor), "04"-"09" não tributado, outras operações: "49"-"56", "60"-"67", "70"-"75", "98" e "99". Ausente = "99" zeradobaseCalculo: número decimal, opcional. Base de cálculo do PIS em R$ (transmitida como vBC)aliquota: número decimal, opcional. Alíquota do PIS em % (transmitida como pPIS)valor: número decimal, opcional. Valor do PIS em R$ (transmitido como vPIS e somado no total)
items[].cofins
cst: string, opcional. Código de Situação Tributária da COFINS. Mesmas faixas do PIS. Ausente = "99" zeradobaseCalculo: número decimal, opcional. Base de cálculo da COFINS em R$ (transmitida como vBC)aliquota: número decimal, opcional. Alíquota da COFINS em % (transmitida como pCOFINS)valor: número decimal, opcional. Valor da COFINS em R$ (transmitido como vCOFINS e somado no total)
items[].ipi
cst: string, opcional. CST do IPI. NÃO SUPORTADO na NFC-e (422 IPI_NAO_SUPORTADO)baseCalculo: número decimal, opcional. NÃO SUPORTADO na NFC-ealiquota: número decimal, opcional. NÃO SUPORTADO na NFC-evalor: número decimal, opcional. NÃO SUPORTADO na NFC-ecEnq: string, opcional. NÃO SUPORTADO na NFC-e
items[].ibsCbs
cst: string, opcional. Código de Situação Tributária do IBS/CBS (Reforma Tributária). Ausente = "000" (padrão:^\d{1,3}$)cClassTrib: string, opcional. Código de Classificação Tributária do IBS/CBS. Ausente = "000001" (tributação integral) (padrão:^\d{1,6}$)vBC: número decimal, opcional. Base de cálculo do IBS/CBS em R$. Ausente = vProd − desconto do item (LC 214/2025 art. 12 § 2º III: descontos incondicionais não integram a base) (mínimo 0)ibsUf: objeto (ver seção abaixo), obrigatório. Componente estadual do IBS (Imposto sobre Bens e Serviços) (detalhado emitems[].ibsCbs.ibsUf, abaixo)ibsMun: objeto (ver seção abaixo), obrigatório. Componente municipal do IBS (detalhado emitems[].ibsCbs.ibsMun, abaixo)vIbs: número decimal, opcional. Valor total do IBS em R$ (UF + Município). Ausente = vIbsUf + vIbsMun (mínimo 0)cbs: objeto (ver seção abaixo), obrigatório. CBS (Contribuição sobre Bens e Serviços, componente federal) (detalhado emitems[].ibsCbs.cbs, abaixo)
items[].ibsCbs.ibsUf
p: número decimal, obrigatório. 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 (mínimo 0)pNominal: número decimal, opcional. 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) (mínimo 0)pRedAliq: número decimal, opcional. 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 (mínimo 0; máximo 100)v: número decimal, opcional. Valor do componente em R$. Ausente = calculado como p × vBC (mínimo 0)
items[].ibsCbs.ibsMun
p: número decimal, obrigatório. 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 (mínimo 0)pNominal: número decimal, opcional. 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) (mínimo 0)pRedAliq: número decimal, opcional. 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 (mínimo 0; máximo 100)v: número decimal, opcional. Valor do componente em R$. Ausente = calculado como p × vBC (mínimo 0)
items[].ibsCbs.cbs
p: número decimal, obrigatório. 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 (mínimo 0)pNominal: número decimal, opcional. 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) (mínimo 0)pRedAliq: número decimal, opcional. 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 (mínimo 0; máximo 100)v: número decimal, opcional. Valor do componente em R$. Ausente = calculado como p × vBC (mínimo 0)
pagamentos[]
forma: string, obrigatório. Código da forma de pagamento SEFAZ (ex.: "01" dinheiro, "03" cartão de crédito, "15" boleto) (mínimo 1 caractere(s))valor: número decimal, obrigatório. Valor pago nesta forma, em R$