Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Envío de registros y sus respuestas (https://www.clubdelphi.com/foros/forumdisplay.php?f=66)
-   -   Ejemplo Consulta AEAT (https://www.clubdelphi.com/foros/showthread.php?t=97080)

ermendalenda 28-01-2025 08:58:31

Joder es una gran putada lo de la versión. Si cambias de versión hay que tenerlo en cuenta para las consultas, así que me obliga a tener un historial de todas las versiones/Fecha de funcionamiento o al menos de todas las versiones entre las fechas que consulto.

ermendalenda 28-01-2025 09:28:00

Os pongo aquí las 4 consultas existentes envueltas en el Soap y con prefijos para facilitar lecturas, están las 4 probadas, si se me escapa alguna avisad:

Consulta 1 día
Cita:

<?xml version="1.0" encoding="UTF-8"?>
<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/ConsultaLR.xsd"
xmlns:sum1="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
<soapenv:Header />
<soapenv:Body>
<sum:ConsultaFactuSistemaFacturacion>
<sum:Cabecera>
<sum1:IDVersion>1.0</sum1:IDVersion>
<sum1:ObligadoEmision>
<sum1:NombreRazon>NOMBRE</sum1:NombreRazon>
<sum1:NIF>00000006Y</sum1:NIF>
</sum1:ObligadoEmision>
</sum:Cabecera>
<sum:FiltroConsulta>

<sum:PeriodoImputacion>
<sum1:Ejercicio>2025</sum1:Ejercicio>
<sum1:Periodo>01</sum1:Periodo>
</sum:PeriodoImputacion>
<sum:FechaExpedicionFactura>
<sum1:FechaExpedicionFactura>23-01-2025</sum1:FechaExpedicionFactura>
</sum:FechaExpedicionFactura>
<sum:SistemaInformatico>
<sum1:NombreRazon>EMPRESA SISTEMA</sum1:NombreRazon>
<sum1:NIF>X00000000</sum1:NIF>
<sum1:NombreSistemaInformatico>VERIFACTU0000PRUEBA</sum1:NombreSistemaInformatico>
<sum1:IdSistemaInformatico>01</sum1:IdSistemaInformatico>
<sum1:Version>1.0.03</sum1:Version>
<sum1:NumeroInstalacion>XXXXXXXX NCentro:53 NTPV:1</sum1:NumeroInstalacion>
<sum1:TipoUsoPosibleSoloVerifactu>S</sum1:TipoUsoPosibleSoloVerifactu>
<sum1:TipoUsoPosibleMultiOT>N</sum1:TipoUsoPosibleMultiOT>
<sum1:IndicadorMultiplesOT>N</sum1:IndicadorMultiplesOT>
</sum:SistemaInformatico>
</sum:FiltroConsulta>
</sum:ConsultaFactuSistemaFacturacion>
</soapenv:Body>
</soapenv:Envelope>

Consulta fecha desde Hasta (mismo periodo)
Cita:

<?xml version="1.0" encoding="UTF-8"?>
<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/ConsultaLR.xsd"
xmlns:sum1="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
<soapenv:Header />
<soapenv:Body>
<sum:ConsultaFactuSistemaFacturacion>
<sum:Cabecera>
<sum1:IDVersion>1.0</sum1:IDVersion>
<sum1:ObligadoEmision>
<sum1:NombreRazon>NOMBRE</sum1:NombreRazon>
<sum1:NIF>00000006Y</sum1:NIF>
</sum1:ObligadoEmision>
</sum:Cabecera>
<sum:FiltroConsulta>

<sum:PeriodoImputacion>
<sum1:Ejercicio>2025</sum1:Ejercicio>
<sum1:Periodo>01</sum1:Periodo>
</sum:PeriodoImputacion>
<sum:FechaExpedicionFactura>
<sum1:RangoFechaExpedicion>
<sum1:Desde>15-01-2025</sum1:Desde>
<sum1:Hasta>16-01-2025</sum1:Hasta>
</sum1:RangoFechaExpedicion>

</sum:FechaExpedicionFactura>
<sum:SistemaInformatico>
<sum1:NombreRazon>EMPRESA SISTEMA</sum1:NombreRazon>
<sum1:NIF>X00000000</sum1:NIF>
<sum1:NombreSistemaInformatico>VERIFACTU0000PRUEBA</sum1:NombreSistemaInformatico>
<sum1:IdSistemaInformatico>01</sum1:IdSistemaInformatico>
<sum1:Version>1.0.03</sum1:Version>
<sum1:NumeroInstalacion>XXXXXXXX NCentro:53 NTPV:1</sum1:NumeroInstalacion>
<sum1:TipoUsoPosibleSoloVerifactu>S</sum1:TipoUsoPosibleSoloVerifactu>
<sum1:TipoUsoPosibleMultiOT>N</sum1:TipoUsoPosibleMultiOT>
<sum1:IndicadorMultiplesOT>N</sum1:IndicadorMultiplesOT>
</sum:SistemaInformatico>
</sum:FiltroConsulta>
</sum:ConsultaFactuSistemaFacturacion>
</soapenv:Body>
</soapenv:Envelope>


Consulta periodo completo
Cita:

<?xml version="1.0" encoding="UTF-8"?>
<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/ConsultaLR.xsd"
xmlns:sum1="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
<soapenv:Header />
<soapenv:Body>
<sum:ConsultaFactuSistemaFacturacion>
<sum:Cabecera>
<sum1:IDVersion>1.0</sum1:IDVersion>
<sum1:ObligadoEmision>
<sum1:NombreRazon>NOMBRE</sum1:NombreRazon>
<sum1:NIF>00000006Y</sum1:NIF>
</sum1:ObligadoEmision>
</sum:Cabecera>
<sum:FiltroConsulta>

<sum:PeriodoImputacion>
<sum1:Ejercicio>2025</sum1:Ejercicio>
<sum1:Periodo>01</sum1:Periodo>
</sum:PeriodoImputacion>
<sum:SistemaInformatico>
<sum1:NombreRazon>EMPRESA SISTEMA</sum1:NombreRazon>
<sum1:NIF>X00000000</sum1:NIF>
<sum1:NombreSistemaInformatico>VERIFACTU0000PRUEBA</sum1:NombreSistemaInformatico>
<sum1:IdSistemaInformatico>01</sum1:IdSistemaInformatico>
<sum1:Version>1.0.03</sum1:Version>
<sum1:NumeroInstalacion>XXXXXXXX NCentro:53 NTPV:1</sum1:NumeroInstalacion>
<sum1:TipoUsoPosibleSoloVerifactu>S</sum1:TipoUsoPosibleSoloVerifactu>
<sum1:TipoUsoPosibleMultiOT>N</sum1:TipoUsoPosibleMultiOT>
<sum1:IndicadorMultiplesOT>N</sum1:IndicadorMultiplesOT>
</sum:SistemaInformatico>
</sum:FiltroConsulta>
</sum:ConsultaFactuSistemaFacturacion>
</soapenv:Body>
</soapenv:Envelope>

Consulta Periodo desde un registro, llamado Paginación (Ojo!! orden descendente de envio, desde ese registro hacia atrás)
Esta consulta se usa por ejemplo cuando en un periodo se tienen mas de 10.000 registros y tienes que hacer la consulta por partes o simplemente por que quieres que te devuelva desde un registro hacia atrás de ese periodo.
Cita:

<?xml version="1.0" encoding="UTF-8"?>
<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/ConsultaLR.xsd"
xmlns:sum1="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
<soapenv:Header />
<soapenv:Body>
<sum:ConsultaFactuSistemaFacturacion>
<sum:Cabecera>
<sum1:IDVersion>1.0</sum1:IDVersion>
<sum1:ObligadoEmision>
<sum1:NombreRazon>NOMBRE</sum1:NombreRazon>
<sum1:NIF>00000006Y</sum1:NIF>
</sum1:ObligadoEmision>
</sum:Cabecera>
<sum:FiltroConsulta>

<sum:PeriodoImputacion>
<sum1:Ejercicio>2025</sum1:Ejercicio>
<sum1:Periodo>01</sum1:Periodo>
</sum:PeriodoImputacion>
<sum:SistemaInformatico>
<sum1:NombreRazon>EMPRESA SISTEMA</sum1:NombreRazon>
<sum1:NIF>X00000000</sum1:NIF>
<sum1:NombreSistemaInformatico>VERIFACTU0000PRUEBA</sum1:NombreSistemaInformatico>
<sum1:IdSistemaInformatico>01</sum1:IdSistemaInformatico>
<sum1:Version>1.0.03</sum1:Version>
<sum1:NumeroInstalacion>XXXXXXXX NCentro:53 NTPV:1</sum1:NumeroInstalacion>
<sum1:TipoUsoPosibleSoloVerifactu>S</sum1:TipoUsoPosibleSoloVerifactu>
<sum1:TipoUsoPosibleMultiOT>N</sum1:TipoUsoPosibleMultiOT>
<sum1:IndicadorMultiplesOT>N</sum1:IndicadorMultiplesOT>
</sum:SistemaInformatico>
<sum:ClavePaginacion>
<sum1:IDEmisorFactura>00000006Y</sum1:IDEmisorFactura>
<sum1:NumSerieFactura>53.1.1-220</sum1:NumSerieFactura>
<sum1:FechaExpedicionFactura>23-01-2025</sum1:FechaExpedicionFactura>
</sum:ClavePaginacion>
</sum:FiltroConsulta>
</sum:ConsultaFactuSistemaFacturacion>
</soapenv:Body>
</soapenv:Envelope>


Faneka 28-01-2025 10:10:18

Cita:

Empezado por ermendalenda (Mensaje 561474)
Joder es una gran putada lo de la versión. Si cambias de versión hay que tenerlo en cuenta para las consultas, así que me obliga a tener un historial de todas las versiones/Fecha de funcionamiento o al menos de todas las versiones entre las fechas que consulto.

Yo en la consulta no mando nada de la versión, hago una consulta directamente filtrando las fechas del periodo y listo. Me da igual con que versión se hizo el envio. No se si me estoy perdiendo algo. ....

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:con="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/ConsultaLR.xsd"
xmlns:sum="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
<soapenv:Header/>
<soapenv:Body>
<con:ConsultaFactuSistemaFacturacion>
<con:Cabecera>
<sum:IDVersion>1.0</sum:IDVersion>
<sum:ObligadoEmision>
<sum:NombreRazon>EMPRESA</sum:NombreRazon>
<sum:NIF>MI NIF</sum:NIF>
</sum:ObligadoEmision>
</con:Cabecera>
<con:FiltroConsulta>
<con:PeriodoImputacion>
<sum:Ejercicio>2025</sum:Ejercicio>
<sum:Periodo>01</sum:Periodo>
</con:PeriodoImputacion>
<con:FechaExpedicionFactura>
<sum:RangoFechaExpedicion>
<sum:Desde>01-01-2025</sum:Desde>
<sum:Hasta>31-01-2025</sum:Hasta>
</sum:RangoFechaExpedicion>
</con:FechaExpedicionFactura>
</con:FiltroConsulta>
</con:ConsultaFactuSistemaFacturacion>
</soapenv:Body></soapenv:Envelope>

ermendalenda 28-01-2025 11:30:48

Cita:

Empezado por Faneka (Mensaje 561478)
Yo en la consulta no mando nada de la versión, hago una consulta directamente filtrando las fechas del periodo y listo. Me da igual con que versión se hizo el envio. No se si me estoy perdiendo algo. ....

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:con="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/ConsultaLR.xsd"
xmlns:sum="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
<soapenv:Header/>
<soapenv:Body>
<con:ConsultaFactuSistemaFacturacion>
<con:Cabecera>
<sum:IDVersion>1.0</sum:IDVersion>
<sum:ObligadoEmision>
<sum:NombreRazon>EMPRESA</sum:NombreRazon>
<sum:NIF>MI NIF</sum:NIF>
</sum:ObligadoEmision>
</con:Cabecera>
<con:FiltroConsulta>
<con:PeriodoImputacion>
<sum:Ejercicio>2025</sum:Ejercicio>
<sum:Periodo>01</sum:Periodo>
</con:PeriodoImputacion>
<con:FechaExpedicionFactura>
<sum:RangoFechaExpedicion>
<sum:Desde>01-01-2025</sum:Desde>
<sum:Hasta>31-01-2025</sum:Hasta>
</sum:RangoFechaExpedicion>
</con:FechaExpedicionFactura>
</con:FiltroConsulta>
</con:ConsultaFactuSistemaFacturacion>
</soapenv:Body></soapenv:Envelope>

Oleee
Han permitido entonces pedir por cifs sin filtros de SIF
Cuabdo les hice la consulta no era posible. Se ve que lo repensaron
Gracias

ermendalenda 28-01-2025 12:42:33

No sé si estoy interpretando bien el nodo "Contraparte", o sea, puedo consultar todas las facturas enviadas a verifactu al cual el O.T. del programa es el destinatario.
Es correcto?
Cita:

Contraparte del NIF de la cabecera que realiza la consulta.
Obligado si la cosulta la realiza el Destinatario de los registros de facturacion.
Destinatario si la cosulta la realiza el Obligado dde los registros de facturacion.

Faneka 28-01-2025 13:13:35

Se puede consultar con el nodo contraparte las facturas que hayas emitido a un cliente en concreto

Yo lo tengo añadido de esta forma (es en visual foxpro 9), pido en pantalla el nombre y el nif del cliente que quiero ver las facturas subidas:

IF NOT EMPTY(THISFORM.XCONSULTACLIENTE)
_CONSULTAVF=_CONSULTAVF+"<con:Contraparte>"

_CONSULTAVF=_CONSULTAVF+"<sum:NombreRazon>"+thisform.XCONSULTANOMBRE+"</sum:NombreRazon>"
_CONSULTAVF=_CONSULTAVF+"<sum:NIF>"+THISFORM.XCONSULTANIF+"</sum:NIF>"

_CONSULTAVF=_CONSULTAVF+"</con:Contraparte>"
ENDIF

bmfranky 29-01-2025 15:14:22

Cita:

Empezado por Faneka (Mensaje 561478)
Yo en la consulta no mando nada de la versión, hago una consulta directamente filtrando las fechas del periodo y listo. Me da igual con que versión se hizo el envio. No se si me estoy perdiendo algo. ....

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:con="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/ConsultaLR.xsd"
xmlns:sum="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
<soapenv:Header/>
<soapenv:Body>
<con:ConsultaFactuSistemaFacturacion>
<con:Cabecera>
<sum:IDVersion>1.0</sum:IDVersion>
<sum:ObligadoEmision>
<sum:NombreRazon>EMPRESA</sum:NombreRazon>
<sum:NIF>MI NIF</sum:NIF>
</sum:ObligadoEmision>
</con:Cabecera>
<con:FiltroConsulta>
<con:PeriodoImputacion>
<sum:Ejercicio>2025</sum:Ejercicio>
<sum:Periodo>01</sum:Periodo>
</con:PeriodoImputacion>
<con:FechaExpedicionFactura>
<sum:RangoFechaExpedicion>
<sum:Desde>01-01-2025</sum:Desde>
<sum:Hasta>31-01-2025</sum:Hasta>
</sum:RangoFechaExpedicion>
</con:FechaExpedicionFactura>
</con:FiltroConsulta>
</con:ConsultaFactuSistemaFacturacion>
</soapenv:Body></soapenv:Envelope>

Cita:

Empezado por ermendalenda (Mensaje 561483)
Oleee
Han permitido entonces pedir por cifs sin filtros de SIF
Cuabdo les hice la consulta no era posible. Se ve que lo repensaron
Gracias

Pues si, han cambiado la forma de pedir la informacion, sin avisar, ademas se puede pedir que notifiquen que version subio los registros...

Tendre que revisar de nuevo el codigo de consulta.

Jarogo08 10-02-2025 09:59:14

Buenas a todos

¿y puedo hacer una consulta por fechas de periodos o incluso ejercicios distintos? Porque me exige poner el ejercicio y periodo.
Por ejemplo, del "15/12/2024" al "15/01/2025".

Saludos!

bmfranky 10-02-2025 12:38:06

Cita:

Empezado por Jarogo08 (Mensaje 561868)
Buenas a todos

¿y puedo hacer una consulta por fechas de periodos o incluso ejercicios distintos? Porque me exige poner el ejercicio y periodo.
Por ejemplo, del "15/12/2024" al "15/01/2025".

Saludos!

Hola, no, por la forma de la consulta que han ideado, has de indicar el periodo exacto tu, si necesitas varios periodos, has de montar tu lo que necesitas a partir del resultado de varias consultas, tantas como periodos distintos necesites, mientras no cambien , la forma de realizar la consulta, es la unica solucion.

En tu ejemplo deverias realizar una contulta por fechas del 15/12/2024 al 31/12/2024 y otra del 1 al 15 de enero y juntarlas en el informe que presentes.

Jarogo08 10-02-2025 12:55:01

Cita:

Empezado por bmfranky (Mensaje 561880)
Hola, no, por la forma de la consulta que han ideado, has de indicar el periodo exacto tu, si necesitas varios periodos, has de montar tu lo que necesitas a partir del resultado de varias consultas, tantas como periodos distintos necesites, mientras no cambien , la forma de realizar la consulta, es la unica solucion.

En tu ejemplo deverias realizar una contulta por fechas del 15/12/2024 al 31/12/2024 y otra del 1 al 15 de enero y juntarlas en el informe que presentes.


Muchas gracias por la respuesta bmfranky


Pues vaya caca de sistema que han ideado, han quedado a gusto! en fin, habrá que plantearlo como dices y hacer varias consultas y juntar los resultados

bmfranky 10-02-2025 15:05:18

Cita:

Empezado por Jarogo08 (Mensaje 561883)
Muchas gracias por la respuesta bmfranky


Pues vaya caca de sistema que han ideado, han quedado a gusto! en fin, habrá que plantearlo como dices y hacer varias consultas y juntar los resultados

Hola, es que segun contestaron esto solo se ha de usar en momento puntuales, no como sistema de consulta, quieren que se use por ejemplo si cayo tu systema, ver que has de restaurar y si te falta algo o no.
*Elmendalenda hizo la consulta en su dia...

Jarogo08 10-02-2025 16:26:13

Buenas de nuevo. Sólo confirmar que tiene que ser como indica bmfranky, periodo a periodo. Esta es la respuesta de la AEAT:

Cita:

Tal y como comenta, la consulta debe ser entre un rango de fechas del periodo seleccionado. Las consultas de registros de facturación informados se realizan por ejercicio/periodo “de imputación”, dato obtenido a partir de la fecha de operación o en su defecto de la fecha de expedición. Las consultas responderán con un máximo de 10.000 registros. Si hay más datos pendientes en la respuesta, habrá que invocar al servicio de forma paginada (Ver apartado 6.4.3 Consulta paginada del documento de descripción del servicio web) realizando nuevas consultas con la identificación del último registro obtenido, para obtener los siguientes registros ordenados por fecha de presentación.

ermendalenda 11-02-2025 08:07:14

Cita:

Empezado por Jarogo08 (Mensaje 561891)
Buenas de nuevo. Sólo confirmar que tiene que ser como indica bmfranky, periodo a periodo. Esta es la respuesta de la AEAT:

Desafortunadamente sí.

Sandy656 03-06-2025 19:19:40

Atascado en la consulta
 
Hola.
He seguido el ejemplo de la demo de verifactu que funciona de maravilla para el envío de facturas. Pero al intentar hacer lo mismo con la consulta de las facturas enviadas me da error "access violation".
Este es el código que tengo:

Código Delphi [-]
procedure TForm_ConsultaEnviadosAEAT.BotonBuscarClick(Sender: TObject);
var
  ConsultaFactura: ConsultaFactuSistemaFacturacion; // Objeto a enviar
  ACaducidadCertificado:TDate;
  DireccionEnvio:String;
  res : RespuestaConsultaFactuSistemaFacturacionType;  // Respuesta

begin
  ConsultaFactura := ConsultaFactuSistemaFacturacion.Create;
  ConsultaFactura.Cabecera := CabeceraConsultaSf.Create;
  ConsultaFactura.Cabecera.IDVersion:=VersionType._1_0;
  ConsultaFactura.Cabecera.ObligadoEmision := ObligadoEmisionConsultaType.Create;
  ConsultaFactura.Cabecera.ObligadoEmision.NombreRazon := Nombre.Text; // máximo 120 carácteres
  ConsultaFactura.Cabecera.ObligadoEmision.Nif := Nif.Text; // 9 carácteres

  ConsultaFactura.FiltroConsulta:= LRFiltroRegFacturacionType.Create;
  ConsultaFactura.FiltroConsulta.PeriodoImputacion:= PeriodoImputacionType .Create;
  ConsultaFactura.FiltroConsulta.PeriodoImputacion.Ejercicio:=IntToStr(YearOf(Desde.CurrentDate));

  ConsultaFactura.FiltroConsulta.PeriodoImputacion.Periodo:=veriFactuPeriodoType(MonthOf(Desde.Current  Date)); //devuelve el valor según el mes seleccionado

  ConsultaFactura.FiltroConsulta.FechaExpedicionFactura:= FechaExpedicionConsultaType.Create;
  ConsultaFactura.FiltroConsulta.FechaExpedicionFactura.RangoFechaExpedicion:= RangoFechaExpedicionType.Create;
  ConsultaFactura.FiltroConsulta.FechaExpedicionFactura.RangoFechaExpedicion.Desde:= FormatDateTime('dd-mm-yyy',Desde.CurrentDate);
  ConsultaFactura.FiltroConsulta.FechaExpedicionFactura.RangoFechaExpedicion.Hasta:= FormatDateTime('dd-mm-yyy',Hasta.CurrentDate);

    try
    DireccionEnvio:=  'https://prewww1.agenciatributaria.gob.es/wlpl/TIKE-CONT/SvTikeEmitidasQuery';

    ACaducidadCertificado:=VerificarCaducidadCertificado(P_Datavarios.QSala.FieldByName('ultima_firma').  AsString);

    if (P_DataVarios.QSala.FieldByName('ultima_firma').AsString <> '') then //comprueba si tiene firma digital
    begin
      res:=  RespuestaConsultaFactuSistemaFacturacionType.Create;//  ConsultaFactuSistemaFacturacionType.Create;
   línea donde da el error -->   res:=   GetsfPortTypeVerifactu( false, DireccionEnvio , HTTPRIO1 ).ConsultaFactuSistemaFacturacion(ConsultaFactura );        // enviarlo !
    end;

  except
    on E: Exception do
    begin
      MensajeError(E.ClassName+' - '+ E.Message) ;
    end;
  end;


end;


Alguien lo hace de esta manera?. Lo hacéis a pelo?? Qué estoy haciendo mal??

Gracias!!!

bmfranky 04-06-2025 12:01:41

Cita:

Empezado por Sandy656 (Mensaje 565153)
Hola.
He seguido el ejemplo de la demo de verifactu que funciona de maravilla para el envío de facturas. Pero al intentar hacer lo mismo con la consulta de las facturas enviadas me da error "access violation".
Este es el código que tengo:

Código Delphi [-]
procedure TForm_ConsultaEnviadosAEAT.BotonBuscarClick(Sender: TObject);
var
  ConsultaFactura: ConsultaFactuSistemaFacturacion; // Objeto a enviar
  ACaducidadCertificado:TDate;
  DireccionEnvio:String;
  res : RespuestaConsultaFactuSistemaFacturacionType;  // Respuesta

begin
  ConsultaFactura := ConsultaFactuSistemaFacturacion.Create;
  ConsultaFactura.Cabecera := CabeceraConsultaSf.Create;
  ConsultaFactura.Cabecera.IDVersion:=VersionType._1_0;
  ConsultaFactura.Cabecera.ObligadoEmision := ObligadoEmisionConsultaType.Create;
  ConsultaFactura.Cabecera.ObligadoEmision.NombreRazon := Nombre.Text; // máximo 120 carácteres
  ConsultaFactura.Cabecera.ObligadoEmision.Nif := Nif.Text; // 9 carácteres

  ConsultaFactura.FiltroConsulta:= LRFiltroRegFacturacionType.Create;
  ConsultaFactura.FiltroConsulta.PeriodoImputacion:= PeriodoImputacionType .Create;
  ConsultaFactura.FiltroConsulta.PeriodoImputacion.Ejercicio:=IntToStr(YearOf(Desde.CurrentDate));

  ConsultaFactura.FiltroConsulta.PeriodoImputacion.Periodo:=veriFactuPeriodoType(MonthOf(Desde.Current  Date)); //devuelve el valor según el mes seleccionado

  ConsultaFactura.FiltroConsulta.FechaExpedicionFactura:= FechaExpedicionConsultaType.Create;
  ConsultaFactura.FiltroConsulta.FechaExpedicionFactura.RangoFechaExpedicion:= RangoFechaExpedicionType.Create;
  ConsultaFactura.FiltroConsulta.FechaExpedicionFactura.RangoFechaExpedicion.Desde:= FormatDateTime('dd-mm-yyy',Desde.CurrentDate);
  ConsultaFactura.FiltroConsulta.FechaExpedicionFactura.RangoFechaExpedicion.Hasta:= FormatDateTime('dd-mm-yyy',Hasta.CurrentDate);

    try                       //esto es erróneo 'https://prewww1.agenciatributaria.gob.es/wlpl/TIKE-CONT/SvTikeEmitidasQuery'
    DireccionEnvio:=  'https://prewww1.aeat.es/wlpl/TIKE-CONT/ws/SistemaFacturacion/VerifactuSOAP';  <<<-- Ha de usar la misma de los registros

    ACaducidadCertificado:=VerificarCaducidadCertificado(P_Datavarios.QSala.FieldByName('ultima_firma').  AsString);

    if (P_DataVarios.QSala.FieldByName('ultima_firma').AsString <> '') then //comprueba si tiene firma digital
    begin
      res:=  RespuestaConsultaFactuSistemaFacturacionType.Create;//  ConsultaFactuSistemaFacturacionType.Create;
   línea donde da el error -->   res:=   GetsfPortTypeVerifactu( false, DireccionEnvio , HTTPRIO1 ).ConsultaFactuSistemaFacturacion(ConsultaFactura );        // enviarlo !
    end;

  except
    on E: Exception do
    begin
      MensajeError(E.ClassName+' - '+ E.Message) ;
    end;
  end;


end;

Cita:


Alguien lo hace de esta manera?. Lo hacéis a pelo?? Qué estoy haciendo mal??

Gracias!!!
Hola, esta usando una dirección errónea para enviar la consulta, se usa la misma de los registros de facturación...

Sandy656 04-06-2025 12:22:46

Hola. Gracias por tu respuesta. He cambiado la url pero el error sigue. Se produce en la llamada a :
res:= GetsfPortTypeVerifactu( false, DireccionEnvio , HTTPRIO1 ).ConsultaFactuSistemaFacturacion(ConsultaFactura );

Sandy656 05-06-2025 17:29:37

Hola.
Nada. Estoy intentando enviarlo pero me es imposible. Ya no se como hacerlo . ¿Podrías poner un ejemplo de como hacéis el envío?. El XML ya lo tengo formado pero no se como enviarlo para que no me de error.

Gracias!!!

keys 20-06-2025 13:23:09

Hola a todos.

Tengo el siguiente problema, que imagino que a todos os pasa. Tengo una factura rectificativa de Junio que rectifica una factura de Mayo, por lo que en fecha de expedición tengo junio y en fecha de operación tengo Mayo.

Verifactu cataloga esta factura que pertenece a mayo (Periodo 05), pero la fecha de expedición es de Junio. Cuando haces la consulta para poder ver esta factura tienes que poner en periodo de imputación 05 (mayo) y dejar la fecha desde y hasta en blanco, o poner la fecha de expedición de la factura en el rango.

Todo esto por que sé de que factura se trata. Pero si no lo se, ¿como puedo localizar esa factura en verifactu?, me tendría que recorrer todos los periodos anteriores, ya que una rectificativa puede rectificar una factura de cualquier mes anterior.

Un lío no se si hay otra forma de de hacerlo para localizar una factura rectificativa

ermendalenda 20-06-2025 14:24:42

Cita:

Empezado por keys (Mensaje 565740)
Hola a todos.

Tengo el siguiente problema, que imagino que a todos os pasa. Tengo una factura rectificativa de Junio que rectifica una factura de Mayo, por lo que en fecha de expedición tengo junio y en fecha de operación tengo Mayo.

Verifactu cataloga esta factura que pertenece a mayo (Periodo 05), pero la fecha de expedición es de Junio. Cuando haces la consulta para poder ver esta factura tienes que poner en periodo de imputación 05 (mayo) y dejar la fecha desde y hasta en blanco, o poner la fecha de expedición de la factura en el rango.

Todo esto por que sé de que factura se trata. Pero si no lo se, ¿como puedo localizar esa factura en verifactu?, me tendría que recorrer todos los periodos anteriores, ya que una rectificativa puede rectificar una factura de cualquier mes anterior.

Un lío no se si hay otra forma de de hacerlo para localizar una factura rectificativa

Interesante cuestión, yo siempre he pensado que en las rectificativas la fecha de emisión es la que indica el periodo de imputación, otra cosa seria para las facturas recapitulativas y las sustittuivas. Pero sigo el hilo por si estoy equivocadom

keys 23-06-2025 08:56:50

Cita:

Empezado por ermendalenda (Mensaje 565741)
Interesante cuestión, yo siempre he pensado que en las rectificativas la fecha de emisión es la que indica el periodo de imputación, otra cosa seria para las facturas recapitulativas y las sustittuivas. Pero sigo el hilo por si estoy equivocadom

Yo también creo que es así, pero ellos para consultarlas las meten dentro del ejercicio y periodo de la fecha de operación, ya que no somos nosotros las que metemos dentro de un ejercicio y periodo.

En el SII si es así por que hay que indicar el ejercicio y el periodo pero aquí no.

ermendalenda 23-06-2025 10:31:53

Cita:

Empezado por keys (Mensaje 565786)
Yo también creo que es así, pero ellos para consultarlas las meten dentro del ejercicio y periodo de la fecha de operación, ya que no somos nosotros las que metemos dentro de un ejercicio y periodo.

En el SII si es así por que hay que indicar el ejercicio y el periodo pero aquí no.

Si no estoy equivocado- la ley te obliga a poner la fecha de operación y la de emisión e ciertos casos, la duda es que en caso de una rectificativa, cual es la de operacion?

keys 23-06-2025 10:39:58

Cita:

Empezado por ermendalenda (Mensaje 565798)
Si no estoy equivocado- la ley te obliga a poner la fecha de operación y la de emisión e ciertos casos, la duda es que en caso de una rectificativa, cual es la de operacion?

En una rectificativa la fecha de expedición es la fecha del día y la de operación la fecha de la factura que estas rectificando.

Cita:

Se incluirá como fecha de operación la fecha en que se realizó la entrega o prestó el servicio,
indicada en la factura inicial. En el caso de rectificar varias facturas con una única factura
rectificativa se indicará la fecha más reciente.
Sacado de la página de la aeat

ermendalenda 23-06-2025 12:50:43

Cita:

Empezado por keys (Mensaje 565801)
En una rectificativa la fecha de expedición es la fecha del día y la de operación la fecha de la factura que estas rectificando.



Sacado de la página de la aeat

Entonces el mes y e año de imputación, no es la de la operación?

keys 23-06-2025 12:52:00

Cita:

Empezado por ermendalenda (Mensaje 565808)
Entonces el mes y e año de imputación, no es la de la operación?

Si. Pero el problema es como localizar una rectificativa si no sabes la fecha de operación y pertenece a un periodo anterior.

ermendalenda 23-06-2025 13:03:05

Cita:

Empezado por keys (Mensaje 565809)
Si. Pero el problema es como localizar una rectificativa si no sabes la fecha de operación y pertenece a un periodo anterior.

Pues si grabas la fecha de operación no debe haber problemas, aunque ws un verdadero coñazo añadid, yo cuando se intenta rectificar una factura tengo guardado si tiene alguna rectificacion y tengo todo de extremo a extremo, por si quieren rectificar alguna intermedia de varias rectificaciones. Pero sí que ha sido aparatoso de programar.

keys 23-06-2025 13:05:15

Cita:

Empezado por ermendalenda (Mensaje 565812)
Pues si grabas la fecha de operación no debe haber problemas, aunque ws un verdadero coñazo añadido

Si conoces la factura no hay problema. El problema es cuando el cliente sabe que ha hecho una rectificativa pero no sabe que fechas le ha puesto y querer buscarla en el sistema(verifactu).

ermendalenda 23-06-2025 13:13:39

Cita:

Empezado por keys (Mensaje 565813)
Si conoces la factura no hay problema. El problema es cuando el cliente sabe que ha hecho una rectificativa pero no sabe que fechas le ha puesto y querer buscarla en el sistema(verifactu).

Por si te vale:
Yo tengo filtros de búsqueda entre ellos por cliente y por serie de factura, con lo cual para las facturas normales voy a encontrarla rapida(si no tienes el caso de que sean cientos de rectificativas para el mismo cliente) y para las rectificativas de simplificadas pues igual, suelen ser del mismo día o 2 o 3 días después, filtrando por serie no suelo tener muchas 3 ó 4.

seccion_31 07-07-2025 09:42:01

Cita:

Empezado por ermendalenda (Mensaje 565808)
Entonces el mes y e año de imputación, no es la de la operación?

Sin dudar de lo que hablais, sobre la fecha de operacion en rectificativas, quiero apuntar:

Que yo sepa la fecha de operacion, o fecha de devengo es la que determina la liquidacion de iva. "Generalmente" coincide con el periodo de expedicion. "Normalmente", o -"DEBE"- coincidir para evitar problemas.

El tirador de periodo de la web de la AEAT filtra por mes de operacion, no por emision. En el SII y en Verifactu.

Por ley entre que hago el albaran y la factura no pueden pasar mas de 30 dias

Yo diria que la fecha de operacion, a pesar de estar marcada en negro, como opcional, me da que es un tema abierto a discusion, y que deberia ser obligado. (aqui me gustaria tener opiniones de este punto).

¿Si coloco en fecha de operacion de una rectificativa, una fecha del trimestre pasado como corresponde a la factura que estoy rectificando, como compenso el iva en el trimestre actual?

Saludos !

ermendalenda 07-07-2025 10:04:05

Cita:

Empezado por seccion_31 (Mensaje 566154)
Sin dudar de lo que hablais, sobre la fecha de operacion en rectificativas, quiero apuntar:

Que yo sepa la fecha de operacion, o fecha de devengo es la que determina la liquidacion de iva. "Generalmente" coincide con el periodo de expedicion. "Normalmente", o -"DEBE"- coincidir para evitar problemas.

El tirador de periodo de la web de la AEAT filtra por mes de operacion, no por emision. En el SII y en Verifactu.

Por ley entre que hago el albaran y la factura no pueden pasar mas de 30 dias

Yo diria que la fecha de operacion, a pesar de estar marcada en negro, como opcional, me da que es un tema abierto a discusion, y que deberia ser obligado. (aqui me gustaria tener opiniones de este punto).

¿Si coloco en fecha de operacion de una rectificativa, una fecha del trimestre pasado como corresponde a la factura que estoy rectificando, como compenso el iva en el trimestre actual?

Saludos !

Respecto a los 30 dias creo que no es así, si emito un albaran el dia 1 de Enero , tengo hasta el 16 del siguiente, o sea hasta el 16 de febrero, pára emitir la factura, excepto para emitir a autonomos, que tiene que emitirse dentro del mismo mes, que tampoco son 30 dias normalmemte.
Es lo que tengo entendido.

keys 07-07-2025 10:10:33

Cita:

Empezado por seccion_31 (Mensaje 566154)
Sin dudar de lo que hablais, sobre la fecha de operacion en rectificativas, quiero apuntar:

Que yo sepa la fecha de operacion, o fecha de devengo es la que determina la liquidacion de iva. "Generalmente" coincide con el periodo de expedicion. "Normalmente", o -"DEBE"- coincidir para evitar problemas.

El tirador de periodo de la web de la AEAT filtra por mes de operacion, no por emision. En el SII y en Verifactu.

Por ley entre que hago el albaran y la factura no pueden pasar mas de 30 dias

Yo diria que la fecha de operacion, a pesar de estar marcada en negro, como opcional, me da que es un tema abierto a discusion, y que deberia ser obligado. (aqui me gustaria tener opiniones de este punto).

¿Si coloco en fecha de operacion de una rectificativa, una fecha del trimestre pasado como corresponde a la factura que estoy rectificando, como compenso el iva en el trimestre actual?

Saludos !

En el caso de las rectificas hacienda toma la fecha de factura no la fecha de operación. Ya que esta es la fecha de la factura rectificada.

Faneka 07-07-2025 10:13:44

Cita:

Empezado por ermendalenda (Mensaje 566156)
Respecto a los 30 dias creo que no es así, si emito un albaran el dia 1 de Enero , tengo hasta el 16 del siguiente, o sea hasta el 16 de febrero, pára emitir la factura, excepto para emitir a autonomos, que tiene que emitirse dentro del mismo mes, que tampoco son 30 dias normalmemte.
Es lo que tengo entendido.

Yo encontre lo siguiente:

En España, el plazo para facturar un albarán, que es el documento que justifica la entrega de mercancías o servicios, depende de si el destinatario es un particular o una empresa. Si el destinatario es un particular, la factura debe emitirse en el momento de la operación, es decir, al mismo tiempo que se entrega la mercancía o se presta el servicio. Si el destinatario es una empresa, se dispone de hasta el día 16 del mes siguiente a la operación para emitir la factura.
Detalle:
Particulares:
La factura debe emitirse en el momento de la entrega de la mercancía o la prestación del servicio.
Empresas:
Se tiene hasta el día 16 del mes siguiente a la operación para emitir la factura.
Excepción:
Si se trata de facturas recapitulativas (que resumen varias operaciones), el plazo es hasta el último día del mes natural en que se realizaron las operaciones.

ermendalenda 07-07-2025 10:14:09

Cita:

Empezado por keys (Mensaje 566157)
En el caso de las rectificas hacienda toma la fecha de factura no la fecha de operación. Ya que esta es la fecha de la factura rectificada.

Ok gracias por la aclaracion, pero es correcto poner en la fecha de operacion la fecha en que se produjo ña primera factura o hay que poner solo la de emision en las rectificativas?

seccion_31 07-07-2025 10:15:10

Cita:

Empezado por keys (Mensaje 566157)
En el caso de las rectificas hacienda toma la fecha de factura no la fecha de operación. Ya que esta es la fecha de la factura rectificada.

Si colocamos como apuntas en este hilo, que la fecha de operacion debe ser la fecha de la factura rectificada, entonces... (si no entendi mal)

habria que probar que hace el tirador de periodos en la web de la AEAT... que filtra repito por periodo de operacion.


Otra pregunta, considerais la fecha de operacion, ¿opcional?

keys 07-07-2025 10:17:07

Cita:

Empezado por ermendalenda (Mensaje 566159)
Ok gracias por la aclaracion, pero es correcto poner en la fecha de operacion la fecha en que se produjo ña primera factura o hay que poner solo la de emision en las rectificativas?

La fecha de emisión siempre es obligatoria. Y es el día que haces la factura. La fecha de operación hay que ponerla si no es la misma o en el caso de las rectificativas que tiene que ser la fecha de la factura que estas rectificando.

ermendalenda 07-07-2025 10:17:19

Cita:

Empezado por Faneka (Mensaje 566158)
Yo encontre lo siguiente:

En España, el plazo para facturar un albarán, que es el documento que justifica la entrega de mercancías o servicios, depende de si el destinatario es un particular o una empresa. Si el destinatario es un particular, la factura debe emitirse en el momento de la operación, es decir, al mismo tiempo que se entrega la mercancía o se presta el servicio. Si el destinatario es una empresa, se dispone de hasta el día 16 del mes siguiente a la operación para emitir la factura.
Detalle:
Particulares:
La factura debe emitirse en el momento de la entrega de la mercancía o la prestación del servicio.
Empresas:
Se tiene hasta el día 16 del mes siguiente a la operación para emitir la factura.
Excepción:
Si se trata de facturas recapitulativas (que resumen varias operaciones), el plazo es hasta el último día del mes natural en que se realizaron las operaciones.

La excepcion supongo que se refiere a los clientes particulares, no?

ermendalenda 07-07-2025 10:18:59

Cita:

Empezado por keys (Mensaje 566161)
La fecha de emisión siempre es obligatoria. Y es el día que haces la factura. La fecha de operación hay que ponerla si no es la misma o en el caso de las rectificativas que tiene que ser la fecha de la factura que estas rectificando.

Que yo sepa hay que ponerla si no coincide el periodo, no la fecha.

seccion_31 07-07-2025 10:25:11

Cita:

Empezado por keys (Mensaje 566161)
La fecha de emisión siempre es obligatoria. Y es el día que haces la factura. La fecha de operación hay que ponerla si no es la misma o en el caso de las rectificativas que tiene que ser la fecha de la factura que estas rectificando.

acabo de hacer la prueba

Doy de alta una rectificativa de MAYO, fecha de expedición MAYO, rectificando una factura de ABRIL, por tanto fecha de operacion ABRIL.

Cuando consulto con la web de la AET:

En lugar de colocar la la rectificativa en el periodo MAYO , la lleva a abril como corresponde a su fecha de operacion ABRIL

Asi que mucho me temo que esa rectificativa no apareceria en la liquidacion de MAYO.

No se...

Nota: las mayusculas son para recalcar el mes.

ermendalenda 07-07-2025 10:26:47

https://sede.agenciatributaria.gob.e...00dc381e0aRCRD

Aqui hablan de las fechas de operacion, pero sigo xon las mismas dudas con el ejemplo que ponen, ya que en otras consultas he visto solo es obligatorio si cambias de mes.
Y la de la rectificativa es la de la factura original, pero iguañmente me ha quedado la duda de lo que dice el compañero, cual usa la aeat para la imputacion en las rectificativas.
Vaya lio.
Enfin en principio cambiaré para que siempee salga la we operacipn ai es distinta, y hare caso al compañero con las rectificativas, ya que es dificil gestionarlas por fecha de operacion.

keys 07-07-2025 10:28:55

Cita:

Empezado por seccion_31 (Mensaje 566165)
acabo de hacer la prueba

Doy de alta una rectificativa de MAYO, fecha de expedición MAYO, rectificando una factura de ABRIL, por tanto fecha de operacion ABRIL.

Cuando consulto con la web de la AET:

En lugar de colocar la la rectificativa en el periodo MAYO , la lleva a abril como corresponde a su fecha de operacion ABRIL

Asi que mucho me temo que esa rectificativa no apareceria en la liquidacion de MAYO.

No se...

Nota: las mayusculas son para recalcar el mes.

Una cosa es donde la encuentres (que ese es el problema, encontrarla si no sabes cual era)y otra cosa es en que periodo la tiene que imputar hacienda. Las rectificativas lo hace segun la fecha de emisión, ya que si es del trimestre anterior logimente ya no te puede modificar esa declaración

seccion_31 07-07-2025 10:30:43

Cita:

Empezado por ermendalenda (Mensaje 566166)
https://sede.agenciatributaria.gob.e...00dc381e0aRCRD

Aqui hablan de las fechas de operacion, pero sigo xon las mismas dudas con el ejemplo que ponen, ya que en otras consultas he visto solo es obligatorio si cambias de mes.
Y la de la rectificativa es la de la factura original, pero iguañmente me ha quedado la duda de lo que dice el compañero, cual usa la aeat para la imputacion en las rectificativas.
Vaya lio.
Enfin en principio cambiaré para que siempee salga la we operacipn ai es distinta, y hare caso al compañero con las rectificativas, ya que es dificil gestionarlas por fecha de operacion.

segun dicen en el enlace:

Cita:

"La fecha de realización de la operación correspondiente a la factura original que se está rectificando. "
Es decir en operacion de la rectificativa, deberia ir la fecha de operacion de la rectificada. Probablemente incluso mas atras en el periodo.


La franja horaria es GMT +2. Ahora son las 21:03:50.

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