Alexandre Trajano
-
Total de ítens
26 -
Registro em
-
Última visita
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Posts postados por Alexandre Trajano
-
-
Alexandre aqui utilizamos a NFSE pra BH e pelo que vi o parâmetro código de cancelamento do seu XML está '0002'. Comparei com um xml daqui e no XML o parâmetro está apenas com valor '2'. Verifique como você está passando esse valor para o componente e tente enviar com apenas um caracter.
Luan, obrigado pela ajuda, eu fiz esta alteração, mas mesmo assim o provedor me retorna que a URL é um parâmetro inválido.
Segue o XML de pedido de cancelamento em anexo.
-
Bom dia Alexandre,
Quando você diz que com os outros municípios esta OK com o cancelamento, você esta se referindo ao mesmo provedor?
Se sim entre em contato com eles, pois o problema pode ser pontual, ou seja somente na cidade de BH.
Bom dia Ítalo, tudo bem?
Este problema só ocorre no provedor BHISS. Já entrei em contado com eles e os mesmos me deram uma resposta vazia.
Segue abaixo o conteúdo do email enviado para eles:
P – Desenvolvemos um sistema de emissão par NFSe. A emissão está ok, mas quandovamos cancelar uma nota, o provedor nos retorna a seguinte mensagem:Parâmetro incorreto. - URL: - SOAPAction:http://ws.bhiss.pbh.gov.br/CancelarNfseExiste uma outra URL para realizar os cancelamentos?R – Prezado (a),Infelizmente não temos como auxiliar nesse tipo de erro, pois refere-se a tecnologiautilizada em seu ambiente.Verifique a documentação da NFS-e disponível no Portal:www.pbh.gov.br/bhissdigitalMenu à esquerda: <NFS-e> <Documentação>Coloco-me à disposição para demais esclarecimentos.Esse tipo de erro nos leva a crê que a URL é inválida, mas o suporte de BH não diz nem que "sim" e nem que "não" sobre esta URL!Mas uma vez agradeço a sua atenção e ajuda!Obrigado! -
Prezados,
Ao cancelar uma NFSe para o provedor BHISS, o mesmo me retorna " Parâmetro incorreto. - URL: - SOAPAction:http://ws.bhiss.pbh.gov.br/CancelarNfse".
Com outros municípios o cancelamento está OK, somente para BH que ocorre isso. No manual informa que a URL é http://ws.bhiss.pbh.gov.br/CancelarNfse.
Alguém poderia me ajudar com esta situação.
Segue em anexo o xml do pedido de cancelamento.
-
Ítalo, boa tarde!
Segui as suas recomendações e baixei os fontes atualizados. Com os fontes atualizados, o arquivo env-lot.xml está com a mesma estrutura do arquivo da prefeitura do Rio de Janeiro enviada como exemplo(segue em anexo), porém o retorno é o mesmo, exibe a mensagem que diz que é uma assinatura inválida! Realmente já não sei o que fazer, estou desesperado pois o arquivo é gerado certinho comparando com o arquivo de exemplo da Prefeitura. O certificado que estou usando é o mesmo que utilizo para acessar a site da nota carioca e acessar o sistema!
Não seria de repente na hora de gera criptografar a assinatura possa está com algum problema?
Uma outra coisa! Na alteração que você fez na unit ACBrNFSeUtil, função AssinarMSXML, você incluiu o proRJ na lista de provedor, mas ao gerar a assinatura para o lote é verificado se provedor é diferente de ProRecife, e como proRJ é diferente ele cai nesta linha xmldsig.signature := xmldoc.selectSingleNode('.//ds:Signature[@' + Identificador + '=AssLote_' + URI + ']'), só que para o ProRJ não há identificador AssLote_. Da forma que está ele me retorna mldsig.signature = nil e exibe a mensagem " É preciso carregar o template antes de assinar."
Então fiz a seguinte alteração:
if ALote
then beginif (URI <> '') and ((AProvedor <> proRecife) and (AProvedor <> proRJ))then xmldsig.signature := xmldoc.selectSingleNode('.//ds:Signature[@' + Identificador + '=AssLote_' + URI + ']')else beginxmldsig.signature := xmldoc.selectSingleNode('.//ds1:' + EnviarLoteRps + '/ds:Signature');end;endelse xmldsig.signature := xmldoc.selectSingleNode('.//ds:Signature');Desta forma a mldsig.signature não retorna nill.
OBS: Estou querendo fazer alguns tutoriais para as pessoas que estão começando a lidar com a geração de NFSe. Se não houver problemas como posso para contribuir com o Projeto ACBR!!
Ítalo, desculpe mais uma vez, mas realmente não estou encontrando solução, estou debugando todo o código para poder encontrar o motivo do provedor invalidar a assinatura! Se poder me ajudar novamente fico eternamente agradecido!!
Att.
Ítalo,
Consegui resolver a questão da assinatura!
O problema estava no Schema nfse.xsd Versão 1.0. No manual da prefeitura do Rio de Janeiro informa que não é obrigatório assina o RPS ou Lote, porém no Schema diz que sim. O provedor só aceita a assinatura no Lote. Então fiz o seguinte:
<xsd:complexType name="tcRps">
<xsd:sequence>
<xsd:element name="InfRps" type="tcInfRps" minOccurs="1" maxOccurs="1"/>
<xsd:element ref="dsig:Signature" minOccurs="0" maxOccurs="0" />
</xsd:sequence>
</xsd:complexType>
Na Unit ACBRProvedorRJ uma outra alteração:
function TProvedorRJ.GetConfigCidade(ACodCidade,AAmbiente: Integer): TConfigCidade;varConfigCidade: TConfigCidade;beginConfigCidade.VersaoSoap := '1.1';ConfigCidade.Prefixo2 := '';ConfigCidade.Prefixo3 := '';ConfigCidade.Prefixo4 := '';ConfigCidade.Identificador := 'Id';// if AAmbiente = 1// then ConfigCidade.NameSpaceEnvelope := 'http://notacarioca.rio.gov.br'// else ConfigCidade.NameSpaceEnvelope := 'http://homologacao.notacarioca.rio.gov.br';ConfigCidade.NameSpaceEnvelope := 'http://notacarioca.rio.gov.br';ConfigCidade.AssinaRPS := False;ConfigCidade.AssinaLote := True; // Alterado por Italo em 10/05/2013Result := ConfigCidade;end;e a ultima alteração foi na unit ACBrNFSeUtil, função AssinarMSXML:if ALotethen beginif (URI <> '') and ((AProvedor <> proRecife) and (AProvedor <> proRJ))then xmldsig.signature := xmldoc.selectSingleNode('.//ds:Signature[@' + Identificador + '=AssLote_' + URI + ']')else beginxmldsig.signature := xmldoc.selectSingleNode('.//ds1:' + EnviarLoteRps + '/ds:Signature');end;endelse xmldsig.signature := xmldoc.selectSingleNode('.//ds:Signature');Feito isso, a emissão e o retorno ocorreu sucesso! Funcionou 100%!!A prefeitura do Rio ainda trabalha com a versão 1.0 da NFSe mas este arquivo nfse.xsd deve ser atualizado e lembrando que a assinatura é somente no Lote!Fica aqui me agradecimento pela sua ajuda! Valeu pela força!!! -
O componente ja imprime sim...
são dois componentes:
ACBrNFSe : Componente para tratamento da nota fiscal Eletronica
ACBrNFSeDANFSeQR1 : Componente para impressão do DANFE.
Na propriedade DANFEse do componente ACBrNFSe deve constar o componente para impressão, caso pretenda imprimir a nota.
Espero ter ajudado.
Att.
Flavio
Flávio,
Haveria como você exemplificar esta parte!!
Obrigado!
-
Para o webServices do provedor Abaco em Cachoeiro de Itapemirim, você tem que estar cadastrado na prefeitura para poder emitir as notas. Aqui em cachoeiro eu tive que fazer o cadastro em homologação e em produção. Verifique com a prefeitura da sua cidade a necessidade disso.
Ok!! Vou verificar agora!! Muito obrigado!
-
Alexandre Trajano, vc ta usando Certificado Digital da mesma empresa que está configurada como prestadora do serviço?
Sim estou! Uma coisa que me chamou a atenção foi que na propriedade do certificado, na aba detalhes, no campo requerente não há a informação do tipo do certificado, se é do tipo A1 ou A3, o contado afirma que do tipo A1. Até então, os lotes são enviados em arquivos txt no site da nota carioca utilizando este certificado. Será que o certificado deve ser habilitado na prefeitura para o envio de lote em XML?
Desde já agradeço a sua ajuda!
-
Italo,
RESOLVIDO!
Consegui emitir.
Baixei os schemas do site da prefeitura do Rio de Janeiro, arquivos nfse_pcrj_v01.xsd, tipos_nfse_v01.xsd e xmldsig-core-schema_v01.xsd, direcionei o diretorio schemas do componente para eles, e tudo OK. Lembrando que é preciso testar no ambiente de producao, pois o ambiente de teste do rio já foi fechado, retornando sempre o erro "mensagem XML de pedido do servico sem conteudo".
O outro problema é que eu achei que o componente buscava os schemas em seus respectivos diretorios - acho que vi algo parecido implementado aqui no forum - de qualquer maneira fica a sugestao para implementação nas proximas versoes meu amigo, porque facilitaria a implantacao num sistema com varias empresas em municipios diferentes (aqui no rio tem muitos municipios proximos, como mesquita, belford roxo, nilopolis, nova iguacu, duque de caxias, etc) e é comum termos clientes com filiais em municipios diferentes.
Alexandre, tudo bem!
Peço a sua ajuda, pois estou enfrentando o mesmo problema que você passou, estou emperrado no erro de validação da assinatura, já peguei os fontes atualizados, schemas atualizados e estou utilizando um certificado que é utilizado para acessar o sistema da nota carioca!
Se você poder me dá uma luz neste questão ficarei muito agradecido .
Desde já agradeço a sua ajuda.
-
Ítalo, boa tarde!
Segui as suas recomendações e baixei os fontes atualizados. Com os fontes atualizados, o arquivo env-lot.xml está com a mesma estrutura do arquivo da prefeitura do Rio de Janeiro enviada como exemplo(segue em anexo), porém o retorno é o mesmo, exibe a mensagem que diz que é uma assinatura inválida! Realmente já não sei o que fazer, estou desesperado pois o arquivo é gerado certinho comparando com o arquivo de exemplo da Prefeitura. O certificado que estou usando é o mesmo que utilizo para acessar a site da nota carioca e acessar o sistema!
Não seria de repente na hora de gera criptografar a assinatura possa está com algum problema?
Uma outra coisa! Na alteração que você fez na unit ACBrNFSeUtil, função AssinarMSXML, você incluiu o proRJ na lista de provedor, mas ao gerar a assinatura para o lote é verificado se provedor é diferente de ProRecife, e como proRJ é diferente ele cai nesta linha xmldsig.signature := xmldoc.selectSingleNode('.//ds:Signature[@' + Identificador + '=AssLote_' + URI + ']'), só que para o ProRJ não há identificador AssLote_. Da forma que está ele me retorna mldsig.signature = nil e exibe a mensagem " É preciso carregar o template antes de assinar."
Então fiz a seguinte alteração:
if ALote
then beginif (URI <> '') and ((AProvedor <> proRecife) and (AProvedor <> proRJ))then xmldsig.signature := xmldoc.selectSingleNode('.//ds:Signature[@' + Identificador + '=AssLote_' + URI + ']')else beginxmldsig.signature := xmldoc.selectSingleNode('.//ds1:' + EnviarLoteRps + '/ds:Signature');end;endelse xmldsig.signature := xmldoc.selectSingleNode('.//ds:Signature');Desta forma a mldsig.signature não retorna nill.
OBS: Estou querendo fazer alguns tutoriais para as pessoas que estão começando a lidar com a geração de NFSe. Se não houver problemas como posso para contribuir com o Projeto ACBR!!
Ítalo, desculpe mais uma vez, mas realmente não estou encontrando solução, estou debugando todo o código para poder encontrar o motivo do provedor invalidar a assinatura! Se poder me ajudar novamente fico eternamente agradecido!!
Att.
-
Ítalo, boa tarde!
Consegui na prefeitura do Rio de Janeiro os exemplos dos XML´s para NFSe carioca.
No arquivo EnviarLoteRpsEnvio.XML, realmente há várias diferenças na assinatura, hoje o componente gera a assinatura somente para o RPS, no exemplo da prefeitura, o lote também deve ser assinado.
Segue em anexo, todos os exemplos para a alteração do componente!
Obrigado!
-
Ítalo, boa tarde!
Consegui um xml que já foi enviado sem problemas. Fiz uma comparação e percebi algumas diferenças na assinatura.
Segue em anexo o XML com problemas e o sem problemas.
Obrigado mais uma vez Ítalo!
-
Ítalo, bom dia!!
Baixei o fonte em questão e descomentei e foi tudo OK!
Acho que a única coisa que falta é a o retorno do provedor, a rotina envia o lote e acusa o recebimento, mas logo depois me retorna com erro de Lote inválido(Verifique a assinatura dos RPS).
Porém o certificado que estamos utilizando é de uma empresa (nosso cliente inclusive ) que está cadastrada na lista de prestadores cujo o mesmo CNPJ consta na lista, e o certificado foi validado no SEFAZ. A empresa utiliza o mesmo certificado para entrar no site para a nota carioca.
Estamos enviando o lote para o ambiente de homologação.Você já viu este caso com outra pessoa?Obrigado pela ajuda novamente!! -
Entendi, realmente achei estranho, mas acabei comentando até não dá mas o erro, creio que o problema esteja aí,.
Haveria como você me passar pnfsConversao para poder atualizar os fontes!!
Obrigado!
-
-
Ìtalo, boa tarde!!
Fiz as atualizações, mas tem um coisa que não mencionei antes, quando você me pediu para atualizar os fontes a 1ª vez, quando fui compiliar, algumas variaves não foram reconhecidas! Segue a relação da unit com os as funções estão com variaves que não forma identificadas.
As variaveis destacadas em vermelho ou foram comentadas e outras substituidas. Depois destas alterações a rotina funciona. Não sei se por conta disso está a rotina me retorna informando que o CNPJ não está autorizado.
De qualquer forma agradeço novamente a sua ajuda!!
Unit: ACBRPROCVEDOR4R
Função: GetAssinarXML
acRecSincrono
Função:Gera_TagI
acRecSincrono
Função:Gera_TagF
acRecSincrono
Função:GetSoapAction
acRecSincrono
Função:GetRetornoWS
acRecSincrono
Unit: ACBRNFSEWEBSERVICE
function GetLastErrorText:
pro4R
procedure TWebServicesBase.LoadMsgEntrada
pro4R
proGovDigital
procedure TWebServicesBase.DoNFSeEnviarLoteRPS;
pro4R
procedure TWebServicesBase.DoNFSeGerarNFSe;
pro4R
procedure TWebServicesBase.DoNFSeGerarLote;
pro4R
procedure TWebServicesBase.DoNFSeEnviarSincrono;
pro4R
function TNFSeEnviarSincrono.Executar:
acRecSincrono Substituido por acRecepcionar
Unit: ACBRNFSEUTIL
function AssinarMSXML
pro4R
Unit:ACBRNFSECONFIGURAÇÕES
Procedure TWebServicesConf.SetConfigMunicipio
pro4R
proGovDigital
-
Ítalo, boa noite!
Fiz as atualizações e não deu mais a mensagem de erro informando que o XML estava sem conteúdo! Muito obrigado!
Nos testes(em ambiente de homologação), estou utilizando um certificado de uma empresa que está cadastrada na prefeitura como prestador de serviço, o CNPJ dela que aparece no site é o mesmo que está cadastrado no sistema e no certificado. Agora fico na dúvida se poder ser um problema do provedor, ou do certificado!!
Tô mandando um print do retorno e da mensagem!
Mais uma vez obrigado!
-
-
Ítalo, boa tarde!
Ontem, gerei o 0001-env-lot-c.xml mas mesmo assim ainda me retorna a mensagem de "XML de Pedido de Serviço sem Conteúdo".
Mas como eu já havia comentado, os arquivos foram validados! Não sei porque a rotina me retorna esta mensagem.
Segue em anexo os arquivos que são gerados ao acionar "Gerar e Enviar Lote"
Muito obrigado pela a ajuda e atenção!
-
Ok! Fiz a alteração!! Segue o Xml
-
Italo, boa tarde!
Na verdade quando que tento gerar e enviar lote, o sistema me retorna o 0001-env-lot.xml e o 0001-rec.xml, e não o 0001-env-lot-c.xml.
Segue os arquivos em anexo e obrigado mais uma vez!
-
Ops!!!! Esqueci do lote que estou gerando!!!
-
Boa noite Italo,
Fiz o que você recomendou de atualizar os fontes, e funcionou perfeitamente. Agora está gerando o Lote com seus respectivos RPS.
Agora ao gerar e enviar lote, creio que eu esteja esquecendo de de alguma coisa, só que não consigo identificar. Ao gerar e enviar lote, a rotina gera perfeitamente o lote com seus RPS, mas no final me exibe uma mensagem que o XML de Pedido do servico sem conteudo. O que pode ser? No trecho em vermelho realmente não está sendo preenchido.
Muito obrigado pela sua ajuda!
segue abaixo a procedure de configuração
_CtrlNFSE20.Configuracoes.Certificados.NumeroSerie := edtNumSerie.Text;_CtrlNFSE20.Configuracoes.Arquivos.AdicionarLiteral:=True;_CtrlNFSE20.Configuracoes.Arquivos.EmissaoPathNFSe:=True;_CtrlNFSE20.Configuracoes.Arquivos.PastaMensal:=True;_CtrlNFSE20.Configuracoes.Arquivos.PathCan:=edtPathLogs.Text;_CtrlNFSE20.Configuracoes.Arquivos.PathNFSe:=edtPathLogs.Text;_CtrlNFSE20.Configuracoes.Arquivos.PathGer:= edtPathLogs.Text;_CtrlNFSE20.Configuracoes.Arquivos.PathRPS:= edtPathLogs.Text;_CtrlNFSE20.Configuracoes.Arquivos.Salvar:=True;PathMensal:=_CtrlNFSE20.Configuracoes.Arquivos.GetPathNFSe(0);_CtrlNFSE20.Configuracoes.Geral.PathSchemas := edtSchemas.Text;_CtrlNFSE20.Configuracoes.Geral.Salvar := ckSalvar.Checked;_CtrlNFSE20.Configuracoes.Geral.PathSalvar := edtPathLogs.Text;_CtrlNFSE20.Configuracoes.WebServices.CodigoMunicipio := StrToIntDef(edtCodCidade.Text, 0);_CtrlNFSE20.Configuracoes.WebServices.Ambiente := StrToTpAmb(Ok, IntToStr(rgTipoAmb.ItemIndex+1));_CtrlNFSE20.Configuracoes.WebServices.Visualizar := ckVisualizar.Checked;_CtrlNFSE20.Configuracoes.WebServices.SenhaWeb := edtSenhaWeb.Text;//_CtrlNFSE20.Configuracoes.WebServices.ServicoEnviar;_CtrlNFSE20.Configuracoes.WebServices.ProxyHost := edtProxyHost.Text;_CtrlNFSE20.Configuracoes.WebServices.ProxyPort := edtProxyPorta.Text;_CtrlNFSE20.Configuracoes.WebServices.ProxyUser := edtProxyUser.Text;_CtrlNFSE20.Configuracoes.WebServices.ProxyPass := edtProxySenha.Text;_CtrlNFSE20.Configuracoes.WebServices.SetConfigMunicipio(_CtrlNFSE20.Configuracoes.Geral.PathSchemas);if _CtrlNFSE20.DANFSe <> nil thenbegin_CtrlNFSE20.DANFSe.Logo := edtLogoMarca.Text;_CtrlNFSE20.DANFSe.PrestLogo := edtPrestLogo.Text;_CtrlNFSE20.DANFSe.Prefeitura := edtPrefeitura.Text;end;lblSchemas.Caption := _CtrlNFSE20.Configuracoes.WebServices.xProvedor; -
Ítalo,
Muito obrigado pela sua ajuda.
Mas os fontes que instalei são de 16/04/2013, acho que são os mais recentes.
Não sei se isso faz alguma diferença mas o certificado digital na qual faço o uso do nº de série, é de uma empresa que não está incluída na lista de prestadores(disponibilizado no site da prefeitura), neste caso, independente de ser produção ou homologação, não poderei enviar e validar qualquer lote! Correto?
Pude observar quando estava debugando o código e que ao entrar na função assinar ou na função SetConfigMunicipio; tanto ConfigCidade1.AssinaRPS e ConfigCidade1.AssinaLote retonam false. Com isso na função Assinar também fica false e não gera nod de assinatura no arq. XML. creio que isso esteja invalidado o lote.Mais uma vez agradeço a sua ajuda. -
Bom dia
Por partes:
1 - Italo: Sei que o programa Demo é exclusivamente para dar uma ideia etc... mas as vezs para quem pega este bonde já andando como está fica complicado saber o que é erro de compilação, uso, configuração etc e o que (como no caso do "Validar rps") não funciona mesmo!
como por exemplo as mensagens de erro que recebi noenvio de lotes (é erro ou falta alguma coisa?).
Tenho bastante experiência com envio e retorno de NFSe no Rio de Janeiro utilizando arquivos txt mas infelizmentesão coisas bastantes diferentes. Tstei durante 2 meses um componente comercial para emissão de NFSe e verifiquei que no Rio de Janeiro o servidor de homologação aceita e processa sem dificuadades lotes contendo pelo menos 10 RPS e os retornos tambem estão funcionando perfeitamente.
Quanto a resposta de th.Lima:
"O ambiente de homologação pelo ACBr NFSe para o Rio de Janeiro não está configurado corretamente. O ambiente de produção e de homologação possuem algumas diferenças, mais o ambiente de produção está funcionando, na verdade para que funcione mude o arquivo nfse.xsd para o mesmo do Rio de Janeiro o nome do arquivo é tipos_nfse_01.xsd que está nos manuais do RJ. Após precisará omitir o campo: Tomador.IdentificacaoTomador.InscricaoMunicipal assim fará com que funcione no ambiente de produção. Espero ter ajudado! ;)"
Desculpe-me mas não entendi bem sua resposta. Como falei acima, acabo de testar um compomponente e o ambiente de homologação do Rio funcionou perfeitamente !?! Vou examinar estes arquivos que voce menciona e os campos. Talvez tenha ainda alguns dos arquivos gerados e enviados pelo componente que testei.
Edison
Edson, boa tarde!
Também estou utilizando os componentes ACBr NFSe com o Demo que é disponivel, Fiz as alterações necessárias, onde gera o RPS e lote com RPS, porém ao validar por exemplo Lote PRS ele me retorna com erro " Erro:
EOleException - nfse.xsd#/schema/element[4][@name = 'EnviarLoteRpsEnvio']/complexType[1]/sequence[1]/element[2]Undeclared XSD element : '{http://www.w3.org/2000/09/xmldsig#}Signature'Endereço: 0093427C" Pude observar quando estava observando que ao entrar na função assinar ou na função SetConfigMunicipio; tanto ConfigCidade1.AssinaRPS e ConfigCidade1.AssinaLote retonam false. Com isso na função Assinar também fica false.Eu estou utilizando um certificado digital de uma empresa que não consta na lista de prestadores, e não sei se isso pode ter relação com isso.Então como você já possou por algo parecido, peço a sua ajuda.Desde agradeço a sua atenção e compreensão.
Cancelamento De Nfse Para Bhiss- Parâmetro Incorreto
em ACBrNFSe
Postado
Ítalo e Luan,
Consegui descobri o motivo! Não estava preenchendo o ReqResp.URL'https://bhisshomologa.pbh.gov.br/bhiss-ws/nfse' responsável para BH! Eu comentei e assim ficou! Ptuz!!! Falta de atenção a minha! a URL 'http://ws.bhiss.pbh.gov.br/CancelarNfse' estava correta. A questão é se você não informa qual o servidor responsável pelo serviço, não há como executar o serviço solicitado, no caso a URL 'http://ws.bhiss.pbh.gov.br/CancelarNfse'.
Fica meu agradecimento pela atenção de vocês!