Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   TICKET BAI (TicketBAI); Nuevo sistema de la Agencia Tributaria del Pais Vasco (https://www.clubdelphi.com/foros/showthread.php?t=94264)

edari 01-06-2022 09:43:41

Cita:

Empezado por Neftali [Germán.Estévez] (Mensaje 547037)
Justo lo iba a preguntar ahora, porque también me da error.



Pues no hace falta :D:D

CarlosArjonomia 01-06-2022 10:00:33

Cita:

Empezado por Neftali [Germán.Estévez] (Mensaje 547037)
Justo lo iba a preguntar ahora, porque también me da error.


No hubiera encontrado imagen más ilustrativa. Cuando el prestigio de tu trabajo no depende de uno mismo es desesperante.

Neftali [Germán.Estévez] 01-06-2022 11:36:46

Cita:

Empezado por edari (Mensaje 547036)
En Vizcaya pruebas también me da error a mí, no sé si es mío o de ellos.

Batuz ya vuelve a funcionar/responder correctamente.
(preproducción)

adolphsys 01-06-2022 11:48:53

Cita:

Empezado por Neftali [Germán.Estévez] (Mensaje 547031)
Estoy lanzando facturas contra el servidor de pruebas de Guipuzcoa y me da esto:

Código:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>500 Internal Server Error</title>
</head><body>
<h1>Internal Server Error</h1>
<p>The server encountered an internal error or
misconfiguration and was unable to complete
your request.</p>
<p>Please contact the server administrator at
 you@example.com to inform them of the time this error occurred,
 and the actions you performed just before this error.</p>
<p>More information about this error may be available
in the server error log.</p>
</body></html>

¿A alguien más le está pasando?

Desde el lunes están teniendo problemas con el servidor de pruebas de Gipuzkoa y aparece el "HTTP 500 Internal Server Error" de forma intermitente.

Hemos recibido varias llamadas de usuarios al respecto, y les decimos que vuelvan a intentarlo más adelante.

!!!:-| OJO: Incluso nos ha ocurrido en un cliente que ha enviado la factura, el programa se ha tirado un minuto esperando respuesta y se ha desconectado (examinado en los logs). Hacienda tenía la factura pero no ha enviado el OK (ni error, ni nada) así que nos encontramos con una factura subida que puede comprobarse con lectura de QR, y sin embargo en modo local consta como no registrada. Evidentemente no puede reenviarse porque Hacienda ya tiene ese número registrado. Suponemos que este problema está motivado por la inestabilidad del servicio, pero igual es mucho suponer, y en producción puede pasar lo mismo... :(

Saludos,

bilbur 01-06-2022 21:15:00

Cita:

Empezado por Sistel (Mensaje 546228)
Hola Alkavanyatur,

2 segundos es una barbaridad de tiempo para generar y firmar el XML.
Sólo se me ocurren varios casos en que se pudiese tardar tanto:

1- Que la generación y firma del XML la hagas sobre un servidor en Internet que esté situado en la superficie de la Luna (justo un ping de 2 segundos)
2- Que utilices para la firma el software Autofirma-Tortuga del Ministerio de Hacienda (un auténtico ejemplo de software ultralento)
3- Que para el proceso utilices red con protocolo TCP/Paloma_mensajera_lenta :D

Si quieres un sistema de firma rápida en red, te basta con montar un simple microordenador Raspberry PI de unos 30€ en tu propia red local con el software de firma firmador.php de nuestro colega (y nunca bien alabado) Bilbur.
Con este sistema, lo normal será que no pases de 10 milisegundos en tiempo para obtener la firma.

Con 1.000 facturas por minuto el Raspberry Pi estará aburrido por tan poca carga de trabajo :D

Saludos


Estoy preparando una API en PHP
Una pregunta para Sistel, El fichero json que envías a la API viene a ser el xml completo previo a la firma del mismo o es una conjunto pequeño de datos con los que generar el xml (código empresa, código cliente, fecha, etc)
Estoy optando por esto último pero así la API resulta menos "genérica" y mas "personalizada"


Gracias

Sistel 02-06-2022 08:49:34

Cita:

Empezado por bilbur (Mensaje 547046)
Estoy preparando una API en PHP
Una pregunta para Sistel, El fichero json que envías a la API viene a ser el xml completo previo a la firma del mismo o es una conjunto pequeño de datos con los que generar el xml (código empresa, código cliente, fecha, etc)
Estoy optando por esto último pero así la API resulta menos "genérica" y mas "personalizada"
Gracias

Hola bilbur,

El fichero JSON que se envía a mi API contiene sólo los datos básicos:
- Identificación del emisor
- Datos del destinatario (si lo hay, como en el caso de factura completa)
- Tipo de factura y características esenciales
- Líneas de detalle (nombres de productos, importes unitarios, cantidades, descuentos, tipo de IVA, ...)

No se envían ni serie, ni número ni fecha de factura ni datos económicos ni total.
La API se encarga de:
- Verificar los datos que le llegan
- Recabar los datos de la última factura (de ese tipo) del emisor desde la base de datos
- Crear líneas de detalles adicionales si hay descuentos globales en la factura
- Calcular datos económicos como bases, cuotas de IVA, totales, ...
- Asignar serie, número y fecha de factura
- Crear el XML
- Firmar el XML
- Comprobar la validez del XML firmado (con el esquema XSD)
- Grabar los datos de la factura, los detalles y los importes en la base de datos
- Devolver un JSON con todos los datos calculados (bases, cuotas, totales, líneas de detalle), serie, número y fecha de la factura y códigos TBAI y QR
- Enviar a la correspondiente Hacienda Foral el XML TicketBAI y registrar el envío en la base de datos.

Opté porque la API lo haga todo y retorne todo lo necesario para crear el documento de la factura.
No puedo confiar en que llegue, del emisor, el total correcto o el número de factura o fecha correcta. Prefiero que eso lo genere mi API.

Saludos

Eric Mtz 03-06-2022 12:54:11

Una ayudita
 
Buenas a todos, tengo un pequeño dolor de muelas:

Estoy intentando parsear la respuesta de Batuz a objeto y con el 140 perfecto, pero el 240 no hay manera, he descargado los últimos XSDs publicados por Bizkaia y he regenerado la clase varias veces pero en todos los casos me peta diciendo:

"No se esperaba <LROEPJ240FacturasEmitidasConSGAltaRespuesta xmlns='https://www.batu etc..."

La clase parece haberse generado bien y el XML de respuesta tiene buena pinta así que no sé que más hacer ¿Habéis tenido algún problema similar?

Gracias y buen finde! :)

Neftali [Germán.Estévez] 03-06-2022 13:44:41

Cita:

Empezado por Eric Mtz (Mensaje 547054)
Estoy intentando parsear la respuesta de Batuz a objeto y con el 140 perfecto, pero el 240 no hay manera, he descargado los últimos XSDs publicados por Bizkaia y he regenerado la clase varias veces pero en todos los casos me peta diciendo:

"No se esperaba <LROEPJ240FacturasEmitidasConSGAltaRespuesta xmlns='https://www.batu etc..."

La clase parece haberse generado bien y el XML de respuesta tiene buena pinta así que no sé que más hacer ¿Habéis tenido algún problema similar?

¿Exactamente qué XSD es el que te da problemas?
¿El error que obtienes, te da ejecutando algún código (dices que la generación parace correcta)? Puedes poner el código.

Eric Mtz 03-06-2022 14:23:12

Cita:

Empezado por Neftali [Germán.Estévez] (Mensaje 547057)
¿Exactamente qué XSD es el que te da problemas?
¿El error que obtienes, te da ejecutando algún código (dices que la generación parece correcta)? Puedes poner el código.

Hola Neftali, no quise dar demasiada información para no irme por las ramas.

El XSD es el siguiente: "LROE_PJ_240_1_1_FacturasEmitidas_ConSG_AltaRespuesta_V1_0_1.xsd", que a su vez depende de "batuz_Enumerados.xsd", "batuz_TiposBasicos.xsd" y "batuz_TiposComplejos.xsd"

El comando que empleo para generarlo es: (En la consola para desarrolladores de visual studio)

Código:

"/c LROE_PJ_240_1_1_FacturasEmitidas_ConSG_AltaRespuesta_V1_0_1.xsd batuz_TiposComplejos.xsd batuz_Enumerados.xsd batuz_TiposBasicos.xsd /namespace:TicketBaiBatuzAlta240Respuesta"
Trabajo en C# y el código para parsearlo a objeto es: (Me peta justamente en la línea donde se ejecuta el "serializer.Deserialize")

Código:

                LROEPJ240FacturasEmitidasConSGAltaRespuesta batuz240RespuestaAlta = new LROEPJ240FacturasEmitidasConSGAltaRespuesta();
                using (var reader = new StringReader(respuestaBatuz))
                {
                    batuz240RespuestaAlta = (LROEPJ240FacturasEmitidasConSGAltaRespuesta)serializer.Deserialize(reader);
                }

Tengo que añadir que tanto el comando como el código me han funcionado perfectamente con otras clases, incluido el propio 140 de Batuz.

Gracias de antemano ^\||/

Neftali [Germán.Estévez] 07-06-2022 08:51:38

Cita:

Empezado por Eric Mtz (Mensaje 547058)
Trabajo en C# y el código para parsearlo a objeto es: (Me peta justamente en la línea donde se ejecuta el "serializer.Deserialize")

Pensé que estabas trabajando en Delphi.
En mi caso VisualStudio sólo lo uso para visualizar los XSD. A ver si alguien que importe ficheros te puede dar más información.

keys 08-06-2022 08:19:01

Han enviado de Gipuzkoa el siguiente mensaje :

Cita:

Disponible en el entorno de Pruebas de TicketBAI el nuevo servicio OSATU para el envío de la información complementaria al SII (Suministro Inmediato de Información)
al final va a tener esto mas añadidos ...... todo por no planificarlo todo desde el principio. :cool:

trumbolt 08-06-2022 10:41:00

Cita:

Empezado por keys (Mensaje 547091)
Han enviado de Gipuzkoa el siguiente mensaje :



al final va a tener esto mas añadidos ...... todo por no planificarlo todo desde el principio. :cool:

Pues sí. Cuando me ha llegado el correo me ha recorrido un escalofrío al pensar que se abría una nueva guerra pero por lo que he leído, está bastante focalizado a sectores con los que no trabajo así que, de momento, lo dejo estar :D

trumbolt 08-06-2022 10:51:18

Warning en la verificación de la firma
 
Después de una breve pero intensa travesía por el desierto (menos desierto gracias a este foro y a las experiencias expuestas aquí por muchos usuarios), he podido subir al entorno de pruebas de Alava mi primera factura sin errores. Yuhuuuuu.

Por el camino he descubierto que es importante el orden de los nodos y que algunos datos supuestamente opcionales son en realidad obliggatorios pero afortunadamente nada que un ensayo y error pueda subsanar.

Ahora lo que estoy intentando procesar son los warnings. Vale que son sólo advertencias pero hay uno que me gustaría saber a qué se puede deber. Se trata delç

008, Error de verificación de firma

Estoy usando una versión trial (de momento) de SecureBlackBox y andaba un poco preocupado porque sólo genera dos digest (en vez de tres como en algún ejemplo publicado en las webs oficiales) en el xml pero supongo que si fuera por algo así o que estuviese algo mal, en realidad se lanzaría un error. Entiendo que el warning se puede referir a que el certificado no está registrado en el sistema o que estoy usando un certificado de firma de software para la generación del xml en mi entorno test y que igual puede que no sea lo que espera el sistema.

Cualquier orientación será bien recibida.

Muchas gracias ;)

