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)

ermendalenda 24-03-2022 15:27:11

Cita:

Empezado por ermendalenda (Mensaje 546204)
Hola buenas, claro, tienes un problema si quieres usar un servidor externo que además no es tuyo y quieres usar certificado de dispositivo,para ello el propietario del servidor tendria que solicitar dicho certificado, ¿Que haria yo?:
*Pide el certificado de dispositivo del equipo que hace la llamada.
*Aloja un php en el servidor mandale el xml y el certificado de dispostivo de cada equipo local(que puede estar alojado en una carpeta en vez de enviarlo en cada llamada), al enviar la llamada tienes que especificar con que certificado firrmar.

Des esta forrma estas usando un servicio externo pero en realidad estas firmando con tu dispositivo.


Por otro lado si quieres asegurarte un pelín más:

*La llamada al php que te devuelva el xml firmado y desde el equipo local haces el envio y guarda en el que quieras, mientras puedas dar acceso..


Saludos

Para la firma en la nube es habitual usar servidores de nube donde se alojan los certificados para realizar firmas, pero con una seguridad para evitar que se acceda a esos certificados por otras personas, HSM (Hardware Security Module),

Sistel 24-03-2022 15:50:03

Cita:

Empezado por Nessie (Mensaje 546199)
...
Leo en el Anexo III (p.7) de la documentación de Diputación de Gipuzkoa:
4.2.2 Arquitecturas con firma en servidor
Se podrá firmar con: certificado de persona física, certificado de representante de
entidad, sello de empresa, certificado de autónomo-autónoma o certificado de
dispositivo.

...

Hola Nessie,

https://www.gipuzkoa.eus/documents/2.../Anexo+III.pdf
Página 5:
Cita:

4.2.2. Arquitecturas con firma en servidor.
Se considera arquitectura con firma en servidor, cuando el software TicketBAI que
realiza la firma se encuentra ubicado en un dispositivo distinto al dispositivo de
facturación desde el que se accede al mismo. Por tanto, el dispositivo de facturación
cliente accede de forma remota a otro dispositivo para realizar la firma.
De forma complementaria, si la emisión de facturas o justificantes se realiza en
procesos desasistidos (batch) se considera “arquitectura con firma en servidor”.
Se podrá firmar con: certificado de persona física, certificado de representante de
entidad, sello de empresa o certificado de autónomo o autónoma.
En este caso, no se permite la firma con certificado de dispositivo.
Saludos

Sistel 24-03-2022 15:59:58

Hola,

Como ampliación a lo anterior, recibí email de TicketBAI-Gipuzkoa en el que se me indicaba:

Cita:

Cambios en Certificado de dispositivo
En breve se va a publicar la nueva política de firma. Que incluye el cambio de certificado de
dispositivo.
Cambios en el certificado de dispositivo:
 Se podrá solicitar identificando un punto de facturación en lugar del número de serie
del dispositivo.
 Es posible la solicitud de certificados en bloque (hasta 100 certificados). Si desea
solicitar certificados de dispositivo en bloque puede recurrir al buzón de contacto
TicketBAI de IZENPE.
 Se podrá solicitar antes de disponer del dispositivo concreto donde ira instalado
Se podrá usar en arquitecturas en servidor (excepto Tercero/Destinatario)
Pero no he sabido nada más del tema.

Hice la consulta a TicketBAI-Bizkaia (Batuz) sobre si en este territorio también se va a permitir la firma en servidor con certificado de dispositivo.
Estoy a la espera de respuesta.

Saludos

thinkows 24-03-2022 18:10:20

Ejemplos
 
1 Archivos Adjunto(s)
Cita:

Empezado por edari (Mensaje 546159)
De vuelta por aquí tras un impas :cool:
Me estoy empezando a meter con el tema del Zuzendu (Alava) y tengo algunas dudas
Sabéis si hay por algún sitio ejemplo de los xml (subsansar, modificar y anulación)? Lo de tirar del XSD para "sacar" el fichero nunca se me dió bien...
Los ficheros Zuzendu de Alava y Guipúzcoa son iguales? Tiene pinta de que sí pero quiero estar seguro
Cuando tenga preparar los ficheros para subirlos sería con un "curl" más o menos configurado como lo hacemos para subir las facturas?

¿Qué diferencia hay entre el fichero anular una factura desde el Zuzendu de anulación (-<T:SubsanacionAnulacionTicketBAI xmlns:T="urn:ticketbai:zuzendu-baja">) y anularla desde el xml de anulación que ofrecía el propio Ticket bai (<T:AnulaTicketBai xmlns:T="urn:ticketbai:anulacion">)?



Gracias de nuevo

Hola, te adjunto en el zip ejemplos de cada tipo, yo he enviado a Guipuzkoa y Alava sin problemas.
Un Saludo

Nessie 24-03-2022 23:11:58

Cita:

Empezado por Sistel (Mensaje 546206)
Hola Nessie,

Página 5:


Saludos


Hola Sistel,
gracias por la respuesta.


Creo que el documento al que haces referencia es un Anexo III antiguo. En la web de TicketBai lo tienen archivado en Versiones Anteriores.


En la última versión del Anexo III, en el punto 4.2.2. pone que sí se puede usar un certificado de dispositivo en el servidor.


Un saludo y gracias.

Nessie 24-03-2022 23:14:26

Cita:

Empezado por Sistel (Mensaje 546207)
Hola,

Como ampliación a lo anterior, recibí email de TicketBAI-Gipuzkoa en el que se me indicaba:

Pero no he sabido nada más del tema.

Hice la consulta a TicketBAI-Bizkaia (Batuz) sobre si en este territorio también se va a permitir la firma en servidor con certificado de dispositivo.
Estoy a la espera de respuesta.

Saludos


Gracias, Sistel.
Sí, puede ser interesante que, en lugar de con el número de serie, se identifique al dispositivo con un número de punto de facturación.


Un saludo.
Seguimos.

Nessie 24-03-2022 23:17:33

Cita:

Empezado por ermendalenda (Mensaje 546204)
Hola buenas, claro, tienes un problema si quieres usar un servidor externo que además no es tuyo y quieres usar certificado de dispositivo,para ello el propietario del servidor tendria que solicitar dicho certificado, ¿Que haria yo?:
*Pide el certificado de dispositivo del equipo que hace la llamada.
*Aloja un php en el servidor mandale el xml y el certificado de dispostivo de cada equipo local(que puede estar alojado en una carpeta en vez de enviarlo en cada llamada), al enviar la llamada tienes que especificar con que certificado firrmar.

Des esta forrma estas usando un servicio externo pero en realidad estas firmando con tu dispositivo.


Por otro lado si quieres asegurarte un pelín más:

*La llamada al php que te devuelva el xml firmado y desde el equipo local haces el envio y guarda en el que quieras, mientras puedas dar acceso..


Saludos


Hola Ermendalenda,
gracias por la respuesta.



Sí, algo así estaba pensando yo. Lo que no sé es si pondrán pegas al firmar en un servidor con un certificado de dispositivo que corresponde a la máquina cliente. (Técnicamente funciona, ya lo tengo programado)



Veremos.
Un saludo y gracias.

keys 25-03-2022 08:53:27

Hola a todos.

Perdonar pero sigo con mi lucha con los suplidos. He realizado la consulta a cada hacienda y en Gipuzkoa me han contestado una cosa y en Bizkaia otra.

Bizkaia
Cita:

1. En el caso que la factura solo esté constituida por el suplido no habría obligación de expedir factura por lo que no deberá de cumplir con TicketBai.

2. Si en la factura se documenta un suplido y además otras operaciones: esa factura sí que irá con TicketBAI. La parte correspondiente al suplido se identificará como importe no sujeto a IVA. Como causa de no sujeción se marcará la clave “OT”. El suplido sí que forma parte del total de la factura. La factura se mandará al subcapítulo 1.1 del LROE (factura con software garante). En la anotación de dicho registro el usuario puede especificar que el ingreso en IRPF es diferente a la suma de los conceptos de la factura. Es decir, que si el importe sujeto a IVA de la factura es 100 y el suplido es 50 (total factura 150), se debe indicar en la anotación que el ingreso a efectos del IRPF es 100. En cuanto al LROE modelo 140, la parte del suplido se tendrá que informar también en el capítulo de provisiones de fondos y suplidos.

Gipuzkoa

Cita:

Los suplidos no es un campo que haya que informar en el XML. El suplido es un pago por cuenta del cliente a un tercero y por tanto no forma parte del ImporteTotalFactura ni de la Base Imponible.
En el caso en el que, en una factura, por ejemplo, además de los honorarios de un profesional se documentase un suplido, el importe del suplido no formaría parte de la base imponible del IVA pero estas facturas deben cumplir igualmente los requisitos TicketBAI. En este caso, cuando los suplidos vayan encuadrados en una factura por prestación de servicios, se podrá disponer de un campo para los suplidos después del Importe Total Factura, donde deberá informarse de los suplidos que contenga la factura.

En cambio, si únicamente se quisiera documentar un suplido, se trataría de una operación en la que no se documenta ninguna entrega de bienes ni prestación de servicios, ya que en estos casos el empresario actuaría como mero intermediario, satisfaciendo sumas de dinero del cliente a un tercero por mandato expreso. En este último caso, no habría obligación de expedir factura de acuerdo con lo dispuesto en el Reglamento de facturación, pudiéndose documentar la operación en un recibo u otro justificante. Por tanto, un documento en el que solo se informe de un suplido quedaría fuera del ámbito de aplicación de TicketBAI.

Alguien se aclara?

Alkavanyatur 25-03-2022 12:29:51

Hola

Estoy desarrollando un solución para TBAI y me he encontrado con un problemilla que quizás no tiene solución.

Lo comento por si a alguien le ha pasado lo mismo.

Los tiempos de respuesta de la llamada a generar la factura para obtener el QR son de aproximadamente 2 segundos en desarrollo. Por las características del negocio en el que me muevo es posible que se realicen 1000 operaciones por minuto o incluso más.

Las facturas tienen que ser secuenciales. Así que este problema limita totalmente ya que es imposible que funcione a esa velocidad.


¿Ideas? Decir que me he quedado sin conexión a internet cuando se de la casuística? :D

DemonAscun 25-03-2022 14:36:15

Porque tardas 2 segundos en obtener el QR? Nosotros trabajamos también con grandes volúmenes de facturas y el proceso que consume más tiempo es el firmado de la factura al tener que encolar las facturas para conservar el encadenamiento. Una vez firmada ya la factura la generación del QR es instantáneo e independiente del envío.

keys 25-03-2022 14:37:01

Cita:

Empezado por Alkavanyatur (Mensaje 546224)
Hola

Estoy desarrollando un solución para TBAI y me he encontrado con un problemilla que quizás no tiene solución.

Lo comento por si a alguien le ha pasado lo mismo.

Los tiempos de respuesta de la llamada a generar la factura para obtener el QR son de aproximadamente 2 segundos en desarrollo. Por las características del negocio en el que me muevo es posible que se realicen 1000 operaciones por minuto o incluso más.

Las facturas tienen que ser secuenciales. Así que este problema limita totalmente ya que es imposible que funcione a esa velocidad.


¿Ideas? Decir que me he quedado sin conexión a internet cuando se de la casuística? :D

ME imagino que como todos el cuello de botella lo tienes a la hora de firmar el fichero xml. Si es así lo único que puedes hacer es cambiar la forma de firmar los xml, si usas el programa de hacienda este es un poco lento en firmar. Hasta que no se firma uno no se puede hacer el siguiente factura, ya que depende de esta.

Sistel 25-03-2022 16:12:33

Cita:

Empezado por Alkavanyatur (Mensaje 546224)
Hola

Estoy desarrollando un solución para TBAI y me he encontrado con un problemilla que quizás no tiene solución.

Lo comento por si a alguien le ha pasado lo mismo.

Los tiempos de respuesta de la llamada a generar la factura para obtener el QR son de aproximadamente 2 segundos en desarrollo. Por las características del negocio en el que me muevo es posible que se realicen 1000 operaciones por minuto o incluso más.

Las facturas tienen que ser secuenciales. Así que este problema limita totalmente ya que es imposible que funcione a esa velocidad.


¿Ideas? Decir que me he quedado sin conexión a internet cuando se de la casuística? :D

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

ermendalenda 25-03-2022 16:14:04

Cita:

Empezado por Alkavanyatur (Mensaje 546224)
Hola

Estoy desarrollando un solución para TBAI y me he encontrado con un problemilla que quizás no tiene solución.

Lo comento por si a alguien le ha pasado lo mismo.

Los tiempos de respuesta de la llamada a generar la factura para obtener el QR son de aproximadamente 2 segundos en desarrollo. Por las características del negocio en el que me muevo es posible que se realicen 1000 operaciones por minuto o incluso más.

Las facturas tienen que ser secuenciales. Así que este problema limita totalmente ya que es imposible que funcione a esa velocidad.


¿Ideas? Decir que me he quedado sin conexión a internet cuando se de la casuística? :D

Lo más parecido que me ha pasado es al meter un bmp en un pdf de más de 4 megas. Mira si la generación del qr puedes reducir le el tamaño, suelen tener varias opciones de tamaño para cuando el contenido es grabde

joselugrk 25-03-2022 17:45:03

Petición de Consulta a Bizkaia
 
Hola y muchas gracias por vuestra colaboración,

Estoy haciendo pruebas con el envío de XMLs de Consultas a Bizkaia y me da el siguiente error:

Date: Fri, 25 Mar 2022 16:38:49 GMT
Server: JBoss-EAP/7
Content-Encoding: gzip
eus-bizkaia-n3-identificativo: nnnnnnnnnn (ID de la operación)
X-Powered-By: Undertow/1
eus-bizkaia-n3-mensaje-respuesta: =?windows-1252?Q?Operaci=F3n_err=F3nea.?=
eus-bizkaia-n3-codigo-respuesta: B4_1000025
eus-bizkaia-n3-numero-registro:
eus-bizkaia-n3-tipo-respuesta: Incorrecto
Content-Type: application/xml; charset=UTF-8
Content-Length: 0

El XML que envío es el siguiente:

<?xml version="1.0" encoding="utf-8"?>
<lrpficfcsgcp:LROEPF140IngresosConFacturaConSGConsultaPeticion xmlns:lrpficfcsgcp="https://www.batuz.eus/fitxategiak/batuz/LROE/esquemas/LROE_PF_140_1_1_Ingresos_ConfacturaConSG_ConsultaPeticion_V1_0_0.xsd">
<Cabecera>
<Modelo>140</Modelo>
<Capitulo>1</Capitulo>
<Subcapitulo>1.1</Subcapitulo>
<Operacion>C00</Operacion>
<Version>1.0</Version>
<Ejercicio>2022</Ejercicio>
<ObligadoTributario>
<NIF>-----------</NIF> (NIF y Nombre y apellidos que me han otorgado para pruebas)
<ApellidosNombreRazonSocial>nombre apellido1 apellido2</ApellidosNombreRazonSocial>
</ObligadoTributario>
</Cabecera>
<FiltroConsultaIngresosConSG>
<CabeceraFactura>
<SerieFactura>VT21</SerieFactura>
</CabeceraFactura>
<NumPaginaConsulta>1</NumPaginaConsulta>
</FiltroConsultaIngresosConSG>
</lrpficfcsgcp:LROEPF140IngresosConFacturaConSGConsultaPeticion>

Estoy viendo los ejemplos que tienen ellos y no consigo ver donde se encuentra el fallo. ¿Problemas de ...?

Saludos y buen fin de semana,
Joselu

ermendalenda 25-03-2022 18:18:54

Cita:

Empezado por joselugrk (Mensaje 546230)
Hola y muchas gracias por vuestra colaboración,

Estoy haciendo pruebas con el envío de XMLs de Consultas a Bizkaia y me da el siguiente error:

Date: Fri, 25 Mar 2022 16:38:49 GMT
Server: JBoss-EAP/7
Content-Encoding: gzip
eus-bizkaia-n3-identificativo: nnnnnnnnnn (ID de la operación)
X-Powered-By: Undertow/1
eus-bizkaia-n3-mensaje-respuesta: =?windows-1252?Q?Operaci=F3n_err=F3nea.?=
eus-bizkaia-n3-codigo-respuesta: B4_1000025
eus-bizkaia-n3-numero-registro:
eus-bizkaia-n3-tipo-respuesta: Incorrecto
Content-Type: application/xml; charset=UTF-8
Content-Length: 0

El XML que envío es el siguiente:

<?xml version="1.0" encoding="utf-8"?>
<lrpficfcsgcp:LROEPF140IngresosConFacturaConSGConsultaPeticion xmlns:lrpficfcsgcp="https://www.batuz.eus/fitxategiak/batuz/LROE/esquemas/LROE_PF_140_1_1_Ingresos_ConfacturaConSG_ConsultaPeticion_V1_0_0.xsd">
<Cabecera>
<Modelo>140</Modelo>
<Capitulo>1</Capitulo>
<Subcapitulo>1.1</Subcapitulo>
<Operacion>C00</Operacion>
<Version>1.0</Version>
<Ejercicio>2022</Ejercicio>
<ObligadoTributario>
<NIF>-----------</NIF> (NIF y Nombre y apellidos que me han otorgado para pruebas)
<ApellidosNombreRazonSocial>nombre apellido1 apellido2</ApellidosNombreRazonSocial>
</ObligadoTributario>
</Cabecera>
<FiltroConsultaIngresosConSG>
<CabeceraFactura>
<SerieFactura>VT21</SerieFactura>
</CabeceraFactura>
<NumPaginaConsulta>1</NumPaginaConsulta>
</FiltroConsultaIngresosConSG>
</lrpficfcsgcp:LROEPF140IngresosConFacturaConSGConsultaPeticion>

Estoy viendo los ejemplos que tienen ellos y no consigo ver donde se encuentra el fallo. ¿Problemas de ...?

Saludos y buen fin de semana,
Joselu

La verdad que no he llegado ahí, pero parece que no corresponde llo que estas poniendo en <FiltroConsultaIngresosConSG> con lo pone en el xsd de la definición correctamente:
<complexType name="FiltroConsultaIngresosConFacturaType">
<sequence>
<element name="Destinatario" type="tiposcomplejos:DocumentoType" minOccurs="0"/>
<element name="CabeceraFactura" type="tiposconsulta:CabeceraFacturaConsultaType" minOccurs="0"/>
<element name="Epigrafe" type="tiposbasicos:stringMax7Digits" minOccurs="0"/>
<element name="Estado" type="enum:EstadoRegistroConsultaEnum" minOccurs="0"/>
<element name="NumPaginaConsulta" type="tiposbasicos:intPositiveType"/>
</sequence>
</complexType>

chenech 27-03-2022 01:42:51

XML de ejemplo
 
Buenas tardes, alguien tiene un XML de una factura de ejemplo antes de firmar y no le importaria compartir?
Mil gracias...

Al intentar con AutoFirma me da el siguiente mensaje:

[Fatal Error] :15:32: Byte no vßlido 1 de la secuencia UTF-8 de 1 bytes
<afirma><result>false</result><response><msg>Error en la operacion de firma: Las firmas XAdES Enveloped solo pueden realizarse sobre datos XML</msg></response></afirma>

Creo que me falta algo en el pie del XML referente a Signatures.
Ayuda, gracias.

ermendalenda 27-03-2022 11:25:11

Cita:

Empezado por Nessie (Mensaje 546217)
Hola Ermendalenda,
gracias por la respuesta.



Sí, algo así estaba pensando yo. Lo que no sé es si pondrán pegas al firmar en un servidor con un certificado de dispositivo que corresponde a la máquina cliente. (Técnicamente funciona, ya lo tengo programado)



Veremos.
Un saludo y gracias.

No creo que se metan demasiado en detalles tan discutibles.

Neftali [Germán.Estévez] 28-03-2022 08:14:43

1 Archivos Adjunto(s)
Cita:

Empezado por chenech (Mensaje 546257)
Al intentar con AutoFirma me da el siguiente mensaje:

[Fatal Error] :15:32: Byte no vßlido 1 de la secuencia UTF-8 de 1 bytes
<afirma><result>false</result><response><msg>Error en la operacion de firma: Las firmas XAdES Enveloped solo pueden realizarse sobre datos XML</msg></response></afirma>

Revisa que no estés generando el fichero con la codificación incorrecta (UTF8 sin BOM), lo del Byte 1 es sospehoso en ese sentido.
La correcta es UTF8.
De todas formas te adjunto un XML sin firmar.

Sistel 28-03-2022 09:35:14

Signo en descuentos globales
 
Hola,

Como ya habíamos comentado en otras ocasiones, para registrar un descuento global de la factura (por ejemplo un descuento pronto pago), es preciso añadir una línea de detalle para ese descuento.
En esa línea de detalle hay que poner, en Cantidad, -1 y en ImporteUnitario el importe, en positivo, correspondiente al descuento, antes de IVA.
Quedamos en que en ImporteUnitario no se permitían importes negativos.

Leo en https://web.araba.eus/documents/1050...ES+%281%29.pdf
Cita:

Para incluir un descuento total de la factura (por ejemplo: pronto pago) incluya una línea que
recoja en el ImporteTotal el importe del descuento en negativo.
Ejemplo: Si queremos aplicar un descuento pronto pago de un 5% a una venta con <Importeunitario>
de 600 y <Importe total>de 726, añadiríamos una nueva línea de detalle del siguiente modo:
<DescripcionDetalle>Descuento pronto pago</DescripcionDetalle>
<Cantidad>1.00</Cantidad>
<ImporteUnitario>-30.00</ImporteUnitario> (sin IVA. En negativo. Se ha calculado 600* 5% = 30)
<ImporteTotal>-36.30</ImporteTotal> (con IVA 21%)
Extrañado de esta peculiaridad de Álava, les he consultado y me han respondido:
Cita:

Realmente en Araba nos da igual que indiquéis la "Cantidad" negativa e "Importe unitario" positivo o "Cantidad" positiva e "Importe unitario" negativo, lo que importa es que el resultado de la misma sea negativo. Es decir, que el "Importe Total" sea negativo, ya que se está indicando un descuento.
Podéis enviarlo como mejor le venga a vuestro software para que os valga para todas las administraciones.
Así que sí, Álava se desmarca admitiendo ImporteUnitario en negativo.
Curioso que cada una de las tres Haciendas Forales tenga criterios diferentes para TicketBAI.

Saludos

Neftali [Germán.Estévez] 28-03-2022 11:05:14

Cita:

Empezado por Sistel (Mensaje 546261)
Así que sí, Álava se desmarca admitiendo ImporteUnitario en negativo.
Curioso que cada una de las tres Haciendas Forales tenga criterios diferentes para TicketBAI.
Saludos

Me da la impresión de que los más restrictivos y "especilitos" son los de Vizcaya.
La actitud en este caso de Álava me parece bastante correcta y sensata (y pensando un poco en nosotros):
"Podéis enviarlo como mejor le venga a vuestro software para que os valga para todas las administraciones."




La franja horaria es GMT +2. Ahora son las 07:14:42.

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