Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Ley antifraude 2021 (VERIFACTU) - Programas informáticos (https://www.clubdelphi.com/foros/showthread.php?t=95235)

bmfranky 17-10-2024 12:01:14

Cita:

Empezado por CarlosArjonomia (Mensaje 558309)
Me refiero a cuando el cliente ya ha actualizado a VeriFactu. Imagina, el cliente actualiza para adaptar el programa a verifactu y una vez pasado el año de actualización y soporte decide dejar de pagar y no actualizar. El programa debe de dejar de emitir facturas ya que no ha sido actualizado y tu puedes estar enviando información incorrecta o no verificada con tu acreditación como proveedor del SIF.

Hola, en mi umilde opinion, creo que no es asi, tu legalmente no creo que puedas dejar no funcional un programa que has vendido,pero si no cumple el 100% de las modificaciones de la normativa, por no actualizarlo, no es responsabilidad del creador, sino del cliente final por no actualizarlo, o tendriamos que ser responsables de cualquier cliente que continue facturando con un programa no verifactu en absoluto?

Otra cosa es que un programa que tu vendes/actualizas no cumpla las normativas exigibles, ahi si podriamos tener un problema.

Recuerda que tu acreditas que tu programa "Pepe Factus 2000" , version x.y.z cumplia verifactu version a.b en la fecha en que lo instalaste / actualizaste por ultima vez, no despues.

[email protected] 17-10-2024 12:04:14

Yo tengo montado mis procesos con VERIFICACION por FTP de cada cliente.
Nosotros a cada cliente les damos servicio por suscripcion/uso, si alguno no paga, lo que se hace es que se quita del FTP el acceso de ese cliente y no EJECUTA la aplicacion.
En vista de los hechos que van apareciendo, creo que lo cambiaremos y en lugar de no dejar entrar en la aplicación, lo que se hara es BLOQUEAR alguna de las opciones , ente ellas LA EMISION DE FACTURAS y el mantenimiento de ALBARANES.

Lo comento por si le sirve a alguien

bmfranky 17-10-2024 12:06:04

Cita:

Empezado por [email protected] (Mensaje 558311)
Yo tengo montado mis procesos con VERIFICACION por FTP de cada cliente.
Nosotros a cada cliente les damos servicio por suscripcion/uso, si alguno no paga, lo que se hace es que se quita del FTP el acceso de ese cliente y no EJECUTA la aplicacion.
En vista de los hechos que van apareciendo, creo que lo cambiaremos y en lugar de no dejar entrar en la aplicación, lo que se hara es BLOQUEAR alguna de las opciones , ente ellas LA EMISION DE FACTURAS y el mantenimiento de ALBARANES.

Lo comento por si le sirve a alguien


Entonces , vosotros no vendeis el programa, alquilais el derecho de uso, como en los videojuegos digitales, o como se deba expresar correctamente.

CarlosArjonomia 17-10-2024 12:12:11

Cita:

Empezado por [email protected] (Mensaje 558311)
Yo tengo montado mis procesos con VERIFICACION por FTP de cada cliente.
Nosotros a cada cliente les damos servicio por suscripcion/uso, si alguno no paga, lo que se hace es que se quita del FTP el acceso de ese cliente y no EJECUTA la aplicacion.
En vista de los hechos que van apareciendo, creo que lo cambiaremos y en lugar de no dejar entrar en la aplicación, lo que se hara es BLOQUEAR alguna de las opciones , ente ellas LA EMISION DE FACTURAS y el mantenimiento de ALBARANES.

Lo comento por si le sirve a alguien

Exactamente lo mismo hago yo. Creo que las nuevas circunstancias requieren nuevas políticas de uso. A partir de la primera actualización a verifactu, funcionamiento de la aplicación condicionada al pago de soporte y actualizaciones. Explica después a la aeat que tu aplicación ha estado mandando información incorrecta por tus escrúpulos de cara a los derechos de tu cliente.

[email protected] 17-10-2024 12:24:37

Cita:

Empezado por bmfranky (Mensaje 558312)
Entonces , vosotros no vendeis el programa, alquilais el derecho de uso, como en los videojuegos digitales, o como se deba expresar correctamente.

Exactamente, vendemos derecho de suscripcion/uso, es lo que estan haciendo las grandes marcas, Office365, Reader, etc.

Ahora con la nueva ley, si no se paga la mensualidad, cambiaremos y en lugar de impedir que usen la aplicación, lo que se hara es BLOQUEAR alguna de las opciones, entre ellas la emision de facturas y albaranes

antoniomarquezc 17-10-2024 12:47:14

Hola.

¿ Ha dejado de funcionar el webservice ?.

No puedo subir facturas de prueba.

kalimero 17-10-2024 12:48:48

Creo que está caido. A mi tampoco me deja

Mlopez 17-10-2024 12:50:00

Sí, a mi me está fallando también desde hace unos 10 minutos, debe estar caido

djatila 17-10-2024 13:08:35

Efectivamente esta caido, tampoco funcionan las consultas de las facturas subidas.

David M 17-10-2024 14:15:29

Cita:

Empezado por djatila (Mensaje 558318)
Efectivamente esta caido, tampoco funcionan las consultas de las facturas subidas.

Ya vuelve a funcionar...

bmfranky 17-10-2024 14:18:19

Respuesta servidor caido.
 
Hola, alguien tiene copia de la respuesta del servidor ahora que no funcionaba?, por aprobechar y crear una rutina que atienda y reenvie tras caerse su servidor....
Es que no es lo mismo responder a un 404 , no existe que a un 403 proibida la accion,etc ...

rci 17-10-2024 15:39:03

Cita:

Empezado por bmfranky (Mensaje 558322)
Hola, alguien tiene copia de la respuesta del servidor ahora que no funcionaba?, por aprobechar y crear una rutina que atienda y reenvie tras caerse su servidor....
Es que no es lo mismo responder a un 404 , no existe que a un 403 proibida la accion,etc ...

En la prueba que he hecho yo no había ninguna respuesta del servidor. saltaba una excepción al intentar conectar

Código:

Error: Se ha forzado la interrupción de una conexión existente por el host remoto Exception:System.ServiceModel.CommunicationException:
Error al recibir la respuesta HTTP a https://prewww1.aeat.es/wlpl/TIKE-CONT/ws/SistemaFacturacion/VerifactuSOAP. Puede deberse a que el enlace del extremo de servicio no usa el protocolo HTTP.
También puede deberse a que el servidor anula un contexto de solicitud HTTP (posiblemente por el cierre del servicio).
Consulte los registros del servidor para obtener más información.
---> System.Net.WebException: Se ha terminado la conexión: Error inesperado de recepción.
---> System.IO.IOException: No se puede escribir datos de en la conexión de transporte: Se ha forzado la interrupción de una conexión existente por el host remoto.
---> System.Net.Sockets.SocketException: Se ha forzado la interrupción de una conexión existente por el host remoto
  en System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)
  en System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
    --- Fin del seguimiento de la pila de la excepción interna ---
  en System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
  en System.Net.FixedSizeReader.ReadPacket(Byte[] buffer, Int32 offset, Int32 count)
  en System.Net.Security._SslStream.StartFrameHeader(Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest)
  en System.Net.Security._SslStream.StartReading(Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest)
  en System.Net.Security._SslStream.ProcessRead(Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest)
  en System.Net.TlsStream.Read(Byte[] buffer, Int32 offset, Int32 size)
  en System.Net.PooledStream.Read(Byte[] buffer, Int32 offset, Int32 size)
  en System.Net.Connection.SyncRead(HttpWebRequest request, Boolean userRetrievedStream, Boolean probeRead)
  --- Fin del seguimiento de la pila de la excepción interna ---
  en System.Net.HttpWebRequest.GetResponse()
  en System.ServiceModel.Channels.HttpChannelFactory`1.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)
  --- Fin del seguimiento de la pila de la excepción interna ---


rci 17-10-2024 16:07:17

Cita:

Empezado por rci (Mensaje 558323)
En la prueba que he hecho yo no había ninguna respuesta del servidor. saltaba una excepción al intentar conectar

Código:

Error: Se ha forzado la interrupción de una conexión existente por el host remoto Exception:System.ServiceModel.CommunicationException:
Error al recibir la respuesta HTTP a https://prewww1.aeat.es/wlpl/TIKE-CONT/ws/SistemaFacturacion/VerifactuSOAP. Puede deberse a que el enlace del extremo de servicio no usa el protocolo HTTP.
También puede deberse a que el servidor anula un contexto de solicitud HTTP (posiblemente por el cierre del servicio).
Consulte los registros del servidor para obtener más información.
---> System.Net.WebException: Se ha terminado la conexión: Error inesperado de recepción.
---> System.IO.IOException: No se puede escribir datos de en la conexión de transporte: Se ha forzado la interrupción de una conexión existente por el host remoto.
---> System.Net.Sockets.SocketException: Se ha forzado la interrupción de una conexión existente por el host remoto
  en System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)
  en System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
    --- Fin del seguimiento de la pila de la excepción interna ---
  en System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
  en System.Net.FixedSizeReader.ReadPacket(Byte[] buffer, Int32 offset, Int32 count)
  en System.Net.Security._SslStream.StartFrameHeader(Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest)
  en System.Net.Security._SslStream.StartReading(Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest)
  en System.Net.Security._SslStream.ProcessRead(Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest)
  en System.Net.TlsStream.Read(Byte[] buffer, Int32 offset, Int32 size)
  en System.Net.PooledStream.Read(Byte[] buffer, Int32 offset, Int32 size)
  en System.Net.Connection.SyncRead(HttpWebRequest request, Boolean userRetrievedStream, Boolean probeRead)
  --- Fin del seguimiento de la pila de la excepción interna ---
  en System.Net.HttpWebRequest.GetResponse()
  en System.ServiceModel.Channels.HttpChannelFactory`1.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)
  --- Fin del seguimiento de la pila de la excepción interna ---



Por cierto, en este caso concreto, cogéis alguno de los mensajes del error (poco entendibles) para mostrar al usuario o creáis uno propio indicando que ha fallado el servidor remoto, por ejemplo.

Muchas Gracias

sglorka 17-10-2024 17:33:51

Cita:

Empezado por rci (Mensaje 558324)
Por cierto, en este caso concreto, cogéis alguno de los mensajes del error (poco entendibles) para mostrar al usuario o creáis uno propio indicando que ha fallado el servidor remoto, por ejemplo.

Muchas Gracias

Pues te puedo dar alguna idea. Cuando recibes un error al enviar unmensaje se abren tres escenarios.

Escenario 1, no has llegado al servidor de Aeat, el objeto Respuesta tiene a Nothing la propiedad "RespuestaLinea" además del nodo "DatosPresentacion". Esta respuesta indica que la Aeat no se ha enterado de nada, fallo en comunicación, no hay Internet, endponit inccesible, ausencia de certificado, certificado no apto para autenticación sobre línea segura...) y el error lo devuelve el protocolo de comunicaciones. Los posibles errores que te vas a encontrar son "System.ServiceModel.EndpointNotFoundException", "System.ServiceModel.CommunicationException", "System.Security.Cryptography.CryptographicException", "System.ServiceModel.ProtocolException" . Debes proceder informando del error y volviendo a reenviar el mensaje.

