Ir para conteúdo
  • Cadastre-se

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

Recommended Posts

  • Consultores
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 ACBr Pro

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.

The popup will be closed in 10 segundos...
The popup will be closed in 10 segundos...