Skip to main content
Esta página lista exatamente o que a engineAPI aceita hoje no payload de emissão de NFSe, nem mais, nem menos, com a tag do leiaute de cada campo onde ela já foi catalogada. A NFSe tem provider por município (ABRASF) ou Padrão Nacional (SEFIN/ADN, bloco dpsNacional): o formato aceito é o mesmo nos dois, mas cada provider usa um subconjunto. Com resolverTributacao: true (Cérebro Fiscal), campos da DPS ausentes são preenchidos pelo cadastro do emissor; campo obrigatório sem fonte devolve 422 com camposNaoResolvidos; ver Cérebro Fiscal. Para empresa do Simples, dpsNacional.pTotTribSN enviado na nota tem prioridade; sem ele, o cadastro pode informar pTotTribSNPadrao e seu mês de referência pTotTribSNCompetencia (AAAA-MM). Percentual de mês anterior, futuro ou sem mês registrado não bloqueia a emissão, mas devolve um aviso para confirmar o valor com o contador. O bloco ibsCbs (Reforma Tributária) é passthrough puro: nada nele é resolvido pelo Cérebro Fiscal. Esta página descreve o contrato de entrada, não a cobertura fiscal completa do leiaute oficial. servico.valorServicos e os demais valores monetários TSDec15V2 aceitam até 15 dígitos inteiros e 2 casas decimais: excesso de largura ou fração de centavo devolve 400 antes da emissão. Ver Erros e respostas. Leiaute: versão 1.01 · Contrato revisado em: 2026-08-15 75 campos documentados abaixo (contagem recursiva, incluindo objetos aninhados e itens de array).
  1. Identificação
  2. Emitente
  3. Destinatário
  4. Itens
  5. Totais (sem campo no contrato hoje, ver nota)
  6. Transporte (sem campo no contrato hoje, ver nota)
  7. Cobrança (sem campo no contrato hoje, ver nota)
  8. Pagamento (sem campo no contrato hoje, ver nota)
  9. Informações adicionais
  10. Tributação (Reforma e retenções)

Identificação

object
Tag do leiaute: sem tag própria no XML · Obrigatoriedade do leiaute: não é campo do leiaute (informativo/de compatibilidade)Nota do leiaute: Grupo do modelo municipal antigo. A DPS não possui contêiner de RPS porque a própria declaração é o documento de origem.Fonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCInfDPS (sem grupo de RPS no leiaute nacional).
string
Tamanho: Até 5 dígitos numéricos (TSSerieDPS) · Tag do leiaute: serie (grupo infDPS) · Obrigatoriedade do leiaute: obrigatório no leiaute · Preenche: você, na requisiçãoFonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCInfDPS/serie (TSSerieDPS). Ausente no payload, a engineAPI usa a série 1.
object
Tag do leiaute: sem tag própria no XML · Obrigatoriedade do leiaute: não é campo do leiaute (informativo/de compatibilidade)Nota do leiaute: Grupo lógico da API que organiza os campos fiscais do padrão nacional; no XML esses campos ficam distribuídos em prest/regTrib, serv/cServ e valores/trib.Fonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCInfDPS (sem elemento dpsNacional; os campos ficam em grupos distintos).
integer
Tag do leiaute: sem tag própria no XML · Obrigatoriedade do leiaute: não é campo do leiaute (informativo/de compatibilidade) · Preenche: você, na requisiçãoNota do leiaute: Conceito do modelo municipal. No Padrão Nacional a natureza da operação é expressa pela tributação do ISSQN (dpsNacional.tribISSQN) e pelo local da prestação. Campo aceito por compatibilidade e não escrito no documento.Fonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): não há elemento de natureza da operação em TCInfDPS.
integer
Tag do leiaute: sem tag própria no XML · Obrigatoriedade do leiaute: não é campo do leiaute (informativo/de compatibilidade) · Preenche: você, na requisiçãoNota do leiaute: Conceito do modelo municipal. No Padrão Nacional o regime vai no grupo prest/regTrib, alimentado por dpsNacional.opSimpNac, regApTribSN e regEspTrib. Campo aceito por compatibilidade e não escrito no documento.Fonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): o regime do prestador é TCRegTrib, com três elementos próprios.
boolean
Tag do leiaute: sem tag própria no XML · Obrigatoriedade do leiaute: não é campo do leiaute (informativo/de compatibilidade) · Preenche: você, na requisiçãoNota do leiaute: Booleano do modelo municipal. O Padrão Nacional exige um código de três valores (não optante, MEI, ME/EPP), informado em dpsNacional.opSimpNac. Campo aceito por compatibilidade e não escrito no documento.Fonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCRegTrib/opSimpNac é enumeração de três valores, não booleano.
integer
Tag do leiaute: sem tag própria no XML · Obrigatoriedade do leiaute: não é campo do leiaute (informativo/de compatibilidade) · Preenche: você, na requisiçãoNota do leiaute: Código do modelo municipal. No Padrão Nacional a exigibilidade se declara por dpsNacional.tribISSQN (tributável, imunidade, exportação, não incidência) e pelo grupo de exigibilidade suspensa, que este motor ainda não escreve. Campo aceito por compatibilidade e não escrito no documento.Fonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCTribMunicipal/tribISSQN e TCExigSuspensa.
string
Tamanho: AAAA-MM-DD (TSData) · Tag do leiaute: dCompet (grupo infDPS) · Obrigatoriedade do leiaute: obrigatório no leiaute · Preenche: você, na requisiçãopadrão: ^\d{4}-\d{2}-\d{2}$Fonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCInfDPS/dCompet (TSData), “data em que se iniciou a prestação do serviço”. Ausente no payload, vale a data de emissão.

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
required
Tamanho: mínimo 1 caractere(s) · Tag do leiaute: sem tag própria no XML · Obrigatoriedade do leiaute: não é campo do leiaute (informativo/de compatibilidade) · Preenche: você, na requisiçãoNota do leiaute: Identificador da empresa emissora na engineAPI, não é campo do leiaute. É ele que determina o grupo prest (CNPJ ou CPF e regime) e o município emissor, lidos do cadastro.Fonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): não há elemento correspondente. O grupo prest é montado a partir do cadastro da empresa.

Destinatário

Na NFS-e o destinatário do leiaute é o tomador do serviço.
object
required
Tag do leiaute: toma (grupo infDPS) · Obrigatoriedade do leiaute: condicional no leiauteCondição do leiaute: No XSD o grupo é opcional para cobrir operações sem tomador identificado, mas neste contrato ele é obrigatório.Nota do leiaute: Grupo, não campo: toma é o contêiner de identificação e endereço do tomador.Fonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCInfDPS/toma (TCInfoPessoa, minOccurs=“0”).

Itens

Na NFS-e o item do leiaute é o serviço prestado: cada DPS descreve um único serviço, não é um array como em NF-e/NFC-e.
object
required
Tag do leiaute: serv (grupo infDPS) · Obrigatoriedade do leiaute: obrigatório no leiauteNota do leiaute: Grupo, não campo: serv é o contêiner dos dados do serviço.Fonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCInfDPS/serv (TCServ).

Totais

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

Transporte

NFS-e (prestação de serviço) não tem grupo de transporte no leiaute.

Cobrança

NFS-e não tem grupo de cobrança/fatura no contrato hoje.

Pagamento

NFS-e não tem grupo de pagamento no contrato hoje: a cobrança do serviço é tratada fora da emissão fiscal.

Informações adicionais

string
Tamanho: 1 a 2000 caracteres (TSDescInfCompl). Diferente da discriminação do serviço, este campo aceita apenas caracteres latinos básicos (até U+00FF): travessão, aspas curvas, reticências e emoji são recusados com 400. Quebra de linha, tabulação e espaço nas bordas são convertidos em espaço simples na emissão. · Tag do leiaute: xInfComp (grupo infDPS/serv/infoCompl) · Obrigatoriedade do leiaute: opcional no leiaute · Preenche: você, na requisiçãoInformações complementares da nota (até 2000 caracteres). Vai para serv/infoCompl/xInfComp na DPS. Aceita apenas caracteres latinos básicos: travessão, aspas curvas, reticências e emoji são recusados com 400. Quebra de linha e tabulação viram espaço na emissãoFonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCInfoCompl/xInfComp (TSDescInfCompl, 1 a 2000, derivado de TSString, cujo padrão oficial não admite quebra de linha nem caractere acima de U+00FF).

Tributação (Reforma e retenções)

Fora da taxonomia clássica do leiaute NF-e/NFC-e: ibsCbs é o grupo da Reforma Tributária (passthrough puro, o Cérebro Fiscal não resolve nada dele), retencoes são as retenções de ISS da prestação e resolverTributacao ativa a emissão assistida; ver guia do Cérebro Fiscal.
object
Tag do leiaute: IBSCBS (grupo infDPS) · Obrigatoriedade do leiaute: opcional no leiauteCondição do leiaute: Opcional no leiaute: o grupo só é emitido quando a operação declara IBS/CBS no padrão RTC.Nota do leiaute: Grupo, não campo: IBSCBS é o contêiner do bloco da Reforma.Fonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCInfDPS/IBSCBS (TCRTCInfoIBSCBS, minOccurs=“0”).
object
Tag do leiaute: sem tag própria no XML · Obrigatoriedade do leiaute: não é campo do leiaute (informativo/de compatibilidade)Nota do leiaute: Grupo lógico da API para retenções. No XML da DPS os campos ficam em valores/trib/tribMun e valores/trib/tribFed.Fonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCInfoValores/trib (sem elemento retencoes; os campos ficam em tribMun e tribFed).
boolean
Tag do leiaute: sem tag própria no XML · Obrigatoriedade do leiaute: não é campo do leiaute (informativo/de compatibilidade) · Preenche: você, na requisiçãoNota do leiaute: Chave da engineAPI que liga a emissão assistida pelo Cérebro Fiscal. Não é campo do leiaute: muda quem preenche os códigos fiscais, não o conteúdo do documento.Fonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): não há elemento correspondente.

Í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 no contrato, com ressalva do leiaute

  • rps.numero: O Padrão Nacional não tem RPS: a própria DPS é o documento de origem, e o número dela é alocado pela engineAPI por empresa e série. Enviar este campo na emissão nacional é recusado com 422, em vez de gerar uma nota sem o dado. Guarde a correspondência com o seu RPS pelo número da DPS devolvido na emissão.
  • rps.serie: Série do RPS do modelo municipal, sem equivalente no Padrão Nacional. A série que vai para a DPS é o campo serie do topo do payload. Enviar este campo na emissão nacional é recusado com 422.
  • rps.tipo: Tipo de RPS do modelo municipal, sem equivalente no Padrão Nacional. Enviar este campo na emissão nacional é recusado com 422.
  • rps: Grupo do modelo municipal antigo. A DPS não possui contêiner de RPS porque a própria declaração é o documento de origem.
  • dpsNacional: Grupo lógico da API que organiza os campos fiscais do padrão nacional; no XML esses campos ficam distribuídos em prest/regTrib, serv/cServ e valores/trib.
  • naturezaOperacao: Conceito do modelo municipal. No Padrão Nacional a natureza da operação é expressa pela tributação do ISSQN (dpsNacional.tribISSQN) e pelo local da prestação. Campo aceito por compatibilidade e não escrito no documento.
  • regimeTributacao: Conceito do modelo municipal. No Padrão Nacional o regime vai no grupo prest/regTrib, alimentado por dpsNacional.opSimpNac, regApTribSN e regEspTrib. Campo aceito por compatibilidade e não escrito no documento.
  • optanteSimples: Booleano do modelo municipal. O Padrão Nacional exige um código de três valores (não optante, MEI, ME/EPP), informado em dpsNacional.opSimpNac. Campo aceito por compatibilidade e não escrito no documento.
  • exigibilidadeISS: Código do modelo municipal. No Padrão Nacional a exigibilidade se declara por dpsNacional.tribISSQN (tributável, imunidade, exportação, não incidência) e pelo grupo de exigibilidade suspensa, que este motor ainda não escreve. Campo aceito por compatibilidade e não escrito no documento.
  • issuerId: Identificador da empresa emissora na engineAPI, não é campo do leiaute. É ele que determina o grupo prest (CNPJ ou CPF e regime) e o município emissor, lidos do cadastro.
  • tomador.endereco.uf: O endereço nacional da DPS tem apenas código do município e CEP: a UF é deduzida do código IBGE pelo sistema nacional. Campo aceito por compatibilidade e não escrito no documento.
  • tomador.endereco: Grupo, não campo: end é o contêiner do endereço do tomador.
  • tomador: Grupo, não campo: toma é o contêiner de identificação e endereço do tomador.
  • servico.itemListaServico: O Padrão Nacional identifica o serviço pelo código de tributação nacional de 6 dígitos (dpsNacional.cTribNac), não pelo item da lista no formato do modelo municipal. Este campo é a entrada do Cérebro Fiscal, que resolve o cTribNac quando resolverTributacao é true, mas não vira tag na DPS.
  • servico.codigoCnae: O leiaute da DPS não tem campo de CNAE. Campo aceito por compatibilidade com o modelo municipal e não escrito no documento.
  • servico: Grupo, não campo: serv é o contêiner dos dados do serviço.
  • ibsCbs.gTribRegular: Grupo, não campo: gTribRegular é o contêiner dos campos CSTReg e cClassTribReg.
  • ibsCbs.gDif: Grupo, não campo: gDif é o contêiner dos três percentuais.
  • ibsCbs: Grupo, não campo: IBSCBS é o contêiner do bloco da Reforma.
  • retencoes.cofins: A DPS não tem campo para o valor de COFINS retida. O vCofins do leiaute é o débito de apuração própria do prestador e fica fora do total de retenções da NFS-e. Valor diferente de zero recusa com 422 RETENCAO_SEM_CAMPO_NO_LEIAUTE: a retenção se declara pelo indicador dpsNacional.tpRetPisCofins.
  • retencoes.pis: A DPS não tem campo para o valor de PIS retido. O vPis do leiaute é o débito de apuração própria do prestador e fica fora do total de retenções da NFS-e. Valor diferente de zero recusa com 422 RETENCAO_SEM_CAMPO_NO_LEIAUTE, nunca é descartado em silêncio: a retenção se declara pelo indicador dpsNacional.tpRetPisCofins.
  • retencoes.outrasRetencoes: A DPS só comporta valor retido de contribuição previdenciária, IRRF e CSLL. Não existe campo de outras retenções: valor diferente de zero recusa com 422 RETENCAO_SEM_CAMPO_NO_LEIAUTE.
  • retencoes: Grupo lógico da API para retenções. No XML da DPS os campos ficam em valores/trib/tribMun e valores/trib/tribFed.
  • resolverTributacao: Chave da engineAPI que liga a emissão assistida pelo Cérebro Fiscal. Não é campo do leiaute: muda quem preenche os códigos fiscais, não o conteúdo do documento.

Não suportados hoje (fora do contrato)