Ir para conteúdo
  • Cadastre-se

Erro no fonte do ACBR ao tratar o retorno da NFse Nacional sem enviar os dados da reforma tributária


Ver Solução Respondido por Sandro Andre Reghelin,
  • Este tópico foi criado há 229 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado (editado)

Estou migrando a Nfse de Curitiba para a NFSe Nacional, estou enviando sem os campos da reforma tributaria, e o ACBR ao tratar o retorno esta retornando o erro :

raised exception class EJsonParseException with message 'Expected "{" but found invalid symbol (1,2)'. (conforme arquivo em anexo Telaerro)

debugando o acbr cheguei onde estoura o erro conforme imagens em anexo, na unit PadraoNacional.Provider procedure TratarRetornoEmitir

anexei aqui o conteúdo do response que ele esta tentando tratar.

Configurei o programa de exemplo para testar com os dados de Curitiba e mandei enviar sem os campos da reforma tributária e aconteceu o mesmo erro...

Meus fontes estão atualizados no dia 15/09/2025 revision 41443 

 

telaerro.png

ImgFonteacbr.png

responseretorno.txt

Editado por Sandro Andre Reghelin
complementar informação
Postado
5 minutos atrás, Italo Giurizzato Junior disse:

Boa tarde @Sandro Andre Reghelin,

Chegou a abrir esse arquivo que txt que você anexou?

Notou que ele não é u XML e nem um Json e sim um HTML?

Sim, mas esse é o conteúdo que o componente está passando, ele entra na procedure emite do provider.base, e ao passar o response passa como a imagem abaixo

ai ao chamar dentro do PadraoNacional.Provider a procedure TratarRetornoEmitir na linha abaixo da o erro:

   Document := TACBrJsonObject.Parse(Response.ArquivoRetorno);

o conteúdo do TXT peguei do Response.ArquivoRetorno

 

ProviderBaseChamaProcedure.png

Postado (editado)
17 minutos atrás, Italo Giurizzato Junior disse:

@Sandro Andre Reghelin,

O problema é que a API do Padrão Nacional esta retornando um HTML em vez de Json que é o esperado.

Desculpe a ignorância, mas qual seria a solução?

salvei o conteúdo em um arquivo com extensão html...

segue em anexo...

teste.html

Editado por Sandro Andre Reghelin
complementar informação
Postado
20 horas atrás, Italo Giurizzato Junior disse:

@Sandro Andre Reghelin,

A API esta retornando isso: 

403 - Forbidden: Access is denied.

Por favor faça um teste usando o programa exemplo do componente ACBrNFSeX.

Fiz o teste aqui com o programa de exemplo e aconteceu o mesmo, ai testei a consulta retenções e retornou o mesmo erro...

inclusive na consulta a retenções eu tentei tanto com homologação como produção....

testeconsultaretencao.html

Postado
1 hora atrás, Sandro Andre Reghelin disse:

Fiz o teste aqui com o programa de exemplo e aconteceu o mesmo, ai testei a consulta retenções e retornou o mesmo erro...

inclusive na consulta a retenções eu tentei tanto com homologação como produção....

testeconsultaretencao.html 1.37 kB · 1 download

Até achei que poderia ser o prestador não estar cadastrado no ambiente de homologação, aí entrei com o certificado digital no link:

https://www.producaorestrita.nfse.gov.br/EmissorNacional/Login?ReturnUrl=%2fEmissorNacional%2f

e apareceu o prestador lá...

Postado
3 minutos atrás, Italo Giurizzato Junior disse:

Bom dia @Sandro Andre Reghelin,

Ao tentar emitir a nota em homologação esta usando o certificado digital do prestador e informando o CNPJ, Inscrição Municipal dele?

Esse prestador é MEI?

Bom dia, sim uso o certifica e CNPJ são os mesmo, e não é MEI....

estou enviando um e-mail para [email protected],  com o xml pelo ACBR,  html de retorno gerado e dados da empresa,  para ver se me retornam algo

  • Curtir 1
Postado
Em 26/09/2025 at 10:54, Sandro Andre Reghelin disse:

Bom dia, sim uso o certifica e CNPJ são os mesmo, e não é MEI....

estou enviando um e-mail para [email protected],  com o xml pelo ACBR,  html de retorno gerado e dados da empresa,  para ver se me retornam algo

