Skip to main content

TicketBAI

Qué es TicketBAI

TicketBAI es el sistema de facturación electrónica obligatorio en los territorios forales vascos:

TerritorioSistemaHacienda Foral
BizkaiaBATUZHacienda Foral de Bizkaia
GipuzkoaTicketBAI GipuzkoaHacienda Foral de Gipuzkoa
Álava/ArabaTicketBAI ÁlavaHacienda Foral de Álava

Cada factura emitida debe contener:

  • Firma XAdES-BES con certificado digital del contribuyente
  • Hash SHA-256 encadenado con la factura anterior (cadena inviolable)
  • Código QR con el identificador TBAI oficial
  • Envío a la Hacienda Foral mediante SOAP antes o al momento de entrega al cliente

Detección automática

Frihet detecta automáticamente si tu empresa está en el País Vasco a partir del código postal de tu perfil fiscal:

PrefijoTerritorio
48xxxBizkaia (BATUZ)
20xxxGipuzkoa
01xxxÁlava/Araba

Si tu código postal no comienza con 48, 20 ni 01, la sección TicketBAI no aparece en los ajustes. Solo se muestra a los usuarios con dirección fiscal en territorio foral.

Activar sandbox

En esta fase, Frihet incluye el modo sandbox completamente funcional:

  1. Ve a Configuración → TicketBAI
  2. La sección solo aparece si tu código postal es de un territorio foral
  3. Haz clic en Probar sandbox para enviar una factura de prueba al entorno de test de la Hacienda Foral
  4. El resultado muestra el CSV de verificación y el identificador TBAI si la prueba es exitosa

El modo sandbox usa el entorno de pruebas de Bizkaia (pruebasarqueo.bizkaia.eus) y no tiene efectos fiscales reales.

Modo producción

El modo producción requiere un certificado digital emitido por la Diputación Foral correspondiente:

  • Bizkaia: Hacienda Foral de Bizkaia — batuz.eus
  • Gipuzkoa: Hacienda Foral de Gipuzkoa — gipuzkoa.eus
  • Álava/Araba: Hacienda Foral de Álava — araba.eus

El botón Activar producción está desactivado hasta que se complete el soporte de certificados digitales en Frihet (previsto Q3 2026).

Pipeline técnico

Frihet implementa el pipeline completo de TicketBAI en el backend (Cloud Functions):

  1. Construcción XML — TicketBAI v1.2 per Bizkaia LROE schema
  2. Firma XAdES-BES — certificado BYOC cifrado con AES-256-GCM en Firestore
  3. Hash SHA-256emisor|serie|numero|fecha|importe|hashAnterior
  4. Envío SOAP — BATUZ endpoint con cabeceras eus-bizkaia-n3-*
  5. Validación estricta — BATUZ debe devolver CSV + IdentificadorTBAI (nunca se fabrican valores)
  6. Código QR — generado a partir del tbaiIdentifier real de BATUZ
  7. Persistencia — CSV + QR + hash guardados en Firestore bajo invoices/{id}/tbai/submission

MCP (para agentes IA)

El servidor MCP de Frihet incluye la herramienta ticketbai_status:

ticketbai_status(invoiceId: string)
→ { invoiceId, status, csv, qrUrl, province, tbaiIdentifier, submittedAt }

Devuelve status: "no_submission_yet" si la factura nunca se ha enviado a TicketBAI.

Preguntas frecuentes

¿Es TicketBAI obligatorio para todas las empresas del País Vasco? Sí. Desde las fechas establecidas por cada Hacienda Foral, cualquier software de facturación en territorio foral debe cumplir con TicketBAI. Consulta el calendario de obligatoriedad en la web de tu Hacienda Foral.

¿Es lo mismo que VeriFactu? No. VeriFactu es el sistema de la Agencia Tributaria estatal (AEAT) para el resto de España. TicketBAI es el sistema de las Haciendas Forales vascas. Son sistemas distintos con normativas diferentes. Si tu empresa está en el País Vasco, usas TicketBAI, no VeriFactu.

¿Funciona el sandbox sin certificado? Para la fase de pruebas, el sandbox permite verificar la conectividad y el formato XML sin necesidad de certificado real. Para producción, el certificado es obligatorio.

¿Qué pasa con las empresas en Navarra? Navarra tiene su propio sistema TicketBAI con normativa propia (Hacienda Foral de Navarra). No está incluido en esta versión. Los códigos postales 31xxx no activan la sección TicketBAI en Frihet.