Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   SII -Nuevo sistema de la Agencia Tributaria española de envío de datos vía Webservice (https://www.clubdelphi.com/foros/showthread.php?t=91252)

Neftali [Germán.Estévez] 23-06-2023 08:21:01

Cita:

Empezado por dimony (Mensaje 551855)
Me podrías pasar pagos también, por favor.
Utilizo XE6 y nada de nada lo importo con todos los WSDL, XSD, XML que da la AEAT y nada de nada. Me estoy volviendo loco.


Si me pasas la URL del WSDL, como la de arriba te lo importo sin problemas.

dimony 23-06-2023 09:57:49

Cita:

Empezado por Neftali [Germán.Estévez] (Mensaje 551858)
Si me pasas la URL del WSDL, como la de arriba te lo importo sin problemas.


Aquí va:

Código:

https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroPagosRecibidas.wsdl

Muchas gracias.

Neftali [Germán.Estévez] 23-06-2023 10:13:20

1 Archivos Adjunto(s)
Ahí va de vuelta...

dimony 23-06-2023 10:15:16

Cita:

Empezado por Neftali [Germán.Estévez] (Mensaje 551863)
Ahí va de vuelta...


Muchas gracias chato, que dios te lo pague :D:D:D. Me has salvado la vida.

dimony 26-06-2023 11:20:57

Haciendo pruebas de suministro no tengo "eggs" a suministrarlo.


Este es mi código:


Código:

function suministra_cobros: string;
var
  v_SuministroLRCobrosEmitidas: SuministroCobrosEmitidas.SuministroLRCobrosEmitidas;
  v_RegistroLRCobrosEmitidas: SuministroCobrosEmitidas.Array_Of_LRCobrosEmitidasType;
  v_RegistroCobros: SuministroCobrosEmitidas.CobrosType;
  v_RespuestaLRCobrosEmitidas: SuministroCobrosEmitidas.RespuestaLRCobrosEmitidas;
 
 
  v_registros_cobros: smallint;
  v_dummy: smallint;
  V_NIF : SuministroCobrosEmitidas.IDEmisorFactura7;

begin

  (* -------------- BEGIN CABECERA -------------- *)
  v_SuministroLRCobrosEmitidas := SuministroCobrosEmitidas.SuministroLRCobrosEmitidas.Create;
  v_SuministroLRCobrosEmitidas.Cabecera := SuministroCobrosEmitidas.CabeceraSiiCobrosPagos.Create;
  v_SuministroLRCobrosEmitidas.Cabecera.IDVersionSii := SuministroCobrosEmitidas.VersionSiiType(0);
  v_SuministroLRCobrosEmitidas.Cabecera.Titular := SuministroCobrosEmitidas.PersonaFisicaJuridicaESType.Create;
  v_SuministroLRCobrosEmitidas.Cabecera.Titular.NombreRazon := Main.g_name;
  v_SuministroLRCobrosEmitidas.Cabecera.Titular.NIFRepresentante := Main.g_nif_representative;
  v_SuministroLRCobrosEmitidas.Cabecera.Titular.NIF := Main.g_nif;
  (* -------------- END CABECERA -------------- *)

  v_RegistroLRCobrosEmitidas[0] := SuministroCobrosEmitidas.LRCobrosEmitidasType.Create;
  v_RegistroLRCobrosEmitidas[0].IDFactura := SuministroCobrosEmitidas.IDFacturaExpedidaBCType.Create;
  v_RegistroLRCobrosEmitidas[0].IDFactura.IdEmisorFactura := SuministroCobrosEmitidas.IDEmisorFactura7.Create;
  v_RegistroLRCobrosEmitidas[0].IDFactura.IDEmisorFactura.nif := 'B00000000';
  v_RegistroLRCobrosEmitidas[0].IDFactura.NumSerieFacturaEmisor := '3302';
  v_RegistroLRCobrosEmitidas[0].IDFactura.FechaExpedicionFacturaEmisor := formatdatetime('dd-mm-yyyy',data.LibrosRegistros.FieldByName('fec_fra').AsDateTime);

  SetLength(v_RegistroCobros,1);
  v_RegistroCobros[0].Fecha := formatdatetime('dd-mm-yyyy',data.LibrosRegistros.FieldByName('fec_fra').AsDateTime);
  v_RegistroCobros[0].Importe := '12.1'
  v_RegistroCobros[0].Medio := SuministroCobrosEmitidas.MedioPagoType(00);
  v_RegistroCobros[0].Cuenta_O_Medio := 'Al contado';

  v_RegistroLRCobrosEmitidas[v_registros_cobros - 1].Cobros := v_RegistroCobros;

  v_RespuestaLRCobrosEmitidas := SuministroCobrosEmitidas.GetsiiSOAP(true, '', Main.g_co_wsdl_localitation, Main.g_co_wsdl_port, Main.g_co_wsdl_service, data.HTTPRIO6).SuministroLRCobrosEmitidas(v_SuministroLRCobrosEmitidas);

end;


Este es el XML que crea:


Código:

<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <SOAP-ENV:Body>
    <SuministroLRCobrosEmitidas xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroLR.xsd">
      <Cabecera xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">
        <IDVersionSii>1.1</IDVersionSii>
        <Titular>
          <NombreRazon>Empresa</NombreRazon>
          <NIFRepresentante/>
          <NIF>B0000000</NIF>
        </Titular>
      </Cabecera>
      <RegistroLRCobros>
        <IDFactura>
          <IDEmisorFactura xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">
            <NIF>B00000000</NIF>
          </IDEmisorFactura>
          <NumSerieFacturaEmisor xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">3302</NumSerieFacturaEmisor>
          <FechaExpedicionFacturaEmisor xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">19-06-2023</FechaExpedicionFacturaEmisor>
        </IDFactura>
        <Cobros>
          <Cobro>
            <Fecha xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">23-06-2023</Fecha>
            <Importe xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">12.1</Importe>
            <Medio xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">01</Medio>
            <Cuenta_O_Medio xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">Al contado</Cuenta_O_Medio>
          </Cobro>
        </Cobros>
      </RegistroLRCobros>
    </SuministroLRCobrosEmitidas>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>


y me devuelve el siguiente código de error:


Código:

Codigo[4102].El XML no cumple el esquema. Falta informar campo obligatorio.: Cobro

Creo que no tengo bien definidas las variables o algo por el estilo o algo por ahí se me escapa, me podríais poner un ejemplo de suministro de cobros / pagos, please.

dimony 26-06-2023 16:36:02

He descubierto que si en la etiqueta <cobro> se le pone


"https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd"

Funciona. en el cliente web service de la la AEAT.


Pero no logro hacer que se ponga al generarlo yo, ¿Algún alma caritativa, por favor?

keys 27-06-2023 08:54:48

Cita:

Empezado por dimony (Mensaje 551891)
He descubierto que si en la etiqueta <cobro> se le pone


"https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd"

Funciona. en el cliente web service de la la AEAT.


Pero no logro hacer que se ponga al generarlo yo, ¿Algún alma caritativa, por favor?

No se si es un problema de delphi o del fichero xsd de hacienda. Para solucionarlo tienes que capturar el evento OnBeforeExecute el objeto THTTPPRIO y hacer le cambio. Te pongo un ejemplo

Código Delphi [-]
     NficheroTemp :=  'c:\temp\LCFTemporal.Xml';

     //Cargas todo el Tstream que te pasa el evento en un fichero
     if FileExists(NficheroTemp) then
        DeleteFile(NficheroTemp);

     ss := TFileStream.Create(NficheroTemp, fmCreate);
     SOAPRequest.Position := 0;
     ss.CopyFrom(SOAPRequest, SOAPRequest.size);
     ss.Free;
     SOAPRequest.Position := 0;

    //Reemplazas lo que necesitas
     Fichero := TStringList.Create;
     Fichero.LoadFromFile(NficheroTemp);
     for i := 0 to Fichero.Count - 1 do
     
       Fichero.Strings[i] := //Reemplazas lo que quieras;
     
     
     Sleep(1000);
     Fichero.SaveToFile(NficheroTemp);
     


    //lo vuelves a cargar en el TStream
     SOAPRequest.Size:=0;
     ss := TFileStream.Create(NficheroTemp, fmOpenRead);
     SOAPRequest.Position := 0;
     SOAPRequest.CopyFrom( ss, ss.Size);
     ss.Free;

     SOAPRequest.Position := 0;

Lo mismo pasa con los pagos.

dimony 27-06-2023 16:57:06

Ha funcionado muuu bien keys, siguiendo la idea he hecho lo siguiente, por si le sirve a alguien:
Código Delphi [-]
procedure TData.HTTPRIO6BeforeExecute(const MethodName: string;
  SOAPRequest: TStream);
var
  Document: IXMLDocument;
  registro:integer;
  ss:TFileStream;
  Cadena: TStringList;
begin
SOAPRequest.Position := 0;
Document := TXMLDocument.Create(nil);
Document.Options := [];
Document.LoadFromStream(SOAPRequest);
Document.XML.Text := xmlDoc.FormatXMLData(Document.XML.Text);
main.richedit1.Lines.Add(StringReplace(Document.XML.Text,'','',[rfReplaceAll, rfIgnoreCase]));
Cadena := TStringList.Create;
Cadena.Add(Main.RichEdit1.Lines.Text);
Cadena.SaveToFile('c:\tmp\1.xml');
ss := TFileStream.Create('c:\tmp\1.xml',fmOpenRead);
SOAPRequest.Position := 0;
SOAPRequest.CopyFrom(ss,ss.Size);
ss.Free;
SOAPRequest.Position := 0;
end;
Que es lo que ha sugerido KEYS pero a mi modo.
Grache Mille ;)

