Erro de assinatura

364 views
Skip to first unread message

Pedro Ramme

unread,
Mar 13, 2025, 3:04:07 PMMar 13
to wsnfsecampinas
Boa tarde, não estou conseguindo fazer a emissão de notas por webservice. o erro retornado é:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <soap:Fault> <faultcode>soap:Server</faultcode> <faultstring>Arquivo enviado com erro na assinatura. / Acerte a assinatura do arquivo.</faultstring> </soap:Fault> </soap:Body> </soap:Envelope>

alguem ja passou por este erro? poderia me ajudar? deixarei meu xml em anexo.
Obs: já tentei mandar assinando só a tag LoteRps; ou InfDeclaracaoPrestacaoServico; ou Rps; mas todas vezes retornou o mesmo erro.


NFCampinas.xml

Tiago Carvalho

unread,
Mar 13, 2025, 4:30:31 PMMar 13
to wsnfsecampinas
Também estou com o mesmo problema no método de consulta de lote (ConsultarLoteRps)

Já verifiquei inúmeras vezes o XML, testei com empresas e certificados diferentes, e só retorna este mesmo erro.

Pedro Ramme

unread,
Mar 13, 2025, 4:44:52 PMMar 13
to wsnfsecampinas
Opa tiago, mas conseguiu enviar a nota pelo menos? se sim, poderia me mandar seu xml? Obrigado

Leonardo Gomes Nunes

unread,
Mar 14, 2025, 10:42:03 AMMar 14
to wsnfsecampinas
Estou com exatamente o mesmo problema que você, Pedro.

Já validei o meu XML com diversos que foram compartilhados, mas sempre tenho esse mesmo retorno de erro na assinatura.

O curioso é que é o mesmo processo de assinatura que utilizo no sistema atual da prefeitura e funciona sem quaisquer problemas.

Pedro Ramme

unread,
Mar 14, 2025, 2:43:21 PMMar 14
to wsnfsecampinas
Leonardo, falei com a prefeitura por mensagem, e eles falaram que era para abrir requerimento no site, ou falar aqui no fórum, o que não adintou de nada. tambem mandaram isso:


Captura de tela 2025-03-14 140859.png

Diego Coletivo

unread,
Mar 14, 2025, 3:52:31 PMMar 14
to wsnfsecampinas

Que linguagem vocês estão codificando ?

Se for a mesma dá pra mandar o trecho do meu código da parte da assinatura.

Pedro Ramme

unread,
Mar 14, 2025, 3:53:48 PMMar 14
to wsnfsecampinas
C#, diego.

Tiago Carvalho

unread,
Mar 17, 2025, 8:53:26 AMMar 17
to wsnfsecampinas
Pedro,

Estou com problema em todos os métodos na verdade. Também estou utilizando C# aqui, e a maneira como assinava anteriormente não está funcionando neste novo WebService. Já tentei assinar o XML todo, assinar apenas o nó onde tem a assinatura e nenhum deles funcionou.

Em resumo, gerei as classes em C# à partir do XSD, utilizo elas e converto para um XMLDocument. Após isso, utilizo a classe SignedXml para gerar o XML assinado e enviar ao servidor, não sei se é o mesmo processo que vc está fazendo.

Mas Diego, 

Se você conseguir compartilhar o seu código, mesmo que não seja em C#, pode nos dar alguma luz por aqui, ficaria agradecido. 

O IMA bem que poderia manter um repositório no GitHub com exemplos mais claros e códigos para as principais linguagens.

Tiago Carvalho

unread,
Mar 17, 2025, 8:58:45 AMMar 17
to wsnfsecampinas
O meu XML está desta maneira, igual aos exemplos que já tinha visto aqui no grupo:

<ConsultarLoteRps>
<ConsultarLoteRpsEnvio>
<Prestador>
<CpfCnpj>
<Cnpj>**************</Cnpj>
</CpfCnpj>
<InscricaoMunicipal>*********</InscricaoMunicipal>
</Prestador>
<Protocolo>*********</Protocolo>
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
<SignedInfo>
<CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
<Reference URI="">
<Transforms>
<Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
<Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
</Transforms>
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<DigestValue>***</DigestValue>
</Reference>
</SignedInfo>
<SignatureValue>***</SignatureValue>
<KeyInfo>
<X509Data>
<X509Certificate>***</X509Certificate>
</X509Data>
</KeyInfo>
</Signature>
</ConsultarLoteRpsEnvio>
</ConsultarLoteRps>

Pedro Ramme

unread,
Mar 17, 2025, 8:59:20 AMMar 17
to Tiago Carvalho, wsnfsecampinas
Opa Thiago, no caso voce instância o webservice e com as classes geradas vc monta um objeto e transforma em xml? mas como faz para assinar? poderia me mandar um exemplo de como você utiliza a classe SignedXml?

--
You received this message because you are subscribed to a topic in the Google Groups "wsnfsecampinas" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/wsnfsecampinas/xr9FNSMnCJA/unsubscribe.
To unsubscribe from this group and all its topics, send an email to wsnfsecampina...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/wsnfsecampinas/b9053552-5899-494d-a374-b56aa753e962n%40googlegroups.com.

Tiago Carvalho

unread,
Mar 17, 2025, 9:26:10 AMMar 17
to wsnfsecampinas
Pedro, utilizo desta maneira:

X509Store store = new X509Store();
store.Open(OpenFlags.ReadOnly);
X509Certificate2 certificado = store.Certificates.Find(X509FindType.FindBySerialNumber, "SerialNumberdoCertificado", true).First();

SignedXml signedXml = new SignedXml(_Xml);
signedXml.SigningKey = certificado.GetRSAPrivateKey();
signedXml.SignedInfo.SignatureMethod = SignedXml.XmlDsigRSASHA1Url;

Reference reference = new Reference();
reference.Uri = "";
reference.AddTransform(new XmlDsigEnvelopedSignatureTransform());
reference.AddTransform(new XmlDsigC14NTransform());
reference.DigestMethod = SignedXml.XmlDsigSHA1Url;
signedXml.AddReference(reference);

KeyInfo keyInfo = new KeyInfo();
keyInfo.AddClause(new KeyInfoX509Data(certificado));
signedXml.KeyInfo = keyInfo;

signedXml.ComputeSignature();
XmlElement xmlDigitalSignature = signedXml.GetXml();

_Xml.DocumentElement.AppendChild(_Xml.ImportNode(xmlDigitalSignature, true));

Aí já está utilizando os padrões de assinatura solicitados nos manuais, e o certificado digital está instalado no computador.

Reply all
Reply to author
Forward
Message has been deleted
0 new messages