Ir para conteúdo
  • Cadastre-se

dev botao

CC-e (Carta de Correção Eletronica)


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

Recommended Posts

  • Moderadores

1-Como capturar o retorno do envio da CC-e: numero do protocolo de autorização, data e hora?

2-Não estou entendendo como irá funcionar o seqEvento. Se na NF nr 15 eu já enviei uma carta de correção com 5 eventos, ao enviar uma nova correção dessa carta devo enviar o seqevento a partir do 6, mesmo acumulando os eventos anteriores (afinal, o que irá valer é a ultima carta de correção enviada)?

3-Na function TACBrNFe.EnviarCartaCorrecao(idLote: Integer): Boolean;

Está retornando TRUE quando ocorre alguma rejeição, como por exemplo, Duplicidade de Evento. Não deveria retornar FALSE?

Link para o comentário
Compartilhar em outros sites

Bom Dia,

1-

ACBrNFe1.WebServices.CartaCorrecao.CCeRetorno.retnProt;

ACBrNFe1.WebServices.CartaCorrecao.CCeRetorno.cStatInfEvento;

ACBrNFe1.WebServices.CartaCorrecao.CCeRetorno.xMotivoInfEvento;

ACBrNFe1.WebServices.CartaCorrecao.CCeRetorno.retdhRegEvento;

2-

Pelo que entendi todas são válidas, em nenhum lugar eu vi que diz eu uma nova carta de correção para a mesma nota cancela as anteriores.

3-

não entendi essa colocação

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Bom dia, obrigada pelas respostas. Mas ainda tenho dúvidas:

1- Referente a:

ACBrNFe1.WebServices.CartaCorrecao.CCeRetorno.retnProt;

ACBrNFe1.WebServices.CartaCorrecao.CCeRetorno.cStatInfEvento;

ACBrNFe1.WebServices.CartaCorrecao.CCeRetorno.xMotivoInfEvento;

ACBrNFe1.WebServices.CartaCorrecao.CCeRetorno.retdhRegEvento;

Eu não consigo acessar essas propriedades do componente (retnProt,cStatinfEvento,xMotivoInfEvento e retdhRegEvento). Só aparece retEvento.

Quando tempo compilar dá erro de

Undeclared Identificador: retnProt

Undeclared Identificador: cStatInfEvento

Undeclared Identificador: xMotivoInfEvento

Undeclared Identificador: retdhRegEvento

Tenho que declarar alguma unit?

Estou com meus fontes do ACBr todos atualizados via SVN.

2-Referente a:

Pelo que entendi todas são válidas, em nenhum lugar eu vi que diz eu uma nova carta de correção para a mesma nota cancela as anteriores.

No manual diz que a carta de correção é cumulativa, devendo constar todas as alterações das cartas anteriores ref aquela nota fiscal. Fiz teste aqui, fazendo uma carta de correção da nota 15 e em seguida, outra carta de correção da mesma nota. No site, fica constando apenas as alterações da ultima carta e seu respectivo protocolo, e se eu não discriminar nela todas as alterações da carta anterior, fica somente com a ultima alteração. Então, o cliente não consegue ver o que foi alterado na carta anterior. É como se a carta anterior não existisse mais.

3-Ref a:

Na function TACBrNFe.EnviarCartaCorrecao(idLote: Integer): Boolean;

Está retornando TRUE quando ocorre alguma rejeição, como por exemplo, Duplicidade de Evento. Não deveria retornar FALSE?

Não me retorna nenhuma mensagem de erro ou excessão quando existe duplicidade de evento. Debugando o aplicativo, o erro ocorre, mas não está gerando uma excessão. Então a função acima está retornando true.

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Alguém que tenha conseguido usar as propriedades abaixo do retorno CC-e poderia me passar um exemplo de como fazer isso? Já atualizei o componente e continua me dando mensagem de Identificador não declarado para retnProt,cStatInfEvento,xMotivoInfEvento e retdhREgEvento). O Demo do ACBr não está completo para capturar os dados do retorno.

ACBrNFe1.WebServices.CartaCorrecao.CCeRetorno.retnProt;

ACBrNFe1.WebServices.CartaCorrecao.CCeRetorno.cStatInfEvento;

ACBrNFe1.WebServices.CartaCorrecao.CCeRetorno.xMotivoInfEvento;

