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)

ja_73 16-06-2017 12:11:00

Cita:

Empezado por CMB (Mensaje 518299)
Los más usados los tienes en el mensaje #1748:

Gracias por contestar CMB
yo trabajo en C#, no se como obtener los WSDL desde esas direcciones...
en la web de hacienda vienen explicitamente las direcciones WSDL de cada servicio, que es lo que utilizo como referencia.
agenciatributaria.es/AEAT.internet/Inicio/Ayuda/Modelos__Procedimientos_y_Servicios/Ayuda_P_G417____IVA__Llevanza_de_libros_registro__SII_/Ayuda_tecnica/Informacion_tecnica_SII/WSDL_de_los_servicios_web/WSDL_de_los_servicios_web.shtml

mrobles 16-06-2017 12:27:29

TE tocara hacerlo a mano y mandar con SoaP

CMB 16-06-2017 12:28:50

Cita:

Empezado por ja_73 (Mensaje 518307)
Gracias por contestar CMB
yo trabajo en C#, no se como obtener los WSDL desde esas direcciones...
en la web de hacienda vienen explicitamente las direcciones WSDL de cada servicio, que es lo que utilizo como referencia.
agenciatributaria.es/AEAT.internet/Inicio/Ayuda/Modelos__Procedimientos_y_Servicios/Ayuda_P_G417____IVA__Llevanza_de_libros_registro__SII_/Ayuda_tecnica/Informacion_tecnica_SII/WSDL_de_los_servicios_web/WSDL_de_los_servicios_web.shtml

Creo que los tienes aquí

http://www.agenciatributaria.es/AEAT...cios_web.shtml

Saludos,

APO 16-06-2017 13:36:09

Cita:

Empezado por APO (Mensaje 518231)
Una pregunta, en la verificación de NIFs (CONSULTA MULTIPLE), en la descripción del WebService dice que se pueden verificar hasta 10.000 registros a la vez. El caso es que a mi sólo me verifica hasta 349 registros, si le envío más registros en una sola consulta me da error. Seguramente estoy haciendo algo mal en el código, pero no lo veo. Será una chorrada, pero estoy encallado con esto y no hay manera. A ver si alguien me puede ayudar. Pongo el código:

Código Delphi [-]
var
   ConsultaMultiple: VNifV2Ent;
   RespuestaMultiple: VNifV2Sal;
   i: integer
begin
...
   ConsultaMultiple:=VNifV2Ent.Create();
   SetLength(ConsultaMultiple,NumeroDeNIFsAVerificar);

   for i:=0 to NumeroDeNIFsAVerificar do
   begin
      ConsultaMultiple[i]:=Contribuyente.Create;
      ConsultaMultiple[i].Nif:='NIF a verificar';
      ConsultaMultiple[i].Nombre:='Nombre a verificar';
   end;

   try
      RespuestaMultiple:=GetVNifV2(True,'',HTTPRIO_Verificar_NIFs).VNifV2(ConsultaMultiple);

//Y aquí es donde me salta la excepción y me da error!
...

end;

Gracias!


Sigo sin dar con la solución. Lo pongo de nuevo para ver si a alguien más le ha pasado o me puede ayudar. Gracias!

glopez 16-06-2017 13:47:10

titular no autorizado
 
Hola, estoy haciendo pruebas y ahora me dice que el nif del titular no esta autorizado (Error 4118). Alguien me puede decir donde se registra.

ja_73 16-06-2017 14:12:43

Cita:

Empezado por CMB (Mensaje 518310)
Creo que los tienes aquí

agenciatributaria.es/AEAT.internet/Inicio/Ayuda/Modelos__Procedimientos_y_Servicios/Ayuda_P_G417____IVA__Llevanza_de_libros_registro__SII_/Ayuda_tecnica/Informacion_tecnica_SII/WSDL_de_los_servicios_web/WSDL_de_los_servicios_web.shtml

Saludos,

