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)

seccion_31 01-10-2024 08:28:19

buenos dias pablog2k !

Cita:

RemClassRegistry.RegisterSerializeOptions(RegFactuSistemaFacturacion, [xoLiteralParam]);
gracias, incluso con ese cambio, sigue generando dos lineas.

¿Puedes postear x fa, tu importacion del wsdl ? a ver si con eso acertamos.

Saludos !

richidemola 01-10-2024 09:15:39

Os paso un ejemplo de XML que funciona, tendréis que cambiar algunas cosas, a saber:

NOMBRE_EMISOR_FACTURA: Es el nombre de la persona o empresa que emite la factura, debe ser el mismo que figura en el certificado electrónico con el que se firma el envío.
NIF_EMISOR_FACTURA: Es el nif de la persona o empresa que emite la factura, debe ser el mismo que figura en el certificado electrónico con el que se firma el envío.

NOMBRE_CLIENTE: Nombre del cliente, debe ser un nombre real.
NIF_CLIENTE: Es el nif del cliente, debe ser el nif real del nombre del cliente.
Ojo porque si te inventas los dos valores anteriores dará error aunque sea un nif válido, no te puedes inventar los dos valores anteriores.

NOMBRE_EMPRESA_SOFTWARE: Nombre de la empresa o persona que ha hecho el software de facturación, debe ser real.
NIF_EMPRESA_SOFTWARE: Nif de la empresa o persona que ha hecho el software de facturación, también debe ser real y el que corresponda con el nombre anterior.
Ojo porque si te inventas los dos valores anteriores dará error aunque sea un nif válido, no te puedes inventar los dos valores anteriores.

Código PHP:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd" xmlns:ns2="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd">
    <
SOAP-ENV:Body>
        <
ns2:RegFactuSistemaFacturacion>
            <
ns1:Cabecera>
                <
ns1:ObligadoEmision>
                    <
ns1:NombreRazon>NOMBRE_EMISOR_FACTURA</ns1:NombreRazon>
                    <
ns1:NIF>NIF_EMISOR_FACTURA</ns1:NIF>
                </
ns1:ObligadoEmision>
            </
ns1:Cabecera>
            <
ns2:RegistroFactura>
                <
ns2:RegistroAlta>
                    <
ns1:IDVersion>1.0</ns1:IDVersion>
                    <
ns1:IDFactura>
                        <
ns1:IDEmisorFactura>NIF_EMISOR_FACTURA</ns1:IDEmisorFactura>
                        <
ns1:NumSerieFactura>A022</ns1:NumSerieFactura>
                        <
ns1:FechaExpedicionFactura>08-09-2024</ns1:FechaExpedicionFactura>
                    </
ns1:IDFactura>
                    <
ns1:NombreRazonEmisor>NOMBRE_EMISOR_FACTURA</ns1:NombreRazonEmisor>
                    <
ns1:TipoFactura>F1</ns1:TipoFactura>
                    <
ns1:DescripcionOperacion>VENTA MERCADERIAS</ns1:DescripcionOperacion>
                    <
ns1:Destinatarios>
                        <
ns1:IDDestinatario>
                            <
ns1:NombreRazon>NOMBRE_CLIENTE</ns1:NombreRazon>
                            <
ns1:NIF>NIF_CLIENTE</ns1:NIF>
                        </
ns1:IDDestinatario>
                    </
ns1:Destinatarios>
                    <
ns1:Desglose>
                        <
ns1:DetalleDesglose>
                            <
ns1:ClaveRegimen>01</ns1:ClaveRegimen>
                            <
ns1:CalificacionOperacion>S1</ns1:CalificacionOperacion>
                            <
ns1:TipoImpositivo>21</ns1:TipoImpositivo>
                            <
ns1:BaseImponibleOimporteNoSujeto>100.00</ns1:BaseImponibleOimporteNoSujeto>
                            <
ns1:CuotaRepercutida>21.00</ns1:CuotaRepercutida>
                        </
ns1:DetalleDesglose>
                    </
ns1:Desglose>
                    <
ns1:CuotaTotal>21.00</ns1:CuotaTotal>
                    <
ns1:ImporteTotal>121.00</ns1:ImporteTotal>
                    <
ns1:Encadenamiento>
                        <
ns1:PrimerRegistro>S</ns1:PrimerRegistro>
                    </
ns1:Encadenamiento>
                    <
ns1:SistemaInformatico>
                        <
ns1:NombreRazon>NOMBRE_EMPRESA_SOFTWARE</ns1:NombreRazon>
                        <
ns1:NIF>NIF_EMPRESA_SOFTWARE</ns1:NIF>
                        <
ns1:NombreSistemaInformatico>SOFTWARE TPV DE PRUEBAS</ns1:NombreSistemaInformatico>
                        <
ns1:IdSistemaInformatico>7</ns1:IdSistemaInformatico>
                        <
ns1:Version>1.0</ns1:Version>
                        <
ns1:NumeroInstalacion>38</ns1:NumeroInstalacion>
                        <
ns1:TipoUsoPosibleSoloVerifactu>S</ns1:TipoUsoPosibleSoloVerifactu>
                        <
ns1:TipoUsoPosibleMultiOT>N</ns1:TipoUsoPosibleMultiOT>
                        <
ns1:IndicadorMultiplesOT>N</ns1:IndicadorMultiplesOT>
                    </
ns1:SistemaInformatico>
                    <
ns1:FechaHoraHusoGenRegistro>2024-10-01T09:05:00+02:00</ns1:FechaHoraHusoGenRegistro>
                    <
ns1:TipoHuella>01</ns1:TipoHuella>
                    <
ns1:Huella>DD127FF3CEE27D933D330BD718FFBD1D13B2876B14C3C3B2E3B329195</ns1:Huella>
                </
ns2:RegistroAlta>
            </
ns2:RegistroFactura>
        </
ns2:RegFactuSistemaFacturacion>
    </
SOAP-ENV:Body>
</
SOAP-ENV:Envelope

Y ya por si a alguien le interesa, este es el código que uso para enviar el fichero xml al web service hecho en php:

Código PHP:

$url 'no_puedo_poner_enlaces prewww1.aeat.es/wlpl/TIKE-CONT/ws/SistemaFacturacion/VerifactuSOAP'// URL del webservice
$pfxFile 'micertificado.pfx'// Ruta al archivo PFX del certificado electronico
$pfxPassword 'loquesea'// Contraseña del PFX del certificado electronico
$ch curl_init($url);
curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
curl_setopt($chCURLOPT_SSL_VERIFYPEERfalse);
curl_setopt($chCURLOPT_TIMEOUT30);
curl_setopt($chCURLOPT_POSTtrue);
curl_setopt($chCURLOPT_POSTFIELDS$xml);
curl_setopt($chCURLOPT_HTTPHEADER, array('Content-Type: application/xml',"SOAPAction: AltaFactuSistemaFacturacion"));
curl_setopt($chCURLOPT_SSLCERTTYPE'P12');
curl_setopt($chCURLOPT_SSLCERT$pfxFile);
curl_setopt($chCURLOPT_SSLCERTPASSWD$pfxPassword);
$response curl_exec($ch);
if (
curl_errno($ch)) {
    echo 
'Error: ' curl_error($ch);
} else {
    
print_r($response);
}
curl_close($ch); 

Espero que os sirva. Saludos.

keno_71 01-10-2024 09:20:14

Gracias Richidemola, lo probaré

pablog2k 01-10-2024 09:38:44

Cita:

Empezado por seccion_31 (Mensaje 557636)
buenos dias pablog2k !



gracias, incluso con ese cambio, sigue generando dos lineas.

¿Puedes postear x fa, tu importacion del wsdl ? a ver si con eso acertamos.

Saludos !

Hola, prefiero postearlo cuando consiga que me funcione todo, porque ahora me está dando problemas con los nodos IdDestinatario y DetalleDesglose .... :mad:

antoine0 01-10-2024 10:03:43

Cita:

Empezado por richidemola (Mensaje 557634)
Pues efectivamente, con +2:00 funciona y no me da el error, pero como dije en otro mensaje no lo entiendo entonces, ¿Cuándo pase el horario de verano no valdrá el +2 y hay que poner un +1 o que?

Sí. Después del 27 habrá que poner +01:00, o +00:00 si estás en Canarias.

Cita:

Existe algún sitio donde consultar la franja horaria en tiempo real?
A ver. Primero la hora del ordenador, también la hora de los señales GPS y NTP, y mucho otros, corren en hora UTc, también conocida como hora GMT (la que he marcado Z).
Por tanto lo más próximo adónde buscar para tal consulta es el propio ordenador, por qué tiene esta información.
Delphi lo expone a través de varias vías, por ejemplo System.DateUtils.TTimeZone (desde XE); probablemente usando
Código:

TTimeZone.Local.GetUtcOffset
.
A nivel de Windows, lo normal es que acabe en una llamada a GetTimeZoneInformation (antiguo pero suficiente para el propósito) o GetDynamicTimeZoneInformation (desde Vista, necesitará una versión no demasiada antigua de Delphi). Hay equivalente en los demás sistemas operativos.

Online hay un montón de sitios con esta información. Te recomiendo https://www.timeanddate.com/time en inglés, es corto pero acierta. Verás que los husos horarios son realmente una cosa de los políticos, aplicado por algunos laboratorios. Por tanto la respuesta correcta a tu pregunta es probablemente el Real Observatorio de la Armada.

pablog2k 01-10-2024 11:21:01

alguien me puede decir como habéis conseguido quitar los milisegundos en la fecha que se genera a partir de la variable TXSDateTime para rellenar el nodo FechaHoraHusoGenRegistro? o utilizáis otra tipo de variable?

espinete 01-10-2024 11:25:25

¿Pero entonces tenemos que darnos de alta en algún sitio para poder hacer los envíos? ¿Donde notificamos el NIF y/o el certificado para que admitan el envío de VeriFactu? No recuerdo haber leído nada de eso.

Cita:

Empezado por seccion_31 (Mensaje 557632)
buenos dias !

he consultado a la AEAT el problema del error:

4118 El NIF del titular no está autorizado a enviar información al sistema.

me han pedido el XML y el nif del certificado, antes de aplicar otros cambios voy a esperar a ver que dicen.

Saludos !

Como digo: este programa es la modificacion de aquel que deje en el foro para enviar 1 alta y 1 baja, que volvere a publicar una vez que funcione en pruebas.


pablog2k 01-10-2024 12:12:09

Cita:

Empezado por pablog2k (Mensaje 557646)
alguien me puede decir como habéis conseguido quitar los milisegundos en la fecha que se genera a partir de la variable TXSDateTime para rellenar el nodo FechaHoraHusoGenRegistro? o utilizáis otra tipo de variable?

me autorespondo, es utilizando el metodo XSToNative y poniendo 'a piñón' el valor que queramos

seccion_31 01-10-2024 12:20:06

La AEAT sobre el error 4118:

Cita:

Le confirmamos que no el problema no proviene por falta de autorización de ninguno de los NIFs incluidos en la presentación. En el fichero XML de respuesta podrá ver que la descripción del error 4118 es "Error técnico: la dirección no se corresponde con el fichero de entrada."

El error 4118 puede deberse al uso de un Endpoint incorrecto o un Envelope con errores. En su caso deben revisar el Envelope del fichero ya que no es correcto. Le recomendamos revisar los ejemplos de fichero incluidos en el documento "Documento de descripción de servicios web (v0.4.0) - Borrador" de la web de desarrolladores.
Saludos

espinete 01-10-2024 12:38:33

Tiene pinta de que el error va a estar en que nuestro XML tiene repetido el nodo "RegFactuSistemaFacturacion".

Al recibir el XML, AEAT intenta buscar dentro de ese nodo los datos de la factura, pero lo que encuentra es otro nodo "RegFactuSistemaFacturacion".

No soy un experto en XML ni sé cómo AEAT interpreta el archivo, pero me da que el problema puede estar ahi.

Otra cosa que he notado en mi XML con respecto al que publicaron recientemente es que el que yo genero tiene dos nodos de más:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body xmlns:NS1="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd">
.....
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

El otro XML que publicaron que sí se envía sin error no tiene esas dos líneas.

No sé qué hay que configurar en Delphi, o en el componente HTTPRIO, o en el wsdl importado, etc. para que no haga eso. Por si esa fuera la causa del problema.


Cita:

Empezado por seccion_31 (Mensaje 557653)
La AEAT sobre el error 4118:



Saludos


seccion_31 01-10-2024 12:53:39

Cita:

Tiene pinta de que el error va a estar en que nuestro XML tiene repetido el nodo "RegFactuSistemaFacturacion".
Si, tiene pinta de eso, pero creo que ayer envie un XML sin el nodo repetido y seguia diciendo lo mismo. ... (creo), en mi opinion, o estan mal importados los WSDL, mal creados, o delphi no los puede importar bien.

Probare mañana a enviar XMLS manuales, copiando algunos de los que han remitido por aqui.

Saludos!

pablog2k 01-10-2024 13:22:14

De los que habéis podido enviar, que hay que poner exactamente en el campo FechaHoraHusoGenRegistro ??
Porque he probado:
2024-10-01T13:17:13+01:00 (error)
2024-10-01T13:17:13+02:00 (error)
2024-10-01T12:17:13+01:00 (restando una hora para que aplique el +01:00, error)
2024-10-01T11:17:13+02:00 (restando dos horas para que aplique el +02:00, error)
2024-10-01T15:17:13+02:00 (sumando dos horas para que aplique el +02:00, error)

richidemola 01-10-2024 13:39:41

Cita:

Empezado por pablog2k (Mensaje 557657)
De los que habéis podido enviar, que hay que poner exactamente en el campo FechaHoraHusoGenRegistro ??
Porque he probado:
2024-10-01T13:17:13+01:00 (error)
2024-10-01T13:17:13+02:00 (error)
2024-10-01T12:17:13+01:00 (restando una hora para que aplique el +01:00, error)
2024-10-01T11:17:13+02:00 (restando dos horas para que aplique el +02:00, error)
2024-10-01T15:17:13+02:00 (sumando dos horas para que aplique el +02:00, error)

A mi me sirvió con el +02:00 porque el +01:00 me daba error, varios mensajes más arriba hablábamos del tema, lo que si que hago, para curarme en salud, es redondear los segundos, es decir, si son las 13:36:17 yo pongo 13:36:00 para ir siempre un poco por debajo de la hora de la aeat, ten en cuenta que el margen que acepta la aeat es de máximo 5 minutos por debajo de su hora.

Comprueba también que la hora de tu equipo, si es una aplicación de escritorio, es igual a la hora de la aeat, en mi caso como la aplicación funciona en navegador web cojo la hora del servidor web que es la misma hora que la de la aeat porque la hora del servidor web está sincronizada y no tengo que andar mirando la hora del PC.

Saludos.

sglorka 01-10-2024 14:01:45

Cita:

Empezado por pablog2k (Mensaje 557657)
De los que habéis podido enviar, que hay que poner exactamente en el campo FechaHoraHusoGenRegistro ??
Porque he probado:
2024-10-01T13:17:13+01:00 (error)
2024-10-01T13:17:13+02:00 (error)
2024-10-01T12:17:13+01:00 (restando una hora para que aplique el +01:00, error)
2024-10-01T11:17:13+02:00 (restando dos horas para que aplique el +02:00, error)
2024-10-01T15:17:13+02:00 (sumando dos horas para que aplique el +02:00, error)

Te sería más fácil ejecutar este curl si quieres
# curl "http://worldtimeapi.org/api/timezone/Europe/Madrid" si estás en península.
Te va a devolver, entre otras cosas, "datetime": "2024-10-01T13:56:54.849406+02:00". Esta fecha es la que tienes que informar en el FechaHoraHusoGenRegistro, indica la hora actual y el +2 hace referencia al horario de verano.

Si estás en las Islas Canarias ejecutas
# curl "http://worldtimeapi.org/api/timezone/Atlantic/Canary", donde obtenemos "datetime": "2024-10-01T12:55:50.103145+01:00", donde el +1 indica horario de verano ya que en las Islas hay una hora menos.

pablog2k 01-10-2024 14:08:25

Cita:

Empezado por sglorka (Mensaje 557659)
Te sería más fácil ejecutar este curl si quieres
# curl "http://worldtimeapi.org/api/timezone/Europe/Madrid" si estás en península.
Te va a devolver, entre otras cosas, "datetime": "2024-10-01T13:56:54.849406+02:00". Esta fecha es la que tienes que informar en el FechaHoraHusoGenRegistro, indica la hora actual y el +2 hace referencia al horario de verano.

Si estás en las Islas Canarias ejecutas
# curl "http://worldtimeapi.org/api/timezone/Atlantic/Canary", donde obtenemos "datetime": "2024-10-01T12:55:50.103145+01:00", donde el +1 indica horario de verano ya que en las Islas hay una hora menos.

pero no se supone que hay que enviar la fecha actual + 2 horas??? porque estamos en +02:00??
De todas formas mi problema no es obtener la fecha actual, es saber que narices están esperando...
he probado todas las maneras habidas y por haber, restando y sumando horas.... y nada (tus ejemplos tampoco me funcionaron ,ni con milisegundos ni sin milisegundos)

espinete 01-10-2024 14:15:29

Con el .pas generado al importar el WSDL como SOAP 1.2, solo tuve que añadir esta línea al .pas (gracias a pablog2k)

Código Delphi [-]
InvRegistry.RegisterInvokeOptions(TypeInfo(sfPortTypeVerifactu), ioLiteral);

La añadí justo después de la que viene por defecto:

Código Delphi [-]
InvRegistry.RegisterInvokeOptions(TypeInfo(sfPortTypeVerifactu), ioDocument);

Después de ese cambio, me daba otro error indicando que faltaba el campo "IDDestinatario", pero ese campo sí que estaba.
Lo que pasa es que en mi IDDestinatario había añadido el subnodo "IDOtro". Lo quité y ya pude hacer el envío.

Ahora bien, el envío me devuelve "Incorrecto", así que ahora tendré que ir poco a poco buscando los motivos, pero al menos el error anterior ya no me da. Supongo que ahora tendré que buscar en la respuesta (RespuestaBaseType) las causas de error que devuelve la AEAT.


Cita:

Empezado por seccion_31 (Mensaje 557655)
Si, tiene pinta de eso, pero creo que ayer envie un XML sin el nodo repetido y seguia diciendo lo mismo. ... (creo), en mi opinion, o estan mal importados los WSDL, mal creados, o delphi no los puede importar bien.

Probare mañana a enviar XMLS manuales, copiando algunos de los que han remitido por aqui.

Saludos!


sglorka 01-10-2024 14:35:18

Cita:

Empezado por pablog2k (Mensaje 557660)
pero no se supone que hay que enviar la fecha actual + 2 horas??? porque estamos en +02:00??
De todas formas mi problema no es obtener la fecha actual, es saber que narices están esperando...
he probado todas las maneras habidas y por haber, restando y sumando horas.... y nada (tus ejemplos tampoco me funcionaron ,ni con milisegundos ni sin milisegundos)

Mis ejemplos no te funcionaron porque han sido generados en Canarias UTC+1 en horario de verano.
Si miras esta página de Wikipedia https://es.wikipedia.org/wiki/UTC%2B...opedia%20libre
podrás ver que España se rige en la zona horaria UTC+1 ya que tiene una hora más que las situadas en el meridiano de Greenwich.
Como además, tenemos una hora adelantada debido al cambio horario de verano, entonces la hora de expresa como UTC+2. Cuando se vuelva a cambiar la hora a la de invierno, atrasaremos una y volveremos a UTC+1. En Canarias sería UTC+0.
De todas maneras, como el ordenador donde va estar tu programa debe tener conexión a Internet sí o sí, debes tener activada la sincronización horaria con el reloj de Microsoft o cualquier otro, cualquier librería de cualquier lenguaje puede obtener la hora del sistema y expresarla en formato Iso8601 que es la que nos atañe.

espinete 01-10-2024 14:36:11

Para poder ver el detalle del error, hay que hacer el envío usando "RespuestaRegFactuSistemaFacturacionType" para la respuesta, en vez de "RespuestaBaseType".

Por lo que el envío usando HTTPRIO hay que hacerlo así:

Código Delphi [-]
res := RespuestaRegFactuSistemaFacturacionType.Create;
SistemaFacturacion.RespuestaRegFactuSistemaFacturacion(res) := SistemaFacturacion.GetsfPortTypeVerifactu(false, 'https://prewww1.aeat.es/wlpl/TIKE-CONT/ws/SistemaFacturacion/VerifactuSOAP', Form1.HTTPRIO1).RegFactuSistemaFacturacion(veriFactu);
Solo así puedo ver el array de errores que devuelve Hacienda.

espinete 01-10-2024 14:50:29

ChatGPT me hizo un favor:

XSDatetime.FractionalSeconds := 0;

Con eso se elimina el .000 de la fecha/hora

Cita:

Empezado por pablog2k (Mensaje 557646)
alguien me puede decir como habéis conseguido quitar los milisegundos en la fecha que se genera a partir de la variable TXSDateTime para rellenar el nodo FechaHoraHusoGenRegistro? o utilizáis otra tipo de variable?


pablog2k 01-10-2024 15:00:15

Increíble pero cierto.....
resulta que estaba poniendo como pruebas la fecha de una factura de hace unos días..... y no se puede hacer eso
tienes que poner la fecha de facturas de HOY para los envíos de hoy .....
ya podrían indicarlo claramente en el mensaje de error , en vez de decir todo el rato El valor del campo FechaHoraHusoGenRegistro no está dentro del umbral establecido sobre la fecha del sistema de la AEAT
:(

bmfranky 01-10-2024 15:03:53

Cita:

Empezado por pablog2k (Mensaje 557667)
si, con esto he conseguido no tener que poner el valor a mano, sino simplemente asignando a un TDateTime el valor de Now.
Aun asi, yo enviando esto:
2024-10-01T14:58:23+02:00
me devuelve el mismo error
El valor del campo FechaHoraHusoGenRegistro no está dentro del umbral establecido sobre la fecha del sistema de la AEAT

A mi en c#, solo me deja insertar un DateTime.Now, no puedo cambiarle nada, asi que me sale con milisegundos y todo...


Alguien ha usado el sistema de envio que implementa el XSD, sin httprio, es que no consigo conectar, simpre me dice que no puede establecer conexion, no se si estare pasando mal los parametros.

pablog2k 01-10-2024 15:07:00

Cita:

Empezado por bmfranky (Mensaje 557668)
A mi en c#, solo me deja insertar un DateTime.Now, no puedo cambiarle nada, asi que me sale con milisegundos y todo...


Alguien ha usado el sistema de envio que implementa el XSD, sin httprio, es que no consigo conectar, simpre me dice que no puede establecer conexion, no se si estare pasando mal los parametros.

ya hice edit de lo que me estaba pasando ... :mad:
edit: no me enfadé!! mi enfado viene de la poca claridad que tiene Verifactu para devolver los errores

bmfranky 01-10-2024 15:09:35

Cita:

Empezado por pablog2k (Mensaje 557669)
ya hice edit de lo que me estaba pasando ... :mad:

Hola, perdona, estaba escribiendo miestras lo editabas, ño siento si te ofendi de alguna forma.

espinete 01-10-2024 15:14:03

Ojo con el NIF que se usa para las pruebas...

Algunos errores que me ha devuelto al hacer el envío:

- En el bloque Destinatarios si se identifica mediante NIF, el NIF debe estar identificado y ser distinto del NIF ObligadoEmision.
- Error en el bloque Destinatario.. El NIF no está identificado en el censo de la AEAT.. NIF:(un NIF real). NOMBRE_RAZON: (un nombre real)

Conclusiones:
- no se puede usar el mismo nif como emisor y como destinatario
- hay que usar un NIF dado de alta en el censo de la AEAT. Lo curioso es que mi NIF está dado de alta, pero quizás es porque me inventé el nombre y puse otra cosa?

Ahora estoy obteniendo este otro error:

El cálculo de la huella no coincide con la huella facilitada.

¿A alguien más le ha pasado?

ermendalenda 01-10-2024 15:17:23

Prueba Qr
 
1 Archivos Adjunto(s)
Aquí os dejo adjunto un QR, aunque no he subido factura, por si le sirve a alguien

ermendalenda 01-10-2024 15:40:09

1 Archivos Adjunto(s)
No sé si lo ha subido alguien.

David M 01-10-2024 15:46:48

Cita:

Empezado por unomasmas (Mensaje 557625)
¿Lo has usado ya? No entiendo bien el funcionamiento: Lo de dejar la sesión iniciada durante 2 horas para firmar sin límites ¿Durante los tres años de vida del certificado?

Hola unomasmas,
Sí, lo tengo en producción sin problemas.
Lo de iniciar sesión se hace a través del programa SimplySign Desktop donde introduces el código de seguridad recibido en la app del móvil SimplySign.
Una vez aceptado el código, se queda la sesión del programa abierta durante dos horas para firmar lo que necesites. Digamos que se habilita la clave privada del certificado que tienes instalado en el PC.
Pasadas las dos horas, se cierra la sesión y el certificado que tienes en el PC no te permite firmar (como si estuviera instalado sin la clave privada).
Tampoco puedes exportarlo ya que la clave privada parece que está en la nube de Certum.
Puede parecer complicado, pero es más fácil de lo que parece.

Saludos,
David M.

ermendalenda 01-10-2024 16:57:06

Cita:

Empezado por pablog2k (Mensaje 557667)
Increíble pero cierto.....
resulta que estaba poniendo como pruebas la fecha de una factura de hace unos días..... y no se puede hacer eso
tienes que poner la fecha de facturas de HOY para los envíos de hoy .....
ya podrían indicarlo claramente en el mensaje de error , en vez de decir todo el rato El valor del campo FechaHoraHusoGenRegistro no está dentro del umbral establecido sobre la fecha del sistema de la AEAT
:(

Has probado a enviarlo vomo incidencia?
Tiene pinta que si pasa cierto tiempo ya debe ser considerado como incidencia, pruébalo y nos dices, por que habrá que tenerlo en cuenta

pablog2k 01-10-2024 17:34:58

por si a alguien le sirve, cuando modificamos una factura ya subida (rellenando el nodo Subsanacion) , se puede modificar la huella y el FechaHoraHusoGenRegistro.
Porqué digo esto? porque si os ha pasado como a mi, de haber subido unas cuantas pruebas con errores, probalbmente estos campos os hayan dado error, y para generar la huella correctamente, se necesitan ambos campos 'bien'.
Yo he conseguido subsanar la primera factura que subí, diciendole la FechaHoraHusoGenRegistro de ahora (pese a que fecha factura sea anterior), y calculando a raiz de ahí la huella, y me ha contestado OK.

Ahora utilizaré ese hash para la huella de la siguiente factura , a ver si cuela.... :rolleyes:

ermendalenda 01-10-2024 17:46:13

Cita:

Empezado por pablog2k (Mensaje 557680)
por si a alguien le sirve, cuando modificamos una factura ya subida (rellenando el nodo Subsanacion) , se puede modificar la huella y el FechaHoraHusoGenRegistro.
Porqué digo esto? porque si os ha pasado como a mi, de haber subido unas cuantas pruebas con errores, probalbmente estos campos os hayan dado error, y para generar la huella correctamente, se necesitan ambos campos 'bien'.
Yo he conseguido subsanar la primera factura que subí, diciendole la FechaHoraHusoGenRegistro de ahora (pese a que fecha factura sea anterior), y calculando a raiz de ahí la huella, y me ha contestado OK.

Ahora utilizaré ese hash para la huella de la siguiente factura , a ver si cuela.... :rolleyes:

Gracias, toda información es buena.
Te importaría probar si te deja enviar un registro como subsanacion aunque no se haya enviado?

ermendalenda 01-10-2024 17:57:18

Cita:

Empezado por pablog2k (Mensaje 557680)
por si a alguien le sirve, cuando modificamos una factura ya subida (rellenando el nodo Subsanacion) , se puede modificar la huella y el FechaHoraHusoGenRegistro.
Porqué digo esto? porque si os ha pasado como a mi, de haber subido unas cuantas pruebas con errores, probalbmente estos campos os hayan dado error, y para generar la huella correctamente, se necesitan ambos campos 'bien'.
Yo he conseguido subsanar la primera factura que subí, diciendole la FechaHoraHusoGenRegistro de ahora (pese a que fecha factura sea anterior), y calculando a raiz de ahí la huella, y me ha contestado OK.

Ahora utilizaré ese hash para la huella de la siguiente factura , a ver si cuela.... :rolleyes:

Y más pruebas que había pensado.
Mandas del 1 al 10 y el 5 te pide subsanacion, mandas el 5 y el siguiente (el 11) encadenado con el subsanado. Por lógica sería ok

unomasmas 01-10-2024 18:34:12

Cita:

Empezado por antoine0 (Mensaje 557628)
Bueno. Estamos aún en horario de verano (y quedan 4 semanas así), entonces la hora de Hacienda es 2024-09-30 14:22:37+02:00; que es lo mismo que 2024-09-30 12:22:37Z.
Tu envías una factura fechada 2024-09-30T14:22:00+01:00, que es lo mismo que 2024-09-30T13:22:00Z.
13:22:00 > 12:22:37. Normal que se quejen: ¡vas casi una hora por delante del reloj de Hacienda!

Nota: Hacienda está en Madrid, no en Arrecife

Pues también me salta este error.
El valor del campo FechaHoraHusoGenRegistro no está dentro del umbral establecido sobre la fecha del sistema de la AEAT.

La hora de mi reloj (hora peninsular España) es 2024-10-01 18:25.

He probado con estos valores
2024-10-01T18:03:04+02:00
2024-10-01T16:03:04+02:00
2024-10-01T16:22:04+02:00
2024-10-01T18:20:04+01:00

bmfranky 01-10-2024 18:36:55

Cita:

Empezado por unomasmas (Mensaje 557685)
Pues también me salta este error.
El valor del campo FechaHoraHusoGenRegistro no está dentro del umbral establecido sobre la fecha del sistema de la AEAT.

La hora de mi reloj (hora peninsular España) es 2024-10-01 18:25.

He probado con estos valores
2024-10-01T18:03:04+02:00
2024-10-01T16:03:04+02:00
2024-10-01T16:22:04+02:00
2024-10-01T18:20:04+01:00


Hola, todas las horas estan mas alla de los 5 minutos.
2024-10-01T18:20:04+02:00 esta igual colaria

unomasmas 01-10-2024 18:50:22

Cita:

Empezado por Logan05 (Mensaje 557596)
Buenas tardes grupo,

¿alguien puede compartir un XML que medio funcione para hacer pruebas?...Estoy super atrancado con la rutina de envío:(
Gracias!!!

Código:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sum="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd" xmlns:sum1="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd" xmlns:xd="http://www.w3.org/2000/09/xmldsig#">
  <soapenv:Header/>
  <soapenv:Body>
<sum:RegFactuSistemaFacturacion>
  <sum1:Cabecera>
      <sum1:ObligadoEmision>
        <sum1:NombreRazon><![CDATA[NOMBRE EMISOR]]></sum1:NombreRazon>
        <sum1:NIF>CIF EMISOR</sum1:NIF>
      </sum1:ObligadoEmision>
      <sum1:RemisionVoluntaria>
        <sum1:Incidencia>N</sum1:Incidencia>
      </sum1:RemisionVoluntaria>
  </sum1:Cabecera>
  <sum:RegistroFactura>
      <sum:RegistroAlta>
        <sum1:IDVersion>1.0</sum1:IDVersion>
        <sum1:IDFactura>
            <sum1:IDEmisorFactura>CIF EMISOR</sum1:IDEmisorFactura>
            <sum1:NumSerieFactura>SERIE-02</sum1:NumSerieFactura>
            <sum1:FechaExpedicionFactura>01-10-2024</sum1:FechaExpedicionFactura>
        </sum1:IDFactura>
        <sum1:NombreRazonEmisor><![CDATA[NOMBRE EMISOR]]></sum1:NombreRazonEmisor>
        <sum1:Subsanacion><![CDATA[N]]></sum1:Subsanacion>
        <sum1:RechazoPrevio><![CDATA[N]]></sum1:RechazoPrevio>
        <sum1:TipoFactura>F1</sum1:TipoFactura>
        <sum1:FechaOperacion>02-02-2024</sum1:FechaOperacion>
        <sum1:DescripcionOperacion><![CDATA[1]]></sum1:DescripcionOperacion>
        <sum1:Destinatarios>
            <sum1:IDDestinatario>
              <sum1:NombreRazon>NOMBRE DESTINATARIO</sum1:NombreRazon>
              <sum1:NIF>CIF DESTINATARIO</sum1:NIF>
            </sum1:IDDestinatario>
        </sum1:Destinatarios>
        <sum1:Desglose>
            <sum1:DetalleDesglose>
              <sum1:Impuesto>01</sum1:Impuesto>
              <sum1:ClaveRegimen>01</sum1:ClaveRegimen>
              <sum1:CalificacionOperacion>N1</sum1:CalificacionOperacion>
              <sum1:BaseImponibleOimporteNoSujeto>400.00</sum1:BaseImponibleOimporteNoSujeto>
            </sum1:DetalleDesglose>
            <sum1:DetalleDesglose>
              <sum1:Impuesto>01</sum1:Impuesto>
              <sum1:ClaveRegimen>01</sum1:ClaveRegimen>
              <sum1:CalificacionOperacion>N2</sum1:CalificacionOperacion>
              <sum1:BaseImponibleOimporteNoSujeto>300.00</sum1:BaseImponibleOimporteNoSujeto>
            </sum1:DetalleDesglose>
            <sum1:DetalleDesglose>
              <sum1:Impuesto>01</sum1:Impuesto>
              <sum1:ClaveRegimen>01</sum1:ClaveRegimen>
              <sum1:CalificacionOperacion>S1</sum1:CalificacionOperacion>
              <sum1:TipoImpositivo>21.00</sum1:TipoImpositivo>
              <sum1:BaseImponibleOimporteNoSujeto>100.00</sum1:BaseImponibleOimporteNoSujeto>
              <sum1:CuotaRepercutida>21.00</sum1:CuotaRepercutida>
              <sum1:TipoRecargoEquivalencia></sum1:TipoRecargoEquivalencia>
              <sum1:CuotaRecargoEquivalencia>0.00</sum1:CuotaRecargoEquivalencia>
            </sum1:DetalleDesglose>
            <sum1:DetalleDesglose>
              <sum1:Impuesto>01</sum1:Impuesto>
              <sum1:ClaveRegimen>01</sum1:ClaveRegimen>
              <sum1:CalificacionOperacion>S2</sum1:CalificacionOperacion>
              <sum1:TipoImpositivo>0.00</sum1:TipoImpositivo>
              <sum1:BaseImponibleOimporteNoSujeto>200.00</sum1:BaseImponibleOimporteNoSujeto>
              <sum1:CuotaRepercutida>0.00</sum1:CuotaRepercutida>
              <sum1:TipoRecargoEquivalencia>0.00</sum1:TipoRecargoEquivalencia>
              <sum1:CuotaRecargoEquivalencia>0.00</sum1:CuotaRecargoEquivalencia>
            </sum1:DetalleDesglose>
            <sum1:DetalleDesglose>
              <sum1:Impuesto>01</sum1:Impuesto>
              <sum1:ClaveRegimen>01</sum1:ClaveRegimen>
              <sum1:OperacionExenta>E1</sum1:OperacionExenta>
              <sum1:BaseImponibleOimporteNoSujeto>500.00</sum1:BaseImponibleOimporteNoSujeto>
            </sum1:DetalleDesglose>
        </sum1:Desglose>
        <sum1:CuotaTotal>21.00</sum1:CuotaTotal>
        <sum1:ImporteTotal>1521.00</sum1:ImporteTotal>
        <sum1:Encadenamiento>
            <sum1:RegistroAnterior>
              <sum1:IDEmisorFactura>CIF EMISOR</sum1:IDEmisorFactura>
              <sum1:NumSerieFactura>60</sum1:NumSerieFactura>
              <sum1:FechaExpedicionFactura>02-02-2024</sum1:FechaExpedicionFactura>
              <sum1:Huella>glLvV5cDbpf6SMTdBwqZx7Gedp4UJWYJLh3it23nnN+tXYCaxE0DIe0ZLHfJ6GZ7</sum1:Huella>
            </sum1:RegistroAnterior>
        </sum1:Encadenamiento>
        <sum1:SistemaInformatico>
            <sum1:NombreRazon><![CDATA[XXXXXXXXXXXXXXXXXXXXX]]></sum1:NombreRazon>
            <sum1:NIF>XXXXXXXXXXXX</sum1:NIF>
            <sum1:NombreSistemaInformatico>XXXXXXXXXXXX</sum1:NombreSistemaInformatico>
            <sum1:IdSistemaInformatico>XXXXXXXX</sum1:IdSistemaInformatico>
            <sum1:Version>2024.15</sum1:Version>
            <sum1:NumeroInstalacion><![CDATA[2024.15]]></sum1:NumeroInstalacion>
            <sum1:TipoUsoPosibleSoloVerifactu>S</sum1:TipoUsoPosibleSoloVerifactu>
            <sum1:TipoUsoPosibleMultiOT>N</sum1:TipoUsoPosibleMultiOT>
            <sum1:IndicadorMultiplesOT>N</sum1:IndicadorMultiplesOT>
        </sum1:SistemaInformatico>
        <sum1:FechaHoraHusoGenRegistro>2024-10-01T18:20:04+01:00</sum1:FechaHoraHusoGenRegistro>
        <sum1:NumRegistroAcuerdoFacturacion></sum1:NumRegistroAcuerdoFacturacion>
        <sum1:IdAcuerdoSistemaInformatico></sum1:IdAcuerdoSistemaInformatico>
        <sum1:TipoHuella>01</sum1:TipoHuella>
        <sum1:Huella>0A2644C9E5A755BB654B68AF3DB670D17E1FBE5E54A98567A1AB619A67F49AF1</sum1:Huella>
        <xd:Signature></xd:Signature>
      </sum:RegistroAlta>
  </sum:RegistroFactura>
</sum:RegFactuSistemaFacturacion>
  </soapenv:Body>
</soapenv:Envelope>

Este ha entrado (bueno, he cambiado algún que otro dato para anonimizarlo). Me da problemas con la etiqueta FechaHoraHusoGenRegistro

Código:

        <tikR:RespuestaLinea>
            <tikR:IDFactura>
              <tik:IDEmisorFactura>XXXXXXXXXXXX</tik:IDEmisorFactura>
              <tik:NumSerieFactura>SERIE-02</tik:NumSerieFactura>
              <tik:FechaExpedicionFactura>01-10-2024</tik:FechaExpedicionFactura>
            </tikR:IDFactura>
            <tikR:EstadoRegistro>AceptadoConErrores</tikR:EstadoRegistro>
            <tikR:CodigoErrorRegistro>2004</tikR:CodigoErrorRegistro>
            <tikR:DescripcionErrorRegistro>El valor del campo FechaHoraHusoGenRegistro no está dentro del umbral establecido sobre la fecha del sistema de la AEAT.</tikR:DescripcionErrorRegistro>
        </tikR:RespuestaLinea>


unomasmas 01-10-2024 18:55:35

Cita:

Empezado por bmfranky (Mensaje 557686)
Hola, todas las horas estan mas alla de los 5 minutos.
2024-10-01T18:20:04+02:00 esta igual colaria

Sí, es ese el problema. bmfranky, muchas gracias :-). He cambiado a una hora dos minutos menos y ha colado. Obviamente, me ha dado un error lógico:
El cálculo de la huella no coincide con la huella facilitada.

unomasmas 01-10-2024 19:00:51

Cita:

Empezado por espinete (Mensaje 557613)
A ver si algún alma caritativa publica una muestra del XML que ellos envían para poder compararlo con el nuestro, porque la verdad es que la descripción del error no ayuda mucho.

¿Quizás son los datos del destinatario de la factura? En la que yo genero no veo por ningún sitio la "dirección" del cliente final (tampoco veo la del emisor, no sé si hará falta).

Ayer tuve problemas con la identificación. No sé cuál era exactamente el mensaje pero parece que debe coincidir, por supuesto el CIF del emisor con el del certificado y, además, al menos, parcialmente el nombre y algún apellido (el certificado que uso es de persona física). Yo tenía como nombre del emisor el de una empresa. Me pasó también con los datos de destinatario: no aceptaba una falta de correspondencia con CIF de persona física y nombre que no tuviera apariencia de persona física (yo tenía en el nombre algo como S.L.) No sé si esto te puede ayudar.

bmfranky 01-10-2024 19:29:59

Ayuda envio
 
Hola, he coseguido rellenar todos los campos, al serializar se ve la estructura correcta, menos las cabeceras SOAP, puesto que en Visual c#, no se como crearlas sin enviarlas.
el problema lo tengo en que no me aclaro al enviar, siempre me da error " No se puede crear un canal seguro SSL/TLS." , he probado con web request y me pasa lño mismo.
Lo tengo asi, alguien sabria decirme que me puede faltar?

C#
Código:

sfPortTypeVerifactuClient client = new ServicioVerifactu.sfPortTypeVerifactuClient("SistemaVerifactuPruebas");
            System.ServiceModel.Description.ClientCredentials credenciales = new System.ServiceModel.Description.ClientCredentials();
            client.ClientCredentials.UserName.UserName = Program.configTaller.Nif;
            client.ClientCredentials.ClientCertificate.Certificate = new System.Security.Cryptography.X509Certificates.X509Certificate2("C:\\Users\\Fran\\Documents\\dnis\\cert\\CertEnvio.p12", Program.passcertificado);
            client.ClientCredentials.ServiceCertificate.DefaultCertificate = new System.Security.Cryptography.X509Certificates.X509Certificate2("C:\\Users\\Fran\\Documents\\dnis\\cert\\CertEnvio.p12", Program.passcertificado);
            string test = "";

            RespuestaRegFactuSistemaFacturacionType retorno = client.RegFactuSistemaFacturacion(facAPresentar); <-- Aqui salta el fallo:

Si pudierais orientarme os estari a muy agradecido.

Uso un certificado de representante, puede ser por eso?

sglorka 01-10-2024 19:49:42

Cita:

Empezado por bmfranky (Mensaje 557690)
Hola, he coseguido rellenar todos los campos, al serializar se ve la estructura correcta, menos las cabeceras SOAP, puesto que en Visual c#, no se como crearlas sin enviarlas.

el problema lo tengo en que no me aclaro al enviar, siempre me da error " No se puede crear un canal seguro SSL/TLS." , he probado con web request y me pasa lño mismo.
Lo tengo asi, alguien sabria decirme que me puede faltar?

Código:

sfPortTypeVerifactuClient client = new ServicioVerifactu.sfPortTypeVerifactuClient("SistemaVerifactuPruebas");
            System.ServiceModel.Description.ClientCredentials credenciales = new System.ServiceModel.Description.ClientCredentials();
            client.ClientCredentials.UserName.UserName = Program.configTaller.Nif;
            client.ClientCredentials.ClientCertificate.Certificate = new System.Security.Cryptography.X509Certificates.X509Certificate2("C:\\Users\\Fran\\Documents\\dnis\\cert\\CertEnvio.p12", Program.passcertificado);
            client.ClientCredentials.ServiceCertificate.DefaultCertificate = new System.Security.Cryptography.X509Certificates.X509Certificate2("C:\\Users\\Fran\\Documents\\dnis\\cert\\CertEnvio.p12", Program.passcertificado);
            string test = "";

            RespuestaRegFactuSistemaFacturacionType retorno = client.RegFactuSistemaFacturacion(facAPresentar); <-- Aqui salta el fallo:

Si pudierais orientarme os estari a muy agradecido.
Uso un certificado de representante, puede ser por eso?

Creo que te falta activar seguridad Tls

Código:

Const _Tls12 As System.Security.Authentication.SslProtocols = DirectCast(&HC00, System.Security.Authentication.SslProtocols)
Const Tls12 As System.Net.SecurityProtocolType = DirectCast(_Tls12, System.Net.SecurityProtocolType)
System.Net.ServicePointManager.SecurityProtocol = Tls12


bmfranky 01-10-2024 20:46:59

Cita:

Empezado por sglorka (Mensaje 557691)
Creo que te falta activar seguridad Tls

Const _Tls12 As System.Security.Authentication.SslProtocols = DirectCast(&HC00, System.Security.Authentication.SslProtocols)
Const Tls12 As System.Net.SecurityProtocolType = DirectCast(_Tls12, System.Net.SecurityProtocolType)
System.Net.ServicePointManager.SecurityProtocol = Tls12


Estoy usando el servicio generado desde el xsd.


Código:

  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ServiceModel.ServiceContractAttribute(Namespace="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicacion" +
        "es/es/aeat/tike/cont/ws/SistemaFacturacion.wsdl", ConfigurationName="ServicioVerifactu.sfPortTypeVerifactu")]
    public interface sfPortTypeVerifactu {
       
        // CODEGEN: Se está generando un contrato de mensaje, ya que la operación RegFactuSistemaFacturacion no es RPC ni está encapsulada en un documento.
        [System.ServiceModel.OperationContractAttribute(Action="", ReplyAction="*")]
        [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)]
        [System.ServiceModel.ServiceKnownTypeAttribute(typeof(RespuestaBaseType))]
        [System.ServiceModel.ServiceKnownTypeAttribute(typeof(SistemaFacturacionFact))]
        Taller2024.ServicioVerifactu.RegFactuSistemaFacturacionResponse RegFactuSistemaFacturacion(Taller2024.ServicioVerifactu.RegFactuSistemaFacturacionRequest request); <-- ahora me salta el error aqui
       
        [System.ServiceModel.OperationContractAttribute(Action="", ReplyAction="*")]
        System.Threading.Tasks.Task<Taller2024.ServicioVerifactu.RegFactuSistemaFacturacionResponse> RegFactuSistemaFacturacionAsync(Taller2024.ServicioVerifactu.RegFactuSistemaFacturacionRequest request);
    }