keys 08-06-2022 11:01:39

Cita:

Empezado por trumbolt (Mensaje 547095)
Después de una breve pero intensa travesía por el desierto (menos desierto gracias a este foro y a las experiencias expuestas aquí por muchos usuarios), he podido subir al entorno de pruebas de Alava mi primera factura sin errores. Yuhuuuuu.

Por el camino he descubierto que es importante el orden de los nodos y que algunos datos supuestamente opcionales son en realidad obliggatorios pero afortunadamente nada que un ensayo y error pueda subsanar.

Ahora lo que estoy intentando procesar son los warnings. Vale que son sólo advertencias pero hay uno que me gustaría saber a qué se puede deber. Se trata delç

008, Error de verificación de firma

Estoy usando una versión trial (de momento) de SecureBlackBox y andaba un poco preocupado porque sólo genera dos digest (en vez de tres como en algún ejemplo publicado en las webs oficiales) en el xml pero supongo que si fuera por algo así o que estuviese algo mal, en realidad se lanzaría un error. Entiendo que el warning se puede referir a que el certificado no está registrado en el sistema o que estoy usando un certificado de firma de software para la generación del xml en mi entorno test y que igual puede que no sea lo que espera el sistema.

Cualquier orientación será bien recibida.

Muchas gracias ;)

Hola, los certificados de firma de software no sirven para la firma ni para el envio a TicketBAI. Te aconsejo que consigas un certificado real de la empresa con la que estás haciendo las pruebas para descartar otros errores.

espinete 08-06-2022 12:37:22

Cita:

Empezado por keys (Mensaje 547091)
Han enviado de Gipuzkoa el siguiente mensaje :



al final va a tener esto mas añadidos ...... todo por no planificarlo todo desde el principio. :cool:

Esta gente se cree que uno trabaja exclusivamente para ellos. Como sigan añadiendo cosas me planto. ¡Y encima con prisas!

Neftali [Germán.Estévez] 08-06-2022 15:11:35

Cita:

Empezado por trumbolt (Mensaje 547095)
008, Error de verificación de firma

Prueba con un certificado de dispositivo que hayas dado de alta (van muy bien para pruebas).
También creo que en algun momento nos ha dado por estar utilizando HASH anticuados. Revisa aquí (hacia el final del mensaje), que estés usando los correctos.

trumbolt 08-06-2022 19:03:44

Cita:

Empezado por Neftali [Germán.Estévez] (Mensaje 547100)
Prueba con un certificado de dispositivo que hayas dado de alta (van muy bien para pruebas).
También creo que en algun momento nos ha dado por estar utilizando HASH anticuados.

Muchas gracias tanto a tí como a @Keys.

Al final era un problema del propio certificado que estaba usando para la firma. He montado uno de la FNMT y el warning ha desaparecido.

También se ha solucionado otro problema que tenía en Guipuzcoa (esta vez sí generaba un error y no warning) que no me permitía cargar facturas en su entorno de pruebas. Lo documento aquí por si puede ayudar a alguien ya que era un mensaje bastante marciano:

Error 008 - No se pudo seleccionar ninguna política de validación para poder validar - (13517)

Vamos, que mejor tener un certificado decente para el entorno de test de la aplicación y no usar cualquier cosa que se tenga a mano :D

Llegados a este punto y como ya se ha indicado en el hilo en varias ocasiones, hubiera sido interesante no tener que pegarse con cada una de las administraciones por separado porque es un poco cachondeo que cada vez que encaras a una, hay que volver a revisar todo el desarrollo porque unos verifican unas cosas y otros parece que otras.

Ya soltada la llorera :cool: quería ver si alguien me puede orientar un poco porque creo que ésto no recuerdo haberlo visto en el hilo.

De momento, puedo subir facturas al entorno de pruebas de Alava y consultarlas con el QR (bueno, en realidad me pone factura en tramitación con lo que entiendo que va todo bien) y también puedo subir a Guipuzcoa peeeero, el QR parece que se me resiste. Y es que me da error para todos ellos, como si no localizara la factura que he subido. En concreto:

"No se ha podido determinar el estado de la factura"

Por si era un problema del propio QR (cosa que no creo porque me funciona para Alava, pero a saber), me he centrado en el servicio de consultas que se encuentra
en https://tbai.egoitza.gipuzkoa.eus/qr...Identificativo para el entorno real y en https://tbai.prep.gipuzkoa.eus/qr/buscarIdentificativo para el test.

Si consulto cualquier factura subida, obtengo el error

"Identificativo TicketBAI incorrecto o no recibido"

Es el mismo que se obtiene si usamos el identificador TBAI de ejemplo (TBAI-44619360G-261020-EzyQEMtxw37Gm-161) del manual técnico de Guipuzcoa (https://egoitza.gipuzkoa.eus/gao-bog...4/c2007008.htm) en el buscador https://tbai.egoitza.gipuzkoa.eus/qr...Identificativo.

No sé si tarda algo de tiempo en procesar las subidas y es normal o estoy haciendo algo mal. Ojo que yo las búsquedas las estoy haciendo sobre

https://tbai.prep.gipuzkoa.eus/qr/buscarIdentificativo

Y un identificador que uso de mis facturas de pruebas es: TBAI-00034567K-050521-t10axqihshiud-253

¿Alguna idea / consejo de cómo seguir?

Muchas gracias :)

Neftali [Germán.Estévez] 09-06-2022 09:39:03

Cita:

Empezado por trumbolt (Mensaje 547104)
De momento, puedo subir facturas al entorno de pruebas de Alava y consultarlas con el QR (bueno, en realidad me pone factura en tramitación con lo que entiendo que va todo bien) y también puedo subir a Guipuzcoa peeeero, el QR parece que se me resiste. Y es que me da error para todos ellos, como si no localizara la factura que he subido. En concreto:

A mi ahora mismo en entorno de pruebas (Álava) me funciona en cuanto al QR.
Con un TBAI como este: TBAI-B05430756-090622-eSWaZJBwQXg3T-179
Me está generando esta URL:
Código PHP:

https://pruebas-ticketbai.araba.eus/tbai/qrtbai/?id=TBAI-B05430756-090622-eSWaZJBwQXg3T-179&s=SA&nf=37&i=25.71&cr=081 

En el caso de GUIPUZCOA (Preproducción) también me está funcionando.
Con un TBAI como este: TBAI-B05430756-090622-hbb3Fx1O8EYtK-033
Me está generando esta URL:
Código PHP:

https://tbai.prep.gipuzkoa.eus/qr/?id=TBAI-B05430756-090622-hbb3Fx1O8EYtK-033&s=SG&nf=33&i=24.81&cr=134 


¿Puedes poner el TBAI y la URL completa que te está generando?

mnc2 09-06-2022 11:37:59

Líneas de factura con más de un tipo de IVA
 
Buenos días.

Llevo unos meses tratando de adaptar un programa de gestión para que pueda emitir facturas con los requisitos de TBAI.
Estoy siguiendo el modelo de la Agencia Foral de Vizcaya.

En mi caso, la factura puede llevar más de un tipo de IVA. Concretamente, cada línea puede llevar un tipo distinto.
Por ejemplo, unas pueden ser al 10% de IVA y otras al 21%.
Esto es habitual, por ejemplo, en comercios como las farmacias.

El tema es que no sé cómo especificar esto en el fichero XML.
Más abajo pongo un fragmento del código genérico del fichero XML.
Por cada línea de factura, ¿he de crear una instancia del nodo <TipoDesglose>?

Código:

  <Factura>
      <CabeceraFactura>
      ...
      </CabeceraFactura>
      <DatosFactura>
      ...
      </DatosFactura>
      <TipoDesglose>
        <DesgloseFactura>
            <Sujeta>
                <NoExenta>
                  <DetalleNoExenta>
                    <TipoNoExenta>S1</TipoNoExenta>
                    <DesgloseIVA>
                      <DetalleIVA>
                        <BaseImponible>110.00</BaseImponible>
                        <TipoImpositivo>10.00</TipoImpositivo>
                        <CuotaImpuesto>11.00</CuotaImpuesto>
                      </DetalleIVA>
                    </DesgloseIVA>
                  </DetalleNoExenta>
                </NoExenta>
            </Sujeta>
        </DesgloseFactura>
      </TipoDesglose>
  </Factura>

Esta respuesta no la he encontrado en las especificaciones dadas por las haciendas forales del País Vasco.

Si hay que repetir algún otro nodo, ¿cuál sería?
Si no, ¿de qué modo puedo especificar los distintos tipos de IVA, así como el importe de cada uno?




Gracias de antemano.

trumbolt 09-06-2022 11:46:44

Cita:

Empezado por Neftali [Germán.Estévez] (Mensaje 547109)
A mi ahora mismo en entorno de pruebas (Álava) me funciona en cuanto al QR.
Con un TBAI como este: TBAI-B05430756-090622-eSWaZJBwQXg3T-179
Me está generando esta URL:
Código PHP:

https://pruebas-ticketbai.araba.eus/tbai/qrtbai/?id=TBAI-B05430756-090622-eSWaZJBwQXg3T-179&s=SA&nf=37&i=25.71&cr=081 

En el caso de GUIPUZCOA (Preproducción) también me está funcionando.
Con un TBAI como este: TBAI-B05430756-090622-hbb3Fx1O8EYtK-033
Me está generando esta URL:
Código PHP:

https://tbai.prep.gipuzkoa.eus/qr/?id=TBAI-B05430756-090622-hbb3Fx1O8EYtK-033&s=SG&nf=33&i=24.81&cr=134 


¿Puedes poner el TBAI y la URL completa que te está generando?

Gracias por echarme una mano :-)

Estaba preparando varias facturas para detallar con ejemplos lo que pasaba y en mitad de todo, se me ha encendido la bombilla y tras varios días cabezoneando he dado con el problema. La verdad es que como el soft generaba el id TBAI y era tan sencillo de producir que ni se me había ocurrido compararlo con el que se recibe desde la diputación tras la carga de la factura. El caso es que había una pequeña diferencia que obviamente estropeaba todo el sistema.

Era imposible que pudiese funcionar aunque el mensaje de Alava de "factura en tránsito" tampoco ayudaba a darse uno cuenta que en realidad no había tránsito ni nada :D

Por cierto, gracias por la url de pruebas de Alava (pruebas-ticketbai.araba.eus/tbai/qrtbai) porque no la he visto referenciada en ningún documento y estaba haciendo los test contra la real y así nunca hubiera funcionado aunque hubiese dado con el problema del identificador. Al final no hay mal que por bien no venga como se suele decir :o


La franja horaria es GMT +2. Ahora son las 08:29:52.

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