Bom dia, eu tive um problema parecido. Tive que pedir para o cliente se cadastrar no ambiente de homologação, criar o login e senha, mesmo tendo o certificado, só então eu consegui emitir a nota.

É uma tentativa.

  • Curtir 2
Postado
Em 29/09/2025 at 08:42, Fabiano Hoffmann disse:

Bom dia, eu tive um problema parecido. Tive que pedir para o cliente se cadastrar no ambiente de homologação, criar o login e senha, mesmo tendo o certificado, só então eu consegui emitir a nota.

É uma tentativa.

O link que entrei para ver se o cadastro do cliente foi esse:

https://www.producaorestrita.nfse.gov.br/EmissorNacional/Login?ReturnUrl=%2fEmissorNacional%2f

E o mesmo que vc usou? nesse se entrar com o certificado do cliente aparece os dados do meu cliente....

Postado
1 minuto atrás, Sandro Andre Reghelin disse:

O link que entrei para ver se o cadastro do cliente foi esse:

https://www.producaorestrita.nfse.gov.br/EmissorNacional/Login?ReturnUrl=%2fEmissorNacional%2f

E o mesmo que vc usou? nesse se entrar com o certificado do cliente aparece os dados do meu cliente....

Sim, foi este mesmo. Testei ele com certificado aqui e deu certo. No teu caso não é isso então.

Postado

Senhores agora fui tentar emitir uma NFse para o mesmo prestador e tomador direto no site do link acima...para desencargo...e me deu o seguinte erro ao mandar emitir

O sistema não conseguiu se comunicar com o aplicativo de assinatura digital. Por favor, verifique se o programa Assinador está instalado e executando.
Se seu computador ainda não possui o Assinador instalado, acesse a página do Assinador SERPRO!

 

ja viram algo assiom?

Postado (editado)
31 minutos atrás, Sandro Andre Reghelin disse:

Senhores agora fui tentar emitir uma NFse para o mesmo prestador e tomador direto no site do link acima...para desencargo...e me deu o seguinte erro ao mandar emitir

O sistema não conseguiu se comunicar com o aplicativo de assinatura digital. Por favor, verifique se o programa Assinador está instalado e executando.
Se seu computador ainda não possui o Assinador instalado, acesse a página do Assinador SERPRO!

 

ja viram algo assiom?

anexando  os json que gerou ao tentar enviar a NFse

916762-lista-nfse-ger.json 916762-lista-nfse-ger-soap.json 916762-ger-nfse-soap.json 916762-ger-nfse.json

Editado por Sandro Andre Reghelin
complementar informação
  • Consultores
Postado

Boa noite @Sandro Andre Reghelin,

Você esta tentando emitir em ambiente de homologação?

Se sim, estou sabendo que o SERPRO/Fisco estão promovendo alterações.

Pode ser que algumas dessas alterações esta gerando esses erros.

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

Postado (editado)
12 horas atrás, Italo Giurizzato Junior disse:

Boa noite @Sandro Andre Reghelin,

Você esta tentando emitir em ambiente de homologação?

Se sim, estou sabendo que o SERPRO/Fisco estão promovendo alterações.

Pode ser que algumas dessas alterações esta gerando esses erros.

Sim é em ambiente de homologação.

Acabei de receber um e-mail de retorno deles e não foi muito esclarecedor, pelo jeito e problema interno lá...: 

Prezado (a), bom dia!
Por gentileza! Tente novamente. Já obtivemos relatos que os contribuintes já estão conseguindo emitir as NFS-e sem nenhum problema. Caso o problema persista, nos informe.
 
Testei e o erro continua, estou enviando a resposta para eles com os arquivos Json, xml  e tela do link de acesso, em anexo....
Editado por Sandro Andre Reghelin
complementar informação...
  • Curtir 1
Postado
Em 30/09/2025 at 09:14, Fabiano Hoffmann disse:

Sim, foi este mesmo. Testei ele com certificado aqui e deu certo. No teu caso não é isso então.

boa tarde...sem querer pedir muito, mas até agora não consegui resolver meu problema..

estou configurando o meu acbr assim:

 with NFSe.Configuracoes.geral, qrFilial do
    begin

      if bCuritibaPR then
      begin
        Provedor   := proPadraoNacional;
        LayoutNFSe := lnfsPadraoNacionalv1;
      end;

      CodigoMunicipio := StrToIntDef(FieldByName('CodigoMunicipioIBGE').AsString, 0);
    end;

 

