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)

b4aronDeLaBirr4 07-02-2022 11:50:59

Perfecto, así que esta es la famosa memoria completamente de relleno que había leído por mensajes anteriores jeje Gracias!

Un saludo

b4aronDeLaBirr4 07-02-2022 13:27:36

Encadenamiento
 
Buenas!

Por curiosidad, ¿qué enfoque le habéis dado al tratamiento del encadenamiento en las facturas? Independientemente del lenguaje de programación utilizado. ¿Un campo en la base de datos que apunte a la anterior? ¿Algún matiz más?

A seguir con el lunes!

ermendalenda 07-02-2022 13:33:35

Cita:

Empezado por b4aronDeLaBirr4 (Mensaje 545235)
Buenas!

Por curiosidad, ¿qué enfoque le habéis dado al tratamiento del encadenamiento en las facturas? Independientemente del lenguaje de programación utilizado. ¿Un campo en la base de datos que apunte a la anterior? ¿Algún matiz más?

A seguir con el lunes!

Una tablita en la base de datos con un campo numérico (continuo en número y cronologicamente) independiente de la serie y número de factura y que contenga varios campos, entre ellos, la serie, número, fecha y firma de la última factura y otros campos iguales con la anterior. Teniendo en cuenta que no arrastre firmas de anulaciones. Casa nueva factura solo tengo que mirar el registro del último número de la tabla y si tengo varios dispositivos en el mismo equipo( tabletsequipos que graban en Red...) previamente pongo un bloqueo antes de hacer todos los procesos para evitar que se solapen. El resto de dispositivos que se encuentren el bloqueo se quedan en bucle esperando que se levante el bloqueo.

b4aronDeLaBirr4 07-02-2022 13:50:15

Y en esa tabla contemplas solo aquellas facturas notificadas? O también contemplas los intentos, las fallidas y lo más peculiar, aquellas que no se han mandado pero que ya has firmado y todo (imaginemos el clásico caso del internet caído puntualmente)

musinho 07-02-2022 13:50:35

Cita:

Empezado por b4aronDeLaBirr4 (Mensaje 545235)
Buenas!

Por curiosidad, ¿qué enfoque le habéis dado al tratamiento del encadenamiento en las facturas? Independientemente del lenguaje de programación utilizado. ¿Un campo en la base de datos que apunte a la anterior? ¿Algún matiz más?

A seguir con el lunes!

Yo estoy haciendo un plugin de WordPress el cual guarda los siguientes campos por cada factura generada:

Código:

tbai_invoice_number: 220041
tbai_previous_invoice_number: 220040
tbai_status: emitido
tbai_invoice_date: 2022-02-03

Al recibir un nuevo pedido hago una consulta a la tabla de facturas para devolver la última factura generada. De ahí obtengo el tbai_previous_invoice_number. Hay que decir que en otra tabla tengo el número plano autoincremental ya que una factura puede componerse por letras y números y la suma no la podría asegurar al 100%.

Sumo uno al autoincremental y guardo el tbai_invoice_number ya formateado y la fecha actual en tbai_invoice_date.

Seguidamente emito el xml firmado a la diputación y según la respuesta asigno el estado en tbai_status.

Con estos datos guardados en bbdd es verdad que necesito abrir el anterior xml para el tema del encadenamiento, y para evitar esto seguramente pueda guardar estos datos en bbdd. Pero bueno doy por hecho que no se van a eliminar los xmls y que los archivos existen en el sistema.

Neftali [Germán.Estévez] 07-02-2022 13:58:13

Cita:

Empezado por ermendalenda (Mensaje 545236)
Una tablita en la base de datos con un campo numérico (continuo en número y cronologicamente) independiente de la serie y número de factura y que contenga varios campos, entre ellos, la serie, número, fecha y firma de la última factura y otros campos iguales con la anterior. Teniendo en cuenta que no arrastre firmas de anulaciones. Casa nueva factura solo tengo que mirar el registro del último número de la tabla y si tengo varios dispositivos en el mismo equipo( tabletsequipos que graban en Red...) previamente pongo un bloqueo antes de hacer todos los procesos para evitar que se solapen. El resto de dispositivos que se encuentren el bloqueo se quedan en bucle esperando que se levante el bloqueo.

Nosotros algo similar.

Cita:

Empezado por b4aronDeLaBirr4 (Mensaje 545237)
Y en esa tabla contemplas solo aquellas facturas notificadas?

Nosotros sólo generamos encadenamiento cuando la factura ha sido notificada. Si no se notifica (por lo que sea) se deshace todo mediante transacciones y no queda rastro.

b4aronDeLaBirr4 07-02-2022 14:16:01

Sí, más o menos lo que estoy planteando es tener una tabla de IntentosNotificacion que apunte a la factura, tenga el contenido de la petición de envío, el contenido de la respuesta de esa petición (esto en formato BLOB quizá), el estado (existiendo Notificado, No notificado, Fallido... previamente definidos) o algo del estilo. Luego en lo que es la tabla factura, apuntar a la anterior en caso de realizar una emisión correctamente y como cada factura tendría un campo BLOB con su XML firmado y eso, podría tener acceso a los 100 primeros caracteres del campo SignatureValue de la factura anterior (que es lo que se pide, básicamente).

Es que estoy planteando la estructura primero, y quiero que sea lo más genérica posible para poder implementar cualquier sistema de notificación, como el SII, por eso ando full documentación jeje gracias!

Neftali [Germán.Estévez] 07-02-2022 17:06:26

[OFFTOPIC]
Buenas a todos.

Me vais a permitir una licencia con este hilo (será la única, lo prometo ;)).
Soy consciente de que muchos de los que visitáis este grupo accedéis a él directamente, sin pasar por otras zonas del ClubDelphi.

Os animo a que visitéis el enlace del banner que hay en la parte superior de la página.



Explica todo lo necesario para conocer nuestro grupo de Teaming. Os pediría que le dedicarais un minuto.
A partir de ahí, si alguien se anima será bienvenido.

Gracias.

[/OFFTOPIC]

ermendalenda 07-02-2022 20:42:24

Cita:

Empezado por b4aronDeLaBirr4 (Mensaje 545237)
Y en esa tabla contemplas solo aquellas facturas notificadas? O también contemplas los intentos, las fallidas y lo más peculiar, aquellas que no se han mandado pero que ya has firmado y todo (imaginemos el clásico caso del internet caído puntualmente)

Sí una factura no puede enviarse, las facturas siguientes se quedan en espera y me manda una incidencia por correo, se supone que los envíos KO serán en breve culpas denuestro software y acabarán desapareciendo. Si hay un KO se vuelve a reintentar cada minuto, tengo pendiente de añadir un límite de xmls sin enviar configurable y que se bloquee o de bastante por saco al usuario como para que avise a soporte, esto aun lo estoy pensando, se aceptan ideas.

En la tabla tb guardo registro de envío a un servidor externo nuestro al que envío el xml firmado, sin firmar y un pdf de la factura.
Esa tabla la leo continuamente con un software en segundo plano que no afecta a la facturación, cuando voy a generar la factura hago otras conprobrobaciones, fecha y hora de sistema, que no haya problemas con el firmador... Que son errores más graves que provocarían un bloqueo para no seguir facturando.

b4aronDeLaBirr4 08-02-2022 08:13:07

Buenos días!

Ya veo... tiene sentido... Yo también tengo que pensar el tema de las facturas que no se han podido mandar, tendré que comentarlo en la oficina a ver si alguien viene con alguna idea fresca. Pero una posibilidad es, si no se trata de un error puntual permitir volver a mandar y si no se ha podido tampoco, a la cola. Porque no se pueden enviar más facturas hasta que se haya mandado aquella que no se ha podido mandar, ¿verdad?

Otra posibilidad, aunque de objeto de estudio es, si la factura F1 no se ha podido mandar y mandamos la F2, consultamos si hay facturas pendientes de mandar primero, si no se puede pues cuando se emita F3, lo mismo, funcionando a lo FIFO, pero no sé si será demasiada consulta. Además, queda contemplar aquel momento en el que el problema del servidor se extienda sobre el tiempo y no sé si proponer un proceso automático al final de la jornada con esa misma cola. Lo que no quiero es dejar al cliente sin servicio. Se agradecen ideas, comentarios...

Sistel 08-02-2022 09:04:20

Hola,

Para mí, lo importante es que se pueda seguir facturando en cualquier caso y contra viento y marea.
Se van generando los XML, se van firmando, se van generando los códigos TBAI y QR y se van imprimiendo las facturas.

El tema del envío a la Hacienda Foral correspondiente creo que no es tan vital.
Pero no puedo dejar parado el TPV de una panadería, por ejemplo, porque no funcione el servicio de recepción de facturas de Hacienda Foral o porque haya un problema de Internet.

Los ficheros XML firmados se van poniendo en cola y un cronjob los va enviando a medida que se puede.
Si luego Hacienda Foral sale con cualquier mensaje de error de que no traga con la factura, ya es cuestión de LROE facturas emitidas sin software garante en Bizkaia, Zuzendu en Gipuzkoa o Alavazendu (o como le quieran llamar cuando lo inventen) en Álava.

Saludos

b4aronDeLaBirr4 08-02-2022 09:12:41

Pienso lo mismo, facturar no puede dejar de hacerse. Gracias!

b4aronDeLaBirr4 08-02-2022 10:55:22

Zuzendu
 
Sigo poniéndome al día con todo lo que el cuerpo me permite y veo lo de Zuzendu que en un pasado se habló... Pero ahora: "Este anexo ha sido modificado por el anexo I de la Orden Foral 40/2022, de 25 de enero, por la que se sustituyen los anexos I y III de la Orden Foral 16/2022, de 18 de enero, por la que se regulan los requisitos de los servicios, el procedimiento, y las especificaciones técnicas y funcionales para la subsanación de los ficheros TicketBAI.", es decir, algo bastante reciente. ¿Esto solo afecta a Gipuzkoa? Por los mensajes del foro, no parece que esté en funcionamiento, ¿no? y esto... ¿Afecta de manera directa al actual envío de facturas de Gipuzkoa o es más algo adicional?

También leo Asimismo, cuando el fichero de alta TicketBAI o el fichero de subsanación del
fichero de alta TicketBAI ha sido recibido sin errores y, sin embargo, el
contribuyente considera necesario modificar la información que contiene el
mismo, siempre y cuando no se trate de una causa que exija la emisión de una
factura rectificativa, se podrá generar un fichero de modificación que será
enviado a través del servicio zuzendu.


¿Qué caso real es este?

Saludos!

pablog2k 08-02-2022 11:14:20

Dudas con Batuz
 
Buenos días, estoy implementado el desarrollo de ticketbai con batuz, y me surgen unas dudas, a ver si he entendido bien todo:
-se envía el modelo 140 (o 240), y en la cabecera se monta un json tal que asi:
Código:

eus-bizkaia-n3-data = {
"con": "LROE",
"apa": "1.1",
"inte": {
"nif": "número de identificación fiscal",
"nrs": "nombre o Razón social",
"ap1": "primer apellido",
"ap2": "segundo apellido"
},
"drs": {
"mode": "140/240",
"ejer": "ejercicio"
}
}

luego en el cuerpo del mensaje,se envía un zip con el propio ticketbai,pero convertido a base64, y se utiliza esta estructura:
https://www.batuz.eus/fitxategiak/ba...ion_V1_0_2.xsd

-Es correcto lo que digo??
-Puedo enviar mas de una factura a la vez en el cuerpo del mensaje? varios registros metidos en el zip
-Puedo ir haciendo anotaciones en el modelo 140/240 siempre que quiera?o se hace todo a la vez? (yo creo debe de ser que puedes ir haciendo anotaciones conforme haces las facturas de ticketbai)

Muchas gracias por la ayuda (que por cierto,vaya lío,ya podría ser como las otras dos diputaciones... envías el xml y listo)

b4aronDeLaBirr4 08-02-2022 11:31:40

Cita:

-Puedo enviar mas de una factura a la vez en el cuerpo del mensaje? varios registros metidos en el zip
En principio, ese es el principal objetivo del sistema Batuz, cada factura firmada y demás irá codificada en base64 dentro de cada nodo correspondiente, citando a la documentación:

Generar un fichero XML, que cumple el formato del XSD del alta con facturas software garante, el cual, permite incluir un máximo de 1.000 ficheros TBAI en cada envío. Por cada factura el proceso es el siguiente:
o Codificar el fichero TicketBAI en Base64 e incorporarlo en el nodo “TicketBai” del
subcapítulo correspondiente.
o Completar el resto de datos de cada factura cuando proceda.
▪ Comprimir dicho fichero en formato GZIP.
▪ Incorporar el fichero comprimido en el cuerpo de la petición.


(Página 19 de este doc h_t_t_p_s://www.batuz.eus/fitxategiak/batuz/lroe/Batuz_LROE_Especificaciones_Env%C3%ADo_Masivo_V1_0_8.pdf?hash=35f5f37000e8873a209d53f4d18cc843)

ermendalenda 08-02-2022 11:45:11

Si el problema es sin Internet o problema del servidor es fácil saberlo, en ese caso se deja en cola y listo, se va usando y punto.
Si se recibe un error hay que tratarlo y ver q se hace. Ejemplo certificado caducado o revocado. En ese caso se corta por lo sano. Si es caducado solo tener en cta el período de gracia. Lo que sí hay que tener una forma de reactivar todo rápido y saltarse todos los bloqueos por cualquier imprevisto

Neftali [Germán.Estévez] 08-02-2022 12:20:51

Cita:

Empezado por pablog2k (Mensaje 545262)
...luego en el cuerpo del mensaje,se envía un zip con el propio ticketbai,pero convertido a base64, y se utiliza esta estructura:
-Es correcto lo que digo??

Un XML del libro 140/240, en su interior hay 1..N nodos donde añades el XML del TicketBAI (correspondiente a una factura) codificado en formato base64.
Ese XML resultante (libro 140/240) lo comprimes como gzip y es lo que envías en la petición junto con la cabecera que has puesto.

Resumiendo: Un gzip, que dentro tiene un XML, con 1..N nodos en base64, que corresponden a un XML del TicketBAI (sencillito vamos...).

Cita:

Empezado por pablog2k (Mensaje 545262)
-Puedo enviar mas de una factura a la vez en el cuerpo del mensaje? varios registros metidos en el zip

Si.
Los 1..N nodos que van en base64, dentro del XML del Libro que luego comprimes.

Cita:

Empezado por pablog2k (Mensaje 545262)
-Puedo ir haciendo anotaciones en el modelo 140/240 siempre que quiera?o se hace todo a la vez? (yo creo debe de ser que puedes ir haciendo anotaciones conforme haces las facturas de ticketbai)

Si, es lo que hacemos algunos de nosotros para intentar "unificar" todo esto.
Porque cada administración se puede permitir hacer lo que quiera (que para eso son funcionarios y lo hacen con nuestro dinero), pero nosotros tenemos que intentar deasarrollar de una manera "óptima" y "estandard".
En nuestro caso intentamos "igualar" dentro de lo posible los tres procesos de envío (las tres administraciones), así que por ahora trabajamos de la misma forma en las tres: Factura que se genera, factura que se envía. Cambiando la mecánica (los builders) del fichero y del envío, pero de esa forma el proceso es compartido para las tres.

[MODO DESAHOGO]
Supongo que pedir que antes de lanzar un proyecto como este, se reunan y se pongan de acuerdo es demasiado pedir...
Para simplificar, para ahorrar trabajo (a ellos y a nosotros), ahorrar dinero (nuestro y de los contribuyentes), simplificar procesos, pruebas, minimizar instalaciones y servicios, minimizar problemas, ahorrar en burocracia, papeleo, organización,.... y tantas y tantas otras cosas.

¿Pa qué? Es mejor hacer cada uno lo que le sale del moño, y que el resto lo sufran...
Funcionarios y Administraciones públicas...
¿Os imagináis que dentro de un año las otras 47 provincias decidieran hacer lo mismo que ellos?
(lo siento por la "chapa", pero estoy muy quemado...)
[/MODO DESAHOGO]

MikusMikae 08-02-2022 12:58:12

Dudas sobre tiquets con importe cero.
 
Hola,


Hemos adaptado nuestro software para poder enviar tiquets a TIcketBai y la ayuda del foro a sido impagable para ello.
Pero nos surge una duda en los tiquets con importe cero. Por ejemplo una tienda de ropa, compras una prenda, se genera el correspondiente tiquet, se envia a TicketBai, etc.
Dias mas tarde se realiza un cambio de talla de la prenda, en nuestro sistema se genera un tiquet nuevo pero al tener una linea de tiquet en positivo y otra en negativo, se compensan y el total del tiquet es cero.


Como se enviaria esto en el XML? hay que indicar los totales, ivas, etc. a cero?



Saludos y gracias.

pablog2k 08-02-2022 13:53:16

gracias por la ayuda Nefta!! y muy de acuerdo contigo, es un verdadero caos todo esto... con lo simple que sería que las 3 diputaciones se pongan de acuerdo...ni que fueran 40 provincias!!! son 3!!! pues cada una con sus cosas distintas... tócate los....

ermendalenda 08-02-2022 14:14:34

Cita:

Empezado por MikusMikae (Mensaje 545267)
Hola,


Hemos adaptado nuestro software para poder enviar tiquets a TIcketBai y la ayuda del foro a sido impagable para ello.
Pero nos surge una duda en los tiquets con importe cero. Por ejemplo una tienda de ropa, compras una prenda, se genera el correspondiente tiquet, se envia a TicketBai, etc.
Dias mas tarde se realiza un cambio de talla de la prenda, en nuestro sistema se genera un tiquet nuevo pero al tener una linea de tiquet en positivo y otra en negativo, se compensan y el total del tiquet es cero.


Como se enviaria esto en el XML? hay que indicar los totales, ivas, etc. a cero?



Saludos y gracias.

Correcto así de simple, negativo en la cantidad e importe total, el importe unitario siempre en positivo y el total da igual que sea cero o negativo, según reglamento de facturación se admite por cambio si son del mismo tipo impositivo.

ermendalenda 08-02-2022 14:15:43

Cita:

Empezado por MikusMikae (Mensaje 545267)
Hola,


Hemos adaptado nuestro software para poder enviar tiquets a TIcketBai y la ayuda del foro a sido impagable para ello.
Pero nos surge una duda en los tiquets con importe cero. Por ejemplo una tienda de ropa, compras una prenda, se genera el correspondiente tiquet, se envia a TicketBai, etc.
Dias mas tarde se realiza un cambio de talla de la prenda, en nuestro sistema se genera un tiquet nuevo pero al tener una linea de tiquet en positivo y otra en negativo, se compensan y el total del tiquet es cero.


Como se enviaria esto en el XML? hay que indicar los totales, ivas, etc. a cero?



Saludos y gracias.

Correcto así de simple, negativo en la cantidad del negativo e importe total del negativo tb con signo negativo, las líneas positivas como siempre, el importe unitario siempre en positivo y el total da igual que sea cero o negativo, según reglamento de facturación se admite por cambio si son del mismo tipo impositivos, si son distintos ivas o no se lleva nada a cambio en el mismo tiquet, rectificativa con su serie y numeración

Neftali [Germán.Estévez] 08-02-2022 16:07:34

Si alguno está interesado en comercializar su solución de TicketBAI, os aconsejo revisar el foro de trabajo (donde se publican ofertas y demandas) ya que hay alguna referentye a TBAI.
https://clubdelphi.com/foros/showthread.php?t=95444

Os lo pongo aquí porque se que hay muchos que accedéis a este hilo directamente, sin pasar por otras secciones del foro.

b4aronDeLaBirr4 09-02-2022 11:29:12

Batuz
 
Buenas! Ecuador de la semana ya, ánimo...

Una pregunta, ¿Cómo habéis gestionado la inmensidad de esquemas que existen en el sistema Batuz de Bizkaia? Es decir, en un entorno ya dinámico, en el cual los datos de la factura no son como cuando probamos con datos "picados a mano". Es que estoy viendo la de tipos que hay y demás y gestionar todas esas paramétricas me está dando vértigo. ¿Me estoy excediendo en mi visión sobre ello o es el infierno que aparenta?

Un saludo!

ermendalenda 09-02-2022 17:48:36

Cita:

Empezado por b4aronDeLaBirr4 (Mensaje 545278)
Buenas! Ecuador de la semana ya, ánimo...

Una pregunta, ¿Cómo habéis gestionado la inmensidad de esquemas que existen en el sistema Batuz de Bizkaia? Es decir, en un entorno ya dinámico, en el cual los datos de la factura no son como cuando probamos con datos "picados a mano". Es que estoy viendo la de tipos que hay y demás y gestionar todas esas paramétricas me está dando vértigo. ¿Me estoy excediendo en mi visión sobre ello o es el infierno que aparenta?

Un saludo!

Hola bienvenido.
Muchas horas e ibuprofeno. Ánimo.

nuevo1234 10-02-2022 11:57:31

¿Se tienen en cuenta las facturas anuladas en el encadenamiento?
 
Según la FAQ sí se tiene en cuenta, es decir,

Factura_F1
Factura_F2 (ENCADENA CON "Factura_F1")
Anulacion Factura_F1 (No lleva encadenamiento, así lo marca el XSD)
Factura F3 (ENCADENA CON LA Anulacion Factura_F1) es decir justo con la anterior, que en este caso, es una anulación

¿Lo veis correcto?

FAQ:
¿Se tienen en cuenta las facturas anuladas para el encadenamiento?
Sí.
La anulación de las facturas se prevé para el supuesto en que por error se emite una
factura sin que se llegue a producir la entrega de bien o prestación de servicio, es decir,
cuando la operación no ha llegado nunca a realizarse y procede su anulación (DGT
V0611/ 11-3-2011).
A efectos del encadenamiento, sin embargo, puede ser que la factura anulada sea la
inmediata anterior puesto que con independencia de que la anulación puede tener lugar
de manera inmediata subsiguiente a la emisión, o en un momento ulterior, el archivo
XML-TicketBAI correspondiente a la factura que devendrá anulada debe ser remitida y
sirve como factura antecedente a efectos del encadenamiento. Además, es posible que
entre la emisión de la factura que luego se anula y la anulación ulterior puede haberse
emitido facturas válidas, por lo que la factura que ulteriormente pueda ser anulada,
puede tener la consideración de factura anterior a efectos del encadenamiento

Sistel 10-02-2022 12:25:50

Cita:

Empezado por nuevo1234 (Mensaje 545291)
Según la FAQ sí se tiene en cuenta, es decir,

Factura_F1
Factura_F2 (ENCADENA CON "Factura_F1")
Anulacion Factura_F1 (No lleva encadenamiento, así lo marca el XSD)
Factura F3 (ENCADENA CON LA Anulacion Factura_F1) es decir justo con la anterior, que en este caso, es una anulación

¿Lo veis correcto?

FAQ:
¿Se tienen en cuenta las facturas anuladas para el encadenamiento?
Sí.
La anulación de las facturas se prevé para el supuesto en que por error se emite una
factura sin que se llegue a producir la entrega de bien o prestación de servicio, es decir,
cuando la operación no ha llegado nunca a realizarse y procede su anulación (DGT
V0611/ 11-3-2011).
A efectos del encadenamiento, sin embargo, puede ser que la factura anulada sea la
inmediata anterior puesto que con independencia de que la anulación puede tener lugar
de manera inmediata subsiguiente a la emisión, o en un momento ulterior, el archivo
XML-TicketBAI correspondiente a la factura que devendrá anulada debe ser remitida y
sirve como factura antecedente a efectos del encadenamiento. Además, es posible que
entre la emisión de la factura que luego se anula y la anulación ulterior puede haberse
emitido facturas válidas, por lo que la factura que ulteriormente pueda ser anulada,
puede tener la consideración de factura anterior a efectos del encadenamiento

Hola nuevo1234,

No hay que encadenar ninguna factura a una anulación.
A lo que hay que encadenar cada factura es la anterior factura, aunque esté anulada (no a su anulación).
Así lo entiendo yo.

Saludos.

unomasmas 10-02-2022 12:46:36

Cita:

Empezado por nuevo1234 (Mensaje 545291)
Según la FAQ sí se tiene en cuenta, es decir,

Factura_F1
Factura_F2 (ENCADENA CON "Factura_F1")
Anulacion Factura_F1 (No lleva encadenamiento, así lo marca el XSD)
Factura F3 (ENCADENA CON LA Anulacion Factura_F1) es decir justo con la anterior, que en este caso, es una anulación

¿Lo veis correcto?

FAQ:
¿Se tienen en cuenta las facturas anuladas para el encadenamiento?
Sí.
La anulación de las facturas se prevé para el supuesto en que por error se emite una
factura sin que se llegue a producir la entrega de bien o prestación de servicio, es decir,
cuando la operación no ha llegado nunca a realizarse y procede su anulación (DGT
V0611/ 11-3-2011).
A efectos del encadenamiento, sin embargo, puede ser que la factura anulada sea la
inmediata anterior puesto que con independencia de que la anulación puede tener lugar
de manera inmediata subsiguiente a la emisión, o en un momento ulterior, el archivo
XML-TicketBAI correspondiente a la factura que devendrá anulada debe ser remitida y
sirve como factura antecedente a efectos del encadenamiento. Además, es posible que
entre la emisión de la factura que luego se anula y la anulación ulterior puede haberse
emitido facturas válidas, por lo que la factura que ulteriormente pueda ser anulada,
puede tener la consideración de factura anterior a efectos del encadenamiento

Factura_F1
Factura_F2 (ENCADENA CON "Factura_F1")
Anulacion Factura_F1 (No lleva encadenamiento, así lo marca el XSD)
Factura F3 (ENCADENA CON Factura_F2)

En verde negrita lo que cambia con respecto a lo que tú piensas

Neftali [Germán.Estévez] 10-02-2022 13:12:26

Cita:

Empezado por nuevo1234 (Mensaje 545291)
Según la FAQ sí se tiene en cuenta, es decir,
Factura_F1
Factura_F2 (ENCADENA CON "Factura_F1")
Anulacion Factura_F1 (No lleva encadenamiento, así lo marca el XSD)
Factura F3 (ENCADENA CON LA Anulacion Factura_F1) es decir justo con la anterior, que en este caso, es una anulación

La anulacuión como tal no es una fatura, por lo tanto las facturas que has emitido son estas:
  • Factura_F1
  • Factura_F2 (ENCADENA CON "Factura_F1")
  • Factura F3

Y el encadenamiento es de esas tres facturas.
  • Factura_F1, Factura_F2, Factura F3

Nadie ha dicho otra cosa.
Lo que en algún mensaje anterior se ha dicho es que la anulación no se tiene en cuenta para el encadenamiento, pero si la factura anulada.

thinkows 10-02-2022 16:53:09

Certificados de Aplicación
 
Buenas tardes, tengo dudas existenciales acerca de los certificados de aplicación para firmar mis ejecutables e instalador para windows


Comodo Code Signing 90€/año
DigiCert EV Code Signing Certificate 533€/año
DigiCert Code Signing 262€/año
Sectigo Code Signing EV 249€/año

Tenéis experiencia con alguno de ellos? :confused:
Contratáis para 1,2,3 años?


Agradecido de antemano.
Un saludo.

ion 10-02-2022 17:04:45

Cancelar facturas Batuz
 
Hola
No tenemos ningún problema para dar de alta una factur aTicketab en Batuz, en el entorno de prueba, pero a la hora de cancelar:
Código:

<SituacionRegistro>
                <EstadoRegistro>Incorrecto</EstadoRegistro>
                <CodigoErrorRegistro>B4_2000070</CodigoErrorRegistro>
                <DescripcionErrorRegistroES>La firma no cumple los requisitos de la política de firma TicketBAI.(El mensaje ha sido modificado en tránsito o la firma no está bien realizada -- SignedInfo failed to verify. Reference URI="#xmldsig-ca66fa5e-0dad-1d62-e99d-a992496461d1-signedprops" failed to verify. Reference URI="#KeyInfoId-xmldsig-ca66fa5e-0dad-1d62-e99d-a992496461d1" failed to verify. [src/xml2signatureobj.cpp(315)] - (10606))</DescripcionErrorRegistroES>
                <DescripcionErrorRegistroEU>Sinadurak ez ditu betetzen TicketBAI sinaduraren politikaren baldintzak.(El mensaje ha sido modificado en tránsito o la firma no está bien realizada -- SignedInfo failed to verify. Reference URI="#xmldsig-ca66fa5e-0dad-1d62-e99d-a992496461d1-signedprops" failed to verify. Reference URI="#KeyInfoId-xmldsig-ca66fa5e-0dad-1d62-e99d-a992496461d1" failed to verify. [src/xml2signatureobj.cpp(315)] - (10606))</DescripcionErrorRegistroEU>
            </SituacionRegistro>

Realizo los mismo pasos para dar de alta y parar cancelar.


1.-TicketBai xml firmar y guardar.
2.- recuperar el xml

$content = file_get_contents(public_path() . '/storage/app/public/' . $invoicesXml->xml_name);

3.- dentro del LROE añado en xml:

$xml .= "<AnulacionTicketBai>" . base64_encode($content) . "</AnulacionTicketBai>";

Y para finalizar lo envió por CURL, pero como os he dicho uso los mismos métodos para dar de alta y no tengo ningún problema

thinkows 10-02-2022 17:52:41

Entorno de pruebas Araba
 
Hola estoy intentando enviar a Araba en pruebas y devuelve error 006 servicio caído, a alguien le pasa igual?

Gracias

DavidMar 10-02-2022 17:57:04

Unas preguntas, sobre todo para los que ya tienen experiencia con TicketBAI.


1. ¿De que forma se organiza este sistema para tener en cuenta (por ejemplo) la imposibilidad de enviar los datos si te quedas sin internet, fallo de ordenadores, etc.? ¿Hay que comunicarlo, hay que enviarlo después, ....?
2. ¿De que forma se trata a aquellos obligados tributarios que no tienen un ordenador o tpv físico?, por ejemplo gente que trabaja en mercadillo, muchas veces sin acometida de luz.
3. Parecida a la anterior... ¿de qué forma tratan a los que, por ejemplo, tienen una tienda o negocio en un pueblo de montaña con una comunicación por internet casi nula?.


Gracias!

Neftali [Germán.Estévez] 10-02-2022 18:11:24

Cita:

Empezado por thinkows (Mensaje 545309)
Hola estoy intentando enviar a Araba en pruebas y devuelve error 006 servicio caído, a alguien le pasa igual?


Lo mismo.



thinkows 10-02-2022 18:15:10

Cita:

Empezado por Neftali [Germán.Estévez] (Mensaje 545312)
Lo mismo.





Gracias Germán^\||/^\||/

Neftali [Germán.Estévez] 10-02-2022 18:16:45

Cita:

Empezado por DavidMar (Mensaje 545311)
1. ¿De que forma se organiza este sistema para tener en cuenta (por ejemplo) la imposibilidad de enviar los datos si te quedas sin internet, fallo de ordenadores, etc.? ¿Hay que comunicarlo, hay que enviarlo después, ....?

Generas la factura, la firmas, generas el XML y si es necesario la imprimes.
Enviarla, puedes hacerlo más tarde cuando se restaure la conexión.

Cita:

Empezado por DavidMar (Mensaje 545311)
2. ¿De que forma se trata a aquellos obligados tributarios que no tienen un ordenador o tpv físico?, por ejemplo gente que trabaja en mercadillo, muchas veces sin acometida de luz.

No creo que hayan pensado en esas personas.
Antes o después tendrán que usar algún dispositivo móvil con conexión para enviar los tickets.

Cita:

Empezado por DavidMar (Mensaje 545311)
3. Parecida a la anterior... ¿de qué forma tratan a los que, por ejemplo, tienen una tienda o negocio en un pueblo de montaña con una comunicación por internet casi nula?.

Segun la documentación debes enviar las facturas "lo antes posible", en esos casos, no se si puedes tener algo más de tiempo. Pero al final debes acabar enviándolas.

Sistel 10-02-2022 19:27:18

Cita:

Empezado por ion (Mensaje 545308)
Hola
No tenemos ningún problema para dar de alta una factur aTicketab en Batuz, en el entorno de prueba, pero a la hora de cancelar:
Código:

<SituacionRegistro>
                <EstadoRegistro>Incorrecto</EstadoRegistro>
                <CodigoErrorRegistro>B4_2000070</CodigoErrorRegistro>
                <DescripcionErrorRegistroES>La firma no cumple los requisitos de la política de firma TicketBAI.(El mensaje ha sido modificado en tránsito o la firma no está bien realizada -- SignedInfo failed to verify. Reference URI="#xmldsig-ca66fa5e-0dad-1d62-e99d-a992496461d1-signedprops" failed to verify. Reference URI="#KeyInfoId-xmldsig-ca66fa5e-0dad-1d62-e99d-a992496461d1" failed to verify. [src/xml2signatureobj.cpp(315)] - (10606))</DescripcionErrorRegistroES>
                <DescripcionErrorRegistroEU>Sinadurak ez ditu betetzen TicketBAI sinaduraren politikaren baldintzak.(El mensaje ha sido modificado en tránsito o la firma no está bien realizada -- SignedInfo failed to verify. Reference URI="#xmldsig-ca66fa5e-0dad-1d62-e99d-a992496461d1-signedprops" failed to verify. Reference URI="#KeyInfoId-xmldsig-ca66fa5e-0dad-1d62-e99d-a992496461d1" failed to verify. [src/xml2signatureobj.cpp(315)] - (10606))</DescripcionErrorRegistroEU>
            </SituacionRegistro>

Realizo los mismo pasos para dar de alta y parar cancelar.


1.-TicketBai xml firmar y guardar.
2.- recuperar el xml

$content = file_get_contents(public_path() . '/storage/app/public/' . $invoicesXml->xml_name);

3.- dentro del LROE añado en xml:

$xml .= "<AnulacionTicketBai>" . base64_encode($content) . "</AnulacionTicketBai>";

Y para finalizar lo envió por CURL, pero como os he dicho uso los mismos métodos para dar de alta y no tengo ningún problema

Hola ion,

Verifica el xml firmado en https://tools.chilkat.io/xmlDsigVerify

Si te da correcto y te sigue contestando Batuz con ese error, comprueba con qué codificación se te guarda el fichero.

Saludos

unomasmas 10-02-2022 19:33:37

Cita:

Empezado por thinkows (Mensaje 545305)
Buenas tardes, tengo dudas existenciales acerca de los certificados de aplicación para firmar mis ejecutables e instalador para windows

Comodo Code Signing 90€/año
DigiCert EV Code Signing Certificate 533€/año
DigiCert Code Signing 262€/año
Sectigo Code Signing EV 249€/año
Tenéis experiencia con alguno de ellos? :confused:
Contratáis para 1,2,3 años?


Agradecido de antemano.
Un saludo.

Yo registré Comodo Code Signing con https://www.leaderssl.es/?fltr_type=...l-filter-block. Perfecto. No problems.
...Y aquí parece que es todavía más barato: https://www.ssltrust.com/comodo-ssl/...e?currency=EUR

ermendalenda 10-02-2022 19:52:26

Pagos a cta
 
Para los que les interese, al final he preguntado directamente en hacienda. Lo de los pagos a cta hay que hacer factura del dinero recibido a cuenta de un pedido, el desglose de los tipos impositivos será según los tipos impositivos de artículos o servicios del pedido, y si hay varios tipos impositivos te admiten pagar el IVA como mejor te venga, pero respetando los importes máximos de las sumas de las operaciones según el IVA.
Aunque creo que es mejor desglosarlo de forma proporcional.

ion 10-02-2022 21:47:26

LROE error cancelar ticketbai
 
Cita:

Empezado por Sistel (Mensaje 545316)
Hola ion,

Verifica el xml firmado en

Si te da correcto y te sigue contestando Batuz con ese error, comprueba con qué codificación se te guarda el fichero.

Saludos

Gracias, he verificado, y el xml no es correco:

Signature is Invalid
Number of Reference Digests = 3
Reference 1 digest is invalid because the computed digest differs from the digest in the XML.
Reference 2 digest is invalid because the computed digest differs from the digest in the XML.
Reference 3 digest is valid.

Uso la clase firmador de Bilbur, dejo el xml por si alguien podria ver el fallo:

Código PHP:

<?xml version='1.0' encoding='UTF-8'?>
<T:AnulaTicketBai xmlns:T='urn:ticketbai:anulacion'
    xmlns:xsi='....w3.org/2001/XMLSchema-instance' xsi:schemaLocation='....w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd'>
    <Cabecera>
        <IDVersionTBAI>1.2</IDVersionTBAI>
    </Cabecera>
    <IDFactura>
        ...
    </IDFactura>
    <HuellaTBAI>
        ...
        <NumSerieDispositivo>1212</NumSerieDispositivo>
    </HuellaTBAI>
    <ds:Signature Id="xmldsig-ca66fa5e-0dad-1d62-e99d-a992496461d1"
        xmlns:ds="....w3.org/2000/09/xmldsig#">
        <ds:SignedInfo>
            <ds:CanonicalizationMethod Algorithm="....w3.org/TR/2001/REC-xml-c14n-20010315"/>
            <ds:SignatureMethod Algorithm="....w3.org/2001/04/xmldsig-more#rsa-sha256"/>
            <ds:Reference URI="#xmldsig-ca66fa5e-0dad-1d62-e99d-a992496461d1-signedprops" Type="...uri.etsi.org/01903#SignedProperties">
                <ds:Transforms>
                    <ds:Transform Algorithm="....w3.org/TR/2001/REC-xml-c14n-20010315"/>
                </ds:Transforms>
                <ds:DigestMethod Algorithm="....w3.org/2001/04/xmlenc#sha256"/>
                <ds:DigestValue>GGw5r1urLgEdDqZzR9wYfvTAKqTi5vzGHjBCqPsX5u0=</ds:DigestValue>
            </ds:Reference>
            <ds:Reference Id="ReferenceKeyInfo" URI="#KeyInfoId-xmldsig-ca66fa5e-0dad-1d62-e99d-a992496461d1">
                <ds:Transforms>
                    <ds:Transform Algorithm="....w3.org/TR/2001/REC-xml-c14n-20010315"/>
                </ds:Transforms>
                <ds:DigestMethod Algorithm="....w3.org/2001/04/xmlenc#sha256" />
                <ds:DigestValue>249d1ODRQL8r2pEjkP9dxvUn5/5cKmBpmp4l8kPg460=</ds:DigestValue>
            </ds:Reference>
            <ds:Reference Id="xmldsig-ca66fa5e-0dad-1d62-e99d-a992496461d1-ref0" URI="" Type="....w3.org/2000/09/xmldsig#Object">
                <ds:Transforms>
                    <ds:Transform Algorithm="....w3.org/2000/09/xmldsig#enveloped-signature"/>
                    <ds:Transform Algorithm="....w3.org/TR/2001/REC-xml-c14n-20010315"/>
                </ds:Transforms>
                <ds:DigestMethod Algorithm="....w3.org/2001/04/xmlenc#sha256"/>
                <ds:DigestValue>leHXcKXIXb2WUnsMXH8/BLNlmg3gHjDHu+L57ESRma8=</ds:DigestValue>
            </ds:Reference>
        </ds:SignedInfo>
        ...
</T:AnulaTicketBai>


thinkows 11-02-2022 08:06:04

Agradecido
 
Cita:

Empezado por unomasmas (Mensaje 545318)
Yo registré Comodo Code Signing con https://www.leaderssl.es/?fltr_type=...l-filter-block. Perfecto. No problems.
...Y aquí parece que es todavía más barato: https://www.ssltrust.com/comodo-ssl/...e?currency=EUR

Muchas garcias compi. ^\||/^\||/


La franja horaria es GMT +2. Ahora son las 10:12:55.

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