hola cmb
gracias por contestar, esos, si te fijas, en la URL pone V_07 (casi al final) por lo que entiendo que son los de la Versión 0.7
de todas formas tendrían que publicar los de la 1.0 desarrollo y produccion

saludos

inyu 16-06-2017 14:43:13

Cita:

Empezado por glopez (Mensaje 518314)
Hola, estoy haciendo pruebas y ahora me dice que el nif del titular no esta autorizado (Error 4118). Alguien me puede decir donde se registra.

¿ Estás haciendo pruebas con un NIF acogido al SII ? A mi me ocurre lo mismo con las URLs definitivas pero deduzco que es porque el NIF de mi empresa no está acogido al SII (sólo el de mis clientes).

Aprovechando la respuesta, a mi lo que me ocurre ahora es que me dice IDVersionSii incorrecta (estoy usando la 0.7) cuando voy con las URLs definitivas, ¿hay que cambiar algo más en producción a parte del END-Point?

Edit: Me responso a mi mismo. No habia actualizado la referencia al servicio WSDL, ahora me aparece la versión IDVersionSii10.

marine 16-06-2017 14:47:41

Estado de contraste
 
Buenas,

Cuando subis las facturas a la AEAT os llega a aparecer el estado "contrastado" , todas las que subo tanto emitidas como recibidas se quedan en "No contrastable"

nuevo1234 16-06-2017 16:17:57

Cita:

Empezado por inyu (Mensaje 518318)
¿ Estás haciendo pruebas con un NIF acogido al SII ? A mi me ocurre lo mismo con las URLs definitivas pero deduzco que es porque el NIF de mi empresa no está acogido al SII (sólo el de mis clientes).

Aprovechando la respuesta, a mi lo que me ocurre ahora es que me dice IDVersionSii incorrecta (estoy usando la 0.7) cuando voy con las URLs definitivas, ¿hay que cambiar algo más en producción a parte del END-Point?

Edit: Me responso a mi mismo. No habia actualizado la referencia al servicio WSDL, ahora me aparece la versión IDVersionSii10.

EL ENTORNO PRODUCCION (URLS DEFINITIVAS) LO ABREN EL LUNES. AHORA MISMO DA ESE ERROR SIEMPRE. EL LUNES YA DEJARAN PASAR.

figo21 16-06-2017 16:24:00

Cita:

Empezado por marine (Mensaje 518319)
Buenas,

Cuando subis las facturas a la AEAT os llega a aparecer el estado "contrastado" , todas las que subo tanto emitidas como recibidas se quedan en "No contrastable"

Yo todos los envíos que he hecho ya sea de emitidas o recibidas están como no contrastable o como no contrastada.

Un saludo.

shiximaru 16-06-2017 16:34:31

Cita:

Empezado por figo21 (Mensaje 518321)
Yo todos los envíos que he hecho ya sea de emitidas o recibidas están como no contrastable o como no contrastada.

Un saludo.

Yo consegui hacer un contraste enviando una factura falsa como cliente y como proveedor.
La verdad que tardo mucho en ser contrastada 6 o 7 dias... Supongo que todo eso lo tienen sin montar aún.

nuevo1234 16-06-2017 17:04:22

Cita:

Empezado por nuevo1234 (Mensaje 518320)
EL ENTORNO PRODUCCION (URLS DEFINITIVAS) LO ABREN EL LUNES. AHORA MISMO DA ESE ERROR SIEMPRE. EL LUNES YA DEJARAN PASAR.


NO ME HE EXPLICADO BIEN. HASTA EL LUNES DARÁ EL ERROR el nif del titular no esta autorizado (Error 4118). NO HAY QUE REGISTRARSE. EL LUNES YA ENTRARÁ SIN PROBLEMAS. Y LA VERSION DE PRODUCCION, COMO HABEIS COMENTADO, ES LA 1.0.

pilarinweb 16-06-2017 18:54:51

Cabeceras SII
 
Cita:

Empezado por bartag (Mensaje 514008)
Te pongo el código que utilizo. Básicamente lo que hace es tomar un archivo xml y lo envía. Debes por favor cumplimentar previamente los campos de dicho archivo pues en caso contrario te dará errores de validación.

Código:

        ' ----------------------------------------------------------------------------------------
        Dim store As Security.Cryptography.X509Certificates.X509Store = New Security.Cryptography.X509Certificates.X509Store("My")
        store.Open(Security.Cryptography.X509Certificates.OpenFlags.ReadOnly)

        Dim CertificadoCorrecto As New System.Security.Cryptography.X509Certificates.X509Certificate2
       
        For Each x In store.Certificates
            ListCert = ListCert & vbNewLine
        Next
        'RichTextBox1.Text = ListCert

        CertificadoCorrecto = store.Certificates(CInt(TextBoxNumeroOrdenCertificado.Text)) '(5)

        ' Objeto que almacenara la respuesta de la funcion del Web Service
        Dim resp As New ServiceReference1.RespuestaLRFEmitidasType

        ' Ws
        Dim Ws As New ServiceReference1.siiSOAPClient

        Ws.ClientCredentials.ClientCertificate.Certificate = CertificadoCorrecto
        Ws.ClientCredentials.UseIdentityConfiguration = True

        ' Asignamos el certificado:
        Ws.ClientCredentials.ClientCertificate.Certificate = CertificadoCorrecto
        ' ----------------------------------------------------------------------------------------


        ' ----------------------------------------------------------------------------------------
        Dim _SuministroLRFacturasEmitidas As New SuministroLRFacturasEmitidas
        '--------------------------------------------------------------------------
       
        Try

            Dim x As New XmlSerializer(_SuministroLRFacturasEmitidas.GetType, "https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroLR.xsd")

            ' A FileStream is needed to read the XML document.
            Dim filename As String = "facturaEmitidaMODEL.XML"


            Using reader As New FileStream(filename, FileMode.Open)
                _SuministroLRFacturasEmitidas = CType(x.Deserialize(reader), SuministroLRFacturasEmitidas)
            End Using

            ' SI QUEREMOS SOBREESCRIBIR EL XML ANTES DE ENVIAR:
            ' SOBREESCRIBIMOS DATS FORM ANTES SEND:
            _SuministroLRFacturasEmitidas.Cabecera.Titular.NombreRazon = Trim(TextBoxRazonSocialEmisor.Text)
            _SuministroLRFacturasEmitidas.Cabecera.Titular.NIF = Trim(TextBoxNIFEmisor.Text)

          '(...)

          '// se hace la llamada a la funcion suministrada por el WS
            resp = Ws.SuministroLRFacturasEmitidas(_SuministroLRFacturasEmitidas)

            Catch ex As Exception
            MsgBox(ex.Message)
            Respuesta2RichTextBox = ex.Message
        Finally
            'Me.Cursor = Cursors.Default
            'Threading.Thread.Sleep(5000)
            'ProgressBar1.Style = ProgressBarStyle.Continuous
            ''ProgressBar1.Value = ProgressBar1.Maximum
        End Try

Te adjunto también el archivo xml que debes cumplimentar donde indica '[A CUMPLIMENTAR]'.

Con esto, se toma la factura del archivo (fíjate que solamente tiene el nodo '<SuministroLRFacturasEmitidas>' y nada del encabezado SOAP para que no dé error al aplicar el Deserialize) y nos la convierte en un objeto serializado donde podemos acceder a los campos de la clase antes de enviar si lo deseamos; en caso contrario se envía y la propia llamada se encarga de insertar las cabeceras, los namespaces, etc.

