Solução para importação de NFSe para prefeituras sem webservices

Egon Hilgenstieler

Algumas prefeituras possuem nota fiscal eletrônica de serviços mas não possuem a possibilidade de integrar com outros sistemas através de webservices. A solução nestes casos é a importação de NFSe: situação onde a prefeitura disponibiliza uma forma de importar várias notas fiscais para emissão em lote, evitando o trabalho de digitar e autorizar cada NFSe de forma manual.

Conteúdo

Algumas prefeituras possuem nota fiscal eletrônica de serviços mas não possuem a possibilidade de integrar com outros sistemas através de webservices.

A solução nestes casos é a importação de NFSe: situação onde a prefeitura disponibiliza uma forma de importar várias notas fiscais para emissão em lote, evitando o trabalho de digitar e autorizar cada NFSe de forma manual.

A API do Focus NFe agora atende essas situações fornecendo uma interface padronizada para geração destes arquivos, usando um formato muito similar com o já usado para autorizar NFSe’s individualmente.

Geração do arquivo de importação

Para gerar o arquivo para importação, deve ser feita a seguinte solicitação

POST /lotes_nfse?token=TOKEN&ref=REFERENCIA

Onde TOKEN é o seu token de acesso e REFERENCIA uma referência do lote a ser gerado (ele poderá ser usado posteriormente na consulta). Os dados que devem ir no POST é um arquivo YAML muito similar ao arquivo de autorização de NFSe, consistindo pelos seguintes campos:

prestador:

  • cnpj(*): CNPJ do prestador de serviços.
  • codigo_municipio(*): Código IBGE do município do prestador
  • inscricao_municipal: Inscrição municipal do prestador de serviços.

lista_nfse: Array com  as notas a serem geradas, usando o mesmo formato do arquivo de NFSe omitindo apenas a seção “prestador”.

Exemplo de arquivo:

prestador:
  cnpj: 32334535000121
  inscricao_municipal: 123123
  codigo_municipio: 3547304
lista_nfse:
  - data_emissao: 2015-02-04T17:7:26-03:00
    natureza_operacao: 1
    servico:
      discriminacao: "Servico 1"
      item_lista_servico: "01.06"
      valor_iss: 10.26
      valor_servicos: 513.00
    tomador:
      razao_social: 'João da Silva'
      cpf: '03055054812'
      codigo_municipio: 4106902
      cep: 80310333
      logradouro: Rua ABC
      numero: 12
      complemento: apto 21
      email: joao@example.com
  - data_emissao: 2015-02-05T17:7:26-03:00
    natureza_operacao: 1
    servico:
      discriminacao: "Serviço 2"
      item_lista_servico: "01.06"
      valor_iss: 10.26
      valor_servicos: 513.00
    tomador:
      razao_social: 'Maria da Silva'
      cpf: '04055054813'
      codigo_municipio: 4106902
      cep: 88000090
      logradouro: Rua XYZ
      numero: 21
      complemento: casa
      email: maria@example.com

A solicitação é síncrona e pode retornar os seguintes status HTTP:

  • HTTP status 201 (Created) – Arquivo de importação gerado. É devolvido o conteúdo do arquivo como resposta
  • HTTP status 415 (Unsupported Media Type) – Formato de arquivo YAML inválido
  • HTTP status 422 (Unprocessable Entity) – Campos obrigatórios não preenchidos ou em formato incorreto
  • HTTP status 400 (Bad Request ) – Requisição rejeitada devido a CNPJ ou token inválido (mensagem de erro apropriada é exibida)

Consulta do arquivo de importação

Esta operação está disponível caso queira consultar novamente o arquivo gerado. Seu formato é:

GET /lotes_nfse/REFERENCIA?token=TOKEN

Retorno:

  • HTTP status 200 (OK) – É devolvido o conteúdo do arquivo de importação como resposta
  • HTTP status 404 (Not found) – Lote não encontrado com referência informada

Importando o arquivo de resposta (opcional)

Algumas prefeituras disponibilizam um arquivo de resposta, que poderá informar erros no arquivo enviado ou informar dados da nota fiscal gerada (por exemplo número e código de verificação). Quando implementado você poderá enviar a resposta da prefeitura para nossa API e iremos gerar a resposta de acordo com o padrão da nossa API.

Seu formato é:

POST /lotes_nfse/REFERENCIA/resposta?token=TOKEN

O conteúdo do POST deverá ser a resposta da prefeitura.

Retorno:

  • HTTP status 201 (Created) – Arquivo de importação gerado. É devolvido o status de cada nota enviada. Nenhuma nota é processada se alguma nota tiver algum erro.
  • HTTP status 415 (Unsupported Media Type) – Formato de arquivo inválido
  • HTTP status 400 (Bad Request ) – Requisição rejeitada devido a CNPJ ou token inválido (mensagem de erro apropriada é exibida)

Quando o arquivo é processado com sucesso, é gerado uma resposta com um array no mesmo formato de uma consulta de NFSe. Exemplo:

-
caminho_xml_nota_fiscal: /notas_fiscais_servico/NFSe21123430001233505708-4759664-31-3347-2325799-T.xml
  codigo_verificacao: 334L.2795.8967.1235799-T
  data_emissao: 2017-09-04 00:00:00 -03:00
  numero: "31"
  status: autorizado
  uri: "https://www.municipio.sp.gov.br/nfe/"
-
  caminho_xml_nota_fiscal: /notas_fiscais_servico/NFSe21237430001233505708-4759664-32-990R-9926-9-Z.xml
  codigo_verificacao: 990R.9926.0621.0181239-Z
  data_emissao: 2017-09-04 00:00:00 -03:00
  numero: "32"
  status: autorizado
  uri: "https://www.municipio.sp.gov.br/nfe/"
Picture of Egon Hilgenstieler

Egon Hilgenstieler

CTO e cofundador do Focus NFe, desenvolvedor, professor de yoga e praticante de meditação. Enquanto não está programando, procura a resposta para a vida, para o universo e para tudo mais.

Inscreva-se em nossa newsletter​

Receba nossos conteúdos exclusivos em primeira mão.

Explore outros conteúdos:

API para SAT: o que é, para que serve e como consultar?
Tecnologia e API
Cesar Nocrato

API para SAT: o que é, para que serve e como consultar?

A API para SAT foi desenvolvida para facilitar a comunicação entre sistemas de gestão e o Sistema Autenticador e Transmissor de Cupons Fiscais eletrônicos (CF-e SAT) em São Paulo. Essa interface permite a emissão, autenticação e envio de cupons fiscais de forma automatizada, garantindo conformidade com a legislação tributária vigente.

Com a descontinuação do SAT a partir de 2026, entender como se adaptar às novas regras é essencial para empresas que ainda utilizam esse modelo. Hoje vamos falar mais sobre esta API, assim como as informações essenciais para fazer uma boa transição.

Acompanhe!

Leia mais »
Entenda o que é NCM e o que significa cada número do código. Aprenda também a consultar e definir o NCM de seus produtos!
Contabilidade
Jaciara Santana

O que é NCM? Confira como consultar e tabela atualizada!

Saber o que é NCM é essencial para as empresas envolvidas em transações comerciais internacionais, tanto para importação quanto exportação. Isso porque a utilização da NCM é obrigatória em notas fiscais eletrônicas, tornando-se indispensável para documentos comerciais.

Este sistema de codificação, adotado em janeiro de 1995 pelos países membros do Mercosul, segue critérios internacionais de classificação de mercadorias. Acompanhe o artigo de hoje e saiba o que é NCM, sua função, como determiná-lo e qual é a sua importância.

Este sistema de codificação, adotado em janeiro de 1995 pelos países membros do Mercosul, segue critérios internacionais de classificação de mercadorias.

Acompanhe o artigo de hoje e saiba o que é NCM, sua função, como determiná-lo e qual é a sua importância.

Leia mais »
SaaS
João Vallim

O que é SaaS, para que serve e quais são as vantagens?

Você sabe o que é SaaS? O termo vem da expressão em inglês Software as a Service e é um serviço de computação em nuvem que dá acesso a softwares e soluções tecnológicas por meio da internet.

Com o SaaS, empresas podem disponibilizar serviços sem a necessidade de instalar programas e/ou fazer manutenção de hardwares e softwares. Isso porque ao se manter online, os recursos são facilmente acessados, uma vez que ficam hospedados no servidor das empresas provedoras.

Quer saber mais sobre o que é SaaS, quais são seus benefícios e exemplos desse serviço? Acompanhe o artigo de hoje.

Leia mais »