diff --git a/addons/l10n_es_edi_tbai/i18n/l10n_es_edi_tbai.pot b/addons/l10n_es_edi_tbai/i18n/l10n_es_edi_tbai.pot
new file mode 100644
index 00000000000..eb7f4f07fed
--- /dev/null
+++ b/addons/l10n_es_edi_tbai/i18n/l10n_es_edi_tbai.pot
@@ -0,0 +1,386 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * l10n_es_edi_tbai
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 16.0+e\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-08-09 09:10+0000\n"
+"PO-Revision-Date: 2023-08-09 09:10+0000\n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: l10n_es_edi_tbai
+#: model_terms:ir.ui.view,arch_db:l10n_es_edi_tbai.template_LROE_240_inner
+msgid "1.0"
+msgstr ""
+
+#. module: l10n_es_edi_tbai
+#: model_terms:ir.ui.view,arch_db:l10n_es_edi_tbai.template_LROE_240_inner
+msgid "1.1"
+msgstr ""
+
+#. module: l10n_es_edi_tbai
+#: model_terms:ir.ui.view,arch_db:l10n_es_edi_tbai.template_LROE_240_inner
+msgid "240"
+msgstr ""
+
+#. module: l10n_es_edi_tbai
+#: model_terms:ir.ui.view,arch_db:l10n_es_edi_tbai.res_config_settings_view_form
+msgid ""
+"Registro de Libros connection "
+"SII/TicketBAI"
+msgstr ""
+
+#. module: l10n_es_edi_tbai
+#: model:ir.model,name:l10n_es_edi_tbai.model_account_move_reversal
+msgid "Account Move Reversal"
+msgstr ""
+
+#. module: l10n_es_edi_tbai
+#: model:ir.model,name:l10n_es_edi_tbai.model_ir_attachment
+msgid "Attachment"
+msgstr ""
+
+#. module: l10n_es_edi_tbai
+#: model:ir.model.fields,help:l10n_es_edi_tbai.field_account_bank_statement_line__l10n_es_tbai_refund_reason
+#: model:ir.model.fields,help:l10n_es_edi_tbai.field_account_move__l10n_es_tbai_refund_reason
+#: model:ir.model.fields,help:l10n_es_edi_tbai.field_account_move_reversal__l10n_es_tbai_refund_reason
+#: model:ir.model.fields,help:l10n_es_edi_tbai.field_account_payment__l10n_es_tbai_refund_reason
+msgid ""
+"BOE-A-1992-28740. Ley 37/1992, de 28 de diciembre, del Impuesto sobre el "
+"Valor Añadido. Artículo 80. Modificación de la base imponible."
+msgstr ""
+
+#. module: l10n_es_edi_tbai
+#: model:ir.model.fields,field_description:l10n_es_edi_tbai.field_account_bank_statement_line__l10n_es_tbai_cancel_xml
+#: model:ir.model.fields,field_description:l10n_es_edi_tbai.field_account_move__l10n_es_tbai_cancel_xml
+#: model:ir.model.fields,field_description:l10n_es_edi_tbai.field_account_payment__l10n_es_tbai_cancel_xml
+msgid "Cancellation XML"
+msgstr ""
+
+#. module: l10n_es_edi_tbai
+#: model:ir.model.fields,help:l10n_es_edi_tbai.field_account_bank_statement_line__l10n_es_tbai_cancel_xml
+#: model:ir.model.fields,help:l10n_es_edi_tbai.field_account_move__l10n_es_tbai_cancel_xml
+#: model:ir.model.fields,help:l10n_es_edi_tbai.field_account_payment__l10n_es_tbai_cancel_xml
+msgid ""
+"Cancellation XML sent to TicketBAI. Kept if accepted or no response "
+"(timeout), cleared otherwise."
+msgstr ""
+
+#. module: l10n_es_edi_tbai
+#: model:ir.model,name:l10n_es_edi_tbai.model_res_company
+msgid "Companies"
+msgstr ""
+
+#. module: l10n_es_edi_tbai
+#: model:ir.model,name:l10n_es_edi_tbai.model_res_config_settings
+msgid "Config Settings"
+msgstr ""
+
+#. module: l10n_es_edi_tbai
+#: model:ir.model,name:l10n_es_edi_tbai.model_account_edi_format
+msgid "EDI format"
+msgstr ""
+
+#. module: l10n_es_edi_tbai
+#: model:ir.model,name:l10n_es_edi_tbai.model_account_edi_document
+msgid "Electronic Document for an account.move"
+msgstr ""
+
+#. module: l10n_es_edi_tbai
+#: model:ir.model.fields.selection,name:l10n_es_edi_tbai.selection__res_company__l10n_es_tbai_tax_agency__araba
+msgid "Hacienda Foral de Araba"
+msgstr ""
+
+#. module: l10n_es_edi_tbai
+#: model:ir.model.fields.selection,name:l10n_es_edi_tbai.selection__res_company__l10n_es_tbai_tax_agency__bizkaia
+msgid "Hacienda Foral de Bizkaia"
+msgstr ""
+
+#. module: l10n_es_edi_tbai
+#: model:ir.model.fields.selection,name:l10n_es_edi_tbai.selection__res_company__l10n_es_tbai_tax_agency__gipuzkoa
+msgid "Hacienda Foral de Gipuzkoa"
+msgstr ""
+
+#. module: l10n_es_edi_tbai
+#: model:ir.model.fields,field_description:l10n_es_edi_tbai.field_account_bank_statement_line__l10n_es_tbai_refund_reason
+#: model:ir.model.fields,field_description:l10n_es_edi_tbai.field_account_move__l10n_es_tbai_refund_reason
+#: model:ir.model.fields,field_description:l10n_es_edi_tbai.field_account_move_reversal__l10n_es_tbai_refund_reason
+#: model:ir.model.fields,field_description:l10n_es_edi_tbai.field_account_payment__l10n_es_tbai_refund_reason
+msgid "Invoice Refund Reason Code (TicketBai)"
+msgstr ""
+
+#. module: l10n_es_edi_tbai
+#: model:ir.model.fields,help:l10n_es_edi_tbai.field_account_bank_statement_line__l10n_es_tbai_chain_index
+#: model:ir.model.fields,help:l10n_es_edi_tbai.field_account_move__l10n_es_tbai_chain_index
+#: model:ir.model.fields,help:l10n_es_edi_tbai.field_account_payment__l10n_es_tbai_chain_index
+msgid ""
+"Invoice index in chain, set if and only if an in-chain XML was submitted and"
+" did not error"
+msgstr ""
+
+#. module: l10n_es_edi_tbai
+#: model:ir.model.fields,field_description:l10n_es_edi_tbai.field_account_move_reversal__l10n_es_tbai_is_required
+msgid "Is TicketBai required for this reversal"
+msgstr ""
+
+#. module: l10n_es_edi_tbai
+#: model:ir.model.fields,help:l10n_es_edi_tbai.field_account_bank_statement_line__l10n_es_tbai_is_required
+#: model:ir.model.fields,help:l10n_es_edi_tbai.field_account_move__l10n_es_tbai_is_required
+#: model:ir.model.fields,help:l10n_es_edi_tbai.field_account_payment__l10n_es_tbai_is_required
+msgid "Is the Basque EDI (TicketBAI) needed ?"
+msgstr ""
+
+#. module: l10n_es_edi_tbai
+#: model:ir.model,name:l10n_es_edi_tbai.model_account_move
+msgid "Journal Entry"
+msgstr ""
+
+#. module: l10n_es_edi_tbai
+#. odoo-python
+#: code:addons/l10n_es_edi_tbai/models/res_company.py:0
+#, python-format
+msgid "Licence NIF"
+msgstr ""
+
+#. module: l10n_es_edi_tbai
+#. odoo-python
+#: code:addons/l10n_es_edi_tbai/models/res_company.py:0
+#, python-format
+msgid "Licence number"
+msgstr ""
+
+#. module: l10n_es_edi_tbai
+#: model:ir.ui.menu,name:l10n_es_edi_tbai.menu_l10n_es_edi_tbai_license
+msgid "Licenses (TicketBAI)"
+msgstr ""
+
+#. module: l10n_es_edi_tbai
+#. odoo-python
+#: code:addons/l10n_es_edi_tbai/models/account_edi_format.py:0
+#, python-format
+msgid "No XML response received from LROE."
+msgstr ""
+
+#. module: l10n_es_edi_tbai
+#: model_terms:ir.ui.view,arch_db:l10n_es_edi_tbai.res_config_settings_view_form
+msgid "No tax agency selected: TicketBAI not activated."
+msgstr ""
+
+#. module: l10n_es_edi_tbai
+#: model:ir.model,name:l10n_es_edi_tbai.model_l10n_es_edi_certificate
+msgid "Personal Digital Certificate"
+msgstr ""
+
+#. module: l10n_es_edi_tbai
+#. odoo-python
+#: code:addons/l10n_es_edi_tbai/models/account_edi_format.py:0
+#, python-format
+msgid "Please configure the Tax ID on your company for TicketBAI."
+msgstr ""
+
+#. module: l10n_es_edi_tbai
+#. odoo-python
+#: code:addons/l10n_es_edi_tbai/models/account_edi_format.py:0
+#, python-format
+msgid "Please configure the certificate for TicketBAI/SII."
+msgstr ""
+
+#. module: l10n_es_edi_tbai
+#. odoo-python
+#: code:addons/l10n_es_edi_tbai/models/account_edi_format.py:0
+#, python-format
+msgid "Please specify a tax agency on your company for TicketBAI."
+msgstr ""
+
+#. module: l10n_es_edi_tbai
+#. odoo-python
+#: code:addons/l10n_es_edi_tbai/models/res_company.py:0
+#, python-format
+msgid "Production license"
+msgstr ""
+
+#. module: l10n_es_edi_tbai
+#: model:ir.model.fields.selection,name:l10n_es_edi_tbai.selection__account_move__l10n_es_tbai_refund_reason__r1
+#: model:ir.model.fields.selection,name:l10n_es_edi_tbai.selection__account_move_reversal__l10n_es_tbai_refund_reason__r1
+msgid "R1: Art. 80.1, 80.2, 80.6 and rights founded error"
+msgstr ""
+
+#. module: l10n_es_edi_tbai
+#: model:ir.model.fields.selection,name:l10n_es_edi_tbai.selection__account_move__l10n_es_tbai_refund_reason__r2
+#: model:ir.model.fields.selection,name:l10n_es_edi_tbai.selection__account_move_reversal__l10n_es_tbai_refund_reason__r2
+msgid "R2: Art. 80.3"
+msgstr ""
+
+#. module: l10n_es_edi_tbai
+#: model:ir.model.fields.selection,name:l10n_es_edi_tbai.selection__account_move__l10n_es_tbai_refund_reason__r3
+#: model:ir.model.fields.selection,name:l10n_es_edi_tbai.selection__account_move_reversal__l10n_es_tbai_refund_reason__r3
+msgid "R3: Art. 80.4"
+msgstr ""
+
+#. module: l10n_es_edi_tbai
+#: model:ir.model.fields.selection,name:l10n_es_edi_tbai.selection__account_move__l10n_es_tbai_refund_reason__r4
+#: model:ir.model.fields.selection,name:l10n_es_edi_tbai.selection__account_move_reversal__l10n_es_tbai_refund_reason__r4
+msgid "R4: Art. 80 - other"
+msgstr ""
+
+#. module: l10n_es_edi_tbai
+#: model:ir.model.fields.selection,name:l10n_es_edi_tbai.selection__account_move__l10n_es_tbai_refund_reason__r5
+#: model:ir.model.fields.selection,name:l10n_es_edi_tbai.selection__account_move_reversal__l10n_es_tbai_refund_reason__r5
+msgid "R5: Factura rectificativa en facturas simplificadas"
+msgstr ""
+
+#. module: l10n_es_edi_tbai
+#: model_terms:ir.ui.view,arch_db:l10n_es_edi_tbai.template_invoice_desglose
+msgid "RL"
+msgstr ""
+
+#. module: l10n_es_edi_tbai
+#. odoo-python
+#: code:addons/l10n_es_edi_tbai/models/account_edi_format.py:0
+#, python-format
+msgid "Refund reason cannot be R5 for non-simplified invoices (TicketBAI)"
+msgstr ""
+
+#. module: l10n_es_edi_tbai
+#. odoo-python
+#: code:addons/l10n_es_edi_tbai/models/account_edi_format.py:0
+#, python-format
+msgid "Refund reason must be R5 for simplified invoices (TicketBAI)"
+msgstr ""
+
+#. module: l10n_es_edi_tbai
+#. odoo-python
+#: code:addons/l10n_es_edi_tbai/models/account_edi_format.py:0
+#, python-format
+msgid "Refund reason must be specified (TicketBAI)"
+msgstr ""
+
+#. module: l10n_es_edi_tbai
+#: model:ir.model,name:l10n_es_edi_tbai.model_ir_actions_report
+msgid "Report Action"
+msgstr ""
+
+#. module: l10n_es_edi_tbai
+#. odoo-python
+#: code:addons/l10n_es_edi_tbai/models/res_company.py:0
+#, python-format
+msgid "Software name"
+msgstr ""
+
+#. module: l10n_es_edi_tbai
+#. odoo-python
+#: code:addons/l10n_es_edi_tbai/models/res_company.py:0
+#, python-format
+msgid "Software version"
+msgstr ""
+
+#. module: l10n_es_edi_tbai
+#: model:ir.model.fields,field_description:l10n_es_edi_tbai.field_account_bank_statement_line__l10n_es_tbai_post_xml
+#: model:ir.model.fields,field_description:l10n_es_edi_tbai.field_account_move__l10n_es_tbai_post_xml
+#: model:ir.model.fields,field_description:l10n_es_edi_tbai.field_account_payment__l10n_es_tbai_post_xml
+msgid "Submission XML"
+msgstr ""
+
+#. module: l10n_es_edi_tbai
+#: model:ir.model.fields,help:l10n_es_edi_tbai.field_account_bank_statement_line__l10n_es_tbai_post_xml
+#: model:ir.model.fields,help:l10n_es_edi_tbai.field_account_move__l10n_es_tbai_post_xml
+#: model:ir.model.fields,help:l10n_es_edi_tbai.field_account_payment__l10n_es_tbai_post_xml
+msgid ""
+"Submission XML sent to TicketBAI. Kept if accepted or no response (timeout),"
+" cleared otherwise."
+msgstr ""
+
+#. module: l10n_es_edi_tbai
+#: model_terms:ir.ui.view,arch_db:l10n_es_edi_tbai.template_invoice_bundle
+msgid "TEST-DEVICE-001"
+msgstr ""
+
+#. module: l10n_es_edi_tbai
+#: model:ir.model.fields,field_description:l10n_es_edi_tbai.field_res_company__l10n_es_tbai_tax_agency
+#: model:ir.model.fields,field_description:l10n_es_edi_tbai.field_res_config_settings__l10n_es_tbai_tax_agency
+msgid "Tax Agency for TBAI"
+msgstr ""
+
+#. module: l10n_es_edi_tbai
+#: model_terms:ir.ui.view,arch_db:l10n_es_edi_tbai.res_config_settings_view_form
+msgid "Tax agency selected: TicketBAI is activated."
+msgstr ""
+
+#. module: l10n_es_edi_tbai
+#. odoo-python
+#: code:addons/l10n_es_edi_tbai/models/res_company.py:0
+#, python-format
+msgid "Test license (Araba)"
+msgstr ""
+
+#. module: l10n_es_edi_tbai
+#. odoo-python
+#: code:addons/l10n_es_edi_tbai/models/res_company.py:0
+#, python-format
+msgid "Test license (Bizkaia)"
+msgstr ""
+
+#. module: l10n_es_edi_tbai
+#. odoo-python
+#: code:addons/l10n_es_edi_tbai/models/res_company.py:0
+#, python-format
+msgid "Test license (Gipuzkoa)"
+msgstr ""
+
+#. module: l10n_es_edi_tbai
+#: model_terms:ir.ui.view,arch_db:l10n_es_edi_tbai.view_move_form_inherit_l10n_es_edi_tbai
+msgid "TicketBAI"
+msgstr ""
+
+#. module: l10n_es_edi_tbai
+#: model:ir.model.fields,field_description:l10n_es_edi_tbai.field_account_bank_statement_line__l10n_es_tbai_chain_index
+#: model:ir.model.fields,field_description:l10n_es_edi_tbai.field_account_move__l10n_es_tbai_chain_index
+#: model:ir.model.fields,field_description:l10n_es_edi_tbai.field_account_payment__l10n_es_tbai_chain_index
+msgid "TicketBAI chain index"
+msgstr ""
+
+#. module: l10n_es_edi_tbai
+#. odoo-python
+#: code:addons/l10n_es_edi_tbai/models/res_company.py:0
+#, python-format
+msgid "TicketBAI is not configured"
+msgstr ""
+
+#. module: l10n_es_edi_tbai
+#: model:ir.model.fields,field_description:l10n_es_edi_tbai.field_res_company__l10n_es_tbai_license_html
+msgid "TicketBAI license"
+msgstr ""
+
+#. module: l10n_es_edi_tbai
+#: model:ir.model.fields,field_description:l10n_es_edi_tbai.field_account_bank_statement_line__l10n_es_tbai_is_required
+#: model:ir.model.fields,field_description:l10n_es_edi_tbai.field_account_move__l10n_es_tbai_is_required
+#: model:ir.model.fields,field_description:l10n_es_edi_tbai.field_account_payment__l10n_es_tbai_is_required
+msgid "TicketBAI required"
+msgstr ""
+
+#. module: l10n_es_edi_tbai
+#: model:ir.model.fields,field_description:l10n_es_edi_tbai.field_res_company__l10n_es_tbai_chain_sequence_id
+msgid "TicketBai account.move chain sequence"
+msgstr ""
+
+#. module: l10n_es_edi_tbai
+#. odoo-python
+#: code:addons/l10n_es_edi_tbai/models/account_move.py:0
+#, python-format
+msgid "You cannot delete a move that has a TicketBAI chain id."
+msgstr ""
+
+#. module: l10n_es_edi_tbai
+#. odoo-python
+#: code:addons/l10n_es_edi_tbai/models/account_move.py:0
+#, python-format
+msgid ""
+"You cannot reset to draft an entry that has been posted to TicketBAI's chain"
+msgstr ""
diff --git a/addons/l10n_es_edi_tbai/models/account_move.py b/addons/l10n_es_edi_tbai/models/account_move.py
index f5be1beab4f..e45cb8f4353 100644
--- a/addons/l10n_es_edi_tbai/models/account_move.py
+++ b/addons/l10n_es_edi_tbai/models/account_move.py
@@ -154,6 +154,9 @@ class AccountMove(models.Model):
def _get_l10n_es_tbai_id(self):
"""Get the TicketBAI ID (TBAID) as defined in the TicketBAI doc."""
self.ensure_one()
+ if not self._l10n_es_tbai_is_in_chain():
+ return ''
+
signature, registration_date = self._get_l10n_es_tbai_signature_and_date()
company = self.company_id
tbai_id_no_crc = '-'.join([
diff --git a/addons/l10n_es_edi_tbai/views/report_invoice.xml b/addons/l10n_es_edi_tbai/views/report_invoice.xml
index 53381b1b5ea..02fd46fcac7 100644
--- a/addons/l10n_es_edi_tbai/views/report_invoice.xml
+++ b/addons/l10n_es_edi_tbai/views/report_invoice.xml
@@ -2,7 +2,7 @@
-