Boa tarde!
Pedimos desculpas pela demora!
Após um período de análise e discussão da equipe de consultores, segue conclusões sobre os problemas relatados:
Primeiro problema:
Conclusão:
A consulta de notas de serviço tomadas não é implementada pelo provedor BHISS que atende o município de Porto Alegre/RS. Por isso, você recebeu este retorno.
Uma atualização foi enviada aos fontes, visando tornar mais transparente isso para o esse provedor, exibindo a mensagem "Serviço não implementado" ao tentar usar a consulta. Reitero também o método NFSe_ObterInformacoes, que devolve para você quais são as principais informações para o provedor configurado, sendo uma delas, as consultas implementadas.
Entendendo o por quê:
Conferindo no arquivo ACBrNFSeXServicos.ini que concentra as URLs dos provedores que são usadas pelos componentes, nós temos a seguinte informação para o município de Porto Alegre/RS:
Se clicarmos no link do ProRecepcionar, será aberta no navegador uma aba como esta:
Se clicarmos no WSDL, vai exibir um arquivo cheio de tags semelhante a este:
Este arquivo é o WSDL, serve para descrever informações sobre o web service, dentre essas, quais são os métodos que estão implementados.
Se você pressionar CTRL+S, salvar esse arquivo XML e importar ele em uma ferramenta como o SoapUI, por exemplo, ele vai exibir quais são as possíveis consultas que podem ser feitas para o web service(ao mesmo estilo de um PostMan, por exemplo).
O arquivo está em anexo e o resultado ao importar ele é este:
Veja que ele não implementa a consulta de serviços tomados.
Segundo problema:
Conclusão:
O fluxo atual da Lib está correto e por isso, não são necessárias modificações.
Entendendo o por quê:
Conforme a mensagem informa, ela foi devolvida a você porque o CNPJ do consulente não corresponde ao tomador ou intermediário.
Mas o que é o consulente?
O consulente é um grupo no XML da consulta de serviços tomados que identifica quem está fazendo a consulta.
No manual do leiaute da ABRASF, temos:
No XML ficando por exemplo:
<?xml version="1.0" encoding="UTF-8"?>
<ConsultarNfseServicoTomadoEnvio xmlns="http://www.abrasf.org.br/nfse.xsd">
<Consulente>
<CpfCnpj>
<Cnpj>11111111111111</Cnpj>
</CpfCnpj>
<InscricaoMunicipal>1234567</InscricaoMunicipal>
</Consulente>
<NumeroNfse>1</NumeroNfse>
<Pagina>1</Pagina>
</ConsultarNfseServicoTomadoEnvio>
O erro que você recebeu, é porque a Lib, por padrão, utiliza o CNPJ que está configurado no Emitente para fazer essa busca. E isso está correto.
Quando falamos de nota de serviço, consideramos que ela possui dois atores, o prestador de serviços, que é quem realiza o serviço e o tomador do serviço que é quem requisita a realização do serviço.
Mas esses papéis não são fixos, um prestador de serviços também pode ser um tomador e vice versa. Isso pode ser visto principalmente na consulta de serviços tomados.
Você configurou os dados do prestador de serviços no emitente, mas quando ele faz uma consulta de serviços tomados, ele não é o prestador, mas sim o tomador das notas que está buscando e da forma como está vai ser usado o CNPJ dele no grupo consulente.
Como você recebeu este erro, por favor, confira se não inverteu os dados no momento que fez a consulta.