Software">
Nothing Special   »   [go: up one dir, main page]

TicketBAI Especificaciones V 1 0

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 34

Especificaciones funcionales y técnicas

del sistema TicketBAI 1.0

Fecha de versión: 19/12/2019


ÍNDICE

1 INTRODUCCIÓN ....................................................................................................... 4

1.1 ¿Qué es TicketBAI? ....................................................................................................... 4

1.2 Ámbito de aplicación .................................................................................................... 4

2 ABREVIATURAS Y DEFINICIÓN DE TÉRMINOS .............................................. 6

3 GRUPOS DE ESPECIFICACIONES TÉCNICAS .................................................... 8

3.1 Registro de entidades desarrolladoras de software de facturación TBAI .......... 8

3.2 Emisión de la factura..................................................................................................... 9

3.3 Envío de la información a las Administraciones tributarias .................................. 9

3.4 Verificación presencial ................................................................................................. 9

4 ESPECIFICACIONES TÉCNICAS DE LA FASE DE EMISIÓN DE UNA


FACTURA .........................................................................................................................10

4.1 Generación del fichero TBAI .....................................................................................10

4.2 Firma del fichero TBAI................................................................................................11

4.3 Generación de la imagen de la factura ....................................................................11

4.3.1 Requisitos TBAI para la generación de la imagen de la factura .................................. 11

4.3.2 Identificativo TBAI............................................................................................................... 13

4.3.3 QR TBAI ................................................................................................................................. 14

5 ESPECIFICACIONES TÉCNICAS DE LA FASE DE VERIFICACIÓN


PRESENCIAL ...................................................................................................................17

6 OTROS REQUISITOS ..............................................................................................18

TicketBAI_Especificaciones_v_1_0.docx
19/12/2019 2/34
6.1 Especificaciones generales ........................................................................................18

6.2 Firma del software de facturación TBAI .................................................................18

6.3 Versionado de aplicaciones .......................................................................................19

6.4 Recomendaciones sobre la cumplimentación de los campos serie y número de


factura........................................................................................................................................19

6.5 Anulación de una factura ...........................................................................................20

7 GESTIÓN DEL DOCUMENTO ..............................................................................21

7.1 Gestión de las especificaciones y versionado ........................................................21

7.2 Política de firma ...........................................................................................................21

8 ANEXO 1 – ESTRUCTURA DEL FICHERO TICKETBAI ..................................22

9 ANEXO 2 – ESTRUCTURA DEL FICHERO TICKETBAI DE ANULACIÓN ..32

10 ANEXO 3 – ALGORITMO CRC DE COMPROBACIÓN ..................................34

TicketBAI_Especificaciones_v_1_0.docx
19/12/2019 3/34
1 INTRODUCCIÓN

1.1 ¿Qué es TicketBAI?

TicketBAI es un proyecto común de las Haciendas Forales y del Gobierno Vasco cuyo objetivo es la
implantación de una serie de obligaciones legales y técnicas en los software de facturación de las
personas contribuyentes, que permitan a la Administración tributaria el control de los ingresos de sus
actividades económicas y, en especial, de aquellas actividades enmarcadas en sectores que realizan
entregas de bienes o prestaciones de servicios a las y los consumidores finales, cobrados en gran
medida en efectivo.

Dos de los objetivos principales de las instituciones vascas en el ámbito tributario son la asistencia a las
y los obligados tributarios en el cumplimiento de sus obligaciones tributarias y la lucha contra el fraude
fiscal, con la finalidad de garantizar que todas las personas contribuyan al sostenimiento de las cargas
públicas conforme a su capacidad económica, al ser este el elemento básico sobre el que se construye
el Estado del Bienestar, modelo de convivencia que goza del más amplio consenso social y político en
nuestro País.

Desde esta doble perspectiva, las instituciones se encuentran permanentemente inmersas en un


proceso de mejora continua y modernización de sus sistemas y procedimientos de trabajo con la
finalidad de facilitar al máximo a los y las contribuyentes el cumplimiento de sus obligaciones, y
paralelamente, también dedican sus mejores esfuerzos a incrementar la eficacia y eficiencia de su lucha
contra el fraude fiscal, contra aquellas personas que no cumplen voluntariamente sus obligaciones
tributarias y muestran con ello la máxima insolidaridad con la ciudadanía.

Para poder llevar a la práctica este doble objetivo, las Haciendas Forales Vascas utilizan todos los
medios que los avances de las tecnologías de la información y de la comunicación ponen a su alcance, y
por lo que hace referencia a la asistencia y control en relación con los y las contribuyentes que realizan
actividades económicas, uno de los elementos más novedosos es el proyecto TicketBAI, cuya finalidad
es asegurar la declaración de todas las operaciones de venta realizadas por las personas y entidades
que desarrollan actividades económicas, teniendo en cuenta la experiencia de los países de nuestro
entorno en este ámbito y de acuerdo con las recomendaciones contenidas en los informes de la
Organización para la Cooperación y el Desarrollo Económicos (en adelante, OCDE) de los años 2013 y
2017 de título «Supresión electrónica de ventas: una amenaza para los ingresos fiscales» y
“Herramientas tecnológicas para abordar la evasión fiscal y el fraude fiscal” respectivamente, a los
cuales debemos añadir el informe publicado con fecha 28 de marzo de 2019, de título “Implementing
Online Cash Registers: Benefits, Considerations and Guidance”.

1.2 Ámbito de aplicación

El sistema TicketBAI afecta a todas las personas físicas y jurídicas y entidades sin personalidad jurídica
(en adelante, personas y entidades) que desarrollen actividades económicas y que están sujetas a la
competencia normativa de las Haciendas Forales Vascas en el IRPF o en el IS, de acuerdo con lo

19/12/2019 4/34
previsto en el Concierto Económico con la Comunidad Autónoma del País Vasco, aprobado por la Ley
12/2002, de 23 de mayo.

A partir de la entrada en vigor del sistema TicketBAI, todas las personas y entidades que expidan
facturas deberán utilizar dispositivos tales como terminales punto de venta (TPV), ordenadores
personales, máquinas de vending avanzadas, balanzas avanzadas, tabletas, teléfonos móviles y demás
dispositivos que deberán implementar las regulaciones técnicas definidas en el presente documento.

La normativa reguladora especificará los contribuyentes que queden exonerados del cumplimiento de
las obligaciones del sistema TicketBAI, total o parcialmente respecto de las operaciones que se
determinen.

19/12/2019 5/34
2 ABREVIATURAS Y DEFINICIÓN DE TÉRMINOS

A efectos de este documento, se entenderá por:

TBAI: abreviatura de TicketBAI.

Normativa de facturación:

En el Territorio Histórico de Araba, el Reglamento por el que se regulan las obligaciones de facturación
aprobado por el Decreto Foral de la Diputación Foral de Araba 18/2013, de 28 de mayo.

