{"id":250,"date":"2015-12-30T12:01:31","date_gmt":"2015-12-30T15:01:31","guid":{"rendered":"http:\/\/www.l2maker.com.br\/documentacao\/?p=250"},"modified":"2024-11-19T07:42:46","modified_gmt":"2024-11-19T10:42:46","slug":"nfs-e-emissao","status":"publish","type":"post","link":"https:\/\/www.l2maker.com.br\/documentacao\/2015\/12\/nfs-e-emissao\/","title":{"rendered":"NFS-e &#8211; Instru\u00e7\u00f5es de emiss\u00e3o de NFS-e"},"content":{"rendered":"<p>A API de NFS-e \u00e9 utilizada principalmente para emiss\u00e3o e cancelamento\u00a0(se suportado pela prefeitura) de notas ficais de servi\u00e7os, outras rotinas podem estar dispon\u00edveis.<\/p>\n<h1>Passos para emiss\u00e3o da NFS-e<\/h1>\n<p>Resumidamente a emiss\u00e3o da NFS-e segue os seguintes passos:<\/p>\n<ol>\n<li>Envio do Lote de RPS ou RPS individual para a prefeitura;<\/li>\n<li>Consulta a situa\u00e7\u00e3o do lote ou RPS;<\/li>\n<li>Obter os detalhes da(s) NFS-e gerada(s), ou do(s) erro(s) cr\u00edtica(s) retornados pelo servidor da prefeitura.<\/li>\n<\/ol>\n<p>IMPORTANTE: Cada prefeitura tem total autonomia para implementar seus sistemas de emiss\u00e3o de NFS-e, apesar de existirem &#8220;padr\u00f5es&#8221; muitas tem suas particularidades. \u00c9 importante est\u00e1 familiarizado com os detalhes de cada cidade.<\/p>\n<h2>Enviando a nota fiscal para o servidor<\/h2>\n<ol>\n<li>O primeiro passo \u00e9 obter um conector, podendo ser com ou sem certificado e\/ou senha, cada cidade tem seu padr\u00e3o;<\/li>\n<li>Ap\u00f3s criar um conector definimos o nome e CNPJ padr\u00e3o do emissor usando a fun\u00e7\u00e3o &#8220;<strong>NFS-e: Definir o nome e documento do prestador<\/strong>&#8220;, passe o CNPJ somente com n\u00fameros, se tra\u00e7os ou pontos;<\/li>\n<li>Em seguida criamos um novo lote (&#8220;<strong>NFS-e: Criar novo lote<\/strong>&#8220;), passando:\n<ol>\n<li>Conector &#8211; (Variante) vari\u00e1vel retornada pela fun\u00e7\u00e3o de criar conector;<\/li>\n<li><span style=\"line-height: 1.5;\">N\u00famero do Lote &#8211; (Inteiro ou Letras) Corresponde a um n\u00famero sequencial de envios de lotes para o servidor. Provavelmente, se tinha um sistema anterior ser\u00e1 necess\u00e1rio continuar a sequencia de envios, mas nesses casos (normalmente) uma mensagem de erro indica qual ser\u00e1 o pr\u00f3ximo.<\/span><\/li>\n<\/ol>\n<\/li>\n<li>Dentro de um Lote pode existir um ou mais RPS (de acordo com as especifica\u00e7\u00f5es da prefeitura, preferencialmente envie uma por lote), para se criar um RPS dentro do lote ser\u00e1 utilizada a fun\u00e7\u00e3o &#8220;<strong>NFS-e: Novo RPS<\/strong>&#8220;, passando:\n<ol>\n<li>O\u00a0Lote (retorno da fun\u00e7\u00e3o anterior) e o n\u00famero do RPS;<\/li>\n<li>N\u00famero do RPS &#8211; N\u00famero sequencial de gera\u00e7\u00e3o de RPS, a faixa a ser utilizada deve ser consultada junto \u00e0 prefeitura;<\/li>\n<li>S\u00e9rie: (Letras) &#8211; Verificar junto \u00e0 prefeitura.<\/li>\n<li>Tipo (Inteiro): &#8220;1&#8221; para NFS-e<\/li>\n<\/ol>\n<\/li>\n<li>Utilizar a fun\u00e7\u00e3o &#8220;<strong>NFS-e: RPS definir dados b\u00e1sicos<\/strong>&#8221; para definir alguns detalhes de tributa\u00e7\u00e3o. \u00c9 importante informar corretamente se \u00e9 do SIMPLES ou n\u00e3o. Al\u00e9m de regimes diferenciados de tributa\u00e7\u00e3o (se houver).\n<ul>\n<li>Par\u00e2metro 2: Data e hora de emiss\u00e3o da NFS-e. Importante, observe se a hora do Webrun est\u00e1 correta para evitar problemas com o hor\u00e1rio do servidor da prefeitura. Muitos validam a hora. O mesmo vale pra o hor\u00e1rio de ver\u00e3o.<\/li>\n<li>Par\u00e2metro 4: Regime especial da tributa\u00e7\u00e3o (Inteiro) \u00a0&#8211; Informar se houver, observar os valores aceitos no manual da prefeitura.<\/li>\n<li>Par\u00e2metro 7: Situa\u00e7\u00e3o &#8211; Usar 1 para Normal ou 2 para Cancelado.<\/li>\n<\/ul>\n<\/li>\n<li><strong>OPCIONAL:<\/strong> Se a nota for emitida em substitui\u00e7\u00e3o de outra NFS-e voc\u00ea deve utilizar a fun\u00e7\u00e3o &#8220;<strong>NFS-e: RPS definir RPS substitu\u00eddo<\/strong>&#8221; passando os dados da nota substitu\u00edda.<\/li>\n<li>Adicione informa\u00e7\u00f5es sobre o servi\u00e7o prestado (&#8220;<strong>NFS-e: RPS Dados do servi\u00e7o<\/strong>&#8220;)\n<ol>\n<li>RPS<\/li>\n<li>Item da lista de servi\u00e7os (Letras)<br \/>\nItem da lista de servi\u00e7os que corresponde ao servi\u00e7o da nota fiscal;<\/li>\n<li>CNAE<\/li>\n<li>C\u00f3digo Tribut\u00e1rio (Letras) &#8211;<br \/>\nIdentifica\u00e7\u00e3o da lei que d\u00e1 sentido \u00e0s cobran\u00e7as (obter junto \u00e0 prefeitura);<br \/>\nDica: Arrisque deixar em branco, caso n\u00e3o saiba;<\/li>\n<li>Discrimina\u00e7\u00e3o (Letras) &#8211; A maioria das prefeituras aceita apenas um tipo servi\u00e7o por NFS-e, utilize este campo para descrever todos os servi\u00e7os de um mesmo tipo;<\/li>\n<li>C\u00f3digo munic\u00edpio (Letras) &#8211; C\u00f3digo do IBGE;<\/li>\n<li>C\u00f3digo do munic\u00edpio de incid\u00eancia (se for diferente).<\/li>\n<\/ol>\n<\/li>\n<li>OPCIONAL: Adicione o endere\u00e7o de presta\u00e7\u00e3o <strong>&#8220;NFS-e:<\/strong>\u00a0<strong>RPS definir endere\u00e7o de presta\u00e7\u00e3o do servi\u00e7o&#8221;;<\/strong><\/li>\n<li>Adicione os totais da NFS-e &#8220;<strong>NFS-e: RPS definir valores totais<\/strong>&#8220;;<\/li>\n<li>Adicione as al\u00edquotas dos impostos com a fun\u00e7\u00e3o &#8220;<b>NFS-e: RPS Definir Al\u00edquotas Impostos<\/b>&#8220;;<\/li>\n<li>Adicione os dados do tomador do servi\u00e7o usando as fun\u00e7\u00f5es &#8220;<strong>NFS-e: RPS definir identifica\u00e7\u00e3o do Tomador<\/strong>&#8221; e &#8220;<strong>NFS-e: RPS definir endere\u00e7o do Tomador<\/strong>&#8220;.<\/li>\n<li>Utilize a fun\u00e7\u00e3o &#8220;<strong>NFS-e: Obter XML do Lote de RPS<\/strong>&#8221; para pegar o XML do lote que ser\u00e1 enviado.<\/li>\n<li>Envie o lote atrav\u00e9s da fun\u00e7\u00e3o &#8220;<strong>NFS-e: Enviar Lote de RPS<\/strong>&#8221; e o retorno ser\u00e1 o XML de resposta da prefeitura.<\/li>\n<\/ol>\n<h2>Processando a resposta do servidor<\/h2>\n<ol>\n<li>Utilize a fun\u00e7\u00e3o &#8220;<strong>NFS-e: Processar resposta do servidor<\/strong>&#8221;\u00a0passando o XML devolvido no retorno do envio de lote, esta fun\u00e7\u00e3o transformar\u00e1 o resultado num mapeamento (Variante) com os campos abaixo;<\/li>\n<li>Obtenha\u00a0o elemento &#8220;<strong>QTD_NFS<\/strong>&#8220;, observe se j\u00e1 foram retornas NFS-e (se o servi\u00e7o for s\u00edncrono).<\/li>\n<li>Neste caso pule diretamente para a parte de leitura dos dados da NFS-e;<\/li>\n<li>Obtenha o &#8220;<strong>PROTOCOLO<\/strong>&#8221; e fa\u00e7a a consulta da situa\u00e7\u00e3o do lote alguns segundos ap\u00f3s (30 segundos ou mais em m\u00e9dia) usando a fun\u00e7\u00e3o &#8220;<strong>NFS-e: Consultar situa\u00e7\u00e3o do Lote de RPS<\/strong>&#8220;;<\/li>\n<li>Se o lote ainda n\u00e3o foi processado voc\u00ea deve consultar novamente depois de mais alguns segundos (30 a 90 segundos).<\/li>\n<li>Algumas prefeituras j\u00e1 retorna os dados da NFS-e na consulta da situa\u00e7\u00e3o, outras s\u00f3 retornam os dados com a chamada da fun\u00e7\u00e3o\u00a0&#8220;<strong>NFS-e: Consultar Lote de RPS<\/strong>&#8220;, neste caso, ap\u00f3s o lote ser processado chame a fun\u00e7\u00e3o &#8220;<strong>NFS-e: Consultar Lote de RPS<\/strong>&#8221; para obter detalhes da resposta.<\/li>\n<\/ol>\n<h3>Leitura dos dados da NFS-e<\/h3>\n<ol>\n<li>Com o retorno do envio do lote (&#8220;<strong>NFS-e: Enviar Lote de RPS<\/strong>&#8220;), consulta situa\u00e7\u00e3o (&#8220;<strong>NFS-e: Consultar situa\u00e7\u00e3o do Lote de RPS<\/strong>&#8220;) ou consultar lote (&#8220;<strong>NFS-e: Consultar Lote de RPS<\/strong>&#8220;), vai depender de cada prefeitura, voc\u00ea receber\u00e1 os dados do RPS convertido em NFS-e, que pode ser retornado de forma individual (NFS-e \u00fanico), ou em lote (normalmente limitado a 50 no m\u00e1ximo).<\/li>\n<li>Fa\u00e7a um loop, ou pegue o primeiro item se for NFS-e \u00fanico e obtenha os dados de cada NFS-e retornada, nem todas as prefeituras retornam todos os dados abaixo:\n<ul>\n<li>NFS<span style=\"color: #ff0000;\"><strong>x<\/strong><\/span>_NUMERO (Letras);<\/li>\n<li>NFS<strong><span style=\"color: #ff0000;\">x<\/span><\/strong>_DH_EMISSAO (Data);<\/li>\n<li>NFS<span style=\"color: #ff0000;\"><strong>x<\/strong><\/span>_CODIGO_VERIFICACAO (Letras);<\/li>\n<li>NFS<span style=\"color: #ff0000;\"><strong>x<\/strong><\/span>_XML (Letras);<\/li>\n<li>NFS<span style=\"color: #ff0000;\"><strong>x<\/strong><\/span>_RPS_NUMERO (Letras);<\/li>\n<li>NFS<span style=\"color: #ff0000;\"><strong>x<\/strong><\/span>_RPS_SERIE (Letras);<\/li>\n<li>NFS<span style=\"color: #ff0000;\"><strong>x<\/strong><\/span>_RPS_TIPO (Letras);<\/li>\n<li>NFS<span style=\"color: #ff0000;\"><strong>x<\/strong><\/span>_SITUACAO (Letras) &#8211; Situa\u00e7\u00e3o do RPS;<\/li>\n<li>NFS<span style=\"color: #ff0000;\"><strong>x<\/strong><\/span>_LINK (Letras) &#8211; Link para download do PDF ou HTML da nota fiscal.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h3>Em caso de erro<\/h3>\n<p>Quado h\u00e1 algum erro, ou mensagem de alerta as mesmas s\u00e3o retoradas a seguinte estrutura:<\/p>\n<ul>\n<li>MENSAGENS_QTD (Inteiro) &#8211; N\u00famero de mensagens retornar, de aviso e\/ou erro.<\/li>\n<li>MENSAGENS_ERRO_QTD (Inteiro) &#8211; Quantidade de mensagens de erro;<\/li>\n<li>MSG<span style=\"color: #ff0000;\"><strong>x<\/strong><\/span>_CODIGO (Letras) &#8211; C\u00f3digo da mensagem;<\/li>\n<li>MSG<span style=\"color: #ff0000;\"><strong>x<\/strong><\/span>_MENSAGEM (Letras) &#8211; Descri\u00e7\u00e3o da mensagem.<\/li>\n<li>MSG<span style=\"color: #ff0000;\"><strong>x<\/strong><\/span>_CORRECAO (Letras) &#8211; Texto descritivo da solu\u00e7\u00e3o retornado pela prefeitura.<\/li>\n<\/ul>\n<h1>Dicas<\/h1>\n<h2>Resumo de sequencia de chamada das fun\u00e7\u00f5es<\/h2>\n<p>Esta \u00e9 a sequencia b\u00e1sica de chamadas das fun\u00e7\u00f5es, algumas delas s\u00e3o opcionais, a depender do munic\u00edpio, ou do tipo de documento a ser emitido.<\/p>\n<ol>\n<li>NFS-e: Criar conex\u00e3o;<\/li>\n<li>NFS-e: Definir par\u00e2metro do conector;<\/li>\n<li>NFS-e: Definir o nome e documento do prestador;<\/li>\n<li>NFS-e: RPS definir dados do SIMPLES;<\/li>\n<li>NFS-e: Criar novo lote;<\/li>\n<li>NFS-e: Novo RPS;<\/li>\n<li>NFS-e: RPS definir dados b\u00e1sicos;<\/li>\n<li>NFS-e: RPS definir RPS substitu\u00eddo;<\/li>\n<li>NFS-e: RPS Dados do servi\u00e7o;<\/li>\n<li>NFS-e: RPS adicionar Item;<\/li>\n<li>NFS-e: RPS definir endere\u00e7o de presta\u00e7\u00e3o do servi\u00e7o;<\/li>\n<li>NFS-e: RPS definir valores totais;<\/li>\n<li>NFS-e: RPS Definir Al\u00edquotas Impostos;<\/li>\n<li><del>NFS-e: RPS definir dados do Tomador (Depreciada);<\/del><\/li>\n<li><del>NFS-e: RPS definir dados do Tomador 2 (Depreciada);<\/del><\/li>\n<li>NFS-e: RPS definir identifica\u00e7\u00e3o do Tomador;<\/li>\n<li>NFS-e: RPS definir endere\u00e7o do Tomador;<\/li>\n<li>NFS-e: Obter XML do Lote de RPS;<\/li>\n<li>NFS-e: Enviar Lote de RPS;<\/li>\n<li>NFS-e: Consultar situa\u00e7\u00e3o do Lote de RPS;<\/li>\n<li>NFS-e: Consultar Lote de RPS;<\/li>\n<li>NFS-e: Processar resposta do servidor.<\/li>\n<\/ol>\n<h2>Trabalhando com v\u00e1rias cidades<\/h2>\n<p>Utilize tantas fun\u00e7\u00f5es quanto forem necess\u00e1rias para atender o maior n\u00famero de cidades, deixe a API ignorar os dados desnecess\u00e1rios. Ou seja, n\u00e3o se ocupe em criar um fluxo para cada cidade, e sim um grande fluxo com todos os dados. Assim para adicionar novas cidades somente o c\u00f3digo do IBGE ser\u00e1 alterado.<\/p>\n<h2>Validando os XMLs<\/h2>\n<p>Algumas valida\u00e7\u00f5es s\u00e3o espec\u00edficas da prefeitura (regras de neg\u00f3cio internas), outras s\u00e3o especificadas num arquivo de valida\u00e7\u00e3o do XML, voc\u00ea pode testar o XML gerado atrav\u00e9s da fun\u00e7\u00e3o &#8220;<strong>NFS-e &#8211; Obter XML do Lote<\/strong>&#8221; e testar junto com XSD fornecido pela prefeitura em sites como esse:<\/p>\n<p>http:\/\/www.utilities-online.info\/xsdvalidation\/<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A API de NFS-e \u00e9 utilizada principalmente para emiss\u00e3o e cancelamento\u00a0(se suportado pela prefeitura) de notas ficais de servi\u00e7os, outras rotinas podem estar dispon\u00edveis. Passos para emiss\u00e3o da NFS-e Resumidamente a emiss\u00e3o da NFS-e segue os seguintes passos: Envio do Lote de RPS ou RPS individual para a prefeitura; Consulta a situa\u00e7\u00e3o do lote ou [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[56,20],"tags":[],"class_list":["post-250","post","type-post","status-publish","format-standard","hentry","category-instrucoes-de-uso","category-nfs-e"],"_links":{"self":[{"href":"https:\/\/www.l2maker.com.br\/documentacao\/wp-json\/wp\/v2\/posts\/250","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=250"}],"version-history":[{"count":45,"href":"https:\/\/www.l2maker.com.br\/documentacao\/wp-json\/wp\/v2\/posts\/250\/revisions"}],"predecessor-version":[{"id":3849,"href":"https:\/\/www.l2maker.com.br\/documentacao\/wp-json\/wp\/v2\/posts\/250\/revisions\/3849"}],"wp:attachment":[{"href":"https:\/\/www.l2maker.com.br\/documentacao\/wp-json\/wp\/v2\/media?parent=250"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.l2maker.com.br\/documentacao\/wp-json\/wp\/v2\/categories?post=250"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.l2maker.com.br\/documentacao\/wp-json\/wp\/v2\/tags?post=250"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}