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)

espinete 30-09-2024 11:39:39

Hola

¿Cómo configuráis el componente HTTPRIO para hacer el envío? He intentado poner "https://prewww1.aeat.es/wlpl/TIKE-CONT/ws/SistemaFacturacion/VerifactuSOAP" en "WSDLLocation" pero me da error al elegir el Port y Service
También lo he puesto en URL con el mismo resultado.

Para TicketBAI utilizaba el componente NetHTTPClient, pero el httprio no lo he usado nunca.

Viendo el proyecto de ejemplo que hay en el segundo post del hilo, hay que hacerlo de esta manera:
Código Delphi [-]
    HTTPRIO1.Tag := 0;
    res:=   RespuestaBaseType.Create;
    res:=   GetsfPortTypeVerifactu( False, '', HTTPRIO1 ).RegFactuSistemaFacturacion( veriFactu );

Pero no sé donde debo indicar la url, puerto, etc.

richidemola 30-09-2024 11:54:01

Dos cosillas, la primera sobre la huella, tenéis que generarla en mayúsculas, si la generáis en minúsculas el web service dirá que la huella no es correcta.

Y la otra es que me da el siguiente error al enviar el fichero, que me lo acepta pero con errores, El valor del campo FechaHoraHusoGenRegistro no está dentro del umbral establecido sobre la fecha del sistema de la AEAT, uso este valor 2024-09-30T09:48:46+01:00 y es justo la hora en la que se generó la huella según mi ordenador, pero no termino de entender porque me da ese error, le pasa a alguien más?

seccion_31 30-09-2024 12:07:40

Cita:

HTTPRIO1.Tag := 0;
res:= RespuestaBaseType.Create;
res:= GetsfPortTypeVerifactu( False, '', HTTPRIO1 ).RegFactuSistemaFacturacion( veriFactu );
Eso es de el ejemplo que publique.

Ahora lo estoy modificando como digo para que funcione en el entorno de pruebas.

A ver:

Puedes descargar el WSDL y guardarlo en fichero.
Coges el fichero, lo colocal en WSDLLocation y voila puedes elegir el puerto y servicio.
Modificar la linea en el codigo a true:

res:= GetsfPortTypeVerifactu(true, '', HTTPRIO1 ).RegFac ....

Pero cuando envio, me dice, ponga el puerto que ponga, o lo que ponga:

Error al realizar el envío; (ESOAPHTTPException)-Unable to retrieve the URL endpoint for Service/Port 'sfVerifactu'/'SistemaVerifactuPruebas' from WSDL 'c:\proyectos\VeriFactu2\SistemaFacturacion.wsdl'

Puedes colocar la URL:
https://prewww1.aeat.es/wlpl/TIKE-CO.../VerifactuSOAP
No elegir puerto
y dejar la linea del codigo a false:

res:= GetsfPortTypeVerifactu(false, '', HTTPRIO1 ).RegFac ....

pero entonces me devuelve:

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>

y Ahi estoy parado.

Como he dicho, mi intencion es modificar ese ejemplo y dejarlo funcional, a ver si alguien me da una mano.

Saludos !

espinete 30-09-2024 12:46:36

Hola, seccion_31...

Exactamente, esos son los errores que estoy obteniendo, por eso no entendía cómo hay gente que ya ha podido hacer envíos. Quizás estén usando otro método para el envío.

Quizás con el componente TNetHTTPClient se pueda hacer también, pero para eso necesitaría guardar antes el XML en un archivo.

En fin, a ver si alguien lo consigue con cualquiera de los dos componentes.

Gracias!

Cita:

Empezado por seccion_31 (Mensaje 557591)
Eso es de el ejemplo que publique.

Ahora lo estoy modificando como digo para que funcione en el entorno de pruebas.

A ver:

Puedes descargar el WSDL y guardarlo en fichero.
Coges el fichero, lo colocal en WSDLLocation y voila puedes elegir el puerto y servicio.
Modificar la linea en el codigo a true:

res:= GetsfPortTypeVerifactu(true, '', HTTPRIO1 ).RegFac ....

Pero cuando envio, me dice, ponga el puerto que ponga, o lo que ponga:

