Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 1149 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Administradores
Postado

Exemplo:
Recentemente foi publicada a versão 1.10 da NT 2020.005, a qual trouxe uma mudança que pode impactar diretamente a emissão da NFCe em seus clientes, trata-se da restrição do uso da emissão em modo assíncrono quando o lote contém apenas uma NFCe.

Para o ambiente de homologação, esta validação e consequente rejeição da NFCe já está em vigor desde 01/07/2021 e entrará em produção em 01/09/2021.

De acordo com o texto da NT será retornada a seguinte rejeição

Citar

452 Rejeição: Solicitada resposta assíncrona para Lote com somente 1 (uma) NFC-e

Porém em relatos no fórum também houver a seguinte rejeição devido a falha nos retornos das SEFAZ

Citar

553 Rejeicao: Tipo Autorizador do Recibo diverge do Orgao Autorizador

Para evitar esta rejeição, é muito simples, basta sua aplicação deverá passar a realizar o envio da NFCe (quando enviar um único documento) em modo síncrono.

Exemplo utilizando o componente ACBrNFe

//---------------------- Exemplo Componente ACBrNFe ------------------------------------//

{
  O método Enviar possui 4 parametros a saber:

  ALote = se refere ao numero do lote de notas que esta sendo enviado
  Imprimir = defini se o DANFE vai ser impresso automaticamente (True = Padrão) ou não (False)
  Sincrono = defini se o envio vai ser no modo sincrono (True) ou assincrono (False = Padrão)   <------ AQUI ------
  Zipado   = defini se o Xml vai ser enviado zipado (True) ou não (False = Padrão)

  Sincrono só pode ser True se o envio é unitario, ou seja, é enviado uma nota por vez.
  Muito usado para o envio da NFC-e, quanto a NF-e não são todas as UF que aceitam esse modo
  de envio.

  Zipado não são todas as UF que aceitam que o Xml seja enviado zipado.
}

if ACBrNFe1.NotasFiscais.Count > 1 then
  ACBrNFe1.Enviar(nLote)  // Envia o lote contendo mais de 1 nota no modo assincrono
else
  ACBrNFe1.Enviar(nLote, True, True)  // Envia o lote contendo apenas 1 nota no modo sincrono

 

 

Exemplo utilizando a biblioteca ACBrLib

//-------------------------------- Exemplo ACBrLib C# --------------------------------------//

Parâmetros:
ALote - Numero do Lote a ser enviado
AImprimir - Se True imprime o DANFe caso o NF-e for autorizado
ASincrono - Se True imprime o envia em modo sincrono              // <------------ AQUI --------------
AZipado - Se True imprime o envia o arquivo zipado
sResposta - Usado pelo retorno, contem as informações retornadas pela consulta.
esTamanho - Usado pelo retorno, contem o tamanho da string (sResposta).

ACBrNFe.LimparLista();
// Também pode ser enviado o conteudo do ini.
ACBrNFe.CarregarINI("c:\nfce.ini");
// Caso use xml, também pode ser enviado o conteudo do xml.
//ACBrNFe.CarregarXML("c:\35XXXXXXXXXXXXXXXX550010000000050000000058-nfe.xml");
ACBrNFe.Enviar(aLote: 1, imprimir: false, sincrono: true, zipado: false);

Manual ACBrLib: https://acbr.sourceforge.io/ACBrLib/NFE_Enviar.html

Exemplo utilizando o ACBrMonitorPlus

//-------------------------------- Exemplo ACBrMonitorPLUS --------------------------------------//

Parâmetros:
cArqXML - Caminho do arquivo XML a ser enviado.
nLote - Número do Lote
bAssina - Coloque 0 se não quiser que o componente assine o arquivo. - Parâmetro Opcional
nImprime - Coloque 1 se quiser que o DANFe seja impresso logo após a autorização - Parâmetro Opcional
cImpressora - Informe o nome da impressora - Parâmetro Opcional
bSincrono- Coloque 1 para indicar modo síncrono e 0 para modo assíncrono.    // <---------- AQUI -----------
bValidaXML- Coloque 1 para Validar e 0 para não Validar. - Parâmetro Opcional
bGerarNovoXML- Coloque 1 para Gerar um novo XML para envio e 0 para não Gerar. - Parâmetro Opcional


NFE.ENVIARNFE("c:\35XXXXXXXXXXXXXXXX550010000000050000000058-nfe.xml",1,1,0,,1)

Manual ACBrMonitorPLUS: https://acbr.sourceforge.io/ACBrMonitor/NFEEnviarNFe.html

  • Curtir 8
  • Obrigado 2
Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Consultores
Postado