ACBrNFe1.WebServices.CartaCorrecao.CCeRetorno.retdhRegEvento

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Minha CC-e já está funcionando e já consegui entender como funciona o SeqEvento. Mas para que fique correto, preciso capturar o ultimo SeqEvento de uma ChaveDeAcesso para ter certeza de qual será o proximo e também obter o numero do protocolo de autorização de uma CC-e. Mas os comandos abaixo não funcionam e não entendo o q estou fazendo de errado porque estou com a ultima atualização do componente ACBrNFe:

ACBrNFe1.WebServices.CartaCorrecao.CCeRetorno.retnProt;

ACBrNFe1.WebServices.CartaCorrecao.CCeRetorno.cStatInfEvento;

ACBrNFe1.WebServices.CartaCorrecao.CCeRetorno.xMotivoInfEvento;

ACBrNFe1.WebServices.CartaCorrecao.CCeRetorno.retdhRegEvento

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Encontrei a resposta no caso 1055 do Mantis

sProtocolo := ACBrNFe1.WebServices.CartaCorrecao.CCeRetorno.retEvento.Items[0].RetInfEvento.nProt;

sMotivo := ACBrNFe1.WebServices.CartaCorrecao.CCeRetorno.retEvento.Items[0].RetInfEvento.xMotivo;

