Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Ley antifraude 2021 (VERIFACTU) - Programas informáticos (https://www.clubdelphi.com/foros/showthread.php?t=95235)

bmfranky 27-09-2024 10:09:49

Cita:

Empezado por xevi (Mensaje 557495)
¿Sin el nodo <Encadenamiento> ???
¿Con el nodo encadenamiento y sin nodo <RegistroAnterior>???
Con el nodo <Encadenamiento> y <RegistroAnterior>

Código:

El XML no cumple el esquema. Falta informar campo obligatorio.: PrimerRegistro</faultstring><detail><callstack>El XML no cumple el esquema. Falta informar campo obligatorio.: PrimerRegistro
WSExcepcion


Hola, perdona si no me explique, se tiene que crear con todos los datos de la factura, pero en el lugar donde se asigna la anterior cadena, en blanco.
Código:

6.1. 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.


jlmoli_67 27-09-2024 10:11:23

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

xevi 27-09-2024 10:14:56

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>
                  <sum1:PrimerRegistro>S</sum1:PrimerRegistro>
              </sum1:Encadenamiento>

Creo tener así entendido. Lo he probado y parece que traga, ahora a ver lo del cálculo de la huella

jlmoli_67 27-09-2024 10:20:40

buenas

Correcto. Perdona entendi mal la pregunta

un saludo

newtron 27-09-2024 11:56:14

Buenas.


A mi me da un access violation al hacer la llamada. ¿Alguna idea de por qué puede ser?


Gracias y un saludo.

richidemola 27-09-2024 13:22:00

Cita:

Empezado por jlmoli_67 (Mensaje 557487)
Buenas,

Solo comentaros que el servicio funciona perfectamente. Ya consegui enviar sin errores. La direccion es la del post que viene mas arriba de sglorka ( ). La peticion soap la he firmado con mi certificado personal.


Me he tranquilizado muchisimo despues de ver mi primer "OK" ( lo estaba pasando realmente mal )



Gracias a todos. Os estoy muy agradecido. No podria haber hecho sin vuestra ayuda!!

Puedes compartir el proceso de envío? Vamos, que como lo has enviado, si con algún lenguaje de programación, curl, llamada soap, es que no consigo enviar una mierda, he usado la url que pones y nada, he firmado el xml primero con autofirma y nada de nada.

Si tienes algo de código fuente de como lo envías y lo compartes pues te estaríamos eternamente agradecidos.

Gracias.

Salma 27-09-2024 16:30:16

Cita:

Empezado por sglorka (Mensaje 557460)
es obligatorio el qr en cada una de las facturas simplificadas si el cliente final es un particular?
Sí, es obligatorio para cualquier tipo de cliente

si el cliente es particular pero pide una factura completa dicha factura se debe comunicar por verifactu?
Todas las facturas emitidas deben ser comunicadas a Verifactu, casi de inmediato

Nuestro software emite facturas simplificadas tanto a cliente contado como a cliente definitivo, pero no permite agrupar facturas, que eso estoy viendo por lo que comentáis que es un punto a favor.
No hay ningún problema, las facturas simplificadas debes comunicarlas una a una a Verifactu (en el sentido semántico de la expresión) no tienen que estar agrupadas en facturas recapitulativas o sustituvas.

te agradezco mucho tu respuesta)))) . Y si mis clientes deciden no acogerse a Verifactu?

xevi 27-09-2024 17:08:16

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.

antoine0 27-09-2024 17:13:49

Cita:

Empezado por Salma (Mensaje 557510)
Y si mis clientes deciden no acogerse a Verifactu?

Tienen dos opciones, perdón, tres opciones:
  1. Entrar en el SII, lo que supone enviar en menos de 4 días todas las facturas emitidas y recibidas; un poquito menos de estrés, no hay QR en las facturas, pero al final puede ser más trabajo para ellos por el lado facturas recibidas (depiende del negocio, claro)
  2. Utilizar un nuevo sistema de facturación, compatible con esta ley anti-fraude, pero sin comunicación online con Hacienda (que es el mecanismo Veri*factu); el sistema debe hacer lo mismo que un sistema Veri*factu, pero guarda los registros en los discos de la empresa; contra-partida, hay que firmar cada registro, y llevar un registro de eventos (firmados) que dice lo que está haciendo cada hora.
    Y está además las sospechas de los inspectores de hacienda en caso de encuesta si el negocio no es una razón clara para elegir esta opción (esto son rumores).
  3. Ser potencialmente multado de manera importante, cuando el sistema de esta reglamento será estable

xevi 27-09-2024 17:14:14

Bien, ya envio xml de facturas y recibo los mesajes correspondientes, en este caso Correcto

Código:

<env:Header/>
<env:Body Id="Body"><tikR:RespuestaRegFactuSistemaFacturacion xmlns:tik="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd" xmlns:tikR="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/RespuestaSuministro.xsd"><tikR:CSV>A-TPP2SWVRJ95URF</tikR:CSV><tikR:DatosPresentacion><tik:NIFPresentador>40314116S</tik:NIFPresentador><tik:TimestampPresentacion>27-09-2024 12:05:04</tik:TimestampPresentacion></tikR:DatosPresentacion><tikR:Cabecera><tik:ObligadoEmision><tik:NombreRazon>FERNANDEZ BOADA, MARIA ROSA</tik:NombreRazon><tik:NIF>40314116S</tik:NIF></tik:ObligadoEmision></tikR:Cabecera><tikR:TiempoEsperaEnvio>60</tikR:TiempoEsperaEnvio><tikR:EstadoEnvio>Correcto</tikR:EstadoEnvio><tikR:RespuestaLinea><tikR:IDFactura><tik:IDEmisorFactura>40314116S</tik:IDEmisorFactura><tik:NumSerieFactura>P0004</tik:NumSerieFactura><tik:FechaExpedicionFactura>27-09-2024</tik:FechaExpedicionFactura></tikR:IDFactura><tikR:EstadoRegistro>Correcto</tikR:EstadoRegistro></tikR:RespuestaLinea></tikR:RespuestaRegFactuSistemaFacturacion>
</env:Body></env:Envelope>

En algun caso, AceptadoConErrores
Código:

<env:Header/>
<env:Body Id="Body"><tikR:RespuestaRegFactuSistemaFacturacion xmlns:tik="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd" xmlns:tikR="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/RespuestaSuministro.xsd"><tikR:CSV>A-EQ3J3XVP9KEFMX</tikR:CSV><tikR:DatosPresentacion><tik:NIFPresentador>40314116S</tik:NIFPresentador><tik:TimestampPresentacion>27-09-2024 11:39:02</tik:TimestampPresentacion></tikR:DatosPresentacion><tikR:Cabecera><tik:ObligadoEmision><tik:NombreRazon>FERNANDEZ BOADA, MARIA ROSA</tik:NombreRazon><tik:NIF>40314116S</tik:NIF></tik:ObligadoEmision></tikR:Cabecera><tikR:TiempoEsperaEnvio>60</tikR:TiempoEsperaEnvio><tikR:EstadoEnvio>ParcialmenteCorrecto</tikR:EstadoEnvio><tikR:RespuestaLinea><tikR:IDFactura><tik:IDEmisorFactura>40314116S</tik:IDEmisorFactura><tik:NumSerieFactura>P0002</tik:NumSerieFactura><tik:FechaExpedicionFactura>27-09-2024</tik:FechaExpedicionFactura></tikR:IDFactura><tikR:EstadoRegistro>AceptadoConErrores</tikR:EstadoRegistro><tikR:CodigoErrorRegistro>2005</tikR:CodigoErrorRegistro><tikR:DescripcionErrorRegistro>El campo ImporteTotal tiene un valor incorrecto para el valor de los campos BaseImponibleOimporteNoSujeto, CuotaRepercutida y CuotaRecargoEquivalencia suministrados</tikR:DescripcionErrorRegistro></tikR:RespuestaLinea></tikR:RespuestaRegFactuSistemaFacturacion>
</env:Body></env:Envelope>

Y otros de error que habrá que ir estudiando y ver como poderlos subsanar.
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.

Salma 27-09-2024 17:23:06

Cita:

Empezado por xevi (Mensaje 557512)
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.



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.

rci 27-09-2024 17:25:19

Cita:

Empezado por xevi (Mensaje 557514)
Bien, ya envio xml de facturas y recibo los mesajes correspondientes, en este caso Correcto

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!!!

Mira lo que dicen en la publicación de las noticias:

Cita:

Ante cualquier duda/sugerencia y/o falta de corrección sobre la nueva información publicada, se recuerda el buzón de consultas técnicas de VERI*FACTU: [email protected]

newtron 27-09-2024 17:28:24

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.

sglorka 27-09-2024 18:00:44

Cita:

Empezado por Salma (Mensaje 557510)
te agradezco mucho tu respuesta)))) . Y si mis clientes deciden no acogerse a Verifactu?

Si te lees la Orden Ministerial, en el apartado donde se especifica qué tipo de obligado tributario está sujeto a cumplir con VeriFactu o No-Verifactu (que es peor que VeriFactu) te darás cuenta de que sí o sí tiene que estar acogido al SII o a VeriFactu (o a su versión No Verifactu )

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

xamminf 27-09-2024 19:29:14

Cita:

Empezado por Salma (Mensaje 557510)
te agradezco mucho tu respuesta)))) . Y si mis clientes deciden no acogerse a Verifactu?



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)

jlmoli_67 27-09-2024 19:29:32

Cita:

Empezado por richidemola (Mensaje 557504)
Puedes compartir el proceso de envío? Vamos, que como lo has enviado, si con algún lenguaje de programación, curl, llamada soap, es que no consigo enviar una mierda, he usado la url que pones y nada, he firmado el xml primero con autofirma y nada de nada.

Si tienes algo de código fuente de como lo envías y lo compartes pues te estaríamos eternamente agradecidos.

Gracias.

Buenas, en vb net lo hago asi:

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

antoine0 27-09-2024 19:36:23

Cita:

Empezado por Salma (Mensaje 557516)
por que de no acogerse que responsabilidad tiene el desarrollador?

La ley 11/2021 añade «para luchar contra el fraude» un nuevo artículo 29.2 j) a la Ley general tributaria que insta a usar softwares que cumplen con este reglamento. Se aplica este nuevo artículo a los usuarios pero también a los productores de software. Dicho de otra forma, las empresas deben usar exclusivamente un software conforme, pero también los informáticos deben suministrar exclusivamente softwares conformes. El desarrollador tiene responsabilidades.

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:

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.
Solo se necesita declaración responsable.
Puedes leer las página 19-22 del proyecto de orden ministerial, que la detalla.

Cita:

En mi caso, es en al nube, el cliente no puede tocar nada de nada ni borrar nada.
Mmmm... no creo que será suficiente. :cool:

jlmoli_67 27-09-2024 19:41:35

Cita:

Empezado por newtron (Mensaje 557518)
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.

Hola, newtron

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

jlmoli_67 27-09-2024 19:43:23

Cita:

Empezado por newtron (Mensaje 557500)
Buenas.


A mi me da un access violation al hacer la llamada. ¿Alguna idea de por qué puede ser?


Gracias y un saludo.

Hola, newtron

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

bmfranky 27-09-2024 20:13:45

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#.

antoine0 27-09-2024 20:22:54

1 Archivos Adjunto(s)
Siento por estar fuera del asunto. Se puede mover en distinto hilo si hay mejor ubicación (gracias, moderadores).

Cita:

Empezado por adolfogonza (Mensaje 557491)
Soy programador desde hace mas de 45 años, vamos que soy de la vieja escuela, tengo un programa de facturacion funcionando desde hace mas de 24 años, hecho en visual basic 6, y veo que tengo que adaptarme a las nuevas normativas o morir en el intento.
Me gustaria si alguno de vosotros, me podria dar el proceso para enviar los archivos xml a la web de pruebas.

Tengo una clase VBA7 que he usado desde un par de años para proyectos SII, que gestiona la comunicación con SOAP. No la he probado con Veri*factu, pero no creo que siga distinta al nivel del SOAP.
No tengo experiencia con VB6 (usaba TP cuando era VB3 y después prefiero Delphi a VB4+, con perdón) pero tengo entendido que es muy compatible con VBA, una vez habrás quitado las comandas del pre-procesador (#const/if etc.) :rolleyes:

El uso básico es algo como:
Código:

Dim svc As WebServiceSOAP
'...
    Set svc = New WebServiceSOAP
'...
  On Error GoTo Abrir_Error
    svc.Certificado = nif ' una cadena con p.e. el NIF del usuario que comunica, para seleccionar el certificado; cualquier parte del asunto del certificado vale
    svc.Abrir urlDelWSDL
'...
  On Error GoTo Comunica_Error
    svc.Envia xmlTransacción ' el XML que Hacienda espera, completo con el sobre SOAP
    Debug.Assert svc.RespuestaDisponible
'    Debug.Print svc.CabecerasRespuesta
'    Debug.Print svc.TextoRespuesta
  gestiona( svc.respuesta ) ' gestiona el contenido devuelto por Hacienda
'...
    Set svc = Nothing

Creo que está suficientemente documentada, pero por supuesto si hay interrogaciones por favor preguntar. Usará el certificado del usuario. Si alguien sabe poner en forma el código VB para resaltar los keywords, por favor actuar.

jalvar28 28-09-2024 11:15:23

No se validan los encadenamientos correctamente
 
Buenos días.
Estoy enviado facturas y todo ok.
El tema es que veo que se traga todos los encadenamientos, le ponga lo que le ponga me dice que factura correcta ¿Alguien ha notado esto? ¿No lo están validando aún?

encadenamientoFacturaAnterior.IDEmisorFactura = cifEmisor;
encadenamientoFacturaAnterior.NumSerieFactura = NumSerieFacturaAnterior ;//numero factura anterior
encadenamientoFacturaAnterior.FechaExpedicionFactura = FechaFacturaAnterior;//fecha factura anterior
encadenamientoFacturaAnterior.Huella = HuellaFacturaAnterior;//huella registro anterior

jlmoli_67 28-09-2024 11:40:59

Buenas,

No te dice aceptada con errores y te hace referencia al hash? En las pruebas que hice ayer asi me lo reflejaba.

un saludo

jalvar28 28-09-2024 11:50:11

Te lo explico con ejemplo:

- Registro la factura 0001/2024 correctamente (utilizando PrimerRegistroCadenaType).

- Luego registro la factura 0002/2024 e indico que la anterior es la 0001/2024 (completando los campos correspondientes en EncadenamientoFacturaAnteriorType), y el sistema me lo valida correctamente.

- Posteriormente, intento registrar la factura 0003/2024 e indico, nuevamente, que la factura anterior es la 0001/2024 (utilizando los mismos datos en EncadenamientoFacturaAnteriorType), pero el sistema también lo valida como correcto, cuando en realidad debería haber detectado que la factura previa debió ser la 0002/2024.

No estoy seguro si estoy cometiendo algún error o si es el sistema el que no está validando correctamente la secuencia de encadenamiento de facturas.

- Además, si en el campo EncadenamientoFacturaAnteriorType incluyo una factura que nunca ha sido añadida al sistema, junto con una huella anterior generada aleatoriamente por una IA, también me indica que la factura es correcta. Creo que aún no se está validando correctamente. Si pueden probarlo, agradecería que me lo confirmaran.

var encadenamientoFacturaAnterior = new EncadenamientoFacturaAnteriorType();
encadenamientoFacturaAnterior.IDEmisorFactura = cifEmisor;
encadenamientoFacturaAnterior.NumSerieFactura = "00001/Pepito/2024";//numero factura nunca añadida anteriormente
encadenamientoFacturaAnterior.FechaExpedicionFactura = "02-02-2024";//fecha factura anterior
encadenamientoFacturaAnterior.Huella = "7F3D68A9B8C39A1D29C7B4F54E6FA318CBD26317F02C89DF1A6477E3952D8F3E";//huella generada por ia

xevi 28-09-2024 11:58:27

Lo que yo si he notado es que puedes enviar TANTOS registros como quieras como PrimerRegistro

<sum1:Encadenamiento>
<sum1:PrimerRegistro>S</sum1:PrimerRegistro>
</sum1:Encadenamiento>


Eso tampoco es normal, ya que SOLAMENTE debería de existir un registo PrimerRegistro
A partir de ahí, si, he visto que si no le pongo correctamente la Huella y la correspondiente HuellaAnterior, lo Acepta con errores
Como si envias un registro que no esté calculado correctamente el ImporteTotal con las sumas de las bases... Lo Acepta con errores

Luego a partir de ahí es donde entra el hacer registros de Subsanación de errores... otro tema!!!

jlmoli_67 28-09-2024 12:03:35

Pienso que si creas dos facturas, la 1 y la 3 , encadenadas correctamente y las envias secuencialmente porque no existe la nº 2 realmente el proceso es correcto pero llevas razon, deberia , pienso yo de avisar de que la 2 no existe, no es asi????? Hay que probarlo porque en ese caso ya te digo yo quien va a perder el tiempo en anulaciones.

En las pruebas que hice ayer, si el hash esta mal porque lo refiero a otra factura entonces si lo detecta pero realmente este caso no lo he probado.

espinete 28-09-2024 13:57:50

Diferencias con TicketBAI
 
Estoy empezando a darle caña a VeriFactu y veo que hay algunas diferencias con respecto a TicketBAI que me gustaría que me confirmaran, por si me estoy equivocando con el procedimiento...

Para TicketBAI, el procedimiento es el siguiente:

1. Generar el XML (por ejemplo, factura.xml)
2. Firmar el XML (por ejemplo, factura-firmada.xml)
3. Realizar el envío del archivo, firmando también el envío (yo uso el evento NetHTTPClient1NeedClientCertificate del componente TNetHTTPClient)

Pero según entiendo, con VeriFactu (al menos por ahora) no hay que firmar el XML, sino únicamente *el envío*.

Con VeriFactu creo entender que el procedimiento es este:
1. Generar la(s) Factura(s) (no veo forma de obtener el XML de UNA factura concreta)
2. Generar el XML del envío, que contiene la(s) factura(s)
3. Realizar el envío, firmando el envío con el certificado

¿Es correcto?

No veo la forma de obtener el XML de la factura antes de hacer el envío. Solo al enviarla, con el evento HTTPRIO1BeforeExecutedel componente THTTPRIO
No sé si es posible usar el componente TNetHTTPClient, aunque esto lo de menos ya que me da igual que funcione uno u otro.
Al no tener que firmar el XML de la factura, entiendo que no hace falta lo de las políticas de firma, SigPolicyID, SigPolicyHash, r_SigPolicyURI, etc. que sí eran necesarios en TicketBAI

¿Podría alguien confirmarme esto antes de seguir empeñado en hacerlo como en TicketBAI?

xamminf 29-09-2024 12:58:46

Cita:

Empezado por espinete (Mensaje 557539)
Estoy empezando a darle caña a VeriFactu y veo que hay algunas diferencias con respecto a TicketBAI que me gustaría que me confirmaran, por si me estoy equivocando con el procedimiento...

Para TicketBAI, el procedimiento es el siguiente:

1. Generar el XML (por ejemplo, factura.xml)
2. Firmar el XML (por ejemplo, factura-firmada.xml)
3. Realizar el envío del archivo, firmando también el envío (yo uso el evento NetHTTPClient1NeedClientCertificate del componente TNetHTTPClient)

Pero según entiendo, con VeriFactu (al menos por ahora) no hay que firmar el XML, sino únicamente *el envío*.

Con VeriFactu creo entender que el procedimiento es este:
1. Generar la(s) Factura(s) (no veo forma de obtener el XML de UNA factura concreta)
2. Generar el XML del envío, que contiene la(s) factura(s)
3. Realizar el envío, firmando el envío con el certificado

¿Es correcto?

No veo la forma de obtener el XML de la factura antes de hacer el envío. Solo al enviarla, con el evento HTTPRIO1BeforeExecutedel componente THTTPRIO
No sé si es posible usar el componente TNetHTTPClient, aunque esto lo de menos ya que me da igual que funcione uno u otro.
Al no tener que firmar el XML de la factura, entiendo que no hace falta lo de las políticas de firma, SigPolicyID, SigPolicyHash, r_SigPolicyURI, etc. que sí eran necesarios en TicketBAI

¿Podría alguien confirmarme esto antes de seguir empeñado en hacerlo como en TicketBAI?


espinete,

No me atrevo a responder a su pregunta pero si a plantear alguna diferencia mas:

Con TicketBAI no hay "flujo", con lo cual, conforme se hace se envia. Con VF si hay flujo y puede ser necesario demorar el envio, porque claro, no se va a demorar la generacion-impresion de la factura
Ademas en TB el xml hay que hacerlo en el momento de la impresion porque en el QR va un trozo de la firma. En VF me pareciera que no porque 1º no hay que firmarla el xml y segundo en el QR no se incluye un trozo de la firma. Esto a mi modo de ver es determinante porque "determina" la manera de hacer y si cambiara también habría que cambiar la forma

thinkows 30-09-2024 07:41:09

Primer Envío
 
Buenos días, gracias a todos por vuestras aportaciones, hoy he enviado a mano el primer XML mediante ARC (Advanced Rest Client) y la primera en la frente tanto el NIF del emisor de la factura como el del certificado mediante el cual me iidentifico son los mismos, el problema es que me devuelve un error cuyo codigo [4118] no se corresponde con la descripción del mismo :

<?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><env:Body><env:Fault><faultcode>env:Client</faultcode><faultstring>Codigo[4118].Error La direccion no se corresponde con el fichero de entrada.</faultstring><detail><callstack>Error La direccion no se corresponde con el fichero de entrada.

La verdad voy muy despistado... parece que algo no está correcto en el encabezado, os adjunto el envío por si alguno le puede hechar un vistazo...


POST /wlpl/TIKE-CONT/ws/SistemaFacturacion/VerifactuSOAP HTTP/1.1
Host: prewww1.aeat.es:443
Content-Type: text/xml

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:sfLR="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd" xmlns:sf="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
<soapenv:Header/>
<soapenv:Body>
<sfLR:AltaFactuSistemaFacturacion>
<sf:Cabecera>
<sf:IDVersion>1.0</sf:IDVersion>
<sf:ObligadoEmision>
<sf:NombreRazon>EMPRESA,S.L.</sf:NombreRazon>
<sf:NIF>Bnnnnnnnn</sf:NIF>
</sf:ObligadoEmision>
</sf:Cabecera>
<sfLR:RegistroAltaFacturas>
<sfLR:RegistroFacturacion>
<sf:IDFactura>
<sf:IDEmisorFactura>
<sf:NIF>Bnnnnnnnn</sf:NIF>
</sf:IDEmisorFactura>
<sf:NumSerieFacturaEmisor>T1966968</sf:NumSerieFacturaEmisor>
<sf:FechaExpedicionFacturaEmisor>27-09-2024</sf:FechaExpedicionFacturaEmisor>
</sf:IDFactura>
<sf:NombreRazonEmisor>EMPRESA,S.L.</sf:NombreRazonEmisor>
<sf:TipoRegistroSIF>S0</sf:TipoRegistroSIF>
<sf:TipoFactura>F1</sf:TipoFactura>
<sf:TipoRectificativa>S</sf:TipoRectificativa>
<sf:DescripcionOperacion>Venta Artículos Jardineria</sf:DescripcionOperacion>
<sf:FacturaSimplificadaArticulos7.2_7.3>S</sf:FacturaSimplificadaArticulos7.2_7.3>
<sf:FacturaSinIdentifDestinatarioArticulo6.1.d>S</sf:FacturaSinIdentifDestinatarioArticulo6.1.d>
<sf:Cupon>N</sf:Cupon>
<sf:Desglose>
<sf:DetalleDesglose>
<sf:ClaveRegimen>01</sf:ClaveRegimen>
<sf:CalificacionOperacion>S1</sf:CalificacionOperacion>
<sf:TipoImpositivo>21.00</sf:TipoImpositivo>
<sf:BaseImponibleOimporteNoSujeto>21.82</sf:BaseImponibleOimporteNoSujeto>
<sf:CuotaRepercutida>4.58</sf:CuotaRepercutida>
</sf:DetalleDesglose>
</sf:Desglose>
<sf:CuotaTotal>4.58</sf:CuotaTotal>
<sf:ImporteTotal>26.40</sf:ImporteTotal>
<sf:PrimerRegistro>
<sf:IDEmisorFacturaRegistroAnterior>S</sf:IDEmisorFacturaRegistroAnterior>
</sf:PrimerRegistro>
<sf:EncadenamientoRegistroAnterior>
<sf:IDEmisorFacturaRegistroAnterior>
<sf:NIF>B58292129</sf:NIF>
</sf:IDEmisorFacturaRegistroAnterior>
<sf:NumSerieFacturaRegistroAnterior>T1966967</sf:NumSerieFacturaRegistroAnterior>
<sf:FechaExpedicionFacturaRegistroAnterior>27-09-2024</sf:FechaExpedicionFacturaRegistroAnterior>
<sf:HuellaRegistroAnterior/>
</sf:EncadenamientoRegistroAnterior>
<sf:SistemaInformatico>
<sf:NombreRazon>EMPRESA INFORMATICA,SL</sf:NombreRazon>
<sf:NIF>Bxxxxxxxx</sf:NIF>
<sf:NombreSistemaInformatico>ELSOFTWARE</sf:NombreSistemaInformatico>
<sf:IdSistemaInformatico>A.01</sf:IdSistemaInformatico>
<sf:Version>1.0</sf:Version>
<sf:NumeroInstalacion>100</sf:NumeroInstalacion>
<sf:TipoUsoPosibleSoloVerifactu>S</sf:TipoUsoPosibleSoloVerifactu>
<sf:TipoUsoPosibleMultiOT>S</sf:TipoUsoPosibleMultiOT>
<sf:IndicadorMiltipleOT>S</sf:IndicadorMiltipleOT>
</sf:SistemaInformatico>
<sf:FechaHoraHusoGenRegistro>2024-09-27T13:21:20+02:00</sf:FechaHoraHusoGenRegistro>
</sfLR:RegistroFacturacion>
<sf:TipoHuella>1</sf:TipoHuella>
<sf:Huella>C32E027863DBD555C84FD80E5A52D84EE30693DE3F28B599DDCB4461DD320811</sf:Huella>
</sfLR:RegistroAltaFacturas>
</sfLR:AltaFactuSistemaFacturacion>
</soapenv:Body>
</soapenv:Envelope>


Gracias de antemano, verremos como evoluciona el tema.
Un Saludo.

Noe277 30-09-2024 08:36:39

Cita:

Empezado por thinkows (Mensaje 557564)
Buenos días, gracias a todos por vuestras aportaciones, hoy he enviado a mano el primer XML mediante ARC (Advanced Rest Client) y la primera en la frente tanto el NIF del emisor de la factura como el del certificado mediante el cual me iidentifico son los mismos, el problema es que me devuelve un error cuyo codigo [4118] no se corresponde con la descripción del mismo :

<?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><env:Body><env:Fault><faultcode>env:Client</faultcode><faultstring>Codigo[4118].Error La direccion no se corresponde con el fichero de entrada.</faultstring><detail><callstack>Error La direccion no se corresponde con el fichero de entrada.

La verdad voy muy despistado... parece que algo no está correcto en el encabezado, os adjunto el envío por si alguno le puede hechar un vistazo...


POST /wlpl/TIKE-CONT/ws/SistemaFacturacion/VerifactuSOAP HTTP/1.1
Host: prewww1.aeat.es:443
Content-Type: text/xml

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:sfLR="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd" xmlns:sf="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
<soapenv:Header/>
<soapenv:Body>
<sfLR:AltaFactuSistemaFacturacion>
<sf:Cabecera>
<sf:IDVersion>1.0</sf:IDVersion>
<sf:ObligadoEmision>
<sf:NombreRazon>EMPRESA,S.L.</sf:NombreRazon>
<sf:NIF>Bnnnnnnnn</sf:NIF>
</sf:ObligadoEmision>
</sf:Cabecera>
<sfLR:RegistroAltaFacturas>
<sfLR:RegistroFacturacion>
<sf:IDFactura>
<sf:IDEmisorFactura>
<sf:NIF>Bnnnnnnnn</sf:NIF>
</sf:IDEmisorFactura>
<sf:NumSerieFacturaEmisor>T1966968</sf:NumSerieFacturaEmisor>
<sf:FechaExpedicionFacturaEmisor>27-09-2024</sf:FechaExpedicionFacturaEmisor>
</sf:IDFactura>
<sf:NombreRazonEmisor>EMPRESA,S.L.</sf:NombreRazonEmisor>
<sf:TipoRegistroSIF>S0</sf:TipoRegistroSIF>
<sf:TipoFactura>F1</sf:TipoFactura>
<sf:TipoRectificativa>S</sf:TipoRectificativa>
<sf:DescripcionOperacion>Venta Artículos Jardineria</sf:DescripcionOperacion>
<sf:FacturaSimplificadaArticulos7.2_7.3>S</sf:FacturaSimplificadaArticulos7.2_7.3>
<sf:FacturaSinIdentifDestinatarioArticulo6.1.d>S</sf:FacturaSinIdentifDestinatarioArticulo6.1.d>
<sf:Cupon>N</sf:Cupon>
<sf:Desglose>
<sf:DetalleDesglose>
<sf:ClaveRegimen>01</sf:ClaveRegimen>
<sf:CalificacionOperacion>S1</sf:CalificacionOperacion>
<sf:TipoImpositivo>21.00</sf:TipoImpositivo>
<sf:BaseImponibleOimporteNoSujeto>21.82</sf:BaseImponibleOimporteNoSujeto>
<sf:CuotaRepercutida>4.58</sf:CuotaRepercutida>
</sf:DetalleDesglose>
</sf:Desglose>
<sf:CuotaTotal>4.58</sf:CuotaTotal>
<sf:ImporteTotal>26.40</sf:ImporteTotal>
<sf:PrimerRegistro>
<sf:IDEmisorFacturaRegistroAnterior>S</sf:IDEmisorFacturaRegistroAnterior>
</sf:PrimerRegistro>
<sf:EncadenamientoRegistroAnterior>
<sf:IDEmisorFacturaRegistroAnterior>
<sf:NIF>B58292129</sf:NIF>
</sf:IDEmisorFacturaRegistroAnterior>
<sf:NumSerieFacturaRegistroAnterior>T1966967</sf:NumSerieFacturaRegistroAnterior>
<sf:FechaExpedicionFacturaRegistroAnterior>27-09-2024</sf:FechaExpedicionFacturaRegistroAnterior>
<sf:HuellaRegistroAnterior/>
</sf:EncadenamientoRegistroAnterior>
<sf:SistemaInformatico>
<sf:NombreRazon>EMPRESA INFORMATICA,SL</sf:NombreRazon>
<sf:NIF>Bxxxxxxxx</sf:NIF>
<sf:NombreSistemaInformatico>ELSOFTWARE</sf:NombreSistemaInformatico>
<sf:IdSistemaInformatico>A.01</sf:IdSistemaInformatico>
<sf:Version>1.0</sf:Version>
<sf:NumeroInstalacion>100</sf:NumeroInstalacion>
<sf:TipoUsoPosibleSoloVerifactu>S</sf:TipoUsoPosibleSoloVerifactu>
<sf:TipoUsoPosibleMultiOT>S</sf:TipoUsoPosibleMultiOT>
<sf:IndicadorMiltipleOT>S</sf:IndicadorMiltipleOT>
</sf:SistemaInformatico>
<sf:FechaHoraHusoGenRegistro>2024-09-27T13:21:20+02:00</sf:FechaHoraHusoGenRegistro>
</sfLR:RegistroFacturacion>
<sf:TipoHuella>1</sf:TipoHuella>
<sf:Huella>C32E027863DBD555C84FD80E5A52D84EE30693DE3F28B599DDCB4461DD320811</sf:Huella>
</sfLR:RegistroAltaFacturas>
</sfLR:AltaFactuSistemaFacturacion>
</soapenv:Body>
</soapenv:Envelope>


Gracias de antemano, verremos como evoluciona el tema.
Un Saludo.


La razón social tiene que ser la de la empresa y que sea correcta. En el SII pasaba lo mismo

thinkows 30-09-2024 09:13:00

Razon Social
 
Cita:

Empezado por Noe277 (Mensaje 557565)
La razón social tiene que ser la de la empresa y que sea correcta. En el SII pasaba lo mismo

Gracias Noe por responder.

La razón social es la de mi empresa, he sustituido el nombre por EMPRESA,SL como ejemplo para vosotros, lo que no me cuadra es el código de error que se corresponde con nif incorrecto y el descriptivo del error es otro.


Un saludo.

newtron 30-09-2024 09:30:58

Cita:

Empezado por jlmoli_67 (Mensaje 557524)
Hola, newtron

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


Gracias compañero. Ya irán saliendo las cosas.

newtron 30-09-2024 09:36:53

Hola a tod@s.


Como he visto que alguno de vosotros pregunta cómo guardar el XML de la factura os pongo el código que he preparado (con ayuda de este mismo hilo). No tengo confirmado es si es correcto y todavía tengo dudas sobre cómo firmarlo pero esto crea el fichero.


Código Delphi [-]
  // Si es NO VERIFACTU Guardo y firmo el fichero XML
  if (RadioButton3.Checked) or (RadioButton5.Checked) then begin
    MyXML := TXMLDocument.Create(Application);
    parentXML := TXMLDocument.Create( Application );

    MyXML.Active := True;
    MyXML.Version:='1.0';
    MyXML.Encoding:='utf-8';

    parentXML.Active := True;
    parentXML.Version:='1.0';
    parentXML.Encoding:='utf-8';


    ARootNode := MyXML.CreateNode('RegistroAlta');
    AParentode := parentXML.CreateNode('RegistroAlta');

    MOPToSoapDomConvert := TOPtoSOAPDomConvert.Create(Application);

    MOPToSoapDomConvert.Encoding := 'utf-8';

    MOPToSoapDomConvert.Options :=
    [
    TSOAPConvertOption.soXXXXHdr,
    TSOAPConvertOption.soDontSendEmptyNodes,
    TSOAPConvertOption.soUTF8InHeader,
    TSOAPConvertOption.soSendUntyped,
    TSOAPConvertOption.soSendMultiRefObj,
    //TSOAPConvertOption.soSendMultiRefArray,
    TSOAPConvertOption.soTryAllSchema,
    TSOAPConvertOption.soRootRefNodesToBody,
    TSOAPConvertOption.soCacheMimeResponse,
    TSOAPConvertOption.soUTF8EncodeXML,
    TSOAPConvertOption.soSOAP12];
    newNode := Factura.RegistroAlta.ObjectToSOAP( ARootNode, AParentode, MOPToSoapDomConvert, 'RegistroAlta',
      Swdsl,'T',[ocoDontPrefixNode,ocoDontPutTypeAttr], RefId  );
    MyXML.DocumentElement := NewNode;
    // Crear un stream de cadena para almacenar el contenido XML
    StringStream := TStringStream.Create;
    try
      sAux:=CarpetaXML+FormatDateTime('YYYY',XSDateTime.AsDateTime)+'\';
      CreateDir(sAux);
      sAux:=sAux+FormatDateTime('MM',XSDateTime.AsDateTime)+'\';
      CreateDir(sAux);
      // Guardar el contenido XML en el stream
      MyXML.SaveToStream(StringStream);
      // Guardar el contenido del stream en un archivo
      sAux:=sAux+Factura.RegistroAlta.IDFactura.NumSerieFactura+'.XML';
      StringStream.SaveToFile(sAux);
    finally
      StringStream.Free;
      XSDateTime.Free;
    end;
  end;

yeyo 30-09-2024 09:39:32

buenos dias. ¿hay que darse de alta en la web de la aeat para utilizar el entorno de pruebas? ¿como/dónde? es que no encuentro nada al respecto (web de la aeat) y lo que me encuentro siempre es un lío. Gracias!!

pablog2k 30-09-2024 09:42:13

Cita:

Empezado por yeyo (Mensaje 557573)
buenos dias. ¿hay que darse de alta en la web de la aeat para utilizar el entorno de pruebas? ¿como/dónde? es que no encuentro nada al respecto (web de la aeat) y lo que me encuentro siempre es un lío. Gracias!!

según han comentado aqui, tú subes el xml con un certificado válido a la plataforma de pruebas y ya está....

yeyo 30-09-2024 09:43:00

muchas gracias pablog2k!!!

Neftali [Germán.Estévez] 30-09-2024 09:49:07

Cita:

Empezado por newtron (Mensaje 557572)
Hola a tod@s.
Como he visto que alguno de vosotros pregunta cómo guardar el XML de la factura os pongo el código que he preparado (con ayuda de este mismo hilo). No tengo confirmado es si es correcto y todavía tengo dudas sobre cómo firmarlo pero esto crea el fichero.


Gracias.
Actualizado mensaje#2, dónde está la recopilación de códigos útiles.

sglorka 30-09-2024 09:58:19

Cita:

Empezado por thinkows (Mensaje 557564)
Buenos días, gracias a todos por vuestras aportaciones, hoy he enviado a mano el primer XML mediante ARC (Advanced Rest Client) y la primera en la frente tanto el NIF del emisor de la factura como el del certificado mediante el cual me iidentifico son los mismos, el problema es que me devuelve un error cuyo codigo [4118] no se corresponde con la descripción del mismo :

<?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><env:Body><env:Fault><faultcode>env:Client</faultcode><faultstring>Codigo[4118].Error La direccion no se corresponde con el fichero de entrada.</faultstring><detail><callstack>Error La direccion no se corresponde con el fichero de entrada.

La verdad voy muy despistado... parece que algo no está correcto en el encabezado, os adjunto el envío por si alguno le puede hechar un vistazo...


POST /wlpl/TIKE-CONT/ws/SistemaFacturacion/VerifactuSOAP HTTP/1.1
Host: prewww1.aeat.es:443
Content-Type: text/xml

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:sfLR="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd" xmlns:sf="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
<soapenv:Header/>
<soapenv:Body>
<sfLR:AltaFactuSistemaFacturacion>
<sf:Cabecera>
<sf:IDVersion>1.0</sf:IDVersion>
<sf:ObligadoEmision>
<sf:NombreRazon>EMPRESA,S.L.</sf:NombreRazon>
<sf:NIF>Bnnnnnnnn</sf:NIF>
</sf:ObligadoEmision>
</sf:Cabecera>
<sfLR:RegistroAltaFacturas>
<sfLR:RegistroFacturacion>
<sf:IDFactura>
<sf:IDEmisorFactura>
<sf:NIF>Bnnnnnnnn</sf:NIF>
</sf:IDEmisorFactura>
<sf:NumSerieFacturaEmisor>T1966968</sf:NumSerieFacturaEmisor>
<sf:FechaExpedicionFacturaEmisor>27-09-2024</sf:FechaExpedicionFacturaEmisor>
</sf:IDFactura>
<sf:NombreRazonEmisor>EMPRESA,S.L.</sf:NombreRazonEmisor>
<sf:TipoRegistroSIF>S0</sf:TipoRegistroSIF>
<sf:TipoFactura>F1</sf:TipoFactura>
<sf:TipoRectificativa>S</sf:TipoRectificativa>
<sf:DescripcionOperacion>Venta Artículos Jardineria</sf:DescripcionOperacion>
<sf:FacturaSimplificadaArticulos7.2_7.3>S</sf:FacturaSimplificadaArticulos7.2_7.3>
<sf:FacturaSinIdentifDestinatarioArticulo6.1.d>S</sf:FacturaSinIdentifDestinatarioArticulo6.1.d>
<sf:Cupon>N</sf:Cupon>
<sf:Desglose>
<sf:DetalleDesglose>
<sf:ClaveRegimen>01</sf:ClaveRegimen>
<sf:CalificacionOperacion>S1</sf:CalificacionOperacion>
<sf:TipoImpositivo>21.00</sf:TipoImpositivo>
<sf:BaseImponibleOimporteNoSujeto>21.82</sf:BaseImponibleOimporteNoSujeto>
<sf:CuotaRepercutida>4.58</sf:CuotaRepercutida>
</sf:DetalleDesglose>
</sf:Desglose>
<sf:CuotaTotal>4.58</sf:CuotaTotal>
<sf:ImporteTotal>26.40</sf:ImporteTotal>
<sf:PrimerRegistro>
<sf:IDEmisorFacturaRegistroAnterior>S</sf:IDEmisorFacturaRegistroAnterior>
</sf:PrimerRegistro>
<sf:EncadenamientoRegistroAnterior>
<sf:IDEmisorFacturaRegistroAnterior>
<sf:NIF>B58292129</sf:NIF>
</sf:IDEmisorFacturaRegistroAnterior>
<sf:NumSerieFacturaRegistroAnterior>T1966967</sf:NumSerieFacturaRegistroAnterior>
<sf:FechaExpedicionFacturaRegistroAnterior>27-09-2024</sf:FechaExpedicionFacturaRegistroAnterior>
<sf:HuellaRegistroAnterior/>
</sf:EncadenamientoRegistroAnterior>
<sf:SistemaInformatico>
<sf:NombreRazon>EMPRESA INFORMATICA,SL</sf:NombreRazon>
<sf:NIF>Bxxxxxxxx</sf:NIF>
<sf:NombreSistemaInformatico>ELSOFTWARE</sf:NombreSistemaInformatico>
<sf:IdSistemaInformatico>A.01</sf:IdSistemaInformatico>
<sf:Version>1.0</sf:Version>
<sf:NumeroInstalacion>100</sf:NumeroInstalacion>
<sf:TipoUsoPosibleSoloVerifactu>S</sf:TipoUsoPosibleSoloVerifactu>
<sf:TipoUsoPosibleMultiOT>S</sf:TipoUsoPosibleMultiOT>
<sf:IndicadorMiltipleOT>S</sf:IndicadorMiltipleOT>
</sf:SistemaInformatico>
<sf:FechaHoraHusoGenRegistro>2024-09-27T13:21:20+02:00</sf:FechaHoraHusoGenRegistro>
</sfLR:RegistroFacturacion>
<sf:TipoHuella>1</sf:TipoHuella>
<sf:Huella>C32E027863DBD555C84FD80E5A52D84EE30693DE3F28B599DDCB4461DD320811</sf:Huella>
</sfLR:RegistroAltaFacturas>
</sfLR:AltaFactuSistemaFacturacion>
</soapenv:Body>
</soapenv:Envelope>


Gracias de antemano, verremos como evoluciona el tema.
Un Saludo.

Tu certificado no está registrado como activo parar acceder a la Aeat
Mira las validaciones de error en este documento
En concreto "4118 El NIF del titular no está autorizado a enviar información al sistema"

https://sede.agenciatributaria.gob.e...esSII_v1.1.pdf

thinkows 30-09-2024 10:05:04

Error mio
 
Cita:

Empezado por sglorka (Mensaje 557581)
Tu certificado no está registrado como activo parar acceder a la Aeat
Mira las validaciones de error en este documento
En concreto "4118 El NIF del titular no está autorizado a enviar información al sistema"

https://sede.agenciatributaria.gob.e...esSII_v1.1.pdf

Buenos días, error mío he subido una versión del xml antigua, perdonad si os hice perder tiempo :( lo siento mucho.

Un saludos y muchas gracias a todos.

seccion_31 30-09-2024 11:27:35

Buenos dias

Estoy actualizando el programa que envia facturas (simples) a verifactu, que deje posteado hace tiempo en este foro desde una hoja de calculo, ahora para realizar ya el envio de pruebas.

Modificado, y probado me devuelve este error:

Error al realizar el envío; (ERemotableException)-<env:Fault xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><faultcode>env:Server</faultcode><faultstring>Codigo[1207].Se esperaba nodo {http://schemas.xmlsoap.org/soap/envelope/}Envelope y ha venido {http://www.w3.org/2003/05/soap-envelope}Envelope</faultstring></env:Fault>

efectivamente, la cabecera del XML que envia es: http://www.w3.org/2003/05/soap-envelope pero no se como cambiarlo al que me esta pidiendo: http://schemas.xmlsoap.org/soap/envelope

(he tratado de alterar el XML antes del envio httprio beofre...., pero creo que habra mejor forma y tampoco lo he conseguido).


¿puede alguien ayudarme? y asi dejamos un ejemplo funcional de envio de alta y baja de facturas al entorno de pruebas.

Saludos !


La franja horaria es GMT +2. Ahora son las 22:09:18.

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