{"id":4234,"date":"2026-03-25T18:23:38","date_gmt":"2026-03-25T21:23:38","guid":{"rendered":"https:\/\/www.l2maker.com.br\/documentacao\/?p=4234"},"modified":"2026-03-27T10:03:08","modified_gmt":"2026-03-27T13:03:08","slug":"emitindo-nfs-e-no-padrao-nacional","status":"publish","type":"post","link":"https:\/\/www.l2maker.com.br\/documentacao\/2026\/03\/emitindo-nfs-e-no-padrao-nacional\/","title":{"rendered":"Emitindo NFS-e no padr\u00e3o nacional"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">A emiss\u00e3o segue os seguintes passos:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Gera\u00e7\u00e3o do XML;<\/li>\n\n\n\n<li>Assinatura do XML com certificado digital (A1 \/ Arquivo);<\/li>\n\n\n\n<li>Envio do XML para o servidor do governo:\n<ul class=\"wp-block-list\">\n<li>Se der erro, deve-se corrigir as cr\u00edticas retornadas e reenviar;<\/li>\n\n\n\n<li>Se der certo ser\u00e1 retornado um protocolo para consulta;<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Consultar protocolo:\n<ul class=\"wp-block-list\">\n<li>Verificar se veio erro, e corrigir de acordo o retorno;<\/li>\n\n\n\n<li>Se o XML foi aceito ser\u00e1 retornado a resposta assinada (XML);<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Baixar o PDF da nota.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">DICAS: Tenha em m\u00e3os um XML v\u00e1lido (emitido no site do governo) de uma NFS-e similar, com uma estrutura parecida da que deseja construir.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Inicializa\u00e7\u00e3o (Criar conector)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A primeira chamada consiste em inicializar o conector, ele ser\u00e1 usado nas demais fun\u00e7\u00f5es da API. Para criar um conector chame a fun\u00e7\u00e3o &#8220;<strong>NFS-e Nacional &#8211; Inicializar<\/strong>&#8221; passando os seguintes par\u00e2metros:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Ambiente (L\u00f3gico): Verdadeiro para PRODU\u00c7\u00c3O ou Falso para HOMOLOGA\u00c7\u00c3O;<\/li>\n\n\n\n<li>Tipo de certificado (Letras): Valor fixo &#8220;<strong>A1<\/strong>&#8221; (arquivo);<\/li>\n\n\n\n<li>Caminho (Letras): Caminho completo do certificado A1 (PFX);<\/li>\n\n\n\n<li>Senha (Letras): Senha de abertura do arquivo com o certificado.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">DICA: Um mesmo conector pode ser utilizado para enviar diversas notas em lote. \u00c9 importante que cada envio ocorra numa transa\u00e7\u00e3o INDIVIDUAL, gravando os dados de cada nota assim que enviada.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Gera\u00e7\u00e3o do XML da NFS-e<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">As sequencia de fun\u00e7\u00f5es a ser usada na gera\u00e7\u00e3o \u00e9 resumidamente: &#8220;<strong>NFS-e Nacional &#8211; Inicializar<\/strong>&#8221;  (discutido anteriormente),  chamar a &#8220;<strong>NFS-e Nacional &#8211; XML &#8211; Criar<\/strong>&#8220;, depois chamar &#8220;<strong>NFS-e Nacional &#8211; XML &#8211; Definir Valor<\/strong>&#8221; para cada uma das tags que deseja adicionar, e por fim chamar a fun\u00e7\u00e3o &#8220;<strong>NFS-e Nacional &#8211; XML &#8211; Montar XML<\/strong>&#8221; para obter o XML final. O detalhamento vai a seguir.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Criar o XML<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Chamar a fun\u00e7\u00e3o &#8220;<strong>NFS-e Nacional &#8211; XML &#8211; Criar<\/strong>&#8221; passando:\n<ol class=\"wp-block-list\">\n<li>Conector (Variante): Criado anteriormente;<\/li>\n\n\n\n<li>Tag principal (Letras): Valor fixo &#8220;<strong>DPS<\/strong>&#8220;;<\/li>\n\n\n\n<li>Vers\u00e3o (Letras): &#8220;<strong>1.01<\/strong>&#8221; vers\u00e3o vigente (mar\u00e7o de 2026).<\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>Chamar a fun\u00e7\u00e3o &#8220;<strong>NFS-e Nacional &#8211; XML &#8211; Definir Valor<\/strong>&#8221; passando os seguintes par\u00e2metros:\n<ol class=\"wp-block-list\">\n<li>XML (Variante): Retorno da fun\u00e7\u00e3o anterior;<\/li>\n\n\n\n<li>Caminho das tags (Letras);<\/li>\n\n\n\n<li>Valor (Inteiro \/ Letras \/ Data \/ &#8230;);<\/li>\n\n\n\n<li>M\u00e1scara (Letras): Manter em branco (nulo).<\/li>\n<\/ol>\n<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Dados b\u00e1sico\n<ul class=\"wp-block-list\">\n<li>&#8220;<strong>infDPS\/tpAmb<\/strong>&#8220;: 1 para produ\u00e7\u00e3o, 2 para homologa\u00e7\u00e3o;<\/li>\n\n\n\n<li>&#8220;infDPS\/dhEmi&#8221;: Passar uma data e hora que ser\u00e1 formatada internamente.<\/li>\n\n\n\n<li>&#8220;<strong>infDPS\/serie<\/strong>&#8220;: N\u00famero apenas;<\/li>\n\n\n\n<li>&#8220;<strong>infDPS\/nDPS<\/strong>&#8220;: N\u00famero sequencial;<\/li>\n\n\n\n<li>&#8220;infDPS\/dCompet&#8221;<\/li>\n\n\n\n<li>&#8220;infDPS\/tpEmit&#8221;<\/li>\n\n\n\n<li>&#8220;infDPS\/cLocEmi&#8221;<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Dados do prestador\n<ul class=\"wp-block-list\">\n<li>&#8220;infDPS\/prest\/CNPJ&#8221; ou &#8220;infDPS\/prest\/CPF&#8221;: S\u00f3 n\u00fameros.<\/li>\n\n\n\n<li>&#8220;infDPS\/prest\/fone&#8221;<\/li>\n\n\n\n<li>&#8220;infDPS\/prest\/email&#8221;<\/li>\n\n\n\n<li>&#8220;infDPS\/prest\/regTrib\/opSimpNac&#8221;<\/li>\n\n\n\n<li>&#8220;infDPS\/prest\/regTrib\/regEspTrib&#8221;<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Dados do tomador\n<ul class=\"wp-block-list\">\n<li>&#8220;<strong>infDPS\/toma\/CNPJ<\/strong>&#8221; ou &#8220;<strong>infDPS\/toma\/CPF<\/strong>&#8220;: S\u00f3 n\u00fameros.<\/li>\n\n\n\n<li>&#8220;infDPS\/toma\/xNome&#8221;<\/li>\n\n\n\n<li>&#8220;infDPS\/toma\/end\/endNac\/cMun&#8221;<\/li>\n\n\n\n<li>&#8220;infDPS\/toma\/end\/endNac\/CEP&#8221;<\/li>\n\n\n\n<li>&#8220;infDPS\/toma\/end\/xLgr&#8221;<\/li>\n\n\n\n<li>&#8220;infDPS\/toma\/end\/nro&#8221;<\/li>\n\n\n\n<li>&#8220;infDPS\/toma\/end\/xCpl&#8221;<\/li>\n\n\n\n<li>&#8220;infDPS\/toma\/end\/xBairro&#8221;<\/li>\n\n\n\n<li>&#8220;infDPS\/toma\/email&#8221;<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Dados do servi\u00e7o\n<ul class=\"wp-block-list\">\n<li>&#8220;infDPS\/serv\/locPrest\/cLocPrestacao&#8221;<\/li>\n\n\n\n<li>&#8220;infDPS\/serv\/cServ\/cTribNac&#8221;<\/li>\n\n\n\n<li>&#8220;infDPS\/serv\/cServ\/xDescServ&#8221;<\/li>\n\n\n\n<li>&#8220;infDPS\/serv\/cServ\/cNBS&#8221;: Consultar a Nomenclatura Brasileira de Servi\u00e7os <a href=\"https:\/\/www.gov.br\/mdic\/pt-br\/assuntos\/sdic\/comercio-e-servicos\/nbs-nomenclatura-brasileira-de-servicos\">https:\/\/www.gov.br\/mdic\/pt-br\/assuntos\/sdic\/comercio-e-servicos\/nbs-nomenclatura-brasileira-de-servicos<\/a><\/li>\n\n\n\n<li>&#8220;infDPS\/serv\/obra\/end\/CEP&#8221;<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Valores\n<ul class=\"wp-block-list\">\n<li>&#8220;infDPS\/valores\/vServPrest\/vServ&#8221;<\/li>\n\n\n\n<li>&#8220;infDPS\/valores\/trib\/tribMun\/tribISSQN&#8221;<\/li>\n\n\n\n<li>&#8220;infDPS\/valores\/trib\/tribMun\/tpRetISSQN&#8221;<\/li>\n\n\n\n<li>&#8220;infDPS\/valores\/trib\/tribFed\/piscofins\/CST&#8221;<\/li>\n\n\n\n<li>&#8220;infDPS\/valores\/trib\/tribFed\/piscofins\/vBCPisCofins&#8221;<\/li>\n\n\n\n<li>&#8220;infDPS\/valores\/trib\/tribFed\/vRetCP&#8221;<\/li>\n\n\n\n<li>&#8220;infDPS\/valores\/trib\/tribFed\/vRetIRRF&#8221;<\/li>\n\n\n\n<li>&#8220;infDPS\/valores\/trib\/tribFed\/vRetCSLL&#8221;<\/li>\n\n\n\n<li>&#8220;infDPS\/valores\/trib\/totTrib\/indTotTrib&#8221;<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">OBS: A lista \u00e9 um resumo, as tags variam de acordo com o tipo de empresa\/tomador\/servi\u00e7o. Adicione e\/ou remova de acordo as suas necessidades.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Por fim chamar a fun\u00e7\u00e3o &#8220;<strong>NFS-e Nacional &#8211; XML &#8211; Montar XML<\/strong>&#8221; passando os seguintes par\u00e2metros:\n<ul class=\"wp-block-list\">\n<li>XML (Variante);<\/li>\n\n\n\n<li>Assinar (L\u00f3gico): Indica se o XML deve ser assinado.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Enviar o XML<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Depois de montar o XML utilize a fun\u00e7\u00e3o &#8220;<strong>NFS-e Nacional &#8211; Emitir NFS-e<\/strong>&#8221; para enviar, passando os seguintes par\u00e2metros:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Conector (Variante): Criado anteriormente;<\/li>\n\n\n\n<li>XML (Letras): Conte\u00fado do XML a ser enviado.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">O retorno dessa fun\u00e7\u00e3o \u00e9 um mapeamento contendo:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>&#8220;<strong>XML_RETORNO&#8221;<\/strong>:  O conte\u00fado completo retornado pelo servidor.<\/li>\n\n\n\n<li>&#8220;<strong>ERRO_MENSAGEM<\/strong>&#8220;: Se houver erro este item vir\u00e1 preenchido;<\/li>\n\n\n\n<li>&#8220;<strong>RESPOSTA_CHAVE_ACESSO<\/strong>&#8220;: Chave da NFS-e.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Consulta situa\u00e7\u00e3o do DPS usando a fun\u00e7\u00e3o &#8220;<strong>NFS-e Nacional &#8211; Verificar DPS<\/strong>&#8220;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por fim obter o DPS com a fun\u00e7\u00e3o &#8220;<strong>NFS-e Nacional &#8211; Obter NFS-e<\/strong>&#8220;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para obter o PDF da nota utilize a fun\u00e7\u00e3o &#8220;<strong>NFS-e Nacional &#8211; Obter DANFSe<\/strong>&#8220;.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Obtendo o PDF da nota fiscal (DANFSE)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Utilize a fun\u00e7\u00e3o &#8220;<strong>NFS-e Nacional &#8211; Obter DANFSe<\/strong>&#8221; para baixar o PDF da nota. Passando:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Conector (Variante);<\/li>\n\n\n\n<li>Chave de acesso (Letras);<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">O retorno \u00e9 um mapeamento com o caminho absoluto do PDF no servidor (Tomcat\/Webrun). O arquivo DEVE ser LIDO ou MOVIDO para o destino desejado atrav\u00e9s das fun\u00e7\u00f5es nativas do Maker (usar as fun\u00e7\u00f5es nativas &#8220;Mover arquivo&#8221; ou &#8220;Ler todo arquivo em bytes&#8221;).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">IMPORTANTE: O servi\u00e7o tem apresentado INSTABILIDADES (erro 502 principalmente), esse erro vem diretamente do servidor REMOTO, n\u00e3o h\u00e1 o que fazer na API, basta aguardar e tentar novamente. (Mar\/2026)<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">OBSERVA\u00c7\u00d5ES<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Instru\u00e7\u00f5es sobre o preenchimento (conte\u00fado) de cada tag fogem do escopo do suporte;<\/li>\n\n\n\n<li>A ordem das tags devem ser preferencialmente colocadas na ordem em que devem aparecer no XML.<\/li>\n\n\n\n<li>Instru\u00e7\u00f5es sobre cadastro, acesso ao sistema do governo est\u00e3o fora do escopo do suporte.<\/li>\n\n\n\n<li>Qualquer solicita\u00e7\u00e3o fora do escopo ser\u00e3o silenciosamentem ignoradas.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>A emiss\u00e3o segue os seguintes passos: DICAS: Tenha em m\u00e3os um XML v\u00e1lido (emitido no site do governo) de uma NFS-e similar, com uma estrutura parecida da que deseja construir. Inicializa\u00e7\u00e3o (Criar conector) A primeira chamada consiste em inicializar o conector, ele ser\u00e1 usado nas demais fun\u00e7\u00f5es da API. Para criar um conector chame a [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1,437],"tags":[],"class_list":["post-4234","post","type-post","status-publish","format-standard","hentry","category-sem-categoria","category-api-nfse-nacional-instrucoes"],"_links":{"self":[{"href":"https:\/\/www.l2maker.com.br\/documentacao\/wp-json\/wp\/v2\/posts\/4234","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.l2maker.com.br\/documentacao\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.l2maker.com.br\/documentacao\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.l2maker.com.br\/documentacao\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.l2maker.com.br\/documentacao\/wp-json\/wp\/v2\/comments?post=4234"}],"version-history":[{"count":22,"href":"https:\/\/www.l2maker.com.br\/documentacao\/wp-json\/wp\/v2\/posts\/4234\/revisions"}],"predecessor-version":[{"id":4269,"href":"https:\/\/www.l2maker.com.br\/documentacao\/wp-json\/wp\/v2\/posts\/4234\/revisions\/4269"}],"wp:attachment":[{"href":"https:\/\/www.l2maker.com.br\/documentacao\/wp-json\/wp\/v2\/media?parent=4234"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.l2maker.com.br\/documentacao\/wp-json\/wp\/v2\/categories?post=4234"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.l2maker.com.br\/documentacao\/wp-json\/wp\/v2\/tags?post=4234"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}