Problema no envio de nfse

11 respostas
R

Já pesquisei bastante nesse fórum, mas como não achei uma solução vou postar meu problema.
Estou tentando enviar uma nfse para prefeitura de recife, já consegui importar o certificado para JVM, mas sempre que envio um xml válido, ocorre o erro 400 Bad resquest. Alguém já passou por isso? Segue abaixo o xml de envio.

< ?xml version="1.0" encoding="ISO-8859-1"?> < soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> < soap:Body> < ConsultarNfseRequest xmlns="http://nfse.recife.pe.gov.br/"> < inputXML> < ConsultarNfseEnvio xmlns="http://www.abrasf.org.br/ABRASF/arquivos/nfse.xsd"> < Prestador> < Cnpj>99999999999999 < InscricaoMunicipal>9999999 < /Prestador> < PeriodoEmissao> < DataInicial>2012-05-01 < DataFinal>2012-05-29 < /PeriodoEmissao> < Tomador> < CpfCnpj> < Cnpj>[telefone removido] < /CpfCnpj> < /Tomador>

11 Respostas

aix

como você faz para assinar a conexão(SSL) ? posta o código.

R
Assinei assim



System.setProperty(java.protocol.handler.pkgs, com.sun.net.ssl.internal.www.protocol);

Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());

System.setProperty(javax.net.ssl.keyStoreType, PKCS12);

System.setProperty(javax.net.ssl.keyStore, C:\certificado.pfx);

System.setProperty(javax.net.ssl.keyStorePassword, minhasenha);
R

Também tentei o xml abaixo, mas sempre da erro 400 Bad request.

< ConsultarSituacaoLoteRpsEnvio xmlns=“http://www.abrasf.org.br/ABRASF/arquivos/nfse.xsd”>
< Prestado>
< Cnpj>99999999999999< /Cnpj>
< InscricaoMunicipal>9999999< /InscricaoMunicipal>
< /Prestador>
< Protocolo>4< /Protocolo>
< /ConsultarSituacaoLoteRpsEnvio>

aix

precisa configurar o truststore JSK, adicione essas linhas abaixo:

System.setProperty("javax.net.ssl.trustStoreType", "JKS");
System.setProperty("javax.net.ssl.trustStore", "cacerts");

Na aplicação que eu trabalho de NFS-e eu deixo o arquivo cacerts na raiz do projeto se for utilizar um diferente path configura ali no cacerts.

R

O erro 400 ficou resolvido com sua dica, muito obrigado,
Mas agora aparece o erro abaixo no xml de retorno.

> Mensagem XML de Pedido do serviço sem conteúdo

aix

Ola,

esta utilizando alguma lib como Axis2 ou JAX-WS ou escreve com SOAPMessage? bom, o que vi errado na sua request foi o encoding que eles usam UTF-8 e você ISO88159-1 mas não acredito este ser o problema e sim que você deve estar escrevendo com SOAP nativo e não especiifcou que a versão do protocolo é SOAP 1.1, veja, outra possibilidade é você estar pesquisando uma NFSe sem ter enviado a mesma, ou enviou mas esta errada(não foi aceita) não gerando uma NFS-e, o correto seria consultar o envio do lote de RPS, abraços.

R

Estou escrevendo um SOAPMessage. Pergunta bem básica, como faço para especificar a versão do protocolo na minha requisição?
Valeu pela força.

aix

MessageFactory factory = MessageFactory.newInstance(SOAPConstants.SOAP_1_1_PROTOCOL);

não esquece dos headers como o tipo do conteúdo também, ex:

MimeHeaders header = new MimeHeaders();
header.addHeader("Content-Type", "text/xml");
R

Especifiquei o protocolo. Os headers eu já tinha colocado, mas continua o mesmo erro.

aix

mas você tem a NFSe gerada la para poder testar a consulta? olhando agora seu xml ele tem data ini e final de 2012 esta correto isso?

R

Alterei a data. Estou enviado assim

<?xml version="1.0" encoding="utf-8"?>

< soap:Envelope xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance” xmlns:xsd=“http://www.w3.org/2001/XMLSchema” xmlns:soap=“http://schemas.xmlsoap.org/soap/envelope/”>
< soap:Body>
< ConsultarNfseRequest xmlns=“http://nfse.recife.pe.gov.br”>
< inputXML>
< Prestador>
< Cnpj>99999999999999< /Cnpj>
< InscricaoMunicipal>9999999< /InscricaoMunicipal>
< /Prestador>
< PeriodoEmissao>
< DataInicial>2016-03-31< /DataInicial>
< DataFinal>2016-03-31< /DataFinal>
< /PeriodoEmissao>
< Tomador>
< CpfCnpj>
< Cnpj>99999999999999< /Cnpj>
< /CpfCnpj>
< /Tomador>
< /ConsultarNfseEnvio>
< /inputXML>
< /ConsultarNfseRequest>
< /soap:Body>
< /soap:Envelope>

Criado 21 de abril de 2016
Ultima resposta 24 de abr. de 2016
Respostas 11
Participantes 2