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.


La franja horaria es GMT +2. Ahora son las 14:00:25.

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