Olá pessoal,

Para quem utiliza o componente ACBrNFe.

Após o envio da NF-e ou NFC-e seja no modo assíncrono (2 ou mais notas no lote) ou síncrono (somente uma nota no lote), podemos pegar o status, motivo e protocolo de autorização da seguinte forma:

Protocolo := ACBrNFe1.NotasFiscais.Items[i].NFe.procNFe.nProt; // Campo string
Status := ACBrNFe1.NotasFiscais.Items[i].NFe.procNFe.cStat; // Campo Integer
Motivo := ACBrNFe1.NotasFiscais.Items[i].NFe.procNFe.xMotivo; // Campo string

Se o envio é síncrono temos apenas uma nota, neste caso o valor do índice "i" será zero.

Por outro lado se o envio é assíncrono, ou seja, lote contendo até 50 notas o valor do índice "i" vai variar de zero até a quantidade de notas menos 1.

Exemplo:

for i := 0 to (ACBrNFe1.NotasFiscais.Count - 1) do
begin
  (...)
end;

 

  • Curtir 5
Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

  • Moderadores
Postado

Para obter o retorno utilizando o ACBrMonitorPlus ou ACBrLibNFe, com o envio Síncrono:

[ENVIO]
Versao=1.10
TpAmb=2
VerAplic=SP_NFE_PL_005c
CStat=100
XMotivo=Autorizado o uso da NF-e
CUF=35
NRec=35000000XXXXXXX
DhRecbto=2021-09-25T09:25:04
TMed=1

[NFE28]
Versao=1.07
Id=
TpAmb=2
VerAplic=SP_NFE_PL_005c
CStat=100
XMotivo=Autorizado o uso da NF-e
CUF=35
ChNFe=350XXXXXXXXXXXXXXXXX650010000000280000000281
DhRecbto=2021-09-25T09:25:04
NProt=13509000XXXXXXX
DigVal=UNTpscTtknjN5UOBUHa9PZPHJnE=

 

  • Curtir 3
Consultor SAC ACBr

José Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

  • Fundadores
Postado

Use a força, leia os fontes

Veja que no Demo do ACBrNFe, demonstramos como pegar o retorno da consulta, quando Síncrono ou Assíncrono .. Veja esse trecho do código fonte do botão "Criar e Enviar"

  if not Sincrono then
  begin
    MemoDados.Lines.Add('Envio NFe');          // ASSINCRONO
    MemoDados.Lines.Add('tpAmb: ' + TpAmbToStr(ACBrNFe1.WebServices.Retorno.TpAmb));
    MemoDados.Lines.Add('verAplic: ' + ACBrNFe1.WebServices.Retorno.verAplic);
    MemoDados.Lines.Add('cStat: ' + IntToStr(ACBrNFe1.WebServices.Retorno.cStat));
    MemoDados.Lines.Add('cUF: ' + IntToStr(ACBrNFe1.WebServices.Retorno.cUF));
    MemoDados.Lines.Add('xMotivo: ' + ACBrNFe1.WebServices.Retorno.xMotivo);
    MemoDados.Lines.Add('cMsg: ' + IntToStr(ACBrNFe1.WebServices.Retorno.cMsg));
    MemoDados.Lines.Add('xMsg: ' + ACBrNFe1.WebServices.Retorno.xMsg);
    MemoDados.Lines.Add('Recibo: ' + ACBrNFe1.WebServices.Retorno.Recibo);
    MemoDados.Lines.Add('Protocolo: ' + ACBrNFe1.WebServices.Retorno.Protocolo);
  end
  else
  begin
    MemoDados.Lines.Add('Envio NFCe');            // SINCRONO
    MemoDados.Lines.Add('tpAmb: ' + TpAmbToStr(ACBrNFe1.WebServices.Enviar.TpAmb));
    MemoDados.Lines.Add('verAplic: ' + ACBrNFe1.WebServices.Enviar.verAplic);
    MemoDados.Lines.Add('cStat: ' + IntToStr(ACBrNFe1.WebServices.Enviar.cStat));
    MemoDados.Lines.Add('cUF: ' + IntToStr(ACBrNFe1.WebServices.Enviar.cUF));
    MemoDados.Lines.Add('xMotivo: ' + ACBrNFe1.WebServices.Enviar.xMotivo);
    MemoDados.Lines.Add('Recibo: '+ ACBrNFe1.WebServices.Enviar.Recibo);            
  end;

 

  • Curtir 5
  • Obrigado 1
Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.