Estou consumindo o webservice TesteEnvioLoteRPS e recebo esse retorno: XML não compatível com Schema. <?xml version="1.0" encoding="UTF-8"?><RetornoEnvioLoteRPS xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.prefeitura.sp.gov.br/nfe"><Cabecalho Versao="1" xmlns=""><Sucesso>false</Sucesso></Cabecalho><Erro xmlns=""><Codigo>1001</Codigo><Descricao>XML não compatível com Schema.</Descricao></Erro></RetornoEnvioLoteRPS>
O Problema é o que não está compatível, antes algumas mensagens apareciam, tipo, tag errada e etc, eu fui corrigindo e então deu nessa. Alguem já passou por isso?
Boa tarde, estou validando sim, passa tranquilo na validação.
Já trabalho com o projeto NF-e faz alguns anos, começando agora com o NFS-e de SP e me parecia ser tão simples até que vem um erro desses sem dizer o que é rsrs
Então, aqui na empresa que trabalho também estamos implementando NFS-e e já concluímos SP, eu faria um teste com SoapUI e verificaria a diferença entre os documentos. pelo erro, ele não está formado corretamente.
consegui achar o problema aqui mesmo ele não informando, o CNPJ estava com faltando 1 digito, agora estou com problema na assinatura, no manual está falando que a assinatura do RPS tem q ser em cima dos 86 digitos, ai logo em baixo ele apresenta a tabela e um exemplo com 103 digitos e no esquema diz 86 e se somar os campos da 85, ai lascou
Para a assinatura da cadeia de caracteres são 86 posições mesmo, não me recordo de ver uma tabela com 103 digitos, não está confundindo com NF-e né? o documento que me guiei no desenvolvimento se chama NFe_Web_Service.pdf.
depois de gerado esse hash RSA-SHA1 precisa assinar o documento root, mas ai é uma assinatura normal do documento como era no NFe.
Com base no trecho da mensagem XML apresentada, montamos a seguinte string de caracteres:
"31000000OL03 00000000000120070103TNN00000000205000000000000050000002658100013167474254209999999000106S"
Mas logo em seguida tem uma explicação que utiliza uma de 86, olha só, apresenta esse erro:
Assinatura Digital do RPS incorreta - String verificada (98414100OL03 00000000000120170109TNN00000000123450000000000000000007498218351223000169N)
E minha assinatura não tem esse N no final, com ele daria 87 caracteres
hehehehe, são 86 mesmo, tenho rodando em produção, o que acontece é que não é obrigatório informarmos os dados do intermediário, veja:
Observação: não é necessário informar os dados de intermediário na assinatura se não houver intermediário. Como exemplo, sem intermediário a string montada seria dessa forma:
"31000000OL03 00000000000120070103TNN00000000205000000000000050000002658100013167474254”
Salve pessoal
Resolvi o problema aqui, segue solução:
O primeiro problema era a mensagem “XML não compatível com Schema.”, que não indicava o que era, descobri que quando coloca uma TAG obrigatório mas não informa o valor, retorna essa mensagem, no meu caso era a tag:
O segundo problema da assinatura de 86 caracteres foi o seguinte, quando enviada para a prefeitura recebia a mesma string de assinatura que meu sistema gerava só que vinha um N no final e a mensagem de Assinatura Invalida.
O Problema era que eu estava informando a TAG [ISSRetidoIntermediario], ou seja, se existe um intermediario, é necessário incluir na string de assinatura os dados do intermediario, ficando 103 caracteres e não os 86. Retirei a TAG[ISSRetidoIntermediario] e funcionou tranquilo com os 86 caracteres, inserir os dados do Intermediario e funcionou corretamente com os 103 caracteres.