Neste post, iremos abordar a consulta de NFe's quando você possui a chave das notas a serem consultadas.
Como pré-requisito, há a necessidade de que você ou sua software-house possua uma conta ativa na TecnoSpeed, e o destinatário cadastrado e vinculado a sua software-house. Caso não saiba como fazer isto, confira os passos 1 e 2 clicando aqui.
Enviando a consulta de NFe's pela chave
Para consultar NFe's pela chave, você irá enviar um array de chaves de NFe's, e NÃO deverá INFORMAR os atributos de "periodo" ou de "ultimoNsu".
Para enviar uma consulta de NFe's, a nossa API trabalha de maneira assíncrona, como no modelo por busca pelo últimoNsu, onde você enviará as chaves das NFe's que deseja consultar, e retornaremos um número de protocolo o qual você passará a consultar para saber a situação (PROCESSANDO, CONCLUIDO ou ERRO) que se encontra e então obter a lista das NFe's para realizar o download.
Com tudo, há uma diferença pela busca pelo último NSU, onde cada nota passará a ter a sua própria situação, devido a probabilidade de cada nota ter sua situação e não impedir o protocolo/consulta num todo, por apenas uma nota estar com uma situação de erro, por exemplo pela chave da nota ter sido informada errada e não ser localizada, ou então por seu CPF/CNPJ não ter permissão para consulta.
Veja abaixo os detalhes de envio da requisição:
Rota:
POST https://api.nfe.tecnospeed.com.br/destinadas/v1/protocolos
Parâmetros
Headers
Atributo | Tipo | Descrição |
Content-Type | String | application/json |
token_sh | String | Token obtido no cadastro do Tecno Account em: https://conta.tecnospeed.com.br/ |
cpfCnpjSoftwareHouse | String | CPF ou CNPJ da Software House que está desenvolvendo o controle das notas tomadas |
cpfCnpjDestinatario | String | CPF ou CNPJ do destinatário das notas fiscais |
Body
{
"nfeChaves": [
"00000000000000000000000000000000000000000000",
"11111111111111111111111111111111111111111111"
]
}
Atenção: caso, ao enviar, a API receba chaves repetidas, as excedentes serão ignoradas assim deixando apenas uma chave apenas, sem repetições.
Atributo | Tipo | Descrição |
nfeChaves | Array |
Array de string, contendo em cada registro a chave de uma NFe. Ao enviar chaves repetidas, será considerada apenas uma. Ao enviar chaves de formatos inválidos, a requisição será retornada com erro 400 (Bad Request).
Atenção ao retorno. Exemplo abaixo: |
Retorno
{
"id": "000000000000000000000000"
"situacao": "PROCESSANDO",
"cpfCnpjSoftwareHouse": "0000000000000",
"cpfCnpjDestinatario": "0000000000000",
"nfeChaves": [
{
"chave": "00000000000000000000000000000000000000000000",
"situacao": "PROCESSANDO"
},
{
"chave": "11111111111111111111111111111111111111111111",
"situacao": "PROCESSANDO"
}
],
"criadoEm": "2020-11-20T13:29:02.393Z",
"atualizadoEm": "2020-11-20T13:29:02.393Z"
}
A partir deste momento, nossa API irá buscar todas as notas disponíveis no ambienta nacional da SEFAZ, fazer a ciência da nota, caso seja o destinatário (eventualmente CNPJ/CPF autorizados podem consultar NFe's, porém os mesmos não podem fazer ciência justamente por não serem destinatários), e disponibiliza-la para você fazer o download de seu XML. A medida que as notas forem sendo consultadas, passarão a estarem disponíveis para consulta. Para saber o situação da consulta de cada nota, consulte a rota abaixo.
Consultar a situação do protocolo
Este passo é um passo para controle em seu software para acompanhar o andamento do protocolo, e qual o momento correto para consultar as notas localizadas por nossa API nos webservices da SEFAZ.
Existem apenas 3 situações possíveis para um protocolo, são elas:
- PROCESSANDO: Ainda não terminamos de processar sua solicitação, consultar todas as notas fiscais. Você pode acompanhar a situação por cada uma das notas fornecidas, conforme exemplo abaixo.
- CONCLUIDO: Finalizamos as consultas junto ao webservice da SEFAZ, podendo ou não retornar notas. Quando o protocolo estiver nessa situação, é o momento ideal para consultar as notas localizadas.
- ERRO: Ocorreu um erro ao tentar realizar a consulta no webservice da SEFAZ.
Rota:
GET https://api.nfe.tecnospeed.com.br/destinadas/v1/protocolos/<ID do protocolo retornado no passo anterior>
Exemplo:
GET https://api.nfe.tecnospeed.com.br/destinadas/v1/protocolos/000000000000000000000000
O body do retorno será algo similar a este:
{
"id": "0000000000",
"tipo": "CONSULTA",
"situacao": "PROCESSANDO",
"cpfCnpjSoftwareHouse": "0000000000000",
"cpfCnpjDestinatario": "0000000000000",
"nfeChaves": [
{
"chave": "00000000000000000000000000000000000000000000",
"situacao": "PROCESSANDO"
},
{
"chave": "11111111111111111111111111111111111111111111",
"situacao": "LOCALIZADA"
},
{
"chave": "2222222222222222222222222222222222222222222222",
"situacao": "ERRO",
"erro": {
"mensagem": "Rejeicao: CNPJ/CPF do interessado nao possui permissao para consultar esta NF-e",
"codigo": "640"
}
}
],
"criadoEm": "2020-11-20T13:29:02.393Z",
"atualizadoEm": "2020-11-20T13:29:02.393Z"
}
As situações disponíveis para as chaves das notas fiscais são:
- PROCESSANDO: Ainda não terminamos de processar a chave.
- LOCALIZADA: Terminamos de processar a chave e localizamos a NFe na SEFAZ.
- NÃO LOCALIZADA: Terminamos de processar a chave e não localizamos a NFe na SEFAZ. Possivelmente chave informada errada ou no ambiente (produção ou homologação) errado do ambiente em que foi emitido.
- ERRO: Ocorreu um erro ao tentar realizar a consulta no webservice da SEFAZ. Confira o motivo do erro no atributo "erro" dentro do objeto da chave da NFe, conforme exemplo acima.
Com a segmentação de situação por chave da NFe, é possível consultar as demais notas do protocolo que foram concluídas e localizadas, seguindo os passos de 5 ao 8 neste post.
O link da collection está disponível aqui, ou a própria collection como anexo neste POST.
Comentários
0 comentário
Por favor, entre para comentar.