Escenario 2, has llegado al servidor de Aeat, el objeto Respuesta tiene a Nothing la propiedad "RespuestaLinea" además del nodo "DatosPresentacion". Esta respuesta indica que la Aeat se ha enterado de que le ha llegado algo pero no entiende qué es, debido a que el modelo tiene algún tipo de fallo en su construcción, falta algún nodo, o el certificado que estás utilizando no lo reconoce. El típico error que recibirás es "System.ServiceModel.FaultException". En este caso, el reenvío no va a solucionar nada, debes informar al cliente que tiene que ponerse en contacto con su Servicio Técnico.

Escenario 3, has llegado al servidor de la Aeat, la propiedad "RespuestaLinea" del objeto Respuesta tiene contenido. El servicio te ha aceptado el mensaje con sus Registros de Facturación indicando en cada línea el estado de cada registro, Aceptado, Aceptado con Errores, Incorrecto. Informarás al cliente de lo que hay que subsanar o rectificar

Jesusggc 17-10-2024 17:46:54

Remitir Registros de facturacion superados 120 segundos desde su emision
 
En relación al servicio caido de esta mañana y posterior remision de Registros una vez solucionado el problema.

En estos casos recibirán este mensaje de error:

Cita:

<EstadoRegistro>AceptadoConErrores</EstadoRegistro>
<CodigoErrorRegistro>2004</CodigoErrorRegistro>
<DescripcionErrorRegistro>El valor del campo FechaHoraHusoGenRegistro debe ser la fecha actual del sistema de la AEAT, admitiéndose un margen de error de: 120 segundos.</DescripcionErrorRegistro>
He puesto consulta a verifactu, y contestan lo siguiente:

Cita:

Buenas tardes:
Este es un error de los denominados admisibles (ver documento de validaciones, apartado "4.3 Tratamiento de los errores admisibles ") y debido a ello se admitirá el registro. Este error en concreto, se excepciona de la necesidad de ser subsanado por lo que necesitarían realizar ninguna subsanación posteriormente.
Otra cuestión a tener en cuenta, es que está previsto que los sistemas informáticos de facturación, tengan indisponibilidades como cortes de luz, falta de conexión, fallos en el sistema , etc. y se pueda superar el tiempo establecido...En esos casos deben activar el campo "Incidencia" (ver diseño de registro, hoja "1)DR Remisión Alta-Anul.VF-Req.") para que no les aparezca dicho error

jguarda 17-10-2024 17:55:31

duda
 
Había alguien, que había subido un código fuente para enviar facturas al sistema VERIFACTU, hay alguna actualización al respecto para probar de nuevo??

rci 17-10-2024 18:11:57

Cita:

Empezado por sglorka (Mensaje 558329)
Pues te puedo dar alguna idea. Cuando recibes un error al enviar unmensaje se abren tres escenarios.

Escenario 1, no has llegado al servidor de Aeat, el objeto Respuesta tiene a Nothing la propiedad "RespuestaLinea" además del nodo "DatosPresentacion". Esta respuesta indica que la Aeat no se ha enterado de nada, fallo en comunicación, no hay Internet, endponit inccesible, ausencia de certificado, certificado no apto para autenticación sobre línea segura...) y el error lo devuelve el protocolo de comunicaciones. Los posibles errores que te vas a encontrar son "System.ServiceModel.EndpointNotFoundException", "System.ServiceModel.CommunicationException", "System.Security.Cryptography.CryptographicException", "System.ServiceModel.ProtocolException" . Debes proceder informando del error y volviendo a reenviar el mensaje.

Escenario 2, has llegado al servidor de Aeat, el objeto Respuesta tiene a Nothing la propiedad "RespuestaLinea" además del nodo "DatosPresentacion". Esta respuesta indica que la Aeat se ha enterado de que le ha llegado algo pero no entiende qué es, debido a que el modelo tiene algún tipo de fallo en su construcción, falta algún nodo, o el certificado que estás utilizando no lo reconoce. El típico error que recibirás es "System.ServiceModel.FaultException". En este caso, el reenvío no va a solucionar nada, debes informar al cliente que tiene que ponerse en contacto con su Servicio Técnico.

Escenario 3, has llegado al servidor de la Aeat, la propiedad "RespuestaLinea" del objeto Respuesta tiene contenido. El servicio te ha aceptado el mensaje con sus Registros de Facturación indicando en cada línea el estado de cada registro, Aceptado, Aceptado con Errores, Incorrecto. Informarás al cliente de lo que hay que subsanar o rectificar


Gracias sglorka, en el caso de hoy que el servidor estaba caído, no había respuesta, no había un el objeto Respuesta, saltaba una excepción (yo programo en c# .net).
Pero igualmente supongo que seria el escenario 1, informar que ha fallado la conexión y volver a intentar enviar.

Lo que yo preguntaba era si el mensaje lo redacta el programador, por ejemplo: "ha fallado la conexión" o cogéis el texto de la excepción "Error al recibir la respuesta HTTP a https://prewww1.aeat.es/wlpl/TIKE-CO.../VerifactuSOAP. Puede deberse a que el enlace del extremo de servicio no usa el protocolo HTTP. También puede deberse a que el servidor anula un contexto de solicitud HTTP (posiblemente por el cierre del servicio)." por ejemplo.
Si mostramos el segundo mensaje, el usuario es probable que no lo entienda :p

sglorka 17-10-2024 18:37:02

Cita:

Empezado por rci (Mensaje 558333)
Gracias sglorka, en el caso de hoy que el servidor estaba caído, no había respuesta, no había un el objeto Respuesta, saltaba una excepción (yo programo en c# .net).
Pero igualmente supongo que seria el escenario 1, informar que ha fallado la conexión y volver a intentar enviar.

Si te fijas en el mensaje de error que has puesto en la primera línea pone "System.ServiceModel.CommunicationException",esto es lo que te hace ver que es un error de comunicaciones

Lo que yo preguntaba era si el mensaje lo redacta el programador, por ejemplo: "ha fallado la conexión" o cogéis el texto de la excepción "Error al recibir la respuesta HTTP a https://prewww1.aeat.es/wlpl/TIKE-CO.../VerifactuSOAP. Puede deberse a que el enlace del extremo de servicio no usa el protocolo HTTP. También puede deberse a que el servidor anula un contexto de solicitud HTTP (posiblemente por el cierre del servicio)." por ejemplo.
Si mostramos el segundo mensaje, el usuario es probable que no lo entienda :p

Yo creo que si tienes claro cúal es el error y puedes dar al usuario un procedimiento de solución debes exponer esa información, por ejemplo en este caso, detectas que el problema es de comunicaciones, "System.ServiceModel.CommunicationException", podrías informar al usuario con algo así "No hay conexión con la Aeat. Verifique que tiene conexión a Internet. Se reintentará la operación de envío en unos instantes. "
Si no tienes claro cuál es el error y por ende tampoco la solución, informarías del error y pondrías la coletilla... póngase en contacto con su Servicio Técnico.

jguarda 17-10-2024 18:59:51

duda
 
He buscado donde presentar la declaración responsable para comenzar a hacer pruebas, no he consguido encontrar donde entregar esto, alguien sabe donde se hace ?

edari 17-10-2024 20:45:20

Y en caso que esté caído su servidor, qué pasa con el husohorario que generamos en el envío fallido?


La franja horaria es GMT +2. Ahora son las 04:48:36.

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