Error al realizar el envío; (ESOAPHTTPException)-Unable to retrieve the URL endpoint for Service/Port 'sfVerifactu'/'SistemaVerifactuPruebas' from WSDL 'c:\proyectos\VeriFactu2\SistemaFacturacion.wsdl'

Puedes colocar la URL:
https://prewww1.aeat.es/wlpl/TIKE-CO.../VerifactuSOAP
No elegir puerto
y dejar la linea del codigo a false:

res:= GetsfPortTypeVerifactu(false, '', HTTPRIO1 ).RegFac ....

pero entonces me devuelve:

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>

y Ahi estoy parado.

Como he dicho, mi intencion es modificar ese ejemplo y dejarlo funcional, a ver si alguien me da una mano.

Saludos !


pablog2k 30-09-2024 12:47:25

nosotros estamos usando lo mismo que utilizamos para el SII (que al final es muy parecido, SOAP, WSDL...etc)

Código Delphi [-]
direccion_envio := 'https://prewww1.aeat.es/wlpl/TIKE-CONT/ws/SistemaFacturacion/VerifactuSOAP';
SistemaFacturacion.RespuestaRegFactuSistemaFacturacion(Respuesta) := SistemaFacturacion.GetsfPortTypeVerifactu(false, direccion_envio, HTTPRIO1).RegFactuSistemaFacturacion(ARegFactuSistemaFacturacion);

Ya jugando con el beforeexecute y afterexecute del httprio te puedes guardar el xml que se envía y el xml que se recibe de respuesta.
EL objecto ARegFactuSistemaFacturacion es donde se han metido todos los nodos etc
Al componente HTTPRIO1 se le ha asignado previamente el certificado con el cual se envía

edari 30-09-2024 12:49:53

http://worldtimeapi.org/api/timezone/Europe/Madrid.txt
 
Buenas a todos

Yo tengo implementado el curl a la worldtimeapi para intentar proteger el cambio de fecha y hora en el sistema local...

Hago el típico

curl "http://worldtimeapi.org/api/timezone/Europe/Madrid.txt" > fichero.TXT

Yo lo tengo puesto en un proceso dentro del menú principal de mi ERP que está siempre activo y lanzándose ya que en mi cabeza sonaba como la mejor manera de protegerme para el tema de los flujos y que no cambien la fecha del ordenador...

El problema es que llega un momento que la llamada se "satura" y en vez de dar los datos que tiene que dar el fichero.TXT devuelve:

"Too Many Requests: please refer to our fair-use policy in the FAQs."

Lo cual obviamente no es bueno...


Cómo hacéis vosotros? En qué punto hacéis la llamada a ese curl? Solo en el momento de generar los xml o como yo desde el menú inicial y corriendo siempre?


Y de todas maneras, más importante qué donde lo hagáis es si esta llamada con envíos grandes se va a "saturar" siempre y nos va a dar más problemas que ventajas...


Puff


Gracias

Logan05 30-09-2024 12:53:16

Buenas tardes grupo,

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

espinete 30-09-2024 13:09:19

Muchas gracias. Fallo mío al no ver la similitud con el SII. Aún así, me hubiera costado llegar, así que gracias.

Obtengo el siguiente error al hacer el envío, y creo que es por el tipo de SOAP que utilizo o la forma de crear el XML:

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

No sé si habrá que hacer como con TicketBAI, que había que modificar manualmente el XML antes de enviarlo para que utilizara unos literales específicos y no el que genera Delphi?


Cita:

Empezado por pablog2k (Mensaje 557594)
nosotros estamos usando lo mismo que utilizamos para el SII (que al final es muy parecido, SOAP, WSDL...etc)

Código Delphi [-]
direccion_envio := 'https://prewww1.aeat.es/wlpl/TIKE-CONT/ws/SistemaFacturacion/VerifactuSOAP';
SistemaFacturacion.RespuestaRegFactuSistemaFacturacion(Respuesta) := SistemaFacturacion.GetsfPortTypeVerifactu(false, direccion_envio, HTTPRIO1).RegFactuSistemaFacturacion(ARegFactuSistemaFacturacion);

Ya jugando con el beforeexecute y afterexecute del httprio te puedes guardar el xml que se envía y el xml que se recibe de respuesta.
EL objecto ARegFactuSistemaFacturacion es donde se han metido todos los nodos etc
Al componente HTTPRIO1 se le ha asignado previamente el certificado con el cual se envía


