Facturacion Electronica, Firma, Error de Firma Invalida.

2,225 views
Skip to first unread message

Daniel Mora Saprissa

unread,
Aug 9, 2018, 6:08:22 PM8/9/18
to Comunidad de Visual Foxpro en Español
Compañeros, tengo una situacion que no se a ciencia cierta cual es su causa.

Resulta que yo estaba obteniendo la respuesta aceptado por parte de Hacienda para lo XML que enviaba.

Pero ahora, desde hace unos dias, me empezo rechazar los envios indicando que la firma era invalida.

<DetalleMensaje>Este comprobante fue aceptado en el ambiente de pruebas, por lo cual no tiene validez para fines tributarios La firma del comprobante electrónico no es válida</DetalleMensaje>

Renove el certificado por si acaso fuera eso, pero sigue el mismo error.

Yo estoy utilizando C#, para firmar utilizo como base el codigo que encontre en el sitio de Git de Costa Rica Libre.

El cual copio :

Realmente lo que no se de es los de PolicyIdentifier y PolicyHash.

Sera posible que estos hayan cambiado con respecto a lo que yo coloco.

Realmente no tengo la menor idea de esto. Y de que esta pasando.

Si alguien me puede dar una luz, lo agradecere mucho.

// Firma Archivo
                XadesService xadesService = new XadesService();
                SignatureParameters parametros = new SignatureParameters
                {

                    // Politica de Firma
                    SignaturePolicyInfo = new SignaturePolicyInfo
                    {
                        PolicyIdentifier = "https://tribunet.hacienda.go.cr/docs/esquemas/2016/v4.1/Resolucion_Comprobantes_Electronicos_DGT-R-48-2016.pdf",
                        PolicyHash = "Ohixl6upD6av8N7pEvDABhEL6hM=",
                        // PolicyUri = ""
                    },

                    SignatureMethod = SignatureMethod.RSAwithSHA256,
                    // SigningDate = new DateTime?(DateTime.Now),
                    DataFormat = new DataFormat(),
                    SignaturePackaging = SignaturePackaging.ENVELOPED
                };

                if (InstaladoArchivo == "A")
                    X509Certificado = new X509Certificate2(RutaNombreCertificado,ClaveCertificado);
                else
                    X509Certificado = MiscelaneasXML.GetCertificateByThumbprint(HuellaDigital);

                using (parametros.Signer = new FirmaXadesNet.Crypto.Signer(X509Certificado))
                {
                    using (FileStream filestream = new FileStream(peFicheroFactura, FileMode.Open))
                    {
                        var docFirmado = xadesService.Sign(filestream, parametros);
                        docFirmado.Save(peFicheroFacturaFirmado);
                    }
                }
Message has been deleted

Hernan Serrano

unread,
Aug 10, 2018, 8:57:58 AM8/10/18
to publice...@googlegroups.com
Correcto.
Ese codigo y utilerias tiene errores.
A mi me toco revisar y rehacer todo.

El jue., 9 de ago. de 2018 6:00 PM, YuLSoft <yul...@gmail.com> escribió:
El problema de "La firma del comprobante electrónico no es válida" se da porque el texto del archivo XML debe estar codificado en base64, previo a ello debe estar codificado en UTF8.
Lo otro es que la herramienta que usas para firmar no sea XADES-EPES.
Personalmente vi ese proyecto en Github, pero no me convenció aparte que esta incompleto, le falta algunas validaciones. 
Message has been deleted

Hernan Serrano

unread,
Aug 10, 2018, 12:25:46 PM8/10/18
to publice...@googlegroups.com
NO mi estimado amigo. Ese codigo tiene un problema. Por experiencia te lo digo. Por que me paso. A mi me empezo a trabajar bien y de un pronto a otro me empezo a dar firma invalida. Algo tiene que ver con las libreras de firma.

Yo en mi caso ya corregi el problema.

El 10 de agosto de 2018, 9:39, jose carlos aguilar <jcagu...@gmail.com> escribió:
En este grupo de telegram     https://t.me/CRLibreFE   te pueden ayudar.
Por lo general si ya tu has estado enviando correctamente, y luego dices que ya no , lo más seguro es que sea el xml sin firma que lo podrias validar en http://apis.gometa.org/validar/
Hacienda, así la firma este correcta en cuanto a su estructura y cálculos siempre dirá que es error en firma si tu xml tiene algún error.
Lo de convertir a base 64  y encodear en utf 8 es cierto pero no creo que sea tu problema ya que dices que ya has estado enviando.
En CR libre hay un api rest con el que contribuí el proceso de firma xades-epes, es una opción que también puedes usar.
Suerte 


El jueves, 9 de agosto de 2018, 17:08:22 (UTC-5), Daniel Mora Saprissa escribió:



--
Tico Support S. A.
Tel. (506)8819-4369

Hernan Serrano

unread,
Aug 10, 2018, 12:26:19 PM8/10/18
to publice...@googlegroups.com
Con la ayuda de otro compañero. De hecho a varios que estan utilizando ese codigo les esta dando problemas.
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted

Daniel Mora Saprissa

unread,
Aug 10, 2018, 3:33:33 PM8/10/18
to Comunidad de Visual Foxpro en Español
En primera muchas gracias a todos por sus respuesta :

Por ahora entonces manejo dos opciones : 

- Problemas con la librerias de firma. Que por lo que indica Don Hernan, es lo mas posible.

y/o

- Paso de parametros incorrectos a algoritmo de firma.

Voy a estar explorando todas las opciones y siguiente todos los consejos.

Saludos
Reply all
Reply to author
Forward
0 new messages