Si sabeis decirme como o donde configurar lo , agradeceria cualquier tipo de ayuda.

bmfranky 01-10-2024 20:53:29

XML generado
 
El xml creo que si me lo genera bien, he cambiado mis datos...
Código PHP:

<?xml version="1.0" encoding="utf-16"?>
<RegFactuSistemaFacturacion xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Cabecera xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
    <ObligadoEmision>
      <NombreRazon>OBLIGADO EMISOR</NombreRazon>
      <NIF>NIF EMISOR</NIF>
    </ObligadoEmision>
    <RemisionVoluntaria />// esto es viejo , ahora ya lo añade, hay que poner a true la propiedad o no lo muestra...
  </Cabecera>
  <RegistroFactura xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd">
    <RegistroAlta>
      <IDVersion xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">1.0</IDVersion>
      <IDFactura xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
        <IDEmisorFactura>NIF EMISOR</IDEmisorFactura>
        <NumSerieFactura>F1-24-100233</NumSerieFactura>
        <FechaExpedicionFactura>01-10-2024</FechaExpedicionFactura>
      </IDFactura>
      <NombreRazonEmisor xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">OBLIGADO EMISOR</NombreRazonEmisor>
      <TipoFactura xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">F1</TipoFactura>
      <FechaOperacion xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">01/10/2024</FechaOperacion>
      <DescripcionOperacion xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">Venta de materiales servidos.</DescripcionOperacion>
      <Destinatarios xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
        <IDDestinatario>
          <NombreRazon>DESTINATARIO</NombreRazon>
          <NIF>NIF DESTINATARIO</NIF>
        </IDDestinatario>
      </Destinatarios>
      <Desglose xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
        <DetalleDesglose>
          <CalificacionOperacion>S1</CalificacionOperacion>
          <TipoImpositivo>21.00</TipoImpositivo>
          <BaseImponibleOimporteNoSujeto>117.20</BaseImponibleOimporteNoSujeto>
          <CuotaRepercutida>24.61</CuotaRepercutida>
        </DetalleDesglose>
      </Desglose>
      <CuotaTotal xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">24.61</CuotaTotal>
      <ImporteTotal xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">141.81</ImporteTotal>
      <Encadenamiento xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
        <PrimerRegistro>S</PrimerRegistro>
      </Encadenamiento>
      <SistemaInformatico xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
        <NombreRazon>MI NOMBRE</NombreRazon>
        <NIF>MI NIF</NIF>
        <NombreSistemaInformatico>Facturas Taller 2024</NombreSistemaInformatico>
        <IdSistemaInformatico>A1</IdSistemaInformatico>
        <Version>5.1.531.1443</Version>
        <NumeroInstalacion>001</NumeroInstalacion>
        <TipoUsoPosibleSoloVerifactu>S</TipoUsoPosibleSoloVerifactu>
        <TipoUsoPosibleMultiOT>N</TipoUsoPosibleMultiOT>
        <IndicadorMultiplesOT>N</IndicadorMultiplesOT>
      </SistemaInformatico>
      <FechaHoraHusoGenRegistro xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">2024-10-01T15:05:26.908824+02:00</FechaHoraHusoGenRegistro>
      <TipoHuella xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">01</TipoHuella>
      <Huella xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">1E7A197A66643F05F184A450B7DE324C2A6293D18A6615C0C77CAB5ECDCDD304</Huella>
    </RegistroAlta>
  </RegistroFactura>
</RegFactuSistemaFacturacion>



La franja horaria es GMT +2. Ahora son las 06:11:38.

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