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:

Saiba como consultar as notas fiscais emitidas para seu CNPJ pela Sefaz e descubra uma forma ainda mais simples de consultá-las!
Documentos fiscais
Douglas Pinheiro

Como consultar as notas fiscais emitidas para meu CNPJ?

Uma das perguntas mais comuns entre donos de empresas é como fazer consulta de nota fiscal para seu CNPJ. Isso porque essa averiguação é essencial para garantir a segurança do negócio.

Afinal, a consulta de nota fiscal é importante para manter o SPED Fiscal em dia, proteger a organização contra fraudes, acompanhar as transações, avaliar fornecedores, entre outras atividades importantes.

Especificamente sobre a segurança e as fraudes, empresários têm a consciência que estão sujeitos a sofrer esse tipo de situação, sobretudo em relação à emissão de notas fiscais falsas, também conhecidas como notas frias, basicamente, documentos ilegais que alguém emite para seu CNPJ sem que você, de fato, tenha efetuado determinada operação.

Por isso, o tema de consulta de notas fiscais emitidas em relação ao CNPJ é de suma importância. No artigo a seguir, trazemos as principais questões a respeito do assunto, como a emissão e a consulta a notas emitidas contra o seu CNPJ.

Leia mais »
Armazenamento na nuvem é seguro?
SaaS
Ricardo Acras

Precificação SaaS: saiba o que é, modelos e como fazer

A precificação SaaS é um desafio que vai além das estratégias tradicionais. Nesse modelo de negócio, o preço não depende apenas de custos operacionais, mas também de fatores como o valor percebido pelo cliente e a competitividade no mercado.

A forma como o preço de um produto ou serviço é calculado afeta uma empresa em inúmeros aspectos, já que impacta diretamente seu faturamento.

Neste artigo, vamos falar sobre os principais modelos de precificação SaaS e como evitar erros comuns na hora de escolher a melhor abordagem para o seu negócio.

Leia mais »
Saiba o que é Low Code e entenda para que serve e como funciona. Confira os benefícios, desafios e exemplos dessa forma de desenvolvimento.
Tecnologia e API
Debora Sandi

O que é Low Code e como funciona? Veja os benefícios!

O Low Code é uma forma de desenvolvimento que permite criar aplicativos e automatizar processos de forma intuitiva, utilizando pouco ou nenhum código.

Com plataformas deste tipo, é possível compilar aplicativos de maneira mais rápida e eficiente, eliminando a necessidade de linguagens de programação complexas e permitindo um desenvolvimento mais objetivo e acessível.

No artigo de hoje entenda o que é o Low Code, como funciona e quais são os seus benefícios.

Leia mais »