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)

marine 24-05-2017 13:57:38

pregunta... en vuestros desarrollos obteneis el certificado "fisico" ???

El objetivo es saber si de alguna manera se podría obtener una cadena de validación donde no sea necesario tener instalado el certificado en el equipo .

El desarrollo lo estoy haciendo en vb.NEt

keys 24-05-2017 14:14:53

Cita:

Empezado por marine (Mensaje 517085)
pregunta... en vuestros desarrollos obteneis el certificado "fisico" ???

El objetivo es saber si de alguna manera se podría obtener una cadena de validación donde no sea necesario tener instalado el certificado en el equipo .

El desarrollo lo estoy haciendo en vb.NEt

Para hacer el envío de esto que yo sepa, siempre hay que hacerlo a través de certificado ya sea por que lo tienes instalado en el equipo o lo tienes en un fichero. En la última reunión que estuve dijeron que iban a implantar también el acceso con clave pin, que es como un certificado temporal que puedes crear en hacienda.

Pero de momento solo con certificados.

figo21 24-05-2017 15:29:54

Cita:

Empezado por marine (Mensaje 517085)
pregunta... en vuestros desarrollos obteneis el certificado "fisico" ???

El objetivo es saber si de alguna manera se podría obtener una cadena de validación donde no sea necesario tener instalado el certificado en el equipo .

El desarrollo lo estoy haciendo en vb.NEt

No tengo ni idea de como se plantea el sistema usando vb.net, pero si te comunicas con la aeat usando curl no necesitas tener el certificado instalado.
Pasas el certificado de PKCS a pem (tanto el certificado como la clave privada), que te puedes guardar donde y como quieras y usarlo para la comunicación.
Aquí tienes un ejemplo con curl (descarga el pdf del segundo post):
https://velneo.es/foros/topic/sistem...ion-a-la-aeat/

Seguro que con vb.net tienes alguna librería para trabajar con curl.


Un saludo.

PASPAS 24-05-2017 15:45:46

Notificaciones AEAT
 
Una respuesta de la AEAT para el tema de mantenernos informados sobre las novedades y nuevas versiones.
Por si os sirve os paso esto ...
Respuesta AEAT

Buenos días:
Se ha habilitado la suscripción a las novedades del SII en formato RSS. De esta forma, Ud. podrá integrar en su Web o ver en su cliente RSS las últimas noticias del Suministro Inmediato de información del IVA con enlaces directos a su contenido completo.
http://www.agenciatributaria.es/AEAT.internet/Inicio/La_Agencia_Tributaria/Campanas/Suministro_Inmediato_de_Informacion_en_el_IVA__SII_/INFORMACION/Novedades/Suscripcion_a_novedades_RSS__SII.shtml
http://www.agenciatributaria.es/AEAT.internet/Inicio/RSS/RSS.html
Atentamente,
AEAT

marine 24-05-2017 15:59:37

Cita:

Empezado por keys (Mensaje 517087)
Para hacer el envío de esto que yo sepa, siempre hay que hacerlo a través de certificado ya sea por que lo tienes instalado en el equipo o lo tienes en un fichero. En la última reunión que estuve dijeron que iban a implantar también el acceso con clave pin, que es como un certificado temporal que puedes crear en hacienda.

Pero de momento solo con certificados.

Gracias! lo tendré en cuenta

marine 24-05-2017 16:01:22

Cita:

Empezado por figo21 (Mensaje 517089)
No tengo ni idea de como se plantea el sistema usando vb.net, pero si te comunicas con la aeat usando curl no necesitas tener el certificado instalado.
Pasas el certificado de PKCS a pem (tanto el certificado como la clave privada), que te puedes guardar donde y como quieras y usarlo para la comunicación.
Aquí tienes un ejemplo con curl (descarga el pdf del segundo post):


Seguro que con vb.net tienes alguna librería para trabajar con curl.


Un saludo.

Muchas gracias , investigaré sobre ello

JJAlf 24-05-2017 16:58:12

Cita:

Empezado por vboloradito (Mensaje 516773)
Cita:

Empezado por JJAlf (Mensaje 516747)
En mi caso no, porque igualmente tengo hacerlo directo contra AEAT y el usar además otro interlocutor me complica la existencia. Pero entiendo que si sólo tuviera que interactuar con ellos, el sistema se 'simplifica', en cuanto a que te olvidas en muchos casos de complejos componentes (THTTPRio, parseadores XML, Certificados, XLDS...) y normalmente te ofrecen dejarles los datos en simples ficheros planos. De las versiones, validaciones y demás se encargan ellos, yo sólo formateo los datos y recibo resultados.
Eso sí, no son precisamente baratos. Lo que ocurre es que muchas veces (como es mi caso) ya trabajan con esas empresas para la recepción y envío de documentos. Lo cual no supone que les vayan a cobrar poco, pero el cliente manda...

Pero si curras con SERES-edicom:
¿Tienes que recoger la respuesta de seres y trasladarla a tu sistema o te quedas solo en seres?.

Si tienes que modificar un nif lo haces en SERES-edicom y luego a mano en tu sistema o lo haces en tu sistema y tienes qeu marcarla para que la vuelva a extraer para enviar a SERES-edicom.

Perdona, he tenido que cambiar de proyecto y hasta ayer no he vuelto a retomar el tema y empezar con la comunicación con edicom.

Efectivamente, hay que hacer todo el trabajo pero dejando a ellos SOLO el envío final. Si hay que modificar algo, se modifica en el sistema del cliente y se vuelve a enviar (se vuelve a generar el fichero y a decirle a edicom que lo envíe), lo mismo que el tratar las respuestas de edicom (que son las respuestas de la AEAT). Bueno, creo que existe un cliente mu chulo, pero yo ahí no entro, espero que sólo sirva para consultar datos.

La cosa es superchunga. De primeras, al usar yo WSDL el mensaje que la AEAT me acepta sin problemas a ellos no les vale porque tiene el englobado SOAP (fácil de quitar) y no tiene los namespaces (sii:, siiLR: ..) que tendría si hubiera hecho el XML a mano basándome en el XSD. Vale, hago la transformación. Pero luego lo que han hecho (en mi caso) es un cliente java para poder comunicarme con su servicio, que no deja de ser un REST, podría haberme comunicado directamente, ¿no?. En fin, dejas el archivo generado en una carpeta y ejecutas un comando para que lo envíe. Y ya está. Puedo averiguar (algo intrincadamente) que el mensaje ha sido tratado por su servidor correctamente. Pero para saber si la AEAT ha dado el ok, tengo que ejecutar un comando para recibir mensajes de respuesta.
Aún estoy esperándolo, para saber cómo voy a casar el mensaje que he enviado esta mañana con su respuesta.

Una odisea.

figo21 24-05-2017 17:10:59

Cita:

Empezado por JJAlf (Mensaje 517098)
Perdona, he tenido que cambiar de proyecto y hasta ayer no he vuelto a retomar el tema y empezar con la comunicación con edicom.

Efectivamente, hay que hacer todo el trabajo pero dejando a ellos SOLO el envío final. Si hay que modificar algo, se modifica en el sistema del cliente y se vuelve a enviar (se vuelve a generar el fichero y a decirle a edicom que lo envíe), lo mismo que el tratar las respuestas de edicom (que son las respuestas de la AEAT). Bueno, creo que existe un cliente mu chulo, pero yo ahí no entro, espero que sólo sirva para consultar datos.

La cosa es superchunga. De primeras, al usar yo WSDL el mensaje que la AEAT me acepta sin problemas a ellos no les vale porque tiene el englobado SOAP (fácil de quitar) y no tiene los namespaces (sii:, siiLR: ..) que tendría si hubiera hecho el XML a mano basándome en el XSD. Vale, hago la transformación. Pero luego lo que han hecho (en mi caso) es un cliente java para poder comunicarme con su servicio, que no deja de ser un REST, podría haberme comunicado directamente, ¿no?. En fin, dejas el archivo generado en una carpeta y ejecutas un comando para que lo envíe. Y ya está. Puedo averiguar (algo intrincadamente) que el mensaje ha sido tratado por su servidor correctamente. Pero para saber si la AEAT ha dado el ok, tengo que ejecutar un comando para recibir mensajes de respuesta.
Aún estoy esperándolo, para saber cómo voy a casar el mensaje que he enviado esta mañana con su respuesta.

Una odisea.

Madre mía, pero si es más complicado eso que comunicarte directamente con la aeat. Aparte de que recibes la respuesta en tiempo real...


Un saludo.

RUBEN_SP 24-05-2017 18:57:44

Cita:

Empezado por xerkan (Mensaje 516964)
Gracias a las personas de este hilo para ayudarnos a todos a adaptar nuestros programas para el nuevo sistema SII, para añadir mi granito de arena incluyo unas modificaciones al ejemplo de newtron (Webservices AEAT Berlin_2) para añadirle mas opciones, este ejemplo era de facturas emitidas asi que tambien lo e adaptado para facturas recibidas

Muchas gracias a tí también. Me he reincorporado, por que al final hemos decidido implentarlo en lugar de subcontratarlo. Si no te importa ¿Cómo me puede descargar ese código?. No me sale adjunto

Muchas gracias de antemano y Saludos

xamminf 24-05-2017 19:03:26

Hola a todos,

Una preguntilla, a ver si fuera fácil:

Necesitaria hacer una consulta multiple a la aeat pero por Numero de Factura y/o nif.

¿ Es posible con la 0.6 ? Me ha parecido que no

¿ Es posible con la 0.7 ? Esta no lo he visto, pero no me sirve si no puedo probarla...

Saludos

PASPAS 24-05-2017 20:30:44

Cita:

Empezado por JJAlf (Mensaje 517098)
Perdona, he tenido que cambiar de proyecto y hasta ayer no he vuelto a retomar el tema y empezar con la comunicación con edicom.

Efectivamente, hay que hacer todo el trabajo pero dejando a ellos SOLO el envío final. Si hay que modificar algo, se modifica en el sistema del cliente y se vuelve a enviar (se vuelve a generar el fichero y a decirle a edicom que lo envíe), lo mismo que el tratar las respuestas de edicom (que son las respuestas de la AEAT). Bueno, creo que existe un cliente mu chulo, pero yo ahí no entro, espero que sólo sirva para consultar datos.

La cosa es superchunga. De primeras, al usar yo WSDL el mensaje que la AEAT me acepta sin problemas a ellos no les vale porque tiene el englobado SOAP (fácil de quitar) y no tiene los namespaces (sii:, siiLR: ..) que tendría si hubiera hecho el XML a mano basándome en el XSD. Vale, hago la transformación. Pero luego lo que han hecho (en mi caso) es un cliente java para poder comunicarme con su servicio, que no deja de ser un REST, podría haberme comunicado directamente, ¿no?. En fin, dejas el archivo generado en una carpeta y ejecutas un comando para que lo envíe. Y ya está. Puedo averiguar (algo intrincadamente) que el mensaje ha sido tratado por su servidor correctamente. Pero para saber si la AEAT ha dado el ok, tengo que ejecutar un comando para recibir mensajes de respuesta.
Aún estoy esperándolo, para saber cómo voy a casar el mensaje que he enviado esta mañana con su respuesta.

Una odisea.

Madre mia , para edicom estas haciendo el trabajo doble no lo veo viable . Espero que no me toque ningun cliente asi.
Ademas gracias por la info porque si veo q alguien lo quiere con edicom lo dejare bien claro que todo el envio y respuesta se trate via edicom.
Yo de ti lo que haria es marcar com exportado a edicomSII y ya esta luego que el cliente entre a su portal para ver el status , lo que estas haciendo es un trabajo de chinos y perdon por la expresion. Encima de lo que cobran te hacen convertir a su gusto y espera q con nuevas version lo q te tocara hacer extra.
Saludos y animo.

Galahad 24-05-2017 20:44:23

dos consultas
 
Hola amigos.
Gracias a todos los que están aportando aquí su granito de arena ayudando con su experiencia/trabajo a otros que estamos empezando en este tema de los servicios web. ^\||/^\||/

Quisiera preguntar un par de cosas...

- ¿ teneís algun problema al enviar de manera consecutiva dos 'libros' diferentes.? . Yo puedo enviar sin problemas cada libro por separado, pero cuando mando dos seguidos , mas o menos así:
Cita:

// envio libro de facturas emitidas
result := SuministroFactEmitidas.GetsiiSOAP(true,'',HTTPRIO1).SuministroLRFacturasEmitidas(ASuministroLRFactur asEmitidas);
// se procesa y gestiona el resultado
// envio de facturas recibidas
result := GetsiiSOAP(true,'',HTTPRIO1).SuministroLRFacturasRecibidas(ASuministroLRFacturasRecibidas);
con este tipo de envio, se envia el de facturas emitidas sin problemas, pero cuando intenta mandar el segundo, aparece el error : 'Interface not supported', habia pensado en crear otro objeto diferente de tipo httprio1 y utilizarlo, pero es complicado porque tendria que volver a cargar el certificado y además el componente tiene eventos asignados. ¿ se puede 'inicializar' el componente HTTPRIO ?.

- y por último, ¿ como estáís resolviendo el tema del identificador ?, tenemos clientes que utilizan para la serie números, otros caracteres, algunos utilizan separadores tipo '/' o '-', con diferente número de dígitos para el número de factura. Imagino que la base de que funcione el contraste de la aeat es que tanto cliente como proveedor evien el mismo identificador. He preguntado a la agencia tributaria si recomiendan alguna norma específica de codificación pero sigo esperando.

Un saludo, y gracias anticipadas

seccion_31 25-05-2017 07:55:37

Cita:

Empezado por Galahad (Mensaje 517113)
Hola amigos.
Gracias a todos los que están aportando aquí su granito de arena ayudando con su experiencia/trabajo a otros que estamos empezando en este tema de los servicios web. ^\||/^\||/

Quisiera preguntar un par de cosas...

- ¿ teneís algun problema al enviar de manera consecutiva dos 'libros' diferentes.? . Yo puedo enviar sin problemas cada libro por separado, pero cuando mando dos seguidos , mas o menos así:

con este tipo de envio, se envia el de facturas emitidas sin problemas, pero cuando intenta mandar el segundo, aparece el error : 'Interface not supported', habia pensado en crear otro objeto diferente de tipo httprio1 y utilizarlo, pero es complicado porque tendria que volver a cargar el certificado y además el componente tiene eventos asignados. ¿ se puede 'inicializar' el componente HTTPRIO ?.

- y por último, ¿ como estáís resolviendo el tema del identificador ?, tenemos clientes que utilizan para la serie números, otros caracteres, algunos utilizan separadores tipo '/' o '-', con diferente número de dígitos para el número de factura. Imagino que la base de que funcione el contraste de la aeat es que tanto cliente como proveedor evien el mismo identificador. He preguntado a la agencia tributaria si recomiendan alguna norma específica de codificación pero sigo esperando.

Un saludo, y gracias anticipadas

utiliza dos objetos HTTPRIO uno para emitidas y otro para recibidas y listo. ¿no?

Saludos !

Galahad 25-05-2017 09:52:47

Cita:

Empezado por seccion_31 (Mensaje 517121)
utiliza dos objetos HTTPRIO uno para emitidas y otro para recibidas y listo. ¿no?

Saludos !

Bueno, si, tienes razón, lo he hecho y ya funciona. De momento he copiado el componente original y ya está, procuraré no obstante crear el componente en tiempo de ejecución , si voy a enviar varios libros al mismo tiempo queda feo tener diferentes componentes, mejor crearlos en runtime.
Muchas Gracias...

JJAlf 25-05-2017 10:00:19

Cita:

Empezado por Galahad (Mensaje 517113)

- ¿ teneís algun problema al enviar de manera consecutiva dos 'libros' diferentes.? . Yo puedo enviar sin problemas cada libro por separado, pero cuando mando dos seguidos , mas o menos así:

con este tipo de envio, se envia el de facturas emitidas sin problemas, pero cuando intenta mandar el segundo, aparece el error : 'Interface not supported', habia pensado en crear otro objeto diferente de tipo httprio1 y utilizarlo, pero es complicado porque tendria que volver a cargar el certificado y además el componente tiene eventos asignados. ¿ se puede 'inicializar' el componente HTTPRIO ?.

El error 'Interface not supported' suele darse si se lía entre unidades (o sea entre la unit SuministroFactEmitidas y la unit SuministroFactRecibidas, por ejemplo). Por mucho que especifiques la unidad a la que haces referencia, en algún punto se puede liar dado que además muchos tipos iguales están en ambas.
Yo envío libros diferentes consecutivamente sin problemas, eso si, los tengo en unidades distintas. Uso un DataModule común donde meto todo el código común que puedo y de ahí heredo unidades distintas para cada libro, donde tiene la información específica.
Tampoco uso el GETsiiSOAP, que no me permite cambiar el puerto (entre real y pruebas) mas que modificando el código. En vez de ello, hago un
Código Delphi [-]
      with HTTPRIO1 as siiSoAP do
      HPresult := SuministroLRFacturasEmitidas(SumDatos)

RUBEN_SP 25-05-2017 11:00:23

Cita:

Empezado por rafacarpi (Mensaje 516986)
Muchísimas gracias xerkan por el ejemplo y sobre todo por los comentarios en el código, yo tenía montado algo muy parecido en cuanto a las facturas recibidas. Lo comento por si hay alguien buscando ejemplo, este que aporta nuestro compañero es bastante bueno y ya digo, comentado para que se sepa en todo momento con que se está trabajando.

Estoy desarrollandolo para una administración pública y al no cederme le certificado digital para las pruebas cada vez que quiero enviar algo para probar tengo que montar una película. He preguntado a Hacienda pero aún no me han contestado, alguien sabe si dentro de la plataforma de pruebas se puede enviar algo sin certificado, imagino que no porque si esto lleva así desde la primera versión no creo que lo cambien a un mes de la implantación, de ilusiones vive uno.

Gracias a todos los que han aportado en este hilo, tanto a los que preguntan como a los que responden y aportan ejemplos. Gracias de verdad. Gran comunidad.

Hola rafacarpi, ¿De donde has descargado el ejemplo este del que hablas?

Gracias a todos. Ahora que me he vuelto a incorporar al tema veo que habies conseguido lo que al principio parecia una quimera

inyu 25-05-2017 11:08:20

Estoy teniendo problemas declarando una factura emitida con un TipoConDesglose (entrega de bienes) en .NET, me dice que Entrega es de TipoSINdesglose... me ha dado por mirar la referencia al servicio creada automáticamente y me encuentro con:


Código:

Partial Public Class TipoConDesgloseType
        Inherits Object
        Implements System.ComponentModel.INotifyPropertyChanged
       
        Private prestacionServiciosField As TipoSinDesglosePrestacionType
       
        Private entregaField As TipoSinDesgloseType
       
        '''<comentarios/>
        <System.Xml.Serialization.XmlElementAttribute(Order:=0)>  _
        Public Property PrestacionServicios() As TipoSinDesglosePrestacionType
            Get
                Return Me.prestacionServiciosField
            End Get
            Set
                Me.prestacionServiciosField = value
                Me.RaisePropertyChanged("PrestacionServicios")
            End Set
        End Property

Cómo se entiende que la clase TipoConDesgloseType esté formada por Entrega y PrestacionServicios de TipoSinDesglose ????
¿Alguien tiene un ejemplo en .NET de desglose por entrega de bienes? Me da que no lo tengo bien entendido y me estoy liando...

nachoexe 25-05-2017 11:44:04

Cita:

Empezado por xamminf (Mensaje 517108)
Hola a todos,

Una preguntilla, a ver si fuera fácil:

Necesitaria hacer una consulta multiple a la aeat pero por Numero de Factura y/o nif.

¿ Es posible con la 0.6 ? Me ha parecido que no

¿ Es posible con la 0.7 ? Esta no lo he visto, pero no me sirve si no puedo probarla...

Saludos

En la 0.6 no es posible hacer consultas con esos parámetros, en la versión 0.7 si es posible y SI la puedes probar (desde el 17/05/2017 se pueden enviar ficheros XML con la versión 0.6 y 0.7)

xamminf 25-05-2017 11:48:50

Cita:

Empezado por nachoexe (Mensaje 517128)
En la 0.6 no es posible hacer consultas con esos parámetros, en la versión 0.7 si es posible y SI la puedes probar (desde el 17/05/2017 se pueden enviar ficheros XML con la versión 0.6 y 0.7)

¿ Qué me dices ?

Yo creía que se podía probar la 0.7 a partir de Junio. :eek:

¿ Tiene los mismos endpoint ?

Gracias por tu ayuda

keys 25-05-2017 11:54:50

Hola a todos. Estoy intentando obtener información de las facturas presentadas a través del webservices ConsultaLRFacturasEmitidas. Me devuelve la información pero hay una serie de facturas que no me retorna el CSV. Si entro a mirar esas facturas directamente en la web de hacienda tampoco me muestra el CSV. Sin embargo si picho en documento eléctronico si me lo ofrece.

En otras facturas si me lo retorna y si lo miro en la web si está.

A alguien le ocurre esto o sabe por que puede ser.


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

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