Hola bartag,
estoy atascada en este tema también, a ver si me puedes ayudar....aunque mi codigo es C#...
genero dinamicamente un fichero xml:
xmlWriter = new XmlTextWriter(nombrefichero, Encoding.UTF8);
xmlWriter.Formatting = Formatting.Indented;
xmlWriter.Indentation = 4;
xmlWriter.WriteRaw("<?xml version='1.0' encoding='UTF-8'?>");
xmlWriter.WriteStartElement("soapenv:Envelope");
xmlWriter.WriteAttributeString("xmlns", "soapenv", null, "...schemas.xmlsoap.org/soap/envelope/");
xmlWriter.WriteAttributeString("xmlns", "siiLR", null, "....agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroLR.xsd");
xmlWriter.WriteAttributeString("xmlns", "sii", null, "....agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd");

xmlWriter.WriteStartElement("soapenv:Header");
xmlWriter.WriteEndElement();

xmlWriter.WriteStartElement("soapenv:Body");
xmlWriter.WriteStartElement("siiLR:SuministroLRFacturasEmitidas");
.
.
.
xmlWriter.WriteEndElement();
xmlWriter.WriteEndElement();
xmlWriter.WriteEndElement();
.
.
.
System.IO.FileStream fStream = new System.IO.FileStream(nombrefichero, System.IO.FileMode.Open);
SuministroFactEmitidas.SuministroLRFacturasEmitidas oSfe = new SuministroFactEmitidas.SuministroLRFacturasEmitidas();
oSfe = (SuministroFactEmitidas.SuministroLRFacturasEmitidas)oXmlSerializer.Deserialize(fStream);

me da error
Error en el documento XML (2, 2).
No se esperaba <Envelope xmlns='...schemas.xmlsoap.org/soap/envelope/'>.

que estoy haciendo mal???

Gracias
Un saludo

inyu 19-06-2017 09:05:10

Cita:

Empezado por nuevo1234 (Mensaje 518323)
NO ME HE EXPLICADO BIEN. HASTA EL LUNES DARÁ EL ERROR el nif del titular no esta autorizado (Error 4118). NO HAY QUE REGISTRARSE. EL LUNES YA ENTRARÁ SIN PROBLEMAS. Y LA VERSION DE PRODUCCION, COMO HABEIS COMENTADO, ES LA 1.0.

Tenias razón, hoy ya no da el error de autorización ^\||/

glopez 19-06-2017 10:09:21

Muchas gracias, hoy funciona.

didou 19-06-2017 10:15:27

Nueva version WSDL 1.0
 
Buenos días, me he bajado esta mañana los nuevos WSDL 1.0 y al generar el .pas en Delphi (menú Component/Import WSDL), me genera un .pas con solo 113 línea cuando antes con la 0.7 tenia + de 9000 líneas, por supuesto no me compila dándome error de que diciéndome " [DCC Error] SuministroFactEmitidas1_0.pas(50): E2003 Undeclared entifier: 'SuministroLRFacturasEmitidas'".

Alguien sabe en Delphi algo de eso?

Gracias.

CMB 19-06-2017 10:17:40

Cita:

Empezado por didou (Mensaje 518342)
Buenos días, me he bajado esta mañana los nuevos WSDL 1.0 y al generar el .pas en Delphi (menú Component/Import WSDL), me genera un .pas con solo 113 línea cuando antes con la 0.7 tenia + de 9000 líneas, por supuesto no me compila dándome error de que diciéndome " [DCC Error] SuministroFactEmitidas1_0.pas(50): E2003 Undeclared entifier: 'SuministroLRFacturasEmitidas'".
Alguien sabe en Delphi algo de eso?
Gracias.

¿Cuál es tu versión de Delphi?

newtron 19-06-2017 10:20:37

Hola.

¿Alguien puede hacer una prueba de envío de facturas emitidas en entorno de producción? Yo lo intento y me dice "403. No autorizado". Sin embargo el de recibidas si me lo hace correctamente.

didou 19-06-2017 10:20:55

estamos con Delphi XE

didou 19-06-2017 10:21:39

Cita:

Empezado por CMB (Mensaje 518343)
¿Cuál es tu versión de Delphi?


estamos con Delphi XE


La franja horaria es GMT +2. Ahora son las 14:48:13.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi