![]() |
Cita:
Código:
6.1. Caso 1: primer registro de facturación –en este caso, de |
hash primer registro
buenas, lee el siguiente enlace, viene bien explicado:
https://www.agenciatributaria.es/sta..._registros.pdf Caso 1: primer registro de facturación –en este caso, de alta– en un Sistema Informático de Facturación (SIF) Se parte de los siguientes datos de entrada en el XML: 1. IDEmisorFactura: 89890001K 2. NumSerieFactura: 12345678/G33 3. FechaExpedicionFactura: 01-01-2024 4. TipoFactura: F1 5. CuotaTotal: 12.35 6. ImporteTotal: 123.45 7. Huella (*): 8. FechaHoraHusoGenRegistro: 2024-01-01T19:20:30+01:00 (*) Sin contenido, al tratarse del primer registro de ese SIF y, por tanto, no haber registro de facturación anterior. Se obtendría la siguiente cadena de caracteres sobre la que aplicar el algoritmo de huella o «hash»: IDEmisorFactura=89890001K&NumSerieFactura=12345678/G33&FechaExped icionFactura=01-01- 2024&TipoFactura=F1&CuotaTotal=12.35&ImporteTotal=123.45&Huella=&Fec haHoraHusoGenRegistro=2024-01-01T19:20:30+01:00 un saludo |
Esto es para el cálculo del hash/firma, pero para el xml a enviar a VERIFACTU, se debe de informar
Código:
<sum1:Encadenamiento> |
buenas
Correcto. Perdona entendi mal la pregunta un saludo |
Buenas.
A mi me da un access violation al hacer la llamada. ¿Alguna idea de por qué puede ser? Gracias y un saludo. |
Cita:
Si tienes algo de código fuente de como lo envías y lo compartes pues te estaríamos eternamente agradecidos. Gracias. |
Cita:
|
yo lo tengo claro... o se acogen al SII o si quieren seguir utilizando mis aplicaciones, estaran si o SI en VERIFACTU, ya que no voy a contemplar NO VERIFACTU. La declaración responsable que habrá en mis aplicaciones lo argumentaré bien detallado, espero, y a ver si alguien más comparte declaraciones responsables de sus aplicaciones y compartimos distintas visiones e inquietudes para podernos cubrir las responsabilidades.
|
Cita:
|
Bien, ya envio xml de facturas y recibo los mesajes correspondientes, en este caso Correcto
Código:
<env:Header/>Código:
<env:Header/>De momento estoy solo con Alta de nuevo registro. Hecho en falta un sitio para poder consultar los registros enviados, poderlos "Gestionar" eliminar o consultar su Huella, pues si no se la última huella enviada es imposible poder generar un registro nuevo para enviar. El SII tiene un portal que te permite poder visualizar los registros enviados, incluso eliminarlos... No se a quien debería de trasladar la petición!!! Gracias por vuestro tiempo. |
Cita:
por que de no acogerse que responsabilidad tiene el desarrollador? creeis que es necesario que un CISA certifique que el software es inalterable etc, o simplemente con una declaración responsable de que es trazable, inalterable, etc va a valer. En mi caso, es en al nube, el cliente no puede tocar nada de nada ni borrar nada. |
Cita:
Cita:
|
Buenas.
¿Podría poner alguien un ejemplo tontuno de envío de un registro de alta? No sé qué pasa que no consigo que me funcione. Gracias y un saludo. |
Cita:
No te confundas con la expresión "No-Verifactu". Esto no significa que puedes "no acogerte a VeriFactu", lo que significa es que las exigencias para cumplir con No Verifactu son de mayor calado que las que se exigen para Verifactu |
Cita:
Para mí el quiz de la cuestión es que nuestros programas, se acojan o no nuestros clientes a Verifactu o No Verifactu, deben estar adaptados a Verifactu. Lo diré de otra forma: A partir del 1/7/25 cualquier software facturador usado debe ser compatible con Verifactu se use o no. S.E.U.O.U.O.M.V. (Dicho esto salvo error u omision u opinion de mayor valía) |
Cita:
Public Function validarCertificado(ByVal sender As Object, ByVal certificado As System.Security.Cryptography.X509Certificates.X509Certificate, ByVal cadena As System.Security.Cryptography.X509Certificates.X509Chain, ByVal sslErrores As System.Net.Security.SslPolicyErrors) As Boolean Return True End Function Por cierto... no es necesario que firmes el xmk. Tan solo firmar la peticion con tu certificado pfx un saludo Public Function SendSOAPRequest(ByVal soapRequest As String, ByVal url As String, ByVal certificatePath As String, ByVal certificatePassword As String) As String Dim soapResponse As String = Nothing Try System.Net.ServicePointManager.SecurityProtocol = DirectCast(3072, System.Net.SecurityProtocolType) System.Net.ServicePointManager.ServerCertificateValidationCallback = New System.Net.Security.RemoteCertificateValidationCallback(AddressOf validarCertificado) ' solicitud = DirectCast(System.Net.HttpWebRequest.Create(target), System.Net.HttpWebRequest) ' solicitud.Timeout = 2500 ' Crear la solicitud web Dim webRequest As HttpWebRequest = DirectCast(System.Net.HttpWebRequest.Create(url), System.Net.HttpWebRequest) webRequest.Timeout = 2500 ' webRequest.Headers.Add("SOAPAction", "AltaFactuSistemaFacturacion") webRequest.ContentType = "text/xml;charset=""utf-8""" webRequest.Accept = "text/xml" webRequest.Method = "POST" ' Configurar el certificado Dim certificate As X509Certificate2 = New X509Certificate2(certificatePath, certificatePassword) webRequest.ClientCertificates.Add(certificate) ' Escribir la solicitud SOAP en el flujo de la solicitud web Using streamWriter As StreamWriter = New StreamWriter(webRequest.GetRequestStream()) streamWriter.Write(soapRequest) streamWriter.Flush() streamWriter.Close() End Using ' Obtener la respuesta Using webResponse As WebResponse = webRequest.GetResponse() Using streamReader As StreamReader = New StreamReader(webResponse.GetResponseStream()) soapResponse = streamReader.ReadToEnd() End Using End Using Catch ex As Exception ' Manejar errores MsgBox("Error en la solicitud SOAP: " & ex.Message) Return "Error en la solicitud SOAP: " & ex.Message End Try Return soapResponse End Function ' el siguiente botón hace la petición al servicio Private Sub peticion_Click(sender As System.Object, e As System.EventArgs) Handles peticion.Click Dim client As New SOAPClient() ' Ruta al archivo de certificado y contraseña del certificado Dim certificatePath As String = "D:\documentos\certificado.pfx" Dim certificatePassword As String = "xxxxxxxxxx" ' URL del servicio web SOAP Dim url As String = "https://prewww1.aeat.es/wlpl/TIKE-CONT/ws/SistemaFacturacion/VerifactuSOAP" ' en textbox1 meto el xml que previamente he generado Dim soapRequest As String = TextBox1.Text ' Enviar la solicitud SOAP Dim soapResponse As String = client.SendSOAPRequest(soapRequest, url, certificatePath, certificatePassword) ' en respuesta.xml meto la respuesta My.Computer.FileSystem.WriteAllText("respuesta.xml", soapResponse, False) ' Manejar la respuesta SOAP End Sub No hace falta firmar el xml, tan solo la peticion con tu certificado pfx |
Cita:
Concretamente, en modo web, parece difícil seguir ofreciendo una versión non conforme de tu programa para que los usuarios continúan facturando (después de la entrada en vigor) sin las medidas anti-fraude. Pero claro, del otro lado estarán los antiguos clientes que quieren legítimamente leer sus antiguas facturas, cobrarlas etc. y no tienen que ser obligados a comprar la nueva versión si no la necesitan. Tienes que encontrar un equilibrio. Cita:
Puedes leer las página 19-22 del proyecto de orden ministerial, que la detalla. Cita:
|
Cita:
Me suena mucho el haber visto ese problema en algun foro no se si del clubdelphi.com o de otro y creo recordar que era algo de configuracion del delphi (yo no lo uso). Simplemente queria decirte esto aunque tampoco te lo puedo asegurar pero quizas te pueda servir para que busques informacion al respecto y con eso me basta para decirtelo. Perdona si no fuera asi ya que tan solo me suena el problema que describes. un saludo y suerte |
Cita:
Me suena mucho el haber visto ese problema en algun foro no se si del clubdelphi.com o de otro y creo recordar que era algo de configuracion del delphi (yo no lo uso). Simplemente queria decirte esto aunque tampoco te lo puedo asegurar pero quizas te pueda servir para que busques informacion al respecto y con eso me basta para decirtelo. Perdona si no fuera asi ya que tan solo me suena el problema que describes. un saludo y suerte |
Xml
Hola, pregunta tonta alguien podria explicarme como sacar el XMl , desde el WSDL una vez cumplimentado, es que no se que funcion usar, y con los metodos de envio peor, porque no se como proporcionar las credenciales de acceso.
Trabajo en c#. |
| La franja horaria es GMT +2. Ahora son las 01:49:30. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi