Todo campo do payload de emissão de NFSe (POST /v1/nfse): tipo, tamanho, tag do leiaute e obrigatoriedade.
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).
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).
Tag do leiaute: sem tag própria no XML · Obrigatoriedade do leiaute: não é campo do leiaute (informativo/de compatibilidade) · Preenche: você, na requisiçãoNúmero do RPS. Só tem efeito na emissão pelo provedor municipal. Na emissão pelo Padrão Nacional o campo é recusado com 422 RPS_SEM_CAMPO_NO_PADRAO_NACIONAL, porque o leiaute da DPS não tem campo de RPSNota do leiaute: 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.Fonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCInfDPS não tem grupo de RPS. O número do documento é nDPS, sequencial controlado pela engineAPI.
Tag do leiaute: sem tag própria no XML · Obrigatoriedade do leiaute: não é campo do leiaute (informativo/de compatibilidade) · Preenche: você, na requisiçãoSérie do RPS. Só tem efeito na emissão pelo provedor municipal. Na emissão pelo Padrão Nacional o campo é recusado com 422 RPS_SEM_CAMPO_NO_PADRAO_NACIONAL, porque o leiaute da DPS não tem campo de RPSNota do leiaute: 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.Fonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCInfDPS não tem grupo de RPS. A série do documento é TCInfDPS/serie.
Tag do leiaute: sem tag própria no XML · Obrigatoriedade do leiaute: não é campo do leiaute (informativo/de compatibilidade) · Preenche: você, na requisiçãoTipo do RPS. Só tem efeito na emissão pelo provedor municipal. Na emissão pelo Padrão Nacional o campo é recusado com 422 RPS_SEM_CAMPO_NO_PADRAO_NACIONAL, porque o leiaute da DPS não tem campo de RPSNota do leiaute: Tipo de RPS do modelo municipal, sem equivalente no Padrão Nacional. Enviar este campo na emissão nacional é recusado com 422.Fonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCInfDPS não tem grupo de RPS.
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.
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).
Tamanho: 1 dígito (TSOpSimpNac) · Tag do leiaute:opSimpNac (grupo infDPS/prest/regTrib) · Obrigatoriedade do leiaute: obrigatório no leiaute · Preenche: preenchido automaticamente pela engineAPIFonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCRegTrib/opSimpNac (TSOpSimpNac). Com resolverTributacao igual a true, o Cérebro Fiscal preenche a partir do cadastro da empresa.
Tamanho: 1 dígito (TSRegimeApuracaoSimpNac) · Tag do leiaute:regApTribSN (grupo infDPS/prest/regTrib) · Obrigatoriedade do leiaute: condicional no leiaute · Preenche: você, na requisiçãoCondição do leiaute: Só para optante ME/EPP (opSimpNac igual a 3), para indicar em que regime os tributos federais e o municipal estão inseridos quando algum sublimite do Simples foi ultrapassado. MEI não leva o campo. Na engineAPI o campo é OBRIGATÓRIO NA REQUISIÇÃO quando a empresa está cadastrada com crt igual a 2 (Simples Nacional com excesso de sublimite): o crt confirma que a empresa é optante do Simples, mas sozinho não diz o regime de apuração, e não existe um padrão desse regime no cadastro da empresa. Sem o campo, a emissão é recusada com 422 e o código CRT2_SEM_REGIME_APURACAO, antes de qualquer transmissão e sem consumir número de DPS. Vale em QUALQUER forma de emissão, inclusive com resolverTributacao igual a true. Para crt igual a 1 (Simples) a engineAPI continua derivando o valor 1 do cadastro quando o campo é omitido.Fonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCRegTrib/regApTribSN (TSRegimeApuracaoSimpNac). A engineAPI só deriva o valor quando também derivou o opSimpNac E o cadastro traz a fonte do regime (crt igual a 1); no crt igual a 2 não há fonte e o campo tem de vir na requisição.
Tamanho: 1 dígito (TSRegEspTrib) · Tag do leiaute:regEspTrib (grupo infDPS/prest/regTrib) · Obrigatoriedade do leiaute: obrigatório no leiaute · Preenche: você, na requisiçãoFonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCRegTrib/regEspTrib (TSRegEspTrib), elemento obrigatório. Ausente no payload, a engineAPI escreve 0 (nenhum).
Tamanho: 6 dígitos: 2 do item da lista de serviços, 2 do subitem e 2 do desdobro nacional · Tag do leiaute:cTribNac (grupo infDPS/serv/cServ) · Obrigatoriedade do leiaute: obrigatório no leiaute · Preenche: preenchido automaticamente pela engineAPIFonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCCServ/cTribNac (TSCodTribNac). Com resolverTributacao igual a true, o Cérebro Fiscal resolve o código a partir do serviço padrão da empresa.
Tamanho: 3 dígitos numéricos (TCCodTribMun) · Tag do leiaute:cTribMun (grupo infDPS/serv/cServ) · Obrigatoriedade do leiaute: opcional no leiaute · Preenche: você, na requisiçãoCódigo de tributação municipal do ISSQN (3 dígitos). Vai para serv/cServ/cTribMun na DPS. Equivalente de baixo nível de servico.codigoTributacaoMunicipio: informar os dois com valores diferentes recusa com 422 CTRIBMUN_CONFLITOCondição do leiaute: Este campo e servico.codigoTributacaoMunicipio escrevem a MESMA tag. Informe um dos dois, ou os dois com o mesmo valor: valores diferentes são recusados com 422.Fonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCCServ/cTribMun (TCCodTribMun, 3 dígitos).
Tamanho: 1 dígito (TSTribISSQN) · Tag do leiaute:tribISSQN (grupo infDPS/valores/trib/tribMun) · Obrigatoriedade do leiaute: obrigatório no leiaute · Preenche: preenchido automaticamente pela engineAPIFonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCTribMunicipal/tribISSQN (TSTribISSQN). Com resolverTributacao igual a true, o Cérebro Fiscal preenche.
Tamanho: 1 dígito (TSTipoRetISSQN) · Tag do leiaute:tpRetISSQN (grupo infDPS/valores/trib/tribMun) · Obrigatoriedade do leiaute: obrigatório no leiaute · Preenche: derivado de outros campos (calculado)Tipo de retenção do ISSQN: 1 (não retido), 2 (retido pelo tomador) ou 3 (retido pelo intermediário). Equivalente de baixo nível de retencoes.issRetidoPor: informar os dois com valores diferentes recusa com 422 RETENCAO_ISS_CONFLITOFonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCTribMunicipal/tpRetISSQN (TSTipoRetISSQN), elemento obrigatório. A engineAPI reconcilia este campo com retencoes.issRetidoPor (valores diferentes recusam com 422 RETENCAO_ISS_CONFLITO) e escreve 1 quando nenhum dos dois vem.
Tamanho: 2 dígitos (TSTipoCST) · Tag do leiaute:CST (grupo infDPS/valores/trib/tribFed/piscofins) · Obrigatoriedade do leiaute: condicional no leiaute · Preenche: você, na requisiçãoCondição do leiaute: Obrigatório sempre que o grupo de PIS/COFINS for escrito, ou seja, sempre que houver indicador de retenção. Informar o indicador sem o CST recusa com 422 RETENCAO_PIS_COFINS_SEM_CST.Fonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCTribOutrosPisCofins/CST (TSTipoCST), elemento obrigatório do grupo.
Tamanho: 1 dígito (TSTipoRetPISCofins) · Tag do leiaute:tpRetPisCofins (grupo infDPS/valores/trib/tribFed/piscofins) · Obrigatoriedade do leiaute: opcional no leiaute · Preenche: você, na requisiçãoTipo de retenção do PIS/COFINS (enum TSTipoRetPISCofins, códigos 0 a 9; ex.: 1 = PIS/COFINS retidos, 3 = PIS/COFINS/CSLL retidos). É como se declara a retenção de PIS/COFINS, que não tem campo de valor na DPS. Exige dpsNacional.cstPisCofinsCondição do leiaute: É por este indicador que a retenção de PIS/COFINS se declara: o leiaute não tem campo para o valor retido desses tributos. Exige dpsNacional.cstPisCofins e é conferido contra retencoes.csll.Fonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCTribOutrosPisCofins/tpRetPisCofins (TSTipoRetPISCofins). O código vai como o integrador informou: a engineAPI nunca o infere.
Tamanho: Até 3 dígitos inteiros e 2 decimais (TSDec3V2) · Tag do leiaute:pTotTribSN (grupo infDPS/valores/trib/totTrib) · Obrigatoriedade do leiaute: condicional no leiaute · Preenche: preenchido automaticamente pela engineAPICondição do leiaute: O grupo de total de tributos exige exatamente uma das quatro opções do leiaute. Para optante ME/EPP (opSimpNac igual a 3) o sistema nacional recusa o indicador de omissão, então o percentual passa a ser obrigatório: sem ele no payload nem no cadastro da empresa, a emissão para antes de transmitir com 422. O valor enviado nesta requisição sempre tem precedência e segue sem alteração. Quando vier do cadastro, informe também pTotTribSNCompetencia (AAAA-MM): se o mês estiver anterior ao mês corrente em Brasília, futuro ou não estiver registrado, a nota é emitida e avisos[] pede a confirmação com o contador. Nos demais regimes, ausente, a engineAPI declara que não informa o valor estimado dos tributos.Fonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCTribTotal/pTotTribSN (em xs:choice com vTotTrib, pTotTrib e indTotTrib).
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.
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.
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.
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.
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.
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.
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.
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”).
Tamanho: 14 dígitos (CNPJ) ou 11 dígitos (CPF), só números · Tag do leiaute:CNPJ|CPF (grupo infDPS/toma) · Obrigatoriedade do leiaute: obrigatório no leiaute · Preenche: derivado de outros campos (calculado)Condição do leiaute: O leiaute escolhe uma das duas tags. A engineAPI classifica pelo comprimento do documento limpo: 14 dígitos vão em CNPJ, 11 em CPF.Fonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCInfoPessoa/CNPJ (TSCNPJ) ou TCInfoPessoa/CPF (TSCPF), em xs:choice com NIF/cNaoNIF.
Tamanho: 1 a 300 caracteres (TSNomeRazaoSocial) · Tag do leiaute:xNome (grupo infDPS/toma) · Obrigatoriedade do leiaute: obrigatório no leiaute · Preenche: você, na requisiçãoFonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCInfoPessoa/xNome (TSNomeRazaoSocial).
Tamanho: 1 a 80 caracteres (TSEmail) · Tag do leiaute:email (grupo infDPS/toma) · Obrigatoriedade do leiaute: opcional no leiaute · Preenche: você, na requisiçãoFonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCInfoPessoa/email (TSEmail).
Tamanho: 6 a 20 dígitos (TSTelefone), DDD mais número · Tag do leiaute:fone (grupo infDPS/toma) · Obrigatoriedade do leiaute: opcional no leiaute · Preenche: derivado de outros campos (calculado)Fonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCInfoPessoa/fone (TSTelefone). A engineAPI remove tudo que não é dígito antes de escrever.
Tamanho: 1 a 15 caracteres (TSInscMun) · Tag do leiaute:IM (grupo infDPS/toma) · Obrigatoriedade do leiaute: opcional no leiaute · Preenche: você, na requisiçãoInscrição municipal do tomador (até 15 caracteres). Vai para toma/IM na DPSFonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCInfoPessoa/IM (TSInscMun), escrito antes do nome do tomador, na ordem do grupo.
Tag do leiaute:end (grupo infDPS/toma) · Obrigatoriedade do leiaute: condicional no leiauteCondição do leiaute: No XSD o grupo é opcional dentro de toma, mas neste contrato o endereço do tomador é obrigatório.Nota do leiaute: Grupo, não campo: end é o contêiner do endereço do tomador.Fonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCInfoPessoa/end (TCEndereco, minOccurs=“0”).
Tamanho: 1 a 255 caracteres (TSLogradouro) · Tag do leiaute:xLgr (grupo infDPS/toma/end) · Obrigatoriedade do leiaute: obrigatório no leiaute · Preenche: você, na requisiçãoTexto do endereço (até 255 caracteres). Vai para a 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): TCEndereco/xLgr (TSLogradouro).
Tamanho: 1 a 60 caracteres (TSNumeroEndereco) · Tag do leiaute:nro (grupo infDPS/toma/end) · Obrigatoriedade do leiaute: obrigatório no leiaute · Preenche: você, na requisiçãoTexto do endereço (até 60 caracteres). Vai para a 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): TCEndereco/nro (TSNumeroEndereco).
Tamanho: 1 a 156 caracteres (TSComplementoEndereco) · Tag do leiaute:xCpl (grupo infDPS/toma/end) · Obrigatoriedade do leiaute: opcional no leiaute · Preenche: você, na requisiçãoTexto do endereço (até 156 caracteres). Vai para a 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): TCEndereco/xCpl (TSComplementoEndereco).
Tamanho: 1 a 60 caracteres (TSBairro) · Tag do leiaute:xBairro (grupo infDPS/toma/end) · Obrigatoriedade do leiaute: obrigatório no leiaute · Preenche: você, na requisiçãoTexto do endereço (até 60 caracteres). Vai para a 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): TCEndereco/xBairro (TSBairro).
Tamanho: 7 dígitos, código IBGE do município (TSCodMunIBGE) · Tag do leiaute:cMun (grupo infDPS/toma/end/endNac) · Obrigatoriedade do leiaute: obrigatório no leiaute · Preenche: você, na requisiçãoFonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCEnderNac/cMun (TSCodMunIBGE).
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: 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.Fonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCEnderNac tem somente cMun e CEP.
Tamanho: 8 dígitos, só números (TSCEP) · Tag do leiaute:CEP (grupo infDPS/toma/end/endNac) · Obrigatoriedade do leiaute: obrigatório no leiaute · Preenche: derivado de outros campos (calculado)Fonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCEnderNac/CEP (TSCEP). A engineAPI remove tudo que não é dígito antes de escrever.
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).
Tamanho: 7 dígitos, código IBGE do município (TSCodMunIBGE) · Tag do leiaute:cLocPrestacao (grupo infDPS/serv/locPrest) · Obrigatoriedade do leiaute: obrigatório no leiaute · Preenche: você, na requisiçãoCondição do leiaute: O leiaute aceita o município da prestação ou o país da prestação, quando o serviço é prestado no exterior. Este motor escreve sempre o município.Fonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCLocPrest/cLocPrestacao (TSCodMunIBGE), em xs:choice com cPaisPrestacao.
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: preenchido automaticamente pela engineAPINota do leiaute: 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.Fonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCCServ tem cTribNac, cTribMun, xDescServ, cNBS e cIntContrib, nenhum no formato do item da lista de serviços.
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: O leiaute da DPS não tem campo de CNAE. Campo aceito por compatibilidade com o modelo municipal e não escrito no documento.Fonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): nenhuma ocorrência de CNAE nos três esquemas oficiais.
Tamanho: 3 dígitos numéricos (TCCodTribMun) · Tag do leiaute:cTribMun (grupo infDPS/serv/cServ) · Obrigatoriedade do leiaute: opcional no leiaute · Preenche: você, na requisiçãoCódigo de tributação municipal do ISSQN (3 dígitos). Vai para serv/cServ/cTribMun na DPS. Equivalente de alto nível de dpsNacional.cTribMun: informar os dois com valores diferentes recusa com 422 CTRIBMUN_CONFLITOCondição do leiaute: Este campo e dpsNacional.cTribMun escrevem a MESMA tag. Informe um dos dois, ou os dois com o mesmo valor: valores diferentes são recusados com 422, porque escolher um deles seria decidir a tributação municipal no lugar de quem emite.Fonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCCServ/cTribMun (TCCodTribMun, 3 dígitos).
Tamanho: 9 dígitos numéricos (TSCodNBS, NBS versão 2.0). A pontuação usual do código é aceita e removida na emissão: 1.1401.20.00 e 114012000 dão no mesmo. · Tag do leiaute:cNBS (grupo infDPS/serv/cServ) · Obrigatoriedade do leiaute: opcional no leiaute · Preenche: preenchido automaticamente pela engineAPICódigo NBS 2.0 (9 dígitos). Vai para serv/cServ/cNBS na DPSCondição do leiaute: Com resolverTributacao igual a true, o Cérebro Fiscal preenche o código a partir da tabela vigente quando o campo vem ausente. Se o código da tabela não tiver os 9 dígitos exigidos, a nota é emitida sem ele e a resposta traz o aviso.Fonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCCServ/cNBS (TSCodNBS, 9 dígitos), escrito depois da descrição do serviço, na ordem do grupo.
Tamanho: 1 a 2000 caracteres (TSDesc2000) · Tag do leiaute:xDescServ (grupo infDPS/serv/cServ) · Obrigatoriedade do leiaute: obrigatório no leiaute · Preenche: você, na requisiçãoFonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCCServ/xDescServ (TSDesc2000), “descrição completa do serviço prestado”.
Tamanho: Até 15 dígitos inteiros e 2 decimais (TSDec15V2) · Tag do leiaute:vServ (grupo infDPS/valores/vServPrest) · Obrigatoriedade do leiaute: obrigatório no leiaute · Preenche: você, na requisiçãoValor em R$, com no máximo 2 casas decimais. Vai para valores/vServPrest/vServ na DPSFonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCVServPrest/vServ (TSDec15V2), “valor dos serviços em R$”. O valor é apenas formatado com 2 casas, nunca calculado.
Tamanho: 1 dígito inteiro e 2 decimais (TSDec1V2): percentual de 0 a 9,99. Percentual de dois dígitos, como 15, é recusado pelo esquema oficial. · Tag do leiaute:pAliq (grupo infDPS/valores/trib/tribMun) · Obrigatoriedade do leiaute: condicional no leiaute · Preenche: você, na requisiçãoAlíquota do ISS em percentual (0 a 9,99; no máximo 1 dígito inteiro e 2 casas). Vai para tribMun/pAliq na DPSCondição do leiaute: Informe apenas quando o município de incidência não é parametrizado no Sistema Nacional. Se o município participa, a alíquota é fornecida pelo próprio sistema. Com resolverTributacao igual a true o valor enviado é ignorado, com aviso na resposta: ecoar alíquota divergente causa rejeição.Fonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCTribMunicipal/pAliq (TSDec1V2). A ordem dos elementos do grupo é normativa e foi conferida contra o esquema.
Tamanho: Até 15 dígitos inteiros e 2 decimais (TSDec15V2) · Tag do leiaute:vDR (grupo infDPS/valores/vDedRed) · Obrigatoriedade do leiaute: condicional no leiaute · Preenche: você, na requisiçãoValor em R$, com no máximo 2 casas decimais. Vai para valores/vDedRed/vDR na DPSCondição do leiaute: O leiaute permite declarar a dedução como percentual, como valor ou por lista de documentos. Este motor escreve o valor em reais; percentual e lista de documentos ainda não são suportados. O valor reduz a base de cálculo apurada pelo sistema nacional.Fonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCInfoValores/vDedRed/vDR (TSDec15V2), folha obrigatória dentro da escolha de TCInfoDedRed quando a dedução é declarada por valor monetário. O valor é apenas formatado com 2 casas, nunca calculado.
Tamanho: Até 15 dígitos inteiros e 2 decimais (TSDec15V2) · Tag do leiaute:vDescIncond (grupo infDPS/valores/vDescCondIncond) · Obrigatoriedade do leiaute: opcional no leiaute · Preenche: você, na requisiçãoValor em R$, com no máximo 2 casas decimais. Vai para valores/vDescCondIncond/vDescIncond na DPSCondição do leiaute: Reduz a base de cálculo do ISSQN apurada pelo sistema nacional, ao contrário do desconto condicionado.Fonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCVDescCondIncond/vDescIncond (TSDec15V2), dentro de TCInfoValores/vDescCondIncond. O valor é apenas formatado com 2 casas, nunca calculado.
Tamanho: Até 15 dígitos inteiros e 2 decimais (TSDec15V2) · Tag do leiaute:vDescCond (grupo infDPS/valores/vDescCondIncond) · Obrigatoriedade do leiaute: opcional no leiaute · Preenche: você, na requisiçãoValor em R$, com no máximo 2 casas decimais. Vai para valores/vDescCondIncond/vDescCond na DPSCondição do leiaute: Informativo: o desconto condicionado NÃO entra na fórmula da base de cálculo do ISSQN do leiaute, diferente do incondicionado.Fonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCVDescCondIncond/vDescCond (TSDec15V2). A fórmula da base de cálculo documentada no esquema desconta apenas o incondicionado e a dedução.
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).
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.
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”).
Tamanho: 1 dígito (TSRTCFinNFSe) · Tag do leiaute:finNFSe (grupo infDPS/IBSCBS) · Obrigatoriedade do leiaute: obrigatório no leiaute · Preenche: preenchido automaticamente pela engineAPIFinalidade da emissão. O leiaute v1.01 prevê um único valor: “0” (NFS-e regular). Ausente = “0”Fonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCRTCInfoIBSCBS/finNFSe (TSRTCFinNFSe), com um único valor enumerado. Ausente, a engineAPI escreve 0.
Tamanho: 1 dígito (TSRTCIndFinal) · Tag do leiaute:indFinal (grupo infDPS/IBSCBS) · Obrigatoriedade do leiaute: opcional no leiaute · Preenche: você, na requisiçãoOperação de uso ou consumo pessoal (LC 214/2025, art. 57): “0” não · “1” simFonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCRTCInfoIBSCBS/indFinal (TSRTCIndFinal).
Valor
Significado
0
Não é operação de uso ou consumo pessoal
1
Operação de uso ou consumo pessoal (LC 214/2025, artigo 57)
Tamanho: 6 dígitos (TSRTCCodIndOp) · Tag do leiaute:cIndOp (grupo infDPS/IBSCBS) · Obrigatoriedade do leiaute: obrigatório no leiaute · Preenche: você, na requisiçãoCódigo indicador da operação de fornecimento (6 dígitos), conforme a tabela oficial “Código Indicador de Operação” (ANEXO_C/AnexoVII do portal nacional da NFS-e). Obrigatório quando o bloco ibsCbs é enviado (padrão: ^\d{6}$)Fonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCRTCInfoIBSCBS/cIndOp (TSRTCCodIndOp), conforme a tabela oficial de código indicador de operação.
Tamanho: 1 dígito (TSRTCTpOper) · Tag do leiaute:tpOper (grupo infDPS/IBSCBS) · Obrigatoriedade do leiaute: opcional no leiaute · Preenche: você, na requisiçãoTipo de operação com entes governamentais ou serviços sobre bens imóveis: 1 fornecimento com pagamento posterior · 2 recebimento com fornecimento já realizado · 3 fornecimento com pagamento já realizado · 4 recebimento com fornecimento posterior · 5 fornecimento e recebimento concomitantesFonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCRTCInfoIBSCBS/tpOper (TSRTCTpOper), operação com entes governamentais ou serviços sobre bens imóveis.
Tamanho: 1 dígito (TSRTCTpEnteGov) · Tag do leiaute:tpEnteGov (grupo infDPS/IBSCBS) · Obrigatoriedade do leiaute: opcional no leiaute · Preenche: você, na requisiçãoTipo de ente governamental: 1 União · 2 Estado · 3 DF · 4 MunicípioFonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCRTCInfoIBSCBS/tpEnteGov (TSRTCTpEnteGov).
Tamanho: 1 dígito (TSRTCIndDest) · Tag do leiaute:indDest (grupo infDPS/IBSCBS) · Obrigatoriedade do leiaute: obrigatório no leiaute · Preenche: preenchido automaticamente pela engineAPIDestinatário do serviço: “0” o destinatário é o próprio tomador (padrão) · “1” o destinatário é outra pessoa, o que exige o grupo dest do leiaute, ainda NÃO suportado por este motor, que recusa com 422 IBSCBS_DPS_DESTINATARIO_NAO_SUPORTADO em vez de emitir sem o grupoCondição do leiaute: O valor 1 exige o grupo de destinatário do leiaute, que este motor ainda não escreve: nesse caso a emissão recusa com 422 IBSCBS_DPS_DESTINATARIO_NAO_SUPORTADO em vez de emitir o documento sem o grupo.Fonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCRTCInfoIBSCBS/indDest (TSRTCIndDest), elemento obrigatório. Ausente, a engineAPI escreve 0.
Tamanho: 3 dígitos (TSRTCCodSitTrib) · Tag do leiaute:CST (grupo infDPS/IBSCBS/valores/trib/gIBSCBS) · Obrigatoriedade do leiaute: obrigatório no leiaute · Preenche: você, na requisiçãoCódigo de Situação Tributária do IBS/CBS (3 dígitos). Obrigatório quando o bloco ibsCbs é enviado (o motor não infere CST na NFS-e) (padrão: ^\d{3}$)Fonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCRTCInfoTributosSitClas/CST (TSRTCCodSitTrib). A DPS declara a situação tributária: alíquota e valor de IBS/CBS são calculados pelo sistema nacional e não existem neste documento.
Tamanho: 6 dígitos (TSRTCCodClassTrib) · Tag do leiaute:cClassTrib (grupo infDPS/IBSCBS/valores/trib/gIBSCBS) · Obrigatoriedade do leiaute: obrigatório no leiaute · Preenche: você, na requisiçãoCódigo de Classificação Tributária do IBS/CBS (6 dígitos). Obrigatório quando o bloco ibsCbs é enviado (padrão: ^\d{6}$)Fonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCRTCInfoTributosSitClas/cClassTrib (TSRTCCodClassTrib).
Tamanho: 2 dígitos (TSRTCCodCredPres) · Tag do leiaute:cCredPres (grupo infDPS/IBSCBS/valores/trib/gIBSCBS) · Obrigatoriedade do leiaute: opcional no leiaute · Preenche: você, na requisiçãoCódigo e classificação do crédito presumido de IBS/CBS (2 dígitos) (padrão: ^\d{2}$)Fonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCRTCInfoTributosSitClas/cCredPres (TSRTCCodCredPres).
Tag do leiaute:gTribRegular (grupo infDPS/IBSCBS/valores/trib/gIBSCBS) · Obrigatoriedade do leiaute: opcional no leiauteTributação regular: a situação que valeria se o benefício não existisseCondição do leiaute: Opcional no leiaute: só é emitido quando a operação informa a tributação regular de referência.Nota do leiaute: Grupo, não campo: gTribRegular é o contêiner dos campos CSTReg e cClassTribReg.Fonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCRTCInfoTributosSitClas/gTribRegular (minOccurs=“0”).
Tamanho: 3 dígitos (TSRTCCodSitTrib) · Tag do leiaute:CSTReg (grupo infDPS/IBSCBS/valores/trib/gIBSCBS/gTribRegular) · Obrigatoriedade do leiaute: condicional no leiaute · Preenche: você, na requisiçãoCST do IBS/CBS que valeria na tributação regular (sem o benefício aplicado) (padrão: ^\d{3}$)Condição do leiaute: Obrigatório dentro do grupo de tributação regular, que descreve a situação que valeria se o benefício não existisse.Fonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCRTCInfoTributosTribRegular/CSTReg (TSRTCCodSitTrib).
Tamanho: 6 dígitos (TSRTCCodClassTrib) · Tag do leiaute:cClassTribReg (grupo infDPS/IBSCBS/valores/trib/gIBSCBS/gTribRegular) · Obrigatoriedade do leiaute: condicional no leiaute · Preenche: você, na requisiçãoCódigo de classificação tributária do IBS/CBS na tributação regular (padrão: ^\d{6}$)Condição do leiaute: Obrigatório dentro do grupo de tributação regular, ao lado do CSTReg.Fonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCRTCInfoTributosTribRegular/cClassTribReg (TSRTCCodClassTrib).
Tag do leiaute:gDif (grupo infDPS/IBSCBS/valores/trib/gIBSCBS) · Obrigatoriedade do leiaute: opcional no leiauteDiferimento do IBS/CBS. Os três percentuais (pDifUF, pDifMun, pDifCBS) são exigidos juntos pelo leiauteCondição do leiaute: Opcional no leiaute: quando o grupo existe, os três percentuais de diferimento são obrigatórios.Nota do leiaute: Grupo, não campo: gDif é o contêiner dos três percentuais.Fonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCRTCInfoTributosSitClas/gDif (minOccurs=“0”).
Tamanho: Até 3 dígitos inteiros e 2 decimais (TSDec3V2) · Tag do leiaute:pDifUF (grupo infDPS/IBSCBS/valores/trib/gIBSCBS/gDif) · Obrigatoriedade do leiaute: condicional no leiaute · Preenche: você, na requisiçãoPercentual de diferimento do IBS estadual, em % (ex.: 30 para 30%). No máximo 2 casas decimaisCondição do leiaute: O leiaute exige os três percentuais de diferimento juntos: informar um obriga a informar os outros dois.Fonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCRTCInfoTributosDif/pDifUF (TSDec3V2), IBS estadual. Percentual com mais de 2 casas é recusado, nunca arredondado.
Tamanho: Até 3 dígitos inteiros e 2 decimais (TSDec3V2) · Tag do leiaute:pDifMun (grupo infDPS/IBSCBS/valores/trib/gIBSCBS/gDif) · Obrigatoriedade do leiaute: condicional no leiaute · Preenche: você, na requisiçãoPercentual de diferimento do IBS municipal, em %. No máximo 2 casas decimaisCondição do leiaute: O leiaute exige os três percentuais de diferimento juntos: informar um obriga a informar os outros dois.Fonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCRTCInfoTributosDif/pDifMun (TSDec3V2), IBS municipal.
Tamanho: Até 3 dígitos inteiros e 2 decimais (TSDec3V2) · Tag do leiaute:pDifCBS (grupo infDPS/IBSCBS/valores/trib/gIBSCBS/gDif) · Obrigatoriedade do leiaute: condicional no leiaute · Preenche: você, na requisiçãoPercentual de diferimento da CBS, em %. No máximo 2 casas decimaisCondição do leiaute: O leiaute exige os três percentuais de diferimento juntos: informar um obriga a informar os outros dois.Fonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCRTCInfoTributosDif/pDifCBS (TSDec3V2), CBS.
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).
Tamanho: 1 dígito (TSTipoRetISSQN) · Tag do leiaute:tpRetISSQN (grupo infDPS/valores/trib/tribMun) · Obrigatoriedade do leiaute: obrigatório no leiaute · Preenche: derivado de outros campos (calculado)Quem retém o ISS: “tomador” (tpRetISSQN=2) ou “intermediario” (tpRetISSQN=3). Ausente = não retidoFonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCTribMunicipal/tpRetISSQN (TSTipoRetISSQN). O leiaute não tem campo para o VALOR do ISS retido: o sistema nacional calcula o imposto e o inclui no total de retenções da NFS-e quando o indicador diz que houve retenção.
Tamanho: Até 15 dígitos inteiros e 2 decimais (TSDec15V2) · Tag do leiaute:vRetIRRF (grupo infDPS/valores/trib/tribFed) · Obrigatoriedade do leiaute: opcional no leiaute · Preenche: você, na requisiçãoValor retido em R$, com no máximo 2 casas decimais. Vai para tribFed/vRetIRRF na DPSFonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCTribFederal/vRetIRRF (TSDec15V2), “valor monetário do IRRF (R$)”. O valor vai como informado: nenhuma alíquota de retenção é aplicada pela engineAPI.
Tamanho: Até 15 dígitos inteiros e 2 decimais (TSDec15V2) · Tag do leiaute:vRetCSLL (grupo infDPS/valores/trib/tribFed) · Obrigatoriedade do leiaute: opcional no leiaute · Preenche: você, na requisiçãoValor retido em R$, com no máximo 2 casas decimais. Vai para tribFed/vRetCSLL na DPSCondição do leiaute: Quando dpsNacional.tpRetPisCofins afirma que a CSLL é retida (códigos 3, 7, 8 e 9), o valor passa a ser exigido: a divergência recusa com 422 RETENCAO_PIS_COFINS_INCOERENTE.Fonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCTribFederal/vRetCSLL (TSDec15V2), “valor monetário do CSLL (R$)”.
Tamanho: Até 15 dígitos inteiros e 2 decimais (TSDec15V2) · Tag do leiaute:vRetCP (grupo infDPS/valores/trib/tribFed) · Obrigatoriedade do leiaute: opcional no leiaute · Preenche: você, na requisiçãoValor retido em R$, com no máximo 2 casas decimais. Vai para tribFed/vRetCP (Contribuição Previdenciária) na DPSFonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCTribFederal/vRetCP (TSDec15V2), “valor monetário do CP (R$)”, a contribuição previdenciária retida.
Tamanho: mínimo 0 · Tag do leiaute: sem tag própria no XML · Obrigatoriedade do leiaute: não é campo do leiaute (informativo/de compatibilidade) · Preenche: você, na requisiçãoSem campo de VALOR na DPS do Padrão Nacional (vCofins do leiaute é o débito de apuração própria, não a retenção): valor diferente de zero recusa com 422 RETENCAO_SEM_CAMPO_NO_LEIAUTE. No máximo 2 casas decimais. A retenção de PIS/COFINS se declara pelo indicador dpsNacional.tpRetPisCofinsNota do leiaute: 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.Fonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCTribOutrosPisCofins/vCofins, documentado como “valor do débito de COFINS apuração própria (R$)”.
Tamanho: mínimo 0 · Tag do leiaute: sem tag própria no XML · Obrigatoriedade do leiaute: não é campo do leiaute (informativo/de compatibilidade) · Preenche: você, na requisiçãoSem campo de VALOR na DPS do Padrão Nacional (vPis do leiaute é o débito de apuração própria, não a retenção): valor diferente de zero recusa com 422 RETENCAO_SEM_CAMPO_NO_LEIAUTE. No máximo 2 casas decimais. A retenção de PIS/COFINS se declara pelo indicador dpsNacional.tpRetPisCofinsNota do leiaute: 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.Fonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCTribOutrosPisCofins/vPis, documentado como “valor do débito de PIS apuração própria (R$)”. O total de retenções da NFS-e é a soma de vRetCP, vRetIRRF, vRetCSLL e do ISSQN.
Tamanho: mínimo 0 · Tag do leiaute: sem tag própria no XML · Obrigatoriedade do leiaute: não é campo do leiaute (informativo/de compatibilidade) · Preenche: você, na requisiçãoSem campo de VALOR na DPS do Padrão Nacional (a DPS não tem campo de “outras retenções”): valor diferente de zero recusa com 422 RETENCAO_SEM_CAMPO_NO_LEIAUTE. No máximo 2 casas decimais. Informe o tributo no campo próprio: retencoes.inss, retencoes.irrf ou retencoes.csllNota do leiaute: 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.Fonte do leiaute: tiposComplexos_v1.01.xsd (NFSe-ESQUEMAS_XSD-v1.01-20260209): TCTribFederal tem apenas o grupo de PIS/COFINS, vRetCP, vRetIRRF e vRetCSLL.
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.
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.
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.
O grupo obra/ART (identificação da obra de construção civil e da Anotação de Responsabilidade Técnica do serviço) ainda não é suportado pela engineAPI. Serviço de construção civil que a prefeitura exige vincular a uma obra cadastrada não pode ser emitido com essa vinculação por enquanto.
intermediario
O grupo intermediario da NFS-e (identificação de quem intermediou a prestação do serviço, com CNPJ/CPF, nome e endereço) ainda não é suportado pela engineAPI. A RETENÇÃO pelo intermediário, essa sim, é suportada: informe retencoes.issRetidoPor: "intermediario" (vira tpRetISSQN=3 na DPS). O que não sai no documento é a identificação de quem reteve.
nif, tomadorexterior
nif (Número de Identificação Fiscal do tomador no exterior) e o restante dos dados de tomador estrangeiro ainda não são suportados pela engineAPI. O tomador aceita hoje só cnpjCpf nacional; serviço exportado para tomador sem CNPJ/CPF brasileiro não pode ser emitido por enquanto.
substituicaorps, substituicao
A substituição de RPS (nova DPS que substitui um RPS/NFS-e já emitido, referenciando o número original) ainda não é suportada pela engineAPI. No Padrão Nacional a própria DPS ocupa o lugar do RPS e o leiaute não tem campo para o número dele (por isso rps é recusado nesse caminho); para corrigir um RPS ou NFS-e já emitido, use o cancelamento (POST /v1/nfse/:id/cancelar) e emita um novo documento.