seccion_31 30-09-2024 13:12:06

Cita:

Muchas gracias. Fallo mío al no ver la similitud con el SII. Aún así, me hubiera costado llegar, así que gracias.

Obtengo el siguiente error al hacer el envío, y creo que es por el tipo de SOAP que utilizo o la forma de crear el XML:

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

No sé si habrá que hacer como con TicketBAI, que había que modificar manualmente el XML antes de enviarlo para que utilizara unos literales específicos y no el que genera Delphi?
Estoy igual que Espinete

Si, igual se puede modificar el XML antes del envio, en el evento before.... es lo que igual me toca probar, pero hay foreros que estan enviando sin mas, si fueran tan amables ¿de publicar el metodo o algun resumen?.

Saludos !

espinete 30-09-2024 13:16:55

Yo tuve que importar el wsdl con la opción SOAP 1.2, porque con la opción "Automatic" no podía compilar.

¿Quizás sea por eso?

Estoy usando Delphi 11

pablog2k 30-09-2024 13:21:33

justo me ha pasado lo mismo hace poco, probablemente os haya pasado al importar las librerías desde delphi, elegir SOAP 1.2
tenéis que ir a la librería que se os ha generado , que seguramente ponga esto:

InvRegistry.RegisterInvokeOptions(TypeInfo(sfPortTypeVerifactu), ioSOAP12);
y hay que cambiarlo el ioSOAP12 por ioDocument

quiza hay que añadir alguna variable mas, os aconsejo hacer la importación eligiendo SOAP 1.1 de nuevo y ver las diferencias

espinete 30-09-2024 13:42:21

Entonces lo que dices es que al importar el wsdl es mejor usar la opción SOAP 1.1 en vez de la 1.2? O dices de importar la 1.2 pero cambiar luego cosas a mano en el .pas que se genera?

He importado como SOAP 1.1 pero no puedo compilar. En el .pas generado hay strings de más de 255 caracteres.

Podría resolverlo a mano editando el .pas, pero no sé si me estoy metiendo en un berenjenal innecesario y hay otra forma de hacerlo que no sea esa.




Cita:

Empezado por pablog2k (Mensaje 557600)
justo me ha pasado lo mismo hace poco, probablemente os haya pasado al importar las librerías desde delphi, elegir SOAP 1.2
tenéis que ir a la librería que se os ha generado , que seguramente ponga esto:

InvRegistry.RegisterInvokeOptions(TypeInfo(sfPortTypeVerifactu), ioSOAP12);
y hay que cambiarlo el ioSOAP12 por ioDocument

quiza hay que añadir alguna variable mas, os aconsejo hacer la importación eligiendo SOAP 1.1 de nuevo y ver las diferencias


pablog2k 30-09-2024 13:45:51

lo de la opción SOAP 1.1 lo digo por el problema que hemos tenido de las cabeceras, ya que el SOAP 1.1 te pone esta:
http://schemas.xmlsoap.org/soap/envelope/
y el 1.2 te pone esta:
http://www.w3.org/2003/05/soap-envelope
por lo que deduzco que hay que utilizar SOAP 1.1

Edit: Lo de los strings los puedes partir en 2 y luego unirlos.
Yo estoy probando con un 'mix', con la importación en 1.2 , pero modificando las cosas que comenté anteriormente para que ponga la cabecera SOAP correspondiente

seccion_31 30-09-2024 13:48:22

Cita:

justo me ha pasado lo mismo hace poco, probablemente os haya pasado al importar las librerías desde delphi, elegir SOAP 1.2
tenéis que ir a la librería que se os ha generado , que seguramente ponga esto:

InvRegistry.RegisterInvokeOptions(TypeInfo(sfPortTypeVerifactu), ioSOAP12);
y hay que cambiarlo el ioSOAP12 por ioDocument

quiza hay que añadir alguna variable mas, os aconsejo hacer la importación eligiendo SOAP 1.1 de nuevo y ver las diferencias
gracias pablog2k

he realizado este cambio y ahora tengo:

Cita:

Error al realizar el envío; (ERemotableException)-Codigo[4118].Error La direccion no se corresponde con el fichero de entrada.
la cabecera efectivamente ha cambiado a: <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">

antes indicaba esto: <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope" xmlns:xsd="http://www.w3.org/2001/XMLSchema"


Lo que no puedo es importar las unidades de verifactu, tal cual las puedes tener, ¿podrias x favor pablog2k colgar las unidades para ver si algun cambio mas nos impide enviar?

Saludos

antoine0 30-09-2024 13:54:43

Cita:

Empezado por seccion_31 (Mensaje 557603)
Error al realizar el envío; (ERemotableException)-Codigo[4118].Error La direccion no se corresponde con el fichero de entrada.

Este error suele salir si el titular del certificado pasado a servicio web es distinto del NIF indicado como emisor de la factura.
Cambia en tus pruebas el NIF de quien está facturando para ser el mismo que él del certficado, a ver si lo soluciona.

pablog2k 30-09-2024 13:58:17

justo me estaba pasando el mismo error, y creo que es por lo que comenta antoine0
voy a probar, creo que estoy usando un certificado de representante y se está liando...

VictorCasajuana 30-09-2024 13:58:35

xsd para validar la factura
 
Hola, con la documentación de hacienda estoy buscando un xsd donde aparezca todo el esquema de la factura a enviar, pero no lo encuentro, lo veo repartido entre varios y es confuso. Alguien lo ha encontrado o simplemente es así como lo tienen publicado?
Gracias!

espinete 30-09-2024 14:16:16

Atascado con el mismo error. El NIF que utilizo para el envío es el mismo que el del certificado.

Lo raro es que el error haga mención a "la dirección" :confused:

¿Podría poner alguien un XML que le haya funcionado, para ver las diferencias? Es probable que me falte algún campo/nodo por rellenar.

Hasta que a los de Hacienda no les de por pulir los mensajes de error, me temo que vamos a estar un tiempo así...

Cita:

Empezado por antoine0 (Mensaje 557604)
Este error suele salir si el titular del certificado pasado a servicio web es distinto del NIF indicado como emisor de la factura.
Cambia en tus pruebas el NIF de quien está facturando para ser el mismo que él del certficado, a ver si lo soluciona.


richidemola 30-09-2024 14:25:54

Alguien más que le de este error?

El valor del campo FechaHoraHusoGenRegistro no está dentro del umbral establecido sobre la fecha del sistema de la AEAT

Lo he comprobado y la hora es menor que la de hacienda, por ejemplo, esto es lo que aparece en mi xml: 2024-09-30T14:22:00+01:00

Y la hora de hacienda era esta cuando se envió 2024-09-30 14:22:37

Se supone que tenemos un margen de 5 minutos siempre y cuando la fecha y hora que lleve nuestro xml sea menor que la fecha y hora de hacienda.

Saludos.

seccion_31 30-09-2024 14:33:53

Segun dice google:

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

¿Podria ser que el certificado que uso es de una empresa en el SII, y por tanto no deje enviar?


gracias antoine0 , ya habia corregido el NIF, lo veo en el XML, en cabecera, y en IDEmisor correctamente, ademas he añadido el campo: Factura.RegistroAlta.NombreRazonEmisor con el nombre por si acaso.

Saludos !

espinete 30-09-2024 14:39:39

Ni el NIF ni el certificado que yo utilizo están dados de alta en el SII, así que el motivo del error debería ser otro.

Cita:

Empezado por seccion_31 (Mensaje 557609)
Segun dice google:

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

¿Podria ser que el certificado que uso es de una empresa en el SII, y por tanto no deje enviar?


gracias antoine0 , ya habia corregido el NIF, lo veo en el XML, en cabecera, y en IDEmisor correctamente, ademas he añadido el campo: Factura.RegistroAlta.NombreRazonEmisor con el nombre por si acaso.

Saludos !


seccion_31 30-09-2024 14:49:50

Cita:

Empezado por espinete (Mensaje 557611)
Ni el NIF ni el certificado que yo utilizo están dados de alta en el SII, así que el motivo del error debería ser otro.

entonces no queda otra de momento,

¿que seguir mirando en el XML que generamos?

¿o donde lo estamos enviando?

Saludos !

espinete 30-09-2024 14:58:08

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

pablog2k 30-09-2024 15:55:36

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

Os aconsejo guardar el xml que se está enviando para ver posibles errores (ya que la respuesta que da hacienda es muy ambigua).
En mi caso, que me daba el mismo error que a vosotros , era porque se me estaba duplicando el nodo RegFactuSistemaFacturacion.
Tras mucho bucear por código antiguo del SII, he visto que poniendo esto pero adaptado a verifactu:

RemClassRegistry.RegisterSerializeOptions(RegFactuSistemaFacturacion, [xoLiteralParam]);

justo debajo de
RemClassRegistry.RegisterXSClass(RegFactuSistemaFacturacion, 'https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd', 'RegFactuSistemaFacturacion');

se me ha arreglado.
Ahora me da otro error, pero ya he pasado esa barrera

sglorka 30-09-2024 16:57:11

A ver, pongo un Xml con dos registros de facturación que los acepta correctamente VeriFactu. He sustituido datos personales, pero deben ser reales para las pruebas por si a alguien le parce útil. Veo que hay gente solicitándolo

Código PHP:

<?xml version="1.0" encoding="utf-8"?>
<RegFactuSistemaFacturacion xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <Cabecera xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
    <ObligadoEmision>
      <NombreRazon>EMISOR DE FACTURA</NombreRazon>
      <NIF>XXXXXXXXX</NIF>
    </ObligadoEmision>
    <RemisionVoluntaria>
      <Incidencia>N</Incidencia>
    </RemisionVoluntaria>
  </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>XXXXXXXXX</IDEmisorFactura>
        <NumSerieFactura>101-1509</NumSerieFactura>
        <FechaExpedicionFactura>30-09-2024</FechaExpedicionFactura>
      </IDFactura>
      <NombreRazonEmisor xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">EMISOR DE FACTURA</NombreRazonEmisor>
      <Subsanacion xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">S</Subsanacion>
      <RechazoPrevio xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">N</RechazoPrevio>
      <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">30-09-2024</FechaOperacion>
      <DescripcionOperacion xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">Entrega de Bienes( PRENSA, Sin Plomo 95 )</DescripcionOperacion>
      <Destinatarios xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
        <IDDestinatario>
          <NombreRazon>DESTINATARIO DE FACTURA</NombreRazon>
          <NIF>YYYYYYYYY</NIF>
        </IDDestinatario>
      </Destinatarios>
      <Desglose xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
        <DetalleDesglose>
          <Impuesto>01</Impuesto>
          <ClaveRegimen>01</ClaveRegimen>
          <CalificacionOperacion>S1</CalificacionOperacion>
          <TipoImpositivo>4.00</TipoImpositivo>
          <BaseImponibleOimporteNoSujeto>1.73</BaseImponibleOimporteNoSujeto>
          <CuotaRepercutida>0.07</CuotaRepercutida>
        </DetalleDesglose>
        <DetalleDesglose>
          <Impuesto>01</Impuesto>
          <ClaveRegimen>01</ClaveRegimen>
          <CalificacionOperacion>S1</CalificacionOperacion>
          <TipoImpositivo>21.00</TipoImpositivo>
          <BaseImponibleOimporteNoSujeto>13.63</BaseImponibleOimporteNoSujeto>
          <CuotaRepercutida>2.86</CuotaRepercutida>
        </DetalleDesglose>
      </Desglose>
      <CuotaTotal xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">2.93</CuotaTotal>
      <ImporteTotal xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">18.29</ImporteTotal>
      <Encadenamiento xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
        <RegistroAnterior>
          <IDEmisorFactura>XXXXXXXXX</IDEmisorFactura>
          <NumSerieFactura>101-1510</NumSerieFactura>
          <FechaExpedicionFactura>28-09-2024</FechaExpedicionFactura>
          <Huella>BF127598CAF5DC54E7083C32FC3310EF898CFAD30ABAA41F56F6B74BE854D744</Huella>
        </RegistroAnterior>
      </Encadenamiento>
      <SistemaInformatico xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
        <NombreRazon>PRODUCTOR</NombreRazon>
        <NIF>XXXXXXXXX</NIF>
        <NombreSistemaInformatico>SOFTWARE DE GESTIÓN TEIDEVF</NombreSistemaInformatico>
        <IdSistemaInformatico>SG</IdSistemaInformatico>
        <Version>20230002</Version>
        <NumeroInstalacion>240801082149</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-09-30T12:41:14+01: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">081BE7A7388679BB8E4A602CF9DBA46738A6484B92FFB9A5B5590E68955FE648</Huella>
    </RegistroAlta>
  </RegistroFactura>
  <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>XXXXXXXXX</IDEmisorFactura>
        <NumSerieFactura>101-1511</NumSerieFactura>
        <FechaExpedicionFactura>30-09-2024</FechaExpedicionFactura>
      </IDFactura>
      <NombreRazonEmisor xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">EMISOR DE FACTURA</NombreRazonEmisor>
      <Subsanacion xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">N</Subsanacion>
      <RechazoPrevio xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">N</RechazoPrevio>
      <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">30-09-2024</FechaOperacion>
      <DescripcionOperacion xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">Entrega de Bienes( PRENSA, Sin Plomo 95 )</DescripcionOperacion>
      <Destinatarios xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
        <IDDestinatario>
          <NombreRazon>DESTINATARIO DE FACTURA 2</NombreRazon>
          <NIF>JJJJJJJJJ</NIF>
        </IDDestinatario>
      </Destinatarios>
      <Desglose xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
        <DetalleDesglose>
          <Impuesto>01</Impuesto>
          <ClaveRegimen>01</ClaveRegimen>
          <CalificacionOperacion>S1</CalificacionOperacion>
          <TipoImpositivo>4.00</TipoImpositivo>
          <BaseImponibleOimporteNoSujeto>3.46</BaseImponibleOimporteNoSujeto>
          <CuotaRepercutida>0.14</CuotaRepercutida>
        </DetalleDesglose>
        <DetalleDesglose>
          <Impuesto>01</Impuesto>
          <ClaveRegimen>01</ClaveRegimen>
          <CalificacionOperacion>S1</CalificacionOperacion>
          <TipoImpositivo>21.00</TipoImpositivo>
          <BaseImponibleOimporteNoSujeto>1.36</BaseImponibleOimporteNoSujeto>
          <CuotaRepercutida>0.29</CuotaRepercutida>
        </DetalleDesglose>
      </Desglose>
      <CuotaTotal xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">0.43</CuotaTotal>
      <ImporteTotal xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">5.25</ImporteTotal>
      <Encadenamiento xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
        <RegistroAnterior>
          <IDEmisorFactura>XXXXXXXXX</IDEmisorFactura>
          <NumSerieFactura>101-1510</NumSerieFactura>
          <FechaExpedicionFactura>28-09-2024</FechaExpedicionFactura>
          <Huella>4446B4050F7A3A9932C46762ECCF1304BADAD940B20ACDE329272AA072B39090</Huella>
        </RegistroAnterior>
      </Encadenamiento>
      <SistemaInformatico xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
        <NombreRazon>PRODUCTOR</NombreRazon>
        <NIF>XXXXXXXXX</NIF>
        <NombreSistemaInformatico>SOFTWARE DE GESTIÓN TEIDEVF</NombreSistemaInformatico>
        <IdSistemaInformatico>SG</IdSistemaInformatico>
        <Version>20230002</Version>
        <NumeroInstalacion>240801082149</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-09-30T15:50:37+01: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">AE28EEF9D2B2B58BE4CC1C2404CFD839D70E8384CB15EC35EB3AC47341DFA22A</Huella>
    </RegistroAlta>
  </RegistroFactura>