somente  para tirar a dúvida, e essa a configuração?

Postado
1 hora atrás, Sandro Andre Reghelin disse:

boa tarde...sem querer pedir muito, mas até agora não consegui resolver meu problema..

estou configurando o meu acbr assim:

 with NFSe.Configuracoes.geral, qrFilial do
    begin

      if bCuritibaPR then
      begin
        Provedor   := proPadraoNacional;
        LayoutNFSe := lnfsPadraoNacionalv1;
      end;

      CodigoMunicipio := StrToIntDef(FieldByName('CodigoMunicipioIBGE').AsString, 0);
    end;

 

somente  para tirar a dúvida, e essa a configuração?

Boa tarde,

Faço exatamente dessa forma que você faz, vou te mandar aqui vai que te ajuda em algo.

function ConfigurarNFSeX....
begin
  Result := True;
  try
    //Abre as querys que serão utilizadas
    AbrirQuery(nf);

    ACBrNFSeX1.NotasFiscais.Clear;

    //Configura o componente ACBR
    ACBrNFSeX1.Configuracoes.Certificados.ArquivoPFX  := '';
    ACBrNFSeX1.Configuracoes.Certificados.Senha       := '';
    ACBrNFSeX1.Configuracoes.Certificados.NumeroSerie := '';
    ACBrNFSeX1.Configuracoes.Geral.Versao := LerVersao();
    ACBrNFSeX1.Configuracoes.Geral.Provedor := LerProvedor();
   
    ACBrNFSeX1.Configuracoes.Geral.LayoutNFSe := lnfsPadraoNacionalv1;

    ACBrNFSeX1.SSL.DescarregarCertificado;

    with ACBrNFSeX1.Configuracoes.Geral do
    begin
      SSLLib        := libWinCrypt;
      SSLCryptLib   := cryWinCrypt;
      SSLXmlSignLib := xsLibXml2;
      SSLHttpLib    := httpWinHttp;

      Salvar           := True;
      ExibirErroSchema := True;
      RetirarAcentos   := False;
      IdentarXML       := True;
      RetirarEspacos   := True;
      FormatoAlerta    := 'TAG:%TAGNIVEL% ID:%ID%/%TAG%(%DESCRICAO%) - %MSG%.';
      FormaEmissao     := svgFormaEmissaoNFE;

      ConsultaLoteAposEnvio := True;
      ConsultaAposCancelar  := True;

      CNPJPrefeitura          := qry.FieldByName('CNPJDAPREFEITURA').AsString;
      Emitente.CNPJ           := qry.FieldByName('NROINSCRICAO').asString;
      Emitente.InscMun        := qry.FieldByName('INSCRICAOMUNICIPAL').asString;
      Emitente.RazSocial      := qry.FieldByName('NOME').asString;
      Emitente.WSUser         := qry.FieldByName('SERVICO_WEBSERVICES_LOGIN').AsString;
      Emitente.WSSenha        := qry.FieldByName('SERVICO_WEBSERVICES_SENHA').AsString;
      Emitente.WSFraseSecr    := '';
      Emitente.WSChaveAcesso  := '';
      Emitente.WSChaveAutoriz := '';
    end;

    with ACBrNFSeX1.Configuracoes.WebServices do
    begin
      Ambiente   := LerAmbienteNFServico;
      Visualizar := True;
      Salvar     := True;
      UF         := qry.FieldByName('ESTADO').AsString;

      AguardarConsultaRet := 20000;
      AjustaAguardaConsultaRet := True;
      Tentativas := 15;
      TimeOut := 15000;
      IntervaloTentativas := 3000;
    end;

    // A propriedade CodigoMunicipio tem que ser a ultima a receber o seu valor
    // Pois ela se utiliza das demais configurações
    ACBrNFSeX1.LerCidades;
    ACBrNFSeX1.Configuracoes.Geral.CodigoMunicipio := StrToIntDef(qry.FieldByName('CIDIBGE').AsString, 0);
  except
    on e : exception do
    begin
      //erro aqui
    end;
  end;

end;

Após isso só gerar o xml, ler o certificado e emitir

ACBrNFSeX1.Emitir(qry.FieldByName('NOTAFISCAL').asString, meUnitario);

 

Postado
Em 06/10/2025 at 15:30, Fabiano Hoffmann disse:

Boa tarde,

Faço exatamente dessa forma que você faz, vou te mandar aqui vai que te ajuda em algo.

function ConfigurarNFSeX....
begin
  Result := True;
  try
    //Abre as querys que serão utilizadas
    AbrirQuery(nf);

    ACBrNFSeX1.NotasFiscais.Clear;

    //Configura o componente ACBR
    ACBrNFSeX1.Configuracoes.Certificados.ArquivoPFX  := '';
    ACBrNFSeX1.Configuracoes.Certificados.Senha       := '';
    ACBrNFSeX1.Configuracoes.Certificados.NumeroSerie := '';
    ACBrNFSeX1.Configuracoes.Geral.Versao := LerVersao();
    ACBrNFSeX1.Configuracoes.Geral.Provedor := LerProvedor();
   
    ACBrNFSeX1.Configuracoes.Geral.LayoutNFSe := lnfsPadraoNacionalv1;

    ACBrNFSeX1.SSL.DescarregarCertificado;

    with ACBrNFSeX1.Configuracoes.Geral do
    begin
      SSLLib        := libWinCrypt;
      SSLCryptLib   := cryWinCrypt;
      SSLXmlSignLib := xsLibXml2;
      SSLHttpLib    := httpWinHttp;

      Salvar           := True;
      ExibirErroSchema := True;
      RetirarAcentos   := False;
      IdentarXML       := True;
      RetirarEspacos   := True;
      FormatoAlerta    := 'TAG:%TAGNIVEL% ID:%ID%/%TAG%(%DESCRICAO%) - %MSG%.';
      FormaEmissao     := svgFormaEmissaoNFE;

      ConsultaLoteAposEnvio := True;
      ConsultaAposCancelar  := True;

      CNPJPrefeitura          := qry.FieldByName('CNPJDAPREFEITURA').AsString;
      Emitente.CNPJ           := qry.FieldByName('NROINSCRICAO').asString;
      Emitente.InscMun        := qry.FieldByName('INSCRICAOMUNICIPAL').asString;
      Emitente.RazSocial      := qry.FieldByName('NOME').asString;
      Emitente.WSUser         := qry.FieldByName('SERVICO_WEBSERVICES_LOGIN').AsString;
      Emitente.WSSenha        := qry.FieldByName('SERVICO_WEBSERVICES_SENHA').AsString;
      Emitente.WSFraseSecr    := '';
      Emitente.WSChaveAcesso  := '';
      Emitente.WSChaveAutoriz := '';
    end;

    with ACBrNFSeX1.Configuracoes.WebServices do
    begin
      Ambiente   := LerAmbienteNFServico;
      Visualizar := True;
      Salvar     := True;
      UF         := qry.FieldByName('ESTADO').AsString;

      AguardarConsultaRet := 20000;
      AjustaAguardaConsultaRet := True;
      Tentativas := 15;
      TimeOut := 15000;
      IntervaloTentativas := 3000;
    end;

    // A propriedade CodigoMunicipio tem que ser a ultima a receber o seu valor
    // Pois ela se utiliza das demais configurações
    ACBrNFSeX1.LerCidades;
    ACBrNFSeX1.Configuracoes.Geral.CodigoMunicipio := StrToIntDef(qry.FieldByName('CIDIBGE').AsString, 0);
  except
    on e : exception do
    begin
      //erro aqui
    end;
  end;

end;

Após isso só gerar o xml, ler o certificado e emitir

ACBrNFSeX1.Emitir(qry.FieldByName('NOTAFISCAL').asString, meUnitario);

 

Pelo que vi as configurações estão iguais, só um item que pediria que me confirmasse 

Emitente.user e Emitente.Wssenha eu não mando nada nesses campos, tenho eles na configuração mas no meu banco de dados esses dados estão em branco,

você por acaso preenche algo? 

Postado
21 horas atrás, Sandro Andre Reghelin disse:

Pelo que vi as configurações estão iguais, só um item que pediria que me confirmasse 

Emitente.user e Emitente.Wssenha eu não mando nada nesses campos, tenho eles na configuração mas no meu banco de dados esses dados estão em branco,

você por acaso preenche algo? 

Não, esses campos servem para outros provedores que utilizam de login e senha, para o nacional eu não alimento eles.

  • Curtir 1
  • Este tópico foi criado há 229 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.