O fluxo da emissão será realizado como de costume, com requisições HTTP, alterando o endpoint para localhost.
Segue abaixo as rotas que podem ser utilizadas:
Envio
No aplicativo NeverStop, antes de qualquer envio, será necessário realizar as configurações do cnpj emitente e token da Software House. Posteriormente, clique em "Salvar" e depois "Ativar", para que dê início na execução do mesmo para capturar as notas.
Deve-se utilizar o método 'POST' com o seguinte modelo de URL: http://localhost:8082/nfce
O JSON deve ser enviado no body da requisição, como na imagem abaixo:

[Post]/nfce
|
Exemplo de envio:
[
{
"idIntegracao" : 146146146113,
"natureza" : "VENDA",
"emitente" : {
"cpfCnpj" : "cnpjAqui"
},
"serie": 457,
"itens" : [
{
"codigo" : "54752",
"descricao" : "LEITE UHT ITALAC ZERO LACTOSE SEMIDESNATADO C/ TAMPA 1L - UN",
"codigoBarras" : "",
"codigoBarrasTributavel" : "",
"ncm" : "04012010",
"cfop" : "5405",
"valorUnitario" : {
"comercial" : 7.99,
"tributavel" : 7.99
},
"quantidade" : {
"comercial" : 1,
"tributavel" : 1
},
"valor" : 7.99,
"tributos" : {
"icms" : {
"origem" : "0",
"cst" : "60"
},
"pis" : {
"origem" : "0",
"cst" : "06"
},
"cofins" : {
"origem" : "0",
"cst" : "06"
}
}
}
],
"pagamentos" : [
{
"aVista" : true,
"meio" : "17",
"valor" : 7.99
}
],
"responsavelTecnico" : {
"telefone" : {
"ddd" : "44",
"numero" : "30379500"
},
"cpfCnpj" : "cnpjAqui",
"nome" : "Tecnospeed",
"email" : "contato@tecnospeed.com.br"
},
"consumidorFinal" : true,
"tipoEmissao" : 1,
"destinatario" : {
"cpfCnpj" : "cnpjAqui",
"email" : "emailAqui",
"razaoSocial" : "Teste"
}
}
]
Exemplos de retornos
Normal
{
"documents": {
"emitente": "29062609000177",
"idIntegracao": ""
},
"chave": "41230529062609000177654570000006861183138521",
"message": "Nota(as) em processamento"
}
Contingência
{ "documents": { "emitente": "29062609000177", "idIntegracao": "" }, "chave": "41230529062609000177654570000006889574198778", "message": "Registrada como Contingência Offline" }
|
Consulta
Para consultar sua nota, deve-se utilizar o método 'GET' com o seguinte modelo de URL: http://localhost:8082/nfce/{chave}/resumo . Lembrando que atualmente é possível consultar as notas somente pela chave. Em breve será liberada a opção de consultas e obtenção de retornos com o campo 'idIntegracao' .
[Get]/nfce/{chaveNota}/resumo
|
Exemplo de retorno:
{
"numero": "684",
"tipoEmissao": "Normal",
"mensagem": "Autorizado o uso da NF-e",
"valor": "7.99",
"chave": "41230529062609000177654570000006841666485213",
"idIntegracao": "",
"destinatario": "99999999999",
"emitente": "29062609000177",
"protocolo": "141230000143567",
"pdf": "http://localhost:8082/NFCe41230529062609000177654570000006841666485213.pdf",
"xml": "http://localhost:8082/NFCe41230529062609000177654570000006841666485213.xml",
"dataAutorizacao": "24-05-2023 13:05",
"serie": "457",
"emissao": "24-05-2023 13:05",
"status": "CONCLUIDO"
}
|
Obtendo PDF e XML
Para obter essas informações, você vai chamar as rotas http://localhost:8082/nfce/{chave}/pdf e http://localhost:8082/nfce/{chave}/xml como 'GET' e passar como filtro, a chave da nota que nós retornamos para você na requisição de envio do json.
Mais uma vez, afim de não termos duplicação de documentações, essa aqui é a documentação explicativa da obtenção do PDF e essa aqui é a documentação para obtenção do XML, lembrando que será necessário alterar o endpoint para localhost.
Obs:
- Em caso de nota cancelada o PDF retornado, será atualizado com as informações do cancelamento
- A nota emitida e consultada em modo contingência, irá retornar somente o PDF. Após sua autorização pela SEFAZ, será possível consultar seu XML.
Os retornos da consulta da nota, possuem dois campos no json, que são as URLs de requisição, prontas, para PDF e para XML. Basta pegar elas ali e disparar a requisição para o PlugNotas.
[Get]/nfce/{chaveNota}/pdf
|
Exemplo de retorno:

Não encontrada
{ "error": { "data": { "chaveNota": "41230529062609000177654570000006871574198779" }, "message": "Não localizamos qualquer NFCe com os parâmetros informados" }
|
XML
[Get]/nfce/{chaveNota}/xml
|
Exemplo de retorno:

Não encontrada
{ "error": { "data": { "chaveNota": "41230529062609000177654570000006871574198779" }, "message": "Não localizamos qualquer NFCe com os parâmetros informados" }
Em contingência
{
"error": { "data": { "chaveNota": "41230529062609000177654570000006891646687704" }, "message": "Não é possivel consultar o xml destinatário em modo off-line" } }
|
Cancelamento
O cancelamento da NFC-e também é assíncrono e também é solicitado através da chave que geramos para essa nota.
Você deve disparar uma requisição do tipo 'POST' e a chave da nota na URL http://localhost:8082/nfce/{chave}/cancelamento . Aqui a documentação para solicitar o cancelamento.
[Post]/nfce/{chaveNota}/cancelamento
|
Exemplo de envio:
{
"justificativa": "Teste cancelamento"
}
Exemplo de retorno:
{
"message": "Cancelamento em processamento"
}
|
Status Cancelamento
[Get]/nfce/{chaveNota}/cancelamento/status
|
Exemplo de retorno:
Concluído
{
"data": { "date": "2023-05-23T17:55:34-03:00", "protocolo": "141230000142886", "xml": "http://localhost:8082/NFCe41230529062609000177654570000006761282016860.xml", "respostaSefaz": "Evento registrado e vinculado a NF-e", "cStat": "135", "status": "CONCLUIDO" }, "message": "Solicitação de cancelamento processada"
}
Rejeitado
{
"data": { "date": "2023-05-31T17:32:48-03:00", "protocolo": "", "xml": "http://localhost:8082/NFCe41230529062609000177654570000006871574198775.xml", "respostaSefaz": "NFC-e autorizada ha mais de . 30 minutos", "cStat": "501", "status": "REJEITADO" }, "message": "Solicitação de cancelamento processada"
}
Não encontrada
{ "error": { "data": { "chaveNota": "41230529062609000177654570000006871574198779" }, "message": "Não localizamos qualquer NFCe com os parâmetros informados" }
|
Para saber se o cancelamento foi efetivado com sucesso, você pode consultar esse protocolo retornado ou então aguardar o WebHook te notificar.
Obs: Por padrão, o cancelamento de uma NFC-e pode ser feito em até 30 (trinta) minutos a partir da hora de autoriozação dela. Cada UF tem liberdade para alterar esse prazo.
Visando a observação acima, caso o cancelamento for enviado de modo offline o NeverStop realizará o agendamento daquela solicitação, para que seja enviada somente quando voltarmos a ter conexão.
Comentários
0 comentário
Por favor, entre para comentar.