Tentei enviar um evento repetido de uma mesma NF-e. Mas não está gerando uma excessão de Evento em Duplicidade. O protocolo que retorna é vazio e o motivo é 573-CCe em Duplicidade.


  Frm_NFePrincipal.ACBrNFe1.Configuracoes.WebServices.Visualizar := TRUE;

  TRY

    slCorrecao := TStringList.Create;

    qryAuxiliar.Close;

    qryAuxiliar.Sql.Clear;

    qryAuxiliar.Sql.Add('Select * From TB_NFSAIDACCe');

    qryAuxiliar.Sql.Add('Where  Empresa = :Empresa');

    qryAuxiliar.Sql.Add('  and  Serie   = :Serie');

    qryAuxiliar.Sql.Add('  and  NFiscal = :NFiscal');

   qryAuxiliar.Parameters.ParamByName('Empresa').Value := wpar_Empresa;

    qryAuxiliar.Parameters.ParamByName('Serie').Value   := FormatFloat('0',chvSerie.AsInteger);

    qryAuxiliar.Parameters.ParamByName('NFiscal').Value := chvNumeroNF.AsInteger;

    qryAuxiliar.Open;

    While not qryAuxiliar.Eof do

    begin

      sChaveDeAcesso := qryAuxiliar.FieldByName('ChaveDeAcesso').AsString;

      iSeqEvento     := qryAuxiliar.FieldByName('SeqEvento').AsInteger;

      iLote          := qryAuxiliar.FieldByName('Lote').AsInteger;

      slCorrecao.Add(Trim(qryAuxiliar.FieldByName('DesCampo').AsString) + ' Alterar [' +

                     Trim(qryAuxiliar.FieldByName('Antes').AsString)    + '] Por ['    +

                     Trim(qryAuxiliar.FieldByName('Depois').AsString)   + '];');

      Frm_NFePrincipal.ACBrNFe1.CartaCorrecao.CCe.Evento.Clear;

      Frm_NFePrincipal.ACBrNFe1.CartaCorrecao.CCe.idLote := iLote;

      with Frm_NFePrincipal.ACBrNFe1.CartaCorrecao.CCe.Evento.Add do

      begin

        infEvento.chNFe                := sChaveDeAcesso;

        infEvento.cOrgao               := StrToInt(Copy(sChaveDeAcesso,1,2));

        infEvento.CNPJ                 := chvCNPJEmitente.Text;

        infEvento.dhEvento             := now;

        infEvento.tpEvento             := 110110;

        infEvento.nSeqEvento           := iSeqEvento;

        infEvento.versaoEvento         := '1.00';

        infEvento.detEvento.descEvento := 'Carta de Correção';

        infEvento.detEvento.xCorrecao  := slCorrecao.Text;

        infEvento.detEvento.xCondUso   := ''; //Texto fixo conforme NT 2011.003 -  http://www.nfe.fazenda.gov.br/portal/exibirArquivo.aspx?conteudo=tsiloeZ6vBw=

      end;

      qryAuxiliar.Next;

    end;

    Frm_NFePrincipal.ACBrNFe1.EnviarCartaCorrecao(iLote);

    Frm_NFePrincipal.MemoResp.Lines.Text :=  UTF8Encode(Frm_NFePrincipal.ACBrNFe1.WebServices.CartaCorrecao.RetWS);

    Frm_NFePrincipal.LoadXML(Frm_NFePrincipal.MemoResp, Frm_NFePrincipal.WBResposta);

    sProtocolo    := Frm_NFePrincipal.ACBrNFe1.WebServices.CartaCorrecao.CCeRetorno.retEvento.Items[0].RetInfEvento.nProt;

    sMotivo       := Frm_NFePrincipal.ACBrNFe1.WebServices.CartaCorrecao.CCeRetorno.retEvento.Items[0].RetInfEvento.xMotivo;

    bVisualizarConfig := Frm_NFePrincipal.ACBrNFe1.Configuracoes.WebServices.Visualizar;

    Frm_NFePrincipal.ACBrNFe1.Configuracoes.WebServices.Visualizar := bVisualizarConfig;

    qryAuxiliar.Close;

  EXCEPT ON E:EXCEPTION DO

    begin

      ShowMessage('Carta de Correção não foi enviada.' + #13#13#10 + E.MESSAGE); //aqui deveria gerar uma excessão de Evento em Duplicidade//

      Exit;

    end;

  END;

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Foi preciso forçar assim:


  TRY

    slCorrecao := TStringList.Create;

    qryAuxiliar.Close;

    qryAuxiliar.Sql.Clear;

    qryAuxiliar.Sql.Add('Select * From TB_NFSAIDACCe');

    qryAuxiliar.Sql.Add('Where  Empresa = :Empresa');

    qryAuxiliar.Sql.Add('  and  Serie   = :Serie');

    qryAuxiliar.Sql.Add('  and  NFiscal = :NFiscal');

    qryAuxiliar.Sql.Add('  and  Status  = 1');

    qryAuxiliar.Sql.Add('  and  Depois IS NOT NULL');

    qryAuxiliar.Sql.Add('  and  Depois <> '''' ');

    qryAuxiliar.Parameters.ParamByName('Empresa').Value := wpar_Empresa;

    qryAuxiliar.Parameters.ParamByName('Serie').Value   := FormatFloat('0',chvSerie.AsInteger);

    qryAuxiliar.Parameters.ParamByName('NFiscal').Value := chvNumeroNF.AsInteger;

    qryAuxiliar.Open;

    While not qryAuxiliar.Eof do

    begin

      sChaveDeAcesso := qryAuxiliar.FieldByName('ChaveDeAcesso').AsString;

      iSeqEvento     := qryAuxiliar.FieldByName('SeqEvento').AsInteger;

      iLote          := qryAuxiliar.FieldByName('Lote').AsInteger;

      slCorrecao.Add(Trim(qryAuxiliar.FieldByName('DesCampo').AsString) + ' Alterar [' +

                     Trim(qryAuxiliar.FieldByName('Antes').AsString)    + '] Por ['    +

                     Trim(qryAuxiliar.FieldByName('Depois').AsString)   + '];');

      Frm_NFePrincipal.ACBrNFe1.CartaCorrecao.CCe.Evento.Clear;

      Frm_NFePrincipal.ACBrNFe1.CartaCorrecao.CCe.idLote := iLote;

      with Frm_NFePrincipal.ACBrNFe1.CartaCorrecao.CCe.Evento.Add do

      begin

        infEvento.chNFe                := sChaveDeAcesso;

        infEvento.cOrgao               := StrToInt(Copy(sChaveDeAcesso,1,2));

        infEvento.CNPJ                 := chvCNPJEmitente.Text;

        infEvento.dhEvento             := now;

        infEvento.tpEvento             := 110110;

        infEvento.nSeqEvento           := iSeqEvento;

        infEvento.versaoEvento         := '1.00';

        infEvento.detEvento.descEvento := 'Carta de Correção';

        infEvento.detEvento.xCorrecao  := slCorrecao.Text;

        infEvento.detEvento.xCondUso   := ''; //Texto fixo conforme NT 2011.003 -  http://www.nfe.fazenda.gov.br/portal/exibirArquivo.aspx?conteudo=tsiloeZ6vBw=

      end;

      qryAuxiliar.Next;

    end;

    Frm_NFePrincipal.ACBrNFe1.EnviarCartaCorrecao(iLote);

    Frm_NFePrincipal.MemoResp.Lines.Text :=  UTF8Encode(Frm_NFePrincipal.ACBrNFe1.WebServices.CartaCorrecao.RetWS);

    Frm_NFePrincipal.LoadXML(Frm_NFePrincipal.MemoResp, Frm_NFePrincipal.WBResposta);

    sProtocolo    := Frm_NFePrincipal.ACBrNFe1.WebServices.CartaCorrecao.CCeRetorno.retEvento.Items[0].RetInfEvento.nProt;

    sMotivo       := Frm_NFePrincipal.ACBrNFe1.WebServices.CartaCorrecao.CCeRetorno.retEvento.Items[0].RetInfEvento.xMotivo;

    iStat         := Frm_NFePrincipal.ACBrNFe1.WebServices.CartaCorrecao.CCeRetorno.retEvento.Items[0].RetInfEvento.cStat;

    if (iStat = 128) or (iStat = 135) or (iStat = 136) then

      bOK := True

    else

      begin

        bOK := False;

        raise Exception.Create('Status ' + FormatFloat('0',iStat) + ' - ' + sMotivo);

      end;

    bVisualizarConfig := Frm_NFePrincipal.ACBrNFe1.Configuracoes.WebServices.Visualizar;

    Frm_NFePrincipal.ACBrNFe1.Configuracoes.WebServices.Visualizar := bVisualizarConfig;

    qryAuxiliar.Close;

  EXCEPT ON E:EXCEPTION DO

    begin

      ShowMessage('Carta de Correção não foi enviada.' + #13#13#10 + E.MESSAGE);

      Exit;

    end;

  END;

Link para o comentário
Compartilhar em outros sites

  • 1 mês depois ...

Implementei minha aplicação dessa forma... e fazendo um teste adicionando três eventos... quando o xml é gerado ele gera com os três eventos(correções), mas quando ele entra nesse método "function AssinarMSXML(XML : AnsiString; Certificado : ICertificate2; out XMLAssinado : AnsiString): Boolean;", na unit "ACBrNFeUtil;" ele excluí os dois últimos eventos enviando apenas o primeiro....

mais precisamente nessa linha de código que os eventos são excluídos do xml... "XML := copy(XML,1,pos('',XML)-1);" ... linha 1509

Alguém sabe o porque desse dois eventos serem excluídos? Alguém já consegui cadastrar mais de um evento para a mesma Nota Fiscal?

Link para o comentário
Compartilhar em outros sites

  • 6 meses depois ...

Pessoal,

O ACBrNFeMOnitor não está registra a carta de correção mas não gera o XML da carta.

Pelo menos no módulo de homologação não está gerando. Alguém sabe se em produção ela gera? E em caso afirmativo, qual é o nome do XML que ele retorna?

Aguardo, obrigado.

Oscar Ribeiro

OASyS Informática

Link para o comentário
Compartilhar em outros sites

ALA,

Tive problemas com duplicidade de Evento aqui também nos primeiros testes.

Pelo que entendi, você precisa ter um número sequencial para cada carta de correção que fizer para uma mesma NFe (1, 2, 3 ... 20)

O número sequencial do evento deve ser registrado na tag nSeqEvento.

José Roberto dos Santos
VMX Tech

Link para o comentário
Compartilhar em outros sites

Oscar Ribeiro,

Estou usando a versão 0.7.1c e o ACBrNFeMonitor salva o xml da carta de correção normalmente.

O nome do arquivo gerado está no formato:

35120612345678912345678912345678912345678912-ProcEventoNFe.xml

Verifique no arquivo de configuração ACBrNFeMonitor.ini se você definiu valores para:

PathSalvar=

PathNFe=

PathCan=

PathInu=

PathDPEC=

Assim você poderá verificar onde os arquivos são gravados. Eu costumo gravár todos os arquivos em uma mesma pasta. Minha aplicação faz o tratamento e move os arquivos depois de gravados para as pastas corretas.

José Roberto dos Santos
VMX Tech

Link para o comentário
Compartilhar em outros sites

José Roberto dos Santos,

Boa tarde e muuuuuiiiiiitttttto obrigado!

Eu estava procurando essa informação já faz um tempão e só faltava essa dica do "PathSalvar=" que é o local do salvamento do WebService.

Incluí isso e resolveu por completo o meu problema e está tudo funcionando agora. O ACBrNFeMonitor está gerando o XML da carta que é só o que me faltava.

Um grande abraço,

Oscar Ribeiro

OASyS Informática

Link para o comentário
Compartilhar em outros sites

  • 5 semanas depois ...

Voltando ao assunto do retorno 573 - Rejeicao: Duplicidade de Evento, tenho duvidas...

Pode acontecer de o usuario enviar e por algum motivo o sistema nao conseguir pegar o retorno (protocolo, etc..), ao tentar enviar novamente, retorna o erro "573".

Ao enviar uma NF-e, e caso ocorra essa mesma situacao, ao tentar enviar novamente pode acontecer de retornar 204, caso ela já tenha sido autorizada, e nesse caso, realiza-se uma consulta:

objACBrNFe.WebServices.Consulta.NFeChave := 'chave de acesso';

objACBrNFe.WebServices.Consulta.Executar"

Entao as propriedades das classes do ACBr passar a conter os dados assim como se fosse o primeiro envio...

A pergunta é a seguinte:

Existe a possibilidade de realizar a consulta para a carta de correção eletronica, para que o usuario nao tenha que criar um novo evento para a carta de correcao, pois testei realizar a consulta como descrevi acima, mas nao sei exatamente como proceder apartir daí, caso seja da mesma forma?

Grato...

Link para o comentário
Compartilhar em outros sites

Outra questão, sei que esta situacao será muito difícil de acontecer, mas não impossível:

Ao tentar enviar o 20º evento, acontece um erro:

Falha na validação dos dados da carta de correção '20' violates pattern constraint of '[1-9][1][0-9]{0,1}'.

The element '{http://www.portalfiscal.inf.br/nfe}nSeqEvento' with value '20' failed to parse.

Consultei a NF-e e consta apenas 19 eventos, e o erro acontece quando envio o vigésimo... enfim, só para ficar registrado, nao é nada tão urgente, mas pelo que entendi é possível enviar 20 eventos... Talvez exista alguma explicação. Será que a autorização de uso tbm é um evento?

Link para o comentário
Compartilhar em outros sites

Senhores, estou com problemas para enviar a CCe em algumas maquinas, o certificado digital não aparece para o usuário selecionar. O estranho e que na mesma maquina consigo enviar NFe. Então estou comparando o meu código do o código do ACBr_Demo. Mas o meu código esta MUITO diferente do código do ACBr então qual código devo utilizar ? Será que alguem pode me ajudar estou com vairos clientes com o mesmo problema

Meu Codigo

ACBrNFe.CartaCorrecao.CCe.Evento.Clear;

ACBrNFe.CartaCorrecao.CCe.idLote := CCe.FieldByName( 'CAC_PK_CARTACORRECAO' ).AsInteger;

with ACBrNFe.CartaCorrecao.CCe.Evento.Add do

begin

// CHAVE //

infEvento.chNFe := CCe.FieldByName( 'NFS_NUMERO_DANFE' ).AsString;

infEvento.CNPJ := Trim( Retorna_Numeros( Empresa.FieldByName('EMP_CNPJ' ).AsString ));

infEvento.dhEvento := ( CCe.FieldByName( 'CAC_DT_INCLUSAO' ).AsDateTime + CCe.FieldByName( 'CAC_HR_INCLUSAO' ).AsDateTime );

infEvento.tpEvento := 110110; // DETERMINADO PELO MANUAL DA SEFAZ 1.01 MAIO 2011

infEvento.nSeqEvento := lcin_SeqEvento; //

infEvento.detEvento.xCorrecao := lcst_DescricaoCorrecao;

infEvento.cOrgao := Empresa.FieldByName( 'CII_CODIGO_UF' ).AsInteger;//StrToInt(codOrgao); 90 para hambiente nacional

infEvento.versaoEvento := '1.00';

infEvento.detEvento.descEvento := 'Carta de Correcao'; // DETERMINADO PELO MANUAL DA SEFAZ 1.01 MAIO 2011

infEvento.detEvento.xCondUso := EmptyStr;

// AMBIENTE PRODUTO/HOMOLOGACAO //

if utst_IDAmbiente = utco_Ambiente_Producao then

begin

infEvento.tpAmb := taProducao;

end

else if utst_IDAmbiente = utco_Ambiente_Homologacao then

begin

infEvento.tpAmb := taHomologacao; // remover

end;

end;

// Enviar a Nota para SEFAZ //

if not ACBrNFe.EnviarCartaCorrecao(CCe.FieldByName( 'CAC_PK_CARTACORRECAO' ).AsInteger) then

CODIGO DO ACBR_DEMO

ACBrNFe1.EnvEvento.EnvEventoNFe.Evento.Clear;

ACBrNFe1.EnvEvento.EnvEventoNFe.idLote := StrToInt(idLote) ;

with ACBrNFe1.EnvEvento.EnvEventoNFe.Evento.Add do

begin

infEvento.chNFe := Chave;

infEvento.CNPJ := CNPJ;

infEvento.dhEvento := now;

infEvento.tpEvento := teCCe;

infEvento.nSeqEvento := StrToInt(nSeqEvento);

infEvento.detEvento.xCorrecao := Correcao;

end;

ACBrNFe1.EnviarEventoNFe(StrToInt(idLote));

Link para o comentário
Compartilhar em outros sites

Senhores, o que devo colocar no campo

infEvento.dhEvento := Now;//( CCe.FieldByName( 'CAC_DT_INCLUSAO' ).AsDateTime + lDateTime );//CCe.FieldByName( 'CAC_HR_INCLUSAO' ).AsDateTime ); //now;

ja tentei a data e hora do micro, data e hora que a carta de correção foi incluida, mas sempre ocorre erro. A data do evento não pode ser maior que a data do processamento.

Link para o comentário
Compartilhar em outros sites

Senhores, o que devo colocar no campo

infEvento.dhEvento := Now;//( CCe.FieldByName( 'CAC_DT_INCLUSAO' ).AsDateTime + lDateTime );//CCe.FieldByName( 'CAC_HR_INCLUSAO' ).AsDateTime ); //now;

ja tentei a data e hora do micro, data e hora que a carta de correção foi incluida, mas sempre ocorre erro. A data do evento não pode ser maior que a data do processamento.

Amigo, tente isso:

infEvento.dhEvento:=ACBrNFe1.WebServices.StatusServico.dhRecbto; //Usando data/hora SEFAZ

Inté +

Fábio

Link para o comentário
Compartilhar em outros sites

Mas para utilizar o infEvento.dhEvento:=ACBrNFe1.WebServices.StatusServico.dhRecbto; //Usando data/hora SEFAZ tenho que realizar alguma consulta antes ?

"ALA", em minhas aplicações eu sempre faço uma consulta no serviço, até para saber se esta ativa, assim você pega a data/hora atual do SEFAZ.

Veja:

if not (ACBrNFe1.WebServices.StatusServico.Executar) then

begin

raise exception.Create(ACBrNFe1.WebServices.StatusServico.Msg);

end;

Inté +

Fábio

Link para o comentário
Compartilhar em outros sites

Mas para utilizar o infEvento.dhEvento:=ACBrNFe1.WebServices.StatusServico.dhRecbto; //Usando data/hora SEFAZ tenho que realizar alguma consulta antes ?

"ALA", em minhas aplicações eu sempre faço uma consulta no serviço, até para saber se esta ativa, assim você pega a data/hora atual do SEFAZ.

Veja:

if not (ACBrNFe1.WebServices.StatusServico.Executar) then

begin

raise exception.Create(ACBrNFe1.WebServices.StatusServico.Msg);

end;

Inté +

Fábio

Colega FGGLUIZ, recomendo a leitura desse documento no site da SEFAZ: http://www.nfe.fazenda.gov.br/portal/ex ... F66WihatE=

04.2 Consulta Status_Serviço: Antecede ao envio do Lote de NF-e

Algumas empresas adotaram a prática de primeiro efetuar uma Consulta Status_Serviço antes de

enviar o Lote de NF-e.

Mesmo que a consulta Status_Serviço retorne que o ambiente de Autorização está normal, a

aplicação da empresa deve verificar se o envio do Lote de NF-e foi feito com sucesso, portanto, não

vemos vantagem na adoção desta técnica de efetuar a consulta Status_Serviço antes de enviar o

Lote de NF-e.

Cabem as mesmas recomendações

Link para o comentário
Compartilhar em outros sites

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

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • 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.