En el Territorio Histórico de Bizkaia, el Reglamento por el que se regulan las obligaciones de facturación
aprobado por el Decreto Foral de la Diputación Foral de Bizkaia 4/2013, de 22 de enero.

En el Territorio Histórico de Gipuzkoa, el Reglamento por el que se regulan las obligaciones de


facturación aprobado por el Decreto Foral de la Diputación Foral de Gipuzkoa 8/2013, de 26 de
febrero.

Factura: factura en soporte papel o en soporte electrónico imprimible expedida de acuerdo con la
normativa de facturación u otro documento en soporte papel o en soporte electrónico imprimible, con
el mismo contenido que la factura, que tenga la consideración de justificante de la entrega de bienes o
de la prestación de servicios realizado por un contribuyente sujeto al sistema TBAI cuando no haya
obligación de expedir factura.

Fichero TBAI: fichero XML que se obtiene antes de la emisión de una factura y que contiene los datos
definidos en el presente documento.

Software de facturación TBAI: conjunto de programas, instrucciones y reglas informáticas, que


cumplen las especificaciones funcionales y técnicas del presente documento, elaborado por una
entidad desarrolladora e inscrito en el registro de entidades desarrolladoras de software de facturación
TBAI.

Código QR: código de barras bidimensional que puede almacenar los datos codificados.

XML: eXtended MarkUp Language es un lenguaje de marcado de etiquetas derivado de SGML que
sirve para definir estructuras de documentos.

Entidad desarrolladora: persona física o jurídica o entidad sin personalidad jurídica que haya
desarrollado un software de facturación TBAI para su distribución en el mercado, que se haya inscrito
en el registro de entidades desarrolladoras de software de facturación TBAI y que haya suscrito una
declaración responsable de cumplimiento de los requisitos del sistema TBAI.

En el caso de que sea la propia persona contribuyente quien desarrolle el software de facturación TBAI,
será esta persona quien deba inscribirse en el registro de entidades desarrolladoras de software de
facturación TBAI.

19/12/2019 6/34
Contribuyente: persona física que desarrolla una actividad económica de acuerdo con la normativa del
IRPF o persona jurídica o entidad sin personalidad jurídica sujeta al IS.

Administración tributaria: Administración foral vasca que tenga la competencia normativa en el IRPF o
en IS respecto del contribuyente.

Dispositivo de facturación: dispositivo desde el que se accede a la aplicación de facturación,


independientemente de que dicho dispositivo acceda a un servidor remoto para el funcionamiento de la
aplicación. Por ejemplo: en una aplicación web, el número de serie será el del dispositivo que tiene
instalado el navegador. No será, por tanto, el servidor remoto al que accede.

19/12/2019 7/34
3 GRUPOS DE ESPECIFICACIONES TÉCNICAS

Las especificaciones técnicas TBAI se dividen en varios grupos. Dichos grupos se corresponden con
momentos temporales diferentes dentro de la implementación del sistema TBAI.

3.1 Registro de entidades desarrolladoras de software de facturación TBAI

Una persona o entidad que desee distribuir en el mercado un software de facturación TBAI deberá
acceder al registro de entidades desarrolladoras de software de facturación TBAI antes de poder
venderlo o distribuirlo.

En el caso de que sea el propio contribuyente quien desarrolle el software de facturación TBAI, será
esta persona quien deba inscribir dicho software en el registro de entidades desarrolladoras de
software de facturación TBAI.

La entidad desarrolladora deberá inscribirse en el registro y suscribir una declaración responsable por
cada software de facturación TBAI que desarrolle y que cumpla los requisitos exigidos en la normativa
reguladora del sistema TBAI.

Una vez finalizado el registro del software, se devolverá una Licencia TBAI que deberá incluirse en el
negocio del propio software de facturación, según los requisitos especificados en la sección 4.1 de este
documento (Generación del fichero TBAI).

Para realizar el registro, la Administración tributaria no revisará ni homologará los software de


facturación.

La finalidad del registro de entidades desarrolladoras es disponer de un listado de entidades


desarrolladoras que se han comprometido a distribuir software de facturación que cumplen las
especificaciones TBAI.

Cada Hacienda Foral Vasca dispondrá de un registro de entidades desarrolladoras de software de


facturación TBAI. La inscripción de una entidad desarrolladora y de su software de facturación TBAI
podrá llevarse a cabo en cualquiera de los tres registros.

Los tres registros estarán interconectados, de modo que la inscripción en un registro facultará a la
entidad desarrolladora inscrita para distribuir el software registrado a todos los contribuyentes forales
vascos.

El listado de entidades desarrolladoras y software registrados será público, y podrá consultarse en las
webs de las Administraciones tributarias vascas.

19/12/2019 8/34
3.2 Emisión de la factura

Los software de facturación que implementen los requisitos TBAI, cada vez que emitan una factura,
deberán seguir el siguiente proceso:

- Se deberá generar un fichero XML que cumpla con el diseño y el contenido del esquema del
formato TBAI. A este fichero lo denominamos fichero TBAI.

- El fichero TBAI deberá ser firmado electrónicamente.

- Se generará la imagen de la factura, bien en formato físico o en formato electrónico. La imagen de


la factura incorpora parte de la firma del fichero TBAI.

El orden de los pasos será estricto: generación de fichero TBAI, firma del fichero y generación de la
imagen en soporte papel o soporte electrónico.

3.3 Envío de la información a las Administraciones tributarias

Todos los ficheros TBAI firmados deben ser enviados a la Administración tributaria correspondiente.
Cada Administración tributaria indicará, con una normativa específica, cuáles son los requisitos técnicos
y en qué plazos se enviará la información, pudiendo ser diferentes para cada Administración.

3.4 Verificación presencial

Los software de facturación que implementen los requisitos TBAI deberán ofrecer funcionalidades para
facilitar la verificación del sistema TBAI por parte de los técnicos de Hacienda. Estas funcionalidades se
detallan en la sección 5 de este mismo documento.

19/12/2019 9/34
4 ESPECIFICACIONES TÉCNICAS DE LA FASE DE EMISIÓN DE UNA
FACTURA

4.1 Generación del fichero TBAI

En el proceso de emisión de una factura, el software de facturación antes de completar la generación


de la imagen de una factura deberá generar un fichero XML que cumpla con el diseño y el contenido
del esquema del formato TBAI. La codificación para utilizar debe ser UTF-8.

El esquema detallado del fichero TBAI para la emisión viene especificado en el anexo 1 de este
documento. A nivel general, los bloques de información del fichero son los siguientes:

- Sujetos: emisor, destinatarios, varios destinatarios, factura emitida por terceros o destinatario, etc.

- Factura – Cabecera factura: entre otros campos, serie factura, número factura, fecha de expedición,
hora de expedición, factura simplificada, factura emitida en sustitución de factura simplificada,
factura rectificativa, facturas rectificadas, etc.

- Factura - Datos factura: entre otros campos, fecha de operación, descripción factura, importe total
factura, base imponible a coste, claves de regímenes de IVA y operaciones con trascendencia
tributaria, etc.

- Factura – Desglose a nivel de factura: entre otros campos, sujeta, exenta, causa de exención, base
imponible exenta, tipo no exenta, etc.

- Huellas TBAI:

o Encadenamiento factura anterior.

▪ Serie, número de factura y fecha de expedición de la factura anterior.

▪ Firma del fichero TBAI correspondiente a la factura anterior. Se truncará,


reduciéndolo a los cien primeros caracteres del campo SignatureValue del
fichero TBAI de la factura anterior para evitar aumentar innecesariamente el
tamaño.

o Licencia TBAI: proporcionada por el registro de entidades desarrolladoras TBAI.

o Entidad desarrolladora inscrita en el registro de entidades desarrolladoras TBAI.

o Software de facturación inscrito en el registro de entidades desarrolladoras TBAI.

o Dispositivo.

▪ Número de serie del dispositivo donde se emiten las facturas. Es obligatorio,


independientemente del certificado utilizado para la firma del fichero TBAI

19/12/2019 10/34
(ver documento “Política de firma TicketBAI”). Si el número de serie supera el
tamaño del campo asignado en el fichero TBAI, se incluirán los últimos treinta
caracteres.

▪ Consideramos dispositivo donde se emiten las facturas a aquel desde el que se


accede a la aplicación de facturación, independientemente de que dicho
dispositivo acceda a un servidor remoto para el funcionamiento de la
aplicación. Por ejemplo: en una aplicación web, el número de serie será el del
dispositivo que tiene instalado el navegador. No será, por tanto, el servidor
remoto al que accede.

4.2 Firma del fichero TBAI

Cada fichero TBAI debe ser firmado electrónicamente. Parte de la firma del fichero TBAI debe incluirse
en la imagen de la factura. Por este motivo, el proceso de firma siempre precede a la generación de la
imagen.

Las especificaciones sobre la firma del fichero TBAI vienen incluidas en el documento “Política de firma
TicketBAI”. Todo lo contenido en dicho documento, se considera dentro de las especificaciones del
sistema TBAI. La Política de firma define, entre otras cosas:

- Los certificados electrónicos que se pueden utilizar.

- Donde se deben instalar estos certificados y donde se debe realizar la firma, en función del tipo
de certificado utilizado.

La gestión de cambios del documento de “Política de firma TicketBAI” es independiente, pudiendo


modificarse en conjunto con este documento o por separado.

4.3 Generación de la imagen de la factura

4.3.1 Requisitos TBAI para la generación de la imagen de la factura

Los requisitos TBAI para la generación de la imagen de la factura serán obligatorios a la hora de generar
la imagen de una factura tanto en un soporte papel como en formato electrónico (PDF, por ejemplo).

Estas especificaciones no modifican la normativa de facturación, ni añaden requisitos adicionales a


dicha normativa. Las especificaciones del sistema TBAI constituyen exclusivamente obligaciones que
debe cumplir el contribuyente que expide la factura, dentro del ámbito del IRPF y del IS.

El software de facturación deberá generar e incluir en la factura un identificativo TBAI y un código QR


TBAI de acuerdo con las especificaciones de este apartado y de los puntos 4.3.2 y 4.3.3 de este
documento:

19/12/2019 11/34
- Identificativo TBAI, que consiste en un código formado por números, letras y otros caracteres
que identifica a la factura dentro del sistema TBAI. El tipo y el tamaño de la fuente deberán ser
similares al del resto de la factura, asegurando su legibilidad por parte del destinatario de la
factura.

- Código QR TBAI, que consiste en un código con formato QR de tamaño mayor o igual a 30x30
milímetros y menor o igual a 40x40 milímetros (en adelante, QR TBAI).

La ubicación dentro de la factura del Identificativo TBAI y del QR TBAI dependerá de su orientación:

- En una orientación vertical, se ubicarán en la parte más inferior de la factura. El Identificativo


TBAI se incluirá en una única línea y debajo el QR TBAI.

- En una orientación horizontal, se ubicarán en la parte más a la derecha de la factura. El


Identificativo TBAI se incluirá en una única línea y debajo el QR TBAI.

En el caso de que el identificativo TBAI no pueda ser incluido en una única línea, se permitirán varias
líneas consecutivas. El último carácter de cada línea, excepto de la última, será el separador “-“ (guion
medio).

Las siguientes imágenes sólo deben tenerse en cuenta como ejemplos de la ubicación del Identificativo
TBAI y QR TBAI dentro de la factura. El contenido, el tamaño y las proporciones de estos ejemplos no
son válidos.

Orientación horizontal:

TBAI-00000006Y-251019-btFpwP8dcLGAF-237

TBAI-00000006Y-251019-
btFpwP8dcLGAF-237

19/12/2019 12/34
Orientación vertical:

TBAI-00000006Y-251019-
TBAI-00000006Y-251019-btFpwP8dcLGAF-237
btFpwP8dcLGAF-237

4.3.2 Identificativo TBAI

Identifica a la factura dentro del sistema y asegura la relación entre una factura y su correspondiente
fichero TBAI.

Tiene una longitud fija de 39 caracteres y su contenido es el siguiente:

- 4 caracteres de texto fijo en mayúscula: TBAI.

- 1 carácter “-“ como separador. Guion medio.

- 9 caracteres del NIF del contribuyente. Debe corresponder con el NIF, según su formato oficial,
incluido en el fichero TBAI.

- 1 carácter “-“ como separador. Guion medio.

- 6 caracteres de la fecha de expedición de la factura. Debe corresponder con la fecha incluida en


el fichero TBAI (tag “FechaExpedicionFactura”). Formato DDMMAA, sin separadores internos.
Cada uno de los subcampos será rellenado con ceros a la izquierda en caso de ser necesario, de
manera que el tamaño de la fecha será siempre 6 números en todos los casos (Por ejemplo,
010121 sería uno de enero de 2021).

o DD: día de la expedición de la factura.

19/12/2019 13/34
o MM: mes de la expedición de la factura.

o AA: Últimos dos dígitos del año de expedición de la factura. Por ejemplo, para 2021,
AA=21.

- 1 carácter “-“ como separador. Guion medio.

- 13 caracteres de la firma del fichero TBAI. Los trece primeros caracteres del campo
SignatureValue del fichero TBAI asociado a la factura.

- 1 carácter “-“ como separador. Guion medio.

- 3 caracteres que se corresponden con un código de detección de errores cuyo objetivo es


garantizar el contenido correcto del identificativo:

o Este dato debe ser calculado por el software de facturación.

o Será el resultado de aplicar el algoritmo CRC-8 a la cadena de caracteres


anteriormente definidos (sobre los 36 caracteres anteriores).

o La entrada al algoritmo será el contenido del identificativo generado hasta ese


momento (los 36 primeros caracteres del identificativo) con una codificación UTF-8.

o La salida del algoritmo se escribirá en formato decimal completando (en caso de ser
necesario) con ceros a la izquierda los 3 últimos caracteres del identificativo.

o En el anexo 3 de este documento se incluye el algoritmo que se utilizará para la


comprobación del CRC por parte de la Administración tributaria. La finalidad de la
publicación de este algoritmo es permitir que el software de facturación asegure la
obtención de los mismos resultados que obtendrá la Administración tributaria.

Ejemplo genérico de Identificativo TBAI: TBAI-NNNNNNNNN-DDMMAA-FFFFFFFFFFFFF-CRC

Ejemplo concreto de identificativo TBAI: TBAI-00000006Y-251019-btFpwP8dcLGAF-237

(El contenido de los campos NIF y firma de estos ejemplos no es válido. Estos identificadores serán solo
tenidos en cuenta desde el punto de vista del formato).

4.3.3 QR TBAI

Facilita al destinatario obtener información fiscal asociada a dicha factura. El contribuyente es


responsable de asegurar la legibilidad de los códigos QR incluidos en las facturas que expide en el
desarrollo de su actividad económica. Una factura cuyo QR no sea legible, no se considerará válida
desde el punto de vista de los requisitos del sistema TBAI.

19/12/2019 14/34
El nivel de corrección de errores del QR será M. La codificación utilizada para la generación del código
será UTF-8.

Debe contener una URL válida para acceder a la aplicación web TBAI de comprobación de facturas con
datos de la factura incluidos como parámetros. Si la URL o sus parámetros contienen caracteres no
válidos, deberán ser “codificados” (URL encoding) de forma correcta siguiendo los usos normales de las
arquitecturas web.

El contenido del código QR será el siguiente:

- URL de acceso a la aplicación web de lectura del QR, específica para cada Administración tributaria:

o Araba/Álava: https://ticketbai.araba.eus/TBAI/QRTBAI (sin “/” para el cálculo del


CRC).

o Bizkaia: https://batuz.eus/QRTBAI/ (con “/” al final para el cálculo del CRC).

o Gipuzkoa: https://tbai.egoitza.gipuzkoa.eus/qr/ (con “/” al final para el cálculo del


CRC).

- Parámetros:

o Identificativo TBAI.

▪ Clave: id

▪ Valor: Los caracteres definidos en la sección Identificativo TBAI.

o Serie de la factura.

▪ Clave: s

▪ Valor: serie de la factura según la normativa de facturación. Debe


corresponder con la serie incluida en el fichero TBAI (campo “SerieFactura”).

o Número de la factura.

▪ Clave: nf

▪ Valor: número de la factura según la normativa de facturación. Debe


corresponder con el número de factura incluido en el fichero TBAI (tag
“NumFactura”).

o Importe total de la factura.

▪ Clave: i

19/12/2019 15/34
▪ Valor: importe de la factura con IVA incluido. Debe corresponder con el
importe total incluido en el fichero TBAI (tag “ImporteTotalFactura”), tanto el
valor como el formato.

o CRC-8.

▪ Clave: cr

▪ Valor: código de detección de errores con el objetivo de detectar cambios


accidentales en el contenido del QR TBAI. Este dato debe ser calculado por el
software de facturación.

Se incluirá como último parámetro de la URL. Será el resultado de aplicar el


algoritmo CRC-8 a la cadena de caracteres del contenido del QR.

La entrada al algoritmo será el contenido del QR generado hasta ese momento


con una codificación UTF-8. Por tanto, no se incluirá ni el propio parámetro cr
ni su símbolo asociado “&” utilizado para añadirlo al resto de los parámetros
(query string).

La salida del algoritmo se escribirá en formato decimal como nuevo parámetro


de la URL.

En el anexo 3 de este documento se incluye el algoritmo que se utilizará para


la comprobación del CRC por parte de la Administración tributaria. La finalidad
de la publicación de este algoritmo es permitir que el software de facturación
asegure la obtención de los mismos resultados que obtendrá la Administración
tributaria.

Ejemplo contenido del QR TBAI:

https://batuz.eus/QRTBAI/?id=TBAI-00000006Y-251019-btFpwP8dcLGAF-
237&s=T&nf=27174&i=4.70&cr=007

Ejemplo del QR TicketBAI:

19/12/2019 16/34
5 ESPECIFICACIONES TÉCNICAS DE LA FASE DE VERIFICACIÓN
PRESENCIAL

Los software de facturación TBAI deben desarrollar unas funcionalidades que permitan una validación
rápida de las especificaciones TBAI.

El personal inspector de la Administración tributaria realizará verificaciones presenciales, en las que


requerirán obtener cierta información general del software de facturación TBAI y del dispositivo de
facturación.

Esta información deberá corresponder con la información de los ficheros TBAI generados por el
dispositivo. El software de facturación TBAI deberá mostrar la siguiente información en una única
pantalla:

- Entidad desarrolladora del software de facturación TBAI instalado en el dispositivo. Debe


corresponder con la información del registro de entidades desarrolladoras TBAI.
o Nif
o Razón social.
- Nombre del software de facturación TBAI instalado en el dispositivo. Debe corresponder con la
información del registro de entidades desarrolladoras TBAI.
- Versión del software de facturación TBAI instalado en el dispositivo.
- Número de serie del dispositivo.

En la verificación presencial, el personal inspector podrá verificar el correcto funcionamiento del


software de facturación y podrá requerir la aportación de los ficheros TBAI generados tanto en el
proceso de verificación como aquellos que el contribuyente tiene la obligación de conservar, de
acuerdo con la normativa general tributaria.

19/12/2019 17/34
6 OTROS REQUISITOS

6.1 Especificaciones generales

Un dispositivo podrá emitir facturas para varios contribuyentes.

Los software de facturación TBAI no deben crear o firmar ficheros TBAI o generar imágenes de
facturas con requisitos TBAI en modo prueba. Todos los ficheros y las imágenes de facturas creadas
deben corresponder con transacciones reales. En ningún caso, se admitirán facturas que no sean
definitivas (por ejemplo, facturas proforma) que incluyan el identificativo TBAI y/o el código QR TBAI.

Todas las facturas emitidas mediante un software de facturación TBAI deben cumplir la normativa y
especificaciones TBAI.

No se podrá volver a emitir una factura generada. En caso de tener que volver a emitirla, la nueva
factura deberá identificar claramente que es un duplicado de otra anterior. La emisión de duplicados de
factura se regula por la normativa de facturación, según la cual:

- Los contribuyentes sólo podrán expedir un original de cada factura.

- Y los ejemplares duplicados de las facturas expedidas, en los casos previstos para ello, deberán
hacer constar la expresión “duplicado”.

6.2 Firma del software de facturación TBAI

Este requisito sólo será exigible para los software de facturación TBAI definidos más adelante como
aplicaciones de escritorio. En consecuencia, este requisito no se exigirá respecto de los software
definidos como aplicaciones con arquitectura distribuida.

A estos efectos, se entiende por:

- Aplicaciones de escritorio: son aplicaciones que usualmente se distribuyen en un archivo a través de


internet o mediante soporte físico. Por tanto, existe una copia física en cada dispositivo que utiliza la
aplicación.

La firma de software se realizará sobre el instalable de la aplicación (el archivo que se distribuye),
pidiendo conformidad para instalar el software de la empresa correspondiente. De la misma forma, el
archivo mediante el cual se arranca la aplicación (ejecutable) también deberá ir firmado.

- Aplicaciones con arquitectura distribuida: el caso más extendido puede ser el de las aplicaciones web.
En este caso, el software está centralizado en un servidor o conjunto de servidores. Por tanto, no hay
un software que se distribuya y todos los clientes acceden a la misma aplicación a través de un cliente
ligero estándar (por ejemplo, un navegador).

19/12/2019 18/34
Este tipo de arquitecturas quedan exentas del cumplimiento del requisito de la firma software indicado
en esta sección.

En las aplicaciones de escritorio las diferentes versiones del software de facturación deberán estar
firmadas. Para la realización de la firma del software, la entidad desarrolladora lo firmará a través de un
certificado de firma de código emitido por una entidad certificadora reconocida.

El certificado deberá mostrar información que garantice la identidad del autor y la integridad del
software y seguirá las prácticas habituales en el mercado.

6.3 Versionado de aplicaciones

Este requisito sólo será exigible para los software de facturación definidos como aplicaciones de
escritorio (ver punto 6.2). Las aplicaciones con arquitectura distribuida (ver punto 6.2) estarán excluidas
del requisito de versionado de esta sección, aunque sí que deberán incluir en el fichero TBAI el campo
de versión del software.

En las aplicaciones de escritorio, la entidad desarrolladora deberá mantener un histórico de todas las
versiones y/o actualizaciones de los software de facturación TBAI distribuidos a los contribuyentes.
Estas versiones deberán ir identificadas mediante un código, que vendrá indicado en el fichero TBAI en
el campo “versión del software”.

Dichas versiones del software deberán ir firmadas como se indica en la sección 6.2 de este mismo
documento.

Las Administraciones tributarias podrán requerir el histórico de versiones de los software inscritos en el
registro de entidades desarrolladoras TBAI.

6.4 Recomendaciones sobre la cumplimentación de los campos serie y número de


factura

La recomendación para la asignación de Serie/Número de Factura es la siguiente:

Juego de caracteres recomendado: 0123456789ABCDEFEGHJKLMNPQRSTUVXYZ. No se


recomienda el empleo de letras minúsculas.

Espacio en blanco: de ser empleado, sólo se utilizará un carácter, nunca más de uno y nunca deben
comenzar con espacios en blanco (por lo tanto, texto ajustado a la izquierda).

Caracteres especiales: Guion medio "-", guion bajo "_", Barra inclinada normal "/", punto ".".

19/12/2019 19/34
6.5 Anulación de una factura

Para los casos en los que sea necesario anular una factura, se generarán ficheros TBAI firmados que
deberán ser remitidos a la Administración tributaria.

La anulación de una factura no requerirá la generación de una imagen.

Para la anulación, el software de facturación deberá generar un fichero XML que cumpla con el diseño
y el contenido del esquema del formato TBAI de anulación. El esquema detallado del fichero TBAI para
la anulación viene especificado en el anexo 2 de este documento. A nivel general, deberá contener la
siguiente información:

- Sujetos: emisor

- Factura - Cabecera: serie factura, número factura y fecha de expedición de la factura anulada.

- Huellas TBAI:

o Licencia TBAI, proporcionada por el registro de entidades desarrolladoras TBAI.

o Entidad desarrolladora. Debe corresponder con la información del registro de


entidades desarrolladoras TBAI.

o Software de facturación: nombre y versión. El nombre del software debe corresponder


con la información del registro de entidades desarrolladoras TBAI.

o Dispositivo. Se siguen las mismas consideraciones que para el campo dispositivo del
fichero TBAI definido en la sección 4.1 de este documento.

La firma de los ficheros TBAI de anulación deberá realizarse del mismo modo que la firma de los
ficheros TBAI, es decir, siguiendo las especificaciones incluida en el documento “Política de firma
TicketBAI”.

19/12/2019 20/34
7 GESTIÓN DEL DOCUMENTO

7.1 Gestión de las especificaciones y versionado

El mantenimiento, actualización, publicación y divulgación del presente documento corresponderá a las


Diputaciones de Araba/Álava, Bizkaia y Gipuzkoa, y al Gobierno Vasco.

7.2 Política de firma

Las especificaciones para cumplir los requisitos del sistema TicketBAI están definida por dos
documentos:

- Especificaciones funcionales y técnicas del sistema TicketBAI. Este documento.

- Política de Firma TicketBAI. Documento que describe todas las especificaciones alrededor de la
firma del fichero TBAI. Está publicada en el enlace https://ticketbai.eus/politicafirma.

19/12/2019 21/34
8 ANEXO 1 – ESTRUCTURA DEL FICHERO TICKETBAI
Leyenda:
* Rojo = Campos obligatorios (Para definir la obligatoriedad se ha tenido en cuenta lo definido en el SII)
* Negro: = Campos Opcionales
* Fondo Rosa = Campos excluyentes
* Fondo Verde = En función de la Administración tributaria, estos campos podrán ser de cumplimentación obligatoria

Bloque Datos Dato o agrupación de datos Formato Valores Posibles


Cabecera
IDVersionTBAI Alfanumérico(5) V 1.0
TBAI
NIF FormatoNif(9)
Emisor
APELLIDOS Y NOMBRE O RAZÓN SOCIAL Alfanumérico(120)
NIF FormatoNif(9)
IDOTRO CÓDIGO PAIS Alfanumérico(2)

02: NIF-IVA
03: Pasaporte
04: Documento oficial de
Destinatarios IDTYPE Alfanumérico(2) identificación expedido por el país o
(1 a 100) territorio de residencia
Sujetos
05: Certificado de residencia
06: Otro documento probatorio

ID Alfanumérico(20)
APELLIDOS Y NOMBRE O RAZÓN SOCIAL Alfanumérico(120)

CÓDIGO POSTAL Numérico(5)

VARIOS DESTINATARIOS Alfanumérico(1) S/N. Por defecto, N.

19/12/2019 22/34
Identificador que especifica si la
factura ha sido emitida por un
tercero
N No. Factura emitida por el propio
Factura emitida por tercero o por destinatario Alfanumérico(1) emisor. Por defecto, N

T Factura emitida por tercero.


D Factura emitida por el
destinatario de la operación.

SERIE FACTURA Alfanumérico(20)

NÚMERO FACTURA Alfanumérico(20)


FECHA DE EXPEDICIÓN FACTURA (EJ. 02-12-1992) FormatoFecha(10)
HORA DE EXPEDICIÓN FACTURA (EJ. 21:00:00) FormatoHora(8)
S/N. Por defecto, N (Factura
FACTURA SIMPLIFICADA Alfanumérico(1)
completa).
FACTURA EMITIDA EN SUSTITUCIÓN DE FACTURA SIMPLIFICADA Alfanumérico(1) S/N. Por defecto, N.
R1 Factura Rectificativa (Error
fundado en derecho y Art. 80 Uno
Dos y Seis LIVA)
Factura Cabecera Factura
R2 Factura Rectificativa (Art. 80.3)

CÓDIGO Alfanumérico(2)
R3 Factura Rectificativa (Art. 80.4)
FACTURA
RECTIFICATIVA R4 Factura Rectificativa (Resto)
R5 Factura Rectificativa en facturas
simplificadas
S Por sustitución
TIPO Alfanumérico(1)
I Por diferencias
IMPORTE BASE
Decimal(12, 2)
RECTIFICACIÓN RECTIFICADA

19/12/2019 23/34
SUSTITUTIVA CUOTA
Decimal(12, 2)
RECTIFICADA
CUOTA RECARGO
Decimal(12, 2)
RECTIFICADA

FACTURAS SERIE FACTURA Alfanumérico(20)


RECTIFICADAS O
SUSTITUIDAS NÚMERO FACTURA Alfanumérico(20)
(1 a 100)
FECHA EXPEDICIÓN (EJ. 02-12-1992) FormatoFecha(10)
FECHA DE LA OPERACIÓN (EJ. 02-12-1992) FormatoFecha(10)
DESCRIPCIÓN FACTURA Alfanumérico(250)
DESCRIPCIÓN DETALLE Alfanumérico(250)
CANTIDAD Decimal(12,2)
DETALLES FACTURA
IMPORTE UNITARIO Decimal(12,2)
(1 a 1000)
DESCUENTO Decimal(12,2)
IMPORTE TOTAL Decimal(12,2)
IMPORTE TOTAL DE LA FACTURA Decimal(12,2)
RETENCIÓN SOPORTADA Decimal(12,2)
Datos factura BASE IMPONIBLE A COSTE Decimal(12,2)

01 Operación de régimen general.

02 Exportación.

03 Operaciones a las que se aplique


Claves de REGÍMENES DE IVA Y OPERACIONES CON TRASCENDENCIA TRIBUTARIA
Alfanumérico(2) el régimen especial de bienes
(1 a 3) usados, objetos de arte,
antigüedades y objetos de
colección.

04 Régimen especial del oro de


inversión.

19/12/2019 24/34
05 Régimen especial de las agencias
de viajes.

06 Régimen especial grupo de


entidades en IVA (Nivel Avanzado).

07 Régimen especial del criterio de


caja.

08 Operaciones sujetas al IPSI / IGIC


(Impuesto sobre la Producción, los
Servicios y la Importación /
Impuesto General Indirecto
Canario).

09 Facturación de las prestaciones


de servicios de agencias de viaje que
actúan como mediadoras en
nombre y por cuenta ajena (D.A.4ª
RD1619/2012).

10 Cobros por cuenta de terceros de


honorarios profesionales o de
derechos derivados de la propiedad
industrial, de autor u otros por
cuenta de sus socios, asociados o
colegiados efectuados por
sociedades, asociaciones, colegios
profesionales u otras entidades que
realicen estas funciones de cobro.

19/12/2019 25/34
11 Operaciones de arrendamiento
de local de negocio sujetos a
retención.

12 Operaciones de arrendamiento
de local de negocio no sujetos a
retención.

13 Operaciones de arrendamiento
de local de negocio sujetas y no
sujetas a retención.

14 Factura con IVA pendiente de


devengo en certificaciones de obra
cuyo destinatario sea una
Administración Pública.

15 Factura con IVA pendiente de


devengo en operaciones de tracto
sucesivo.
51 Operaciones en recargo
de equivalencia.

52 Operaciones en
régimen simplificado.

Desglose a nivel de factura* (Desglose de factura: Cuando la contraparte es un “nacional” / desglose de tipo de operación: Entrega de bienes /
Prestación de servicio: Cuando contraparte es no nacional)

E1 EXENTA Art. 20
Desglose a nivel de factura* EXENTA
(Desglose de factura: Cuando la E2 EXENTA Art. 21
DetalleExenta
contraparte es un “nacional” o SUJETA (1 a 7, una agrupación CAUSA Alfanumérico(2) E3 EXENTA Art. 22
no existe contraparte) de datos por causa de E4 EXENTA Art. 23 y 24
exención)
E5 EXENTA Art. 25

19/12/2019 26/34
E6 EXENTA Otros
BASE IMPONIBLE EXENTA Decimal(12,2)
S1 sin ISP
TIPO NO EXENTA Alfanumérico(2)
S2 con ISP
BASE IMPONIBLE Decimal(12,2)
TIPO IMPOSITIVO Decimal(3,2)
CUOTA DEL
Decimal(12,2)
IMPUESTO

TIPO DEL RECARGO


Decimal(3,2)
DE EQUIVALENCIA

CUOTA DEL
RECARGO DE Decimal(12,2)
EQUIVALENCIA

IMPORTES
NO EXENTA (1 a 2)
DetalleIVA
(1 a 6, una
agrupación de
datos por tipo) Operación en recargo de
equivalencia o Régimen
OPERACIÓN EN simplificado.
RECARGO DE El valor por defecto es "N".
EQUIVALENCIA O Alfanumérico(1) Si se marca “S”, se trata de una
RÉGIMEN factura expedida por un
SIMPLIFICADO contribuyente en régimen
simplificado o en régimen de
recargo de equivalencia.

19/12/2019 27/34
OT No sujeto art. 7, 14, Otros
NO SUJETA CAUSA NO SUJECIÓN Alfanumérico(2) RL No sujeto por reglas de
DetalleNoSujeta
localización.
(1 a 2)
IMPORTE Decimal(12,2)
E1 EXENTA Art. 20
E2 EXENTA Art. 21
EXENTA
E3 EXENTA Art. 22
DetalleExenta CAUSA Alfanumérico(2)
(1 a 7, una agrupación E4 EXENTA Art. 23 y 24
de datos por causa de E5 EXENTA Art. 25
exención)
E6 EXENTA Otros
BASE IMPONIBLE EXENTA Decimal(12,2)
Desglose a nivel S1 sin ISP
de operación Desglose a TIPO NO EXENTA Alfanumérico(2)
nivel de S2 con ISP
SUJETA
(Cuando prestación de
contraparte es servicios BASE IMPONIBLE Decimal(12,2)
no nacional)

IMPORTES
NO EXENTA (1 a 2) TIPO IMPOSITIVO Decimal(3,2)
DetalleIVA
(1 a 6, una CUOTA DEL
Decimal(12,2)
agrupación de IMPUESTO
datos por tipo) TIPO DEL RECARGO
Decimal(3,2)
DE EQUIVALENCIA
CUOTA DEL
RECARGO DE Decimal(12,2)
EQUIVALENCIA

19/12/2019 28/34
Operación en recargo de
equivalencia o Régimen
OPERACIÓN EN simplificado.
RECARGO DE El valor por defecto es "N".
EQUIVALENCIA O Alfanumérico(1) Si se marca “S”, se trata de una
RÉGIMEN factura expedida por un
SIMPLIFICADO contribuyente en régimen
simplificado o en régimen de
recargo de equivalencia.

OT No sujeto art. 7, 14, Otros


NO SUJETA CAUSA NO SUJECIÓN Alfanumérico(2) RL No sujeto por reglas de
DetalleNoSujeta
localización.
(1 a 2)
IMPORTE Decimal(12,2)
E1 EXENTA Art. 20
E2 EXENTA Art. 21
EXENTA
E3 EXENTA Art. 22
DetalleExenta CAUSA Alfanumérico(2)
(1 a 7, una agrupación E4 EXENTA Art. 23 y 24
Desglose a de datos por causa de
nivel de E5 EXENTA Art. 25
SUJETA exención)
entrega de E6 EXENTA Otros
bienes
BASE IMPONIBLE EXENTA Decimal(12,2)
S1 sin ISP
TIPO NO EXENTA Alfanumérico(2)
NO EXENTA (1 a 2) S2 con ISP
IMPORTES BASE IMPONIBLE Decimal(12,2)

19/12/2019 29/34
DetalleIVA TIPO IMPOSITIVO Decimal(3,2)
(1 a 6, una
CUOTA DEL
agrupación de Decimal(12,2)
IMPUESTO
datos por tipo)
TIPO DEL RECARGO
Decimal(3,2)
DE EQUIVALENCIA

CUOTA DEL
RECARGO DE Decimal(12,2)
EQUIVALENCIA

Operación en recargo de
equivalencia o Régimen
OPERACIÓN EN simplificado.
RECARGO DE El valor por defecto es "N".
EQUIVALENCIA O Alfanumérico(1) Si se marca “S”, se trata de una
RÉGIMEN factura expedida por un
SIMPLIFICADO contribuyente en régimen
simplificado o en régimen de
recargo de equivalencia.

OT No sujeto art. 7, 14, Otros


NO SUJETA CAUSA NO SUJECIÓN Alfanumérico(2) RL No sujeto por reglas de
DetalleNoSujeta
localización
(1 a 2)
IMPORTE Decimal(12,2)
Huellas Huellas TicketBAI Encadenamiento Serie factura anterior Alfanumérico(20)

19/12/2019 30/34
Factura anterior Número factura factura anterior Alfanumérico(20)
Fecha Expedición factura anterior FormatoFecha(10)
Primeros cien caracteres del campo
Firma factura anterior Alfanumérico(100) SignatureValue del fichero TBAI de
la factura anterior
Licencia TBAI Alfanumérico(20)
Nif Entidad desarrolladora FormatoNif(9) Dato asociado a la Licencia TBAI.
Entidad desarrolladora ID otro CODIGO PAIS Alfanumérico(2) Dato asociado a la Licencia TBAI.
Software de
IDTYPE Alfanumérico(2) Dato asociado a la Licencia TBAI.
facturación
ID Alfanumérico(20) Dato asociado a la Licencia TBAI.
Nombre del Software Alfanumérico(120) Dato asociado a la Licencia TBAI.
Versión del Software Alfanumérico(20)
Dispositivo Nº Serie del dispositivo de facturación Alfanumérico(30)

Firma de la Firma
Datos Firma Firma TBAI Ver “Política de firma TicketBAI”
Factura Electrónica

19/12/2019 31/34
9 ANEXO 2 – ESTRUCTURA DEL FICHERO TICKETBAI DE ANULACIÓN
Leyenda:
* Rojo = Campos obligatorios (Para definir la obligatoriedad se ha tenido en cuenta lo definido en el SII)
* Negro: = Campos Opcionales
* Fondo Rosa = Campos excluyentes

Bloque Datos Dato o agrupación de datos Formato Valores Posibles

Cabecera TBAI IDVersionTBAI Alfanumérico(5) V 1.0

NIF FormatoNif(9)
Emisor
APELLIDOS Y NOMBRE O RAZÓN SOCIAL Alfanumérico(120)

ID Factura SERIE FACTURA ANULADA Alfanumérico(20)


Cabecera Factura
NÚMERO FACTURA ANULADA Alfanumérico(20)
FECHA DE EXPEDICIÓN FACTURA ANULADA (EJ. 02-12-1992) FormatoFecha(10)
Licencia TBAI Alfanumérico(20)
Nif Entidad desarrolladora FormatoNif(9) Dato asociado a la Licencia TBAI.
Entidad desarroladora ID CODIGO PAIS Alfanumérico(2) Dato asociado a la Licencia TBAI.
Software de otro
IDTYPE Alfanumérico(2) Dato asociado a la Licencia TBAI.
Huellas Huellas TicketBAI facturación
ID Alfanumérico(20) Dato asociado a la Licencia TBAI.
Nombre del Software Alfanumérico(120) Dato asociado a la Licencia TBAI.
Versión del software Alfanumérico(20)
Dispositivo Nº Serie del dispositivo de facturación Alfanumérico(30)

19/12/2019 32/34
Firma de la Factura Firma Electrónica Datos Firma Firma TBAI Ver “Política de firma TicketBAI”

19/12/2019 33/34
10 ANEXO 3 – ALGORITMO CRC DE COMPROBACIÓN
package net.ticketbai;

import java.io.UnsupportedEncodingException;

public class CRC8{

private static final String UTF_8 = "UTF-8";

// CRC-8,
// Poly = x^8 + x^2 + x^1 + x^0
// Init = 0
// RefIn = false
// RefOut = false
// XorOut = 0
private static final byte[] crc8_table =
new byte[] {
(byte) 0x00, (byte) 0x07, (byte) 0x0E, (byte) 0x09, (byte) 0x1C, (byte) 0x1B, (byte) 0x12, (byte) 0x15,
(byte) 0x38, (byte) 0x3F, (byte) 0x36, (byte) 0x31, (byte) 0x24, (byte) 0x23, (byte) 0x2A, (byte) 0x2D,
(byte) 0x70, (byte) 0x77, (byte) 0x7E, (byte) 0x79, (byte) 0x6C, (byte) 0x6B, (byte) 0x62, (byte) 0x65,
(byte) 0x48, (byte) 0x4F, (byte) 0x46, (byte) 0x41, (byte) 0x54, (byte) 0x53, (byte) 0x5A, (byte) 0x5D,
(byte) 0xE0, (byte) 0xE7, (byte) 0xEE, (byte) 0xE9, (byte) 0xFC, (byte) 0xFB, (byte) 0xF2, (byte) 0xF5,
(byte) 0xD8, (byte) 0xDF, (byte) 0xD6, (byte) 0xD1, (byte) 0xC4, (byte) 0xC3, (byte) 0xCA, (byte) 0xCD,
(byte) 0x90, (byte) 0x97, (byte) 0x9E, (byte) 0x99, (byte) 0x8C, (byte) 0x8B, (byte) 0x82, (byte) 0x85,
(byte) 0xA8, (byte) 0xAF, (byte) 0xA6, (byte) 0xA1, (byte) 0xB4, (byte) 0xB3, (byte) 0xBA, (byte) 0xBD,
(byte) 0xC7, (byte) 0xC0, (byte) 0xC9, (byte) 0xCE, (byte) 0xDB, (byte) 0xDC, (byte) 0xD5, (byte) 0xD2,
(byte) 0xFF, (byte) 0xF8, (byte) 0xF1, (byte) 0xF6, (byte) 0xE3, (byte) 0xE4, (byte) 0xED, (byte) 0xEA,
(byte) 0xB7, (byte) 0xB0, (byte) 0xB9, (byte) 0xBE, (byte) 0xAB, (byte) 0xAC, (byte) 0xA5, (byte) 0xA2,
(byte) 0x8F, (byte) 0x88, (byte) 0x81, (byte) 0x86, (byte) 0x93, (byte) 0x94, (byte) 0x9D, (byte) 0x9A,
(byte) 0x27, (byte) 0x20, (byte) 0x29, (byte) 0x2E, (byte) 0x3B, (byte) 0x3C, (byte) 0x35, (byte) 0x32,
(byte) 0x1F, (byte) 0x18, (byte) 0x11, (byte) 0x16, (byte) 0x03, (byte) 0x04, (byte) 0x0D, (byte) 0x0A,
(byte) 0x57, (byte) 0x50, (byte) 0x59, (byte) 0x5E, (byte) 0x4B, (byte) 0x4C, (byte) 0x45, (byte) 0x42,
(byte) 0x6F, (byte) 0x68, (byte) 0x61, (byte) 0x66, (byte) 0x73, (byte) 0x74, (byte) 0x7D, (byte) 0x7A,
(byte) 0x89, (byte) 0x8E, (byte) 0x87, (byte) 0x80, (byte) 0x95, (byte) 0x92, (byte) 0x9B, (byte) 0x9C,
(byte) 0xB1, (byte) 0xB6, (byte) 0xBF, (byte) 0xB8, (byte) 0xAD, (byte) 0xAA, (byte) 0xA3, (byte) 0xA4,
(byte) 0xF9, (byte) 0xFE, (byte) 0xF7, (byte) 0xF0, (byte) 0xE5, (byte) 0xE2, (byte) 0xEB, (byte) 0xEC,
(byte) 0xC1, (byte) 0xC6, (byte) 0xCF, (byte) 0xC8, (byte) 0xDD, (byte) 0xDA, (byte) 0xD3, (byte) 0xD4,
(byte) 0x69, (byte) 0x6E, (byte) 0x67, (byte) 0x60, (byte) 0x75, (byte) 0x72, (byte) 0x7B, (byte) 0x7C,
(byte) 0x51, (byte) 0x56, (byte) 0x5F, (byte) 0x58, (byte) 0x4D, (byte) 0x4A, (byte) 0x43, (byte) 0x44,
(byte) 0x19, (byte) 0x1E, (byte) 0x17, (byte) 0x10, (byte) 0x05, (byte) 0x02, (byte) 0x0B, (byte) 0x0C,
(byte) 0x21, (byte) 0x26, (byte) 0x2F, (byte) 0x28, (byte) 0x3D, (byte) 0x3A, (byte) 0x33, (byte) 0x34,
(byte) 0x4E, (byte) 0x49, (byte) 0x40, (byte) 0x47, (byte) 0x52, (byte) 0x55, (byte) 0x5C, (byte) 0x5B,
(byte) 0x76, (byte) 0x71, (byte) 0x78, (byte) 0x7F, (byte) 0x6A, (byte) 0x6D, (byte) 0x64, (byte) 0x63,
(byte) 0x3E, (byte) 0x39, (byte) 0x30, (byte) 0x37, (byte) 0x22, (byte) 0x25, (byte) 0x2C, (byte) 0x2B,
(byte) 0x06, (byte) 0x01, (byte) 0x08, (byte) 0x0F, (byte) 0x1A, (byte) 0x1D, (byte) 0x14, (byte) 0x13,
(byte) 0xAE, (byte) 0xA9, (byte) 0xA0, (byte) 0xA7, (byte) 0xB2, (byte) 0xB5, (byte) 0xBC, (byte) 0xBB,
(byte) 0x96, (byte) 0x91, (byte) 0x98, (byte) 0x9F, (byte) 0x8A, (byte) 0x8D, (byte) 0x84, (byte) 0x83,
(byte) 0xDE, (byte) 0xD9, (byte) 0xD0, (byte) 0xD7, (byte) 0xC2, (byte) 0xC5, (byte) 0xCC, (byte) 0xCB,
(byte) 0xE6, (byte) 0xE1, (byte) 0xE8, (byte) 0xEF, (byte) 0xFA, (byte) 0xFD, (byte) 0xF4, (byte) 0xF3 };

/**
* Calculate the CRC value with data from input string.
* @param input input string
* @return The calculated CRC value. Left padding with zeros.
* @throws UnsupportedEncodingException
*/
public static String calculate(String input) throws UnsupportedEncodingException {
byte[] data = input.getBytes(UTF_8);
int len = data.length;
byte crc = 0;

for (int i = 0; i < len; i++)


crc = crc8_table[(crc ^ data[i]) & 0xff];

return String.format("%03d", crc & 0xFFL);


}}

19/12/2019 34/34

También podría gustarte