</RegFactuSistemaFacturacion>


jalvar28 30-09-2024 17:02:57

Problema factura de anulación
 
Buenas tardes,

Estoy intentando anular una factura, y aunque el sistema me indica que el proceso se ha completado correctamente al validarla, el código QR muestra que la factura sigue existiendo "prewww2.aeat.es/wlpl/TIKE-CONT/ValidarQ". ¿Está funcionando correctamente el sistema de anulación de facturas?

Al intentar introducir la misma factura de nuevo, el sistema indica que ya existe, mientras que el proceso de subsanación funciona sin problemas.

CarlosArjonomia 30-09-2024 17:09:18

Puede ser una buena idea crear una solicitud con Postman que funcione. Tendríamos una referencia para que nos sirva a todos.

Poco puedo aportar de momento ya que estoy muy verde.

Neftali [Germán.Estévez] 30-09-2024 17:34:05

Cita:

Empezado por jalvar28 (Mensaje 557618)

Estoy intentando anular una factura, y aunque el sistema me indica que el proceso se ha completado correctamente al validarla, el código QR muestra que la factura sigue existiendo "prewww2.aeat.es/wlpl/TIKE-CONT/ValidarQ". ¿Está funcionando correctamente el sistema de anulación de facturas?
Al intentar introducir la misma factura de nuevo, el sistema indica que ya existe, mientras que el proceso de subsanación funciona sin problemas.

Yo creo que esa consulta deberías enviarla a la AEAT.
Si te dice que la anulación ha ido bien, no tiene sentido que luego se puede modificar ni consultar (vía QR).
Lo mismo ese caso todavía no lo tienen contemplado.

jalvar28 30-09-2024 17:36:54

Cita:

Empezado por Neftali [Germán.Estévez] (Mensaje 557620)
Yo creo que esa consulta deberías enviarla a la AEAT.
Si te dice que la anulación ha ido bien, no tiene sentido que luego se puede modificar ni consultar (vía QR).
Lo mismo ese caso todavía no lo tienen contemplado.


Gracias por tu respuesta, es por si alguien le había pasado lo mismo.

sglorka 30-09-2024 18:13:03

Cita:

Empezado por jalvar28 (Mensaje 557618)
Buenas tardes,

Estoy intentando anular una factura, y aunque el sistema me indica que el proceso se ha completado correctamente al validarla, el código QR muestra que la factura sigue existiendo "prewww2.aeat.es/wlpl/TIKE-CONT/ValidarQ". ¿Está funcionando correctamente el sistema de anulación de facturas?

Al intentar introducir la misma factura de nuevo, el sistema indica que ya existe, mientras que el proceso de subsanación funciona sin problemas.

Yo creo que la respuesta que te da el servicio es correcta. Imagina que alguien la escanea y el sistema le dice que "no existe" por que la anulaste, podrías pensar que nunca fue subida a la Aeat. Quizás la información debería venir acompañada por una coletilla que diga "Anulada".

jalvar28 30-09-2024 18:26:26

Cita:

Empezado por sglorka (Mensaje 557623)
Yo creo que la respuesta que te da el servicio es correcta. Imagina que alguien la escanea y el sistema le dice que "no existe" por que la anulaste, podrías pensar que nunca fue subida a la Aeat. Quizás la información debería venir acompañada por una coletilla que diga "Anulada".

Si, también he pensado eso, pero como tu bien dices faltaría la coletilla de Anulada. Pero luego de anularla me deja subsanar la factura (modificando las cantidades). Me da que está todo un poco verde.

En otro post también he comentado que te deja meter como encadenamiento facturas que ni siquiera existen. Entiendo que en unas semanas lo irán puliendo.

unomasmas 30-09-2024 18:33:34

Cita:

Empezado por David M (Mensaje 557086)
Me respondo a mí mismo, funciona perfectamente para firmar aplicaciones. En lugar del dispositivo físico al que obligan últimamente, te descargas una app en el móvil donde te generan un token cuando vayas a realizar la firma y deja la sesión iniciada durante 2 horas para firmar archivos de forma ilimitada.
Tenedlo en cuenta, cuesta menos de 100€ al año en la modalidad de 3 años.

Saludos,
David M.

¿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?

sglorka 30-09-2024 18:39:01

Cita:

Empezado por jalvar28 (Mensaje 557624)
Si, también he pensado eso, pero como tu bien dices faltaría la coletilla de Anulada. Pero luego de anularla me deja subsanar la factura (modificando las cantidades). Me da que está todo un poco verde.

En otro post también he comentado que te deja meter como encadenamiento facturas que ni siquiera existen. Entiendo que en unas semanas lo irán puliendo.

Luego de anularla, es posible que puedas emitir subsanaciones porque el registro fue Aceptado Parcialmente con errores, por ejemplo, calculaste mal la huella y debes emitir una subsanación. No puedes modificar cantidades en la anulación (no existen)

newtron 30-09-2024 19:32:09

A ver que yo me estoy dispersando... pregunta:


¿Hay alguien que haya generado y enviado con delphi factura/s sin tener que "mangonear" previamente el .XML?. En caso afirmativo.. ¿podría poner un ejemplo el código? Porque parece que hay gente por aquí que lo ha conseguido.



Gracias y un saludo.

antoine0 30-09-2024 19:59:48

Cita:

Empezado por richidemola (Mensaje 557608)
El valor del campo FechaHoraHusoGenRegistro no está dentro del umbral establecido sobre la fecha del sistema de la AEAT
Lo he comprobado y la hora es menor que la de hacienda, por ejemplo, esto es lo que aparece en mi xml: 2024-09-30T14:22:00+01:00
Y la hora de hacienda era esta cuando se envió 2024-09-30 14:22:37

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

richidemola 30-09-2024 21:58:56

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 perdona, pero no entiendo que yo sepa en España el horario es más uno, no más dos por mucho horario de verano que sea el horario de verano es en todo el mundo. Entonces yo creo que es más uno, no más dos, pero bueno, de todas formas. Mañana probaré con más dos, a ver qué pasa.

seccion_31 01-10-2024 07:20:15

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.

seccion_31 01-10-2024 07:38:50

mientras espero a la AEAT mirando rapido lo que indica pablog2k:

Con este codigo unicamente. (si no estoy mirando muy mal)


Código:

      veriFactu:=RegFactuSistemaFacturacion.Create;

      veriFactu.Cabecera  :=cabecera.Create;
      veriFactu.Cabecera.ObligadoEmision  :=PersonaFisicaJuridicaESType.Create;
      veriFactu.Cabecera.ObligadoEmision.NombreRazon  :=editEmisor.Text;
      veriFactu.Cabecera.ObligadoEmision.NIF  :=editNIFEmisor.Text;


Sin linea alguna de factura compone esto:

Código:

-<SOAP-ENV:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">

-<SOAP-ENV:Body xmlns:NS1="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd">

-<RegFactuSistemaFacturacion xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SistemaFacturacion.wsdl">

-<RegFactuSistemaFacturacion>

-<Cabecera xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">

-<ObligadoEmision>

<NombreRazon>xxxxxxx</NombreRazon>

<NIF>99999</NIF>

</ObligadoEmision>

</Cabecera>

</RegFactuSistemaFacturacion>

</RegFactuSistemaFacturacion>

</SOAP-ENV:Body>

</SOAP-ENV:Envelope>

Si os fijais hay dos: RegFactuSistemaFacturacion pero NO soy capaz de encontrar en el codigo como los genero, o si es normal.

richidemola 01-10-2024 07:57:53

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

Existe algún sitio donde consultar la franja horaria en tiempo real?

Saludos y gracias.

pablog2k 01-10-2024 08:07:07

Cita:

Empezado por seccion_31 (Mensaje 557633)
mientras espero a la AEAT mirando rapido lo que indica pablog2k:

Con este codigo unicamente. (si no estoy mirando muy mal)


Código:

      veriFactu:=RegFactuSistemaFacturacion.Create;

      veriFactu.Cabecera  :=cabecera.Create;
      veriFactu.Cabecera.ObligadoEmision  :=PersonaFisicaJuridicaESType.Create;
      veriFactu.Cabecera.ObligadoEmision.NombreRazon  :=editEmisor.Text;
      veriFactu.Cabecera.ObligadoEmision.NIF  :=editNIFEmisor.Text;


Sin linea alguna de factura compone esto:

Código:

-<SOAP-ENV:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">

-<SOAP-ENV:Body xmlns:NS1="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd">

-<RegFactuSistemaFacturacion xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SistemaFacturacion.wsdl">

-<RegFactuSistemaFacturacion>

-<Cabecera xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">

-<ObligadoEmision>

<NombreRazon>xxxxxxx</NombreRazon>

<NIF>99999</NIF>

</ObligadoEmision>

</Cabecera>

</RegFactuSistemaFacturacion>

</RegFactuSistemaFacturacion>

</SOAP-ENV:Body>

</SOAP-ENV:Envelope>

Si os fijais hay dos: RegFactuSistemaFacturacion pero NO soy capaz de encontrar en el codigo como los genero, o si es normal.

no es lo normal, me pasaba lo mismo.
tienes que ir al .pas que se ha generado de importar el WSDL, y añadir esta linea al final del todo:
RemClassRegistry.RegisterSerializeOptions(RegFactuSistemaFacturacion, [xoLiteralParam]);
al menos a mi con eso se me solucionó


La franja horaria es GMT +2. Ahora son las 07:30:36.

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