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/"