newtron 28-06-2023 09:50:41

Buenos días a tod@s.

Ayer intenté subir una factura al entorno de preproducción y me dio un error "Unauthorized (401)". Pensando que sería algún problema del servidor me he esperado a hoy pero sigo teniendo el mismo problema.

¿Alguien me puede decir si funciona el servidor de pruebas?

Gracias y un saludo.

Neftali [Germán.Estévez] 28-06-2023 11:13:24

Cita:

Empezado por newtron (Mensaje 551910)
Ayer intenté subir una factura al entorno de preproducción y me dio un error "Unauthorized (401)". Pensando que sería algún problema del servidor me he esperado a hoy pero sigo teniendo el mismo problema.

¿Alguien me puede decir si funciona el servidor de pruebas?

Yo acabo de subir 2 a preproduccion sin problemas.
Una de compras y otra de ventas.

newtron 28-06-2023 11:26:55

Gracias Germán. Pues no sé qué ocurre, a ver si han cambiado el endpoint desde la última vez que probé o algo así y no me he enterado.


¿Puedes decirme si el el puerto/url de facturas recibidas son estos?


'SuministroFactRecibidasPruebas';
'https://prewww1.aeat.es/wlpl/SSII-FACT/ws/fr/SiiFactFRV1SOAP';



Saludos.

newtron 28-06-2023 13:58:18

Ok. Parece que es un problema del certificado que estoy usando. He probado con otro y me funciona.


Gracias y un saludo.

Neftali [Germán.Estévez] 28-06-2023 13:59:00

Cita:

Empezado por newtron (Mensaje 551913)
Gracias Germán. Pues no sé qué ocurre, a ver si han cambiado el endpoint desde la última vez que probé o algo así y no me he enterado.
¿Puedes decirme si el el puerto/url de facturas recibidas son estos?
'SuministroFactRecibidasPruebas';
'https://prewww1.aeat.es/wlpl/SSII-FACT/ws/fr/SiiFactFRV1SOAP';


Lo siento. En eso no te puedo ayudar, a ver si alguien más te puede echar un cable.
Usamos una pieza "externa" para el envío y no tengo acceso a esa información.

newtron 28-06-2023 18:43:38

Cita:

Empezado por Neftali [Germán.Estévez] (Mensaje 551915)
Lo siento. En eso no te puedo ayudar, a ver si alguien más te puede echar un cable.
Usamos una pieza "externa" para el envío y no tengo acceso a esa información.


Nada, como te comento creo que es problema de mi certificado. Estoy probando con el de mi santa esposa y si que funciona, y si meten a alguien en la cárcel que sea a ella. :D:D


Gracias y un saludo.

Neftali [Germán.Estévez] 29-06-2023 08:16:19

Cita:

Empezado por newtron (Mensaje 551922)
Estoy probando con el de mi santa esposa y si que funciona, y si meten a alguien en la cárcel que sea a ella. :D:D

Como se entere, a dormir al sofá que vas.
:D:D:D

IcuScc 07-08-2023 10:20:19

Cita:

Empezado por juabero (Mensaje 515325)
Buenos dias compañeros:

Esto desarrollando el SII en VB.Net con la versión 6 de Hacienda, generó perfectamente el xml con el WDSL, pero a la hora de enviar por siiSOAPClient, me devuelve el error de "El tipo de contenido text/html del mensaje de respuesta no coincide con el tipo de contenido del enlace (text/xml; charset=utf-8). Si usa un codificador personalizado, asegúrese de que el método IsContentTypeSupported se implemente correctamente", he repasado el config, todas la configuraciones que vosotros habeis puesto y no hay forma.

Alguien podría echarme una mano




hola... recuerdas como lo solventaste?
Gracias.

xamminf 17-08-2023 19:15:58

Numeracion de Tickets
 
Hola,

Ya sé que los tickets no existen, que son facturas simplificadas, pero tengo un cliente que vende entradas de espectaculos
Los numera con numeros sin serie y sin nada mas.
En cambio en el programa la numeracion de las fras. es del tipo SERIE-NUMERO/AÑO

Ahora necesito mandar Resumen de Facturas al SII. Quiero utilizar la clave F4 y poner el primer y ultimo ticket.

¿ Qué hago con el tema de los numeros de ticket teniendo en cuenta que en el programa cada fra. SII lleva su numero de factura como clave y ese es el que se mandara al SII como primer ticket ?


Salu2

antoine0 18-08-2023 09:43:24

Cita:

Empezado por xamminf (Mensaje 552365)
[...] tengo un cliente que vende entradas de espectaculos
Los numera con numeros sin serie y sin nada mas.

Algo no entiendo.
¿Los números se repiten? ¿Es decir, hay tantos tickets 0001 como hay espectáculos?
Si es así, tu cliente tiene un problema, y es que faltaría número de serie, efectivamente.
Pero si los tickets van con números que no se repiten (por ejemplo ticket 0123456789, otro ticket 0123456790 &c.) no veo ningún problema (aparte de las menciones que falten, CIF, fecha, precio, «IVA incluido», obviamente), si los números están emitidos en orden.


Cita:

Ahora necesito mandar Resumen de Facturas al SII. Quiero utilizar la clave F4 y poner el primer y ultimo ticket.

¿ Qué hago con el tema de los numeros de ticket teniendo en cuenta que en el programa cada fra. SII lleva su numero de factura como clave y ese es el que se mandara al SII como primer ticket ?
El hecho que la numeración de las facturas simplificadas no tienen nada que ver con los números de las facturas normales no tiene ninguna importancia: la coherencia en esta materia no es un requisito del reglamento de facturación; lo que importa es que los números sigan correlativos dentro de cada serie.

Primero, tienes que separar los tickets por fecha.
Luego, por bloque de tickets sucesivos (sin número faltante). Digamos 10 tickets del 012345 hasta el 012354. El registro será
Código:

<sii:IDFactura>
  <IDEmisorFactura><NIF>E00000000</NIF></IDEmisorFactura>
  <NumSerieFacturaEmisor>012345</NumSerieFacturaEmisor>
  <NumSerieFacturaEmisorResumenFin>012354</NumSerieFacturaEmisorResumenFin>
  <FechaExpedicionFacturaEmisor>04-08-2023</FechaExpedicionFacturaEmisor>
</sii:IDFactura>
<sii:FacturaExpedida>
  <TipoFactura>F4</TipoFactura>

Caso especial: si solo te queda un ticket en un bloque, hay que ponerle tipo F2 y no rellenar el campo NumSerieFacturaEmisorResumenFin.

keys 22-11-2023 08:51:55

Hola a todos.

A alguien más le esta pasando desde el viernes mas o menos, que al enviar facturas emitidas al SII de la aeat le aparece el siguiente error.

Cita:

Unable to load WSDL File/Location: https://www2.agenciatributaria.gob.e...tEmitidas.wsdl. Error [Empty document]
Ya se que si le pongo UseWSDL := false funciona, pero alguien sabe que ha pasado. Es como si ese enlace ya no estuviera disponible, pero si pinchas sobre el si funciona.

Lo mismo ocurre con todos los demás envíos, ventas, pagos, etc...
Gracias.

Nasca 22-11-2023 09:06:01

Pues lo cierto es que no he notado nada así al enviar y te puedo asegurar que me habría enterado inmediatamente.


La franja horaria es GMT +2. Ahora son las 23:11:19.

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