none
NFe Serviços Cidade de São Paulo RRS feed

  • Pergunta

  • Estou tentando consumir o webservice da Cidade de São Paulo.

    Ele apresenta o seguinte erro:

    The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.

    Com o código abaixo passa

    System.Net.

    ServicePointManager.ServerCertificateValidationCallback = delegate

    {

     

    return true;

     

    mas ai quando faz a consumo o webservice de consulta CNPJ por exemplo da Certificado Inválido.

     

    Alguém já conseguiu fazer a comunicação?

    };

    sexta-feira, 18 de junho de 2010 17:35

Respostas

Todas as Respostas

  • Alexandre,

    Dei uma pesquisada NFe e no seu código:

    1. Pelo que eu sei, esse código: ServicePointManager.ServerCertificateValidationCallback ... meio que burla a certificação de um web service.

    2. Pelo que está escrito nesse site, fala sobre a questão de utilizar certificado gerado pela prefeitura http://ww2.prefeitura.sp.gov.br/nfe/saibamais_nfe_in_08.asp

    3. Nesse manual tem uma explicação bem detalhada sobre esse sobre isso e também fala sobre uma senha web que você pode utilizar junto ao cnpj da empresa para acessar o web service. http://ww2.prefeitura.sp.gov.br/nfe/files/Manual-NFe-PJ-v4-0.pdf

    4. O primeiro erro pode ser que a URL de acessa o método está escrito errado.

    5. O segundo é por causa do certificado mesmo. Esse webservice parece ser bem rigido nesse quesito. Simplesmente fazer ele validar como true, temo que não seja suficiente.


    Samuel Fabel
    segunda-feira, 21 de junho de 2010 13:26
  • Samuel,

    Nesse link tem o manual do web service http://ww2.prefeitura.sp.gov.br/nfe/files/NFe-Web-Service-v2-2.pdf, pelo que entendi a senha web é pra digitar no site as notas.

    Eu já validei o meu certificado na Prefeitura seguindo um e-mail enviado por eles.

    No manual consta o seguinte:

     

    Para a validação da assinatura digital, seguem as regras que serão adotadas pelo Sistema de Notas Fiscais Eletrônicas da Prefeitura de São Paulo:

    A. Extrair a chave pública do certificado digital e não utilizar a chave indicada na TAG XML (ds:KeyValue);

    B. Verificar o prazo de validade do certificado utilizado;

    C. Montar e validar a cadeia de confiança dos certificados validando também a LCR (Lista de Certificados Revogados) de cada certificado da cadeia;

    D. Validar o uso da chave utilizada (Assinatura Digital) de tal forma a aceitar certificados somente do tipo A (não serão aceitos certificados do tipo S);

    E. Garantir que o certificado utilizado é de um usuário final e não de uma Autoridade Certificadora;

     

    F. Adotar as regras definidas pelo RFC 3280 para LCRs e cadeia de confiança;

    G. Validar a integridade de todas as LCR utilizadas pelo sistema;

    H. Prazo de validade de cada LCR utilizada (verificar data inicial e final).

    segunda-feira, 21 de junho de 2010 19:05
  • Mas acho que você matou quando disse 4. O primeiro erro pode ser que a URL de acessa o método está escrito errado.

    Pela homologação da ____:

    https://testenfe.prefeitura.sp.gov.br/ws/lotenfe.asmx

    Mas pela produção funciona, nem precisa colocar o true da minha primeira mensagem.

    https://nfe.prefeitura.sp.gov.br/ws/lotenfe.asmx

    Todos os meus problemas são devido ao site de testes que eles passaram.

    Obrigado.

    segunda-feira, 21 de junho de 2010 19:09
  • Alexandre,

    De qualquer modo, de uma olhada nesse link: http://msdn.microsoft.com/en-us/library/aa395203(VS.90).aspx

    Não é exatamente o que você precisa, mas dá uma explicação sobre as certificações.


    Samuel Fabel
    terça-feira, 22 de junho de 2010 16:42
  • Olá Alexandre,

    Vc conseguiu utilizar o ambiente de testes da prefeitura de sp?

     

    https://testenfe.prefeitura.sp.gov.br/ws/lotenfe.asmx

     

    Abcs,

     

    Daniel Adorno

     

    • Sugerido como Resposta mykola.szoma segunda-feira, 21 de fevereiro de 2011 14:53
    terça-feira, 21 de dezembro de 2010 13:23
  • Mas acho que você matou quando disse 4. O primeiro erro pode ser que a URL de acessa o método está escrito errado.

    Pela homologação da ____:  

    https://testenfe.prefeitura.sp.gov.br/ws/lotenfe.asmx

    Mas pela produção funciona, nem precisa colocar o true da minha primeira mensagem.

    https://nfe.prefeitura.sp.gov.br/ws/lotenfe.asmx

    Todos os meus problemas são devido ao site de testes que eles passaram.

    Obrigado.

     

    O amigo mandei um email para prefeitura de são paulo e eles me disseram:

     

    Prezado(a) Sr(a).

    Se você se refere a um ambiente de testes não há para a NF-e.

    Consulte "Perguntas e Respostas" no endereço eletrônico www.prefeitura.sp.gov.br/nfe.
    Consulte, também, o link "Manuais" no mesmo endereço.
    Permanecemos à disposição para quaisquer esclarecimentos adicionais.
    Atenciosamente,
    Subsecretaria da Receita Municipal
    Secretaria Municipal de Finanças
    FN

     

    Achei estranho vc ter colocado que existe um ambiente de teste... tentei entrar mas o navegador diz que o site é inseguro, pois o emissor do certificado desse site não pode ser encontrado.

    terça-feira, 10 de maio de 2011 19:58
  • Pessoal, estou consumindo o web service via SoapUI de homologação e recebo a informação de certificado invalido

    testenfe.prefeitura.sp.gov.br/ws/lotenfe.asmx

    Mas pela produção funciona.

    nfe.prefeitura.sp.gov.br/ws/lotenfe.asmx

    Todos os meus problemas são devido ao site de testes que eles passaram.

    Alguem conseguiu utilizar esse ambiente de testes da nfe paulistana?

    Obrigado.

    sexta-feira, 30 de agosto de 2013 12:04
  • Boa Tarde Pessoal,

    Aguem pode me auxiliar?

    Preciso buscar todas as notas de uma empresa específica através da url abaixo:

    nfe.prefeitura.sp.gov.br/ws/lotenfe.asmx

    Já tentei de todas as formas e não consigo....

    Agradeço a todos pela ajuda.

    Att

    terça-feira, 29 de novembro de 2016 16:40
  • Boa tarde,

    Dá uma olhada na documentação da prefeitura. Tem uma operação chamada ConsultaNFeEmitidas que lista de modo paginado as notas emitidas. Tem um XSD para validar de o XML da request é válido.

    http://nfpaulistana.prefeitura.sp.gov.br/empresas/informacoes-gerais/manuais-arquivos/nfe_web_service_v2-4-2.pdf/@@download/file/NFe_Web_Service.pdf

    Neste post tem um exemplo de como autenticar no serviço caso tenha necessidade:

    https://social.msdn.microsoft.com/Forums/pt-BR/5b1b4dce-2faf-4f50-8c33-239aa4cc72d1/consumir-web-services-nfse-prefeitura-de-sp-dica?forum=webservicespt

    Atenciosamente,


    Samuel Fabel


    • Editado Samuel Fabel terça-feira, 29 de novembro de 2016 17:11
    terça-feira, 29 de novembro de 2016 17:10
  • Obrigado pelo retorno Samuel,

    Estou a dias tentando efetuar esta integração pode me auxiliar?

    Estou efetuando esta chamada no c#.

    nfe_sp1.LoteNFe lote = new nfe_sp1.LoteNFe();
    XmlDocument doc = new XmlDocument();
    doc.Load(@"Envio.xml");
    string xml = doc.OuterXml;
    X509Certificate2 cert = new X509Certificate2(@"meucerfificado", "senha");
    lote.ClientCertificates.Add(cert);
    return lote.ConsultaNFe(1, xml);

    Este é meu XML

    <?xml version="1.0" encoding="utf-8"?>
    <soap:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
      <soap:Body>
        <ConsultaNFeRequest xmlns="http://www.prefeitura.sp.gov.br/nfe">
          <VersaoSchema>1</VersaoSchema>
          <MensagemXML>
            <Cabecalho>
              <CPFCNPJRemetente>CNPJ</CPFCNPJRemetente>
              <Versao>1</Versao>
            </Cabecalho>
          </MensagemXML>
        </ConsultaNFeRequest>
      </soap:Body>
    </soap:Envelope>

    Estou tomando erro "Value cannot be null"

    Obrigado mesmo pelo auxílio.

    Att

    Ivan Battistin
    terça-feira, 29 de novembro de 2016 18:23
  • Mas não dá para listar notas por esta operação. Na documentação fala em dois campos do Detalhe chamados ChaveRPS e ChaveNFe e isto faz com que retorne 0 ou 1 nota. As operações que listam são ConsultaNFeRecebidas e ConsultaNFeEmitidas. Eles só pedem Cabecalho e tem campos como dtInicio, dtFim e NumeroPagina. Inclusive na documentação tem o seguinte texto:

    O sistema de informação de um Contribuinte envia uma mensagem XML de Pedido Consulta de NF-e recebidas para o período de 01/09/2006 a 30/09/2006 e requerendo a página 1. Para este pedido são encontradas 137 NF-e recebidas. As 137 NF-e são agrupadas em três páginas: Página 1 com as primeiras 50 NF-e (1ª à 50ª); página 2 com as próximas 50 NF-e (51ª à 100ª) e página 3 com as 37 NFe restantes (101ª à 137ª). O Web Service retorna uma mensagem XML com a página requerida (página 1).

    Ao receber a mensagem XML de retorno o sistema de informação do Contribuinte verifica que foram retornadas 50 NF-e para a página 1. O sistema de informação do Contribuinte envia outra mensagem XML de Pedido Consulta de NF-e Recebidas para o mesmo período, mas desta vez requerendo a próxima página (página 2). O Web Service retorna uma mensagem XML com a página requerida (página 2). Ao receber a mensagem XML de retorno o sistema de informação do Contribuinte verifica que foram retornadas 50 NF-e para a página 2. O sistema de informação do Contribuinte envia outra mensagem XML de Pedido Consulta de NF-e Recebidas para o mesmo período, mas desta vez requerendo a próxima página (página 3). O Web Service retorna uma mensagem XML com a página requerida (página 3). Ao receber a mensagem XML de retorno o sistema de informação do Contribuinte verifica que foram retornadas 37 NF-e para a página 3 e portanto não existem mais NF-e recebidas para o período consultado.

    Obs.: As NF-e encontradas são ordenadas por data de emissão da nota (ou data do cancelamento, caso a NF-e tenha sido cancelada) e pela inscrição municipal (CCM) do prestador que emitiu a nota.


    Samuel Fabel

    terça-feira, 29 de novembro de 2016 18:32
  • Obrigado mais uma vez!

    Na verdade não estou conseguindo nenhum método da integração.

    Nem a requisição ConsultaLoteRequest.

    Dá o mesmo erro passando os parâmetros corretamente.

    Agradeço a enorme ajuda.

    Att

    Ivan Battistin


    terça-feira, 29 de novembro de 2016 18:53
  • Tem certeza que os parâmetros estão corretos? Na documentação tem um campo chamado Signature que tem em todas as mensagens e no exemplo que você passou não tem no xml. Normalmente este erro vem junto com ArgumentNullException nos métodos chamados no .net.

    Samuel Fabel

    terça-feira, 29 de novembro de 2016 19:28
  • Teria interesse em me auxiliar neste ponto remuneradamente?

    Qualquer coisa podemos nos falar pelo e-mail: ivanbattistin@hotmail.com

    Obrigado mais uma vez pela ajuda.

    Att

    Ivan Battistin

    terça-feira, 29 de novembro de 2016 19:35