Comunicación VERI*FACTU

l10n_es_verifactu_oca
REPOSITORY
REPOSITORYOCA/l10n-spain
GIT
GIThttps://github.com/OCA/l10n-spain.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-spain/tree/18.0/l10n_es_verifactu_oca
VERSION
VERSION 1.4.0
CATEGORY
CATEGORYAccounting/Localizations/EDI
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSAures Tic, Tecnativa, Odoo Community Association (OCA), ForgeFlow, Factor Libre
MAINTAINERS
MAINTAINERSAures Tic, Tecnativa, Odoo Community Association (OCA), ForgeFlow, Factor Libre
COMMITTERS
COMMITTERSPedro M. Baeza, Weblate, OCA-git-bot, oca-ci, LauraCForgeFlow, sygel, Ivan Vilata-i-Balaguer, Ricard Calvo, Andrii Kompaniiets
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-spain
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:05
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-financial-reporting:
    - account_tax_balance
OCA/account-invoicing:
    - account_invoice_refund_link
OCA/l10n-spain:
    - l10n_es_aeat
OCA/server-ux:
    - date_range
odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - onboarding
    - product
    - mail
    - bus
    - web_tour
    - html_editor
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - l10n_es
    - base_iban
    - base_vat
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES unidecode
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Módulo para la presentación inmediata de la facturación.

Code Analysis

Views touched (26)
XML IDNameModelTypeStatus
address_layout address_layout ir.ui.view qweb Inherits web.address_layout
invoice_verifactu_form account.invoice.verifactu.form account.move button Inherits l10n_es_aeat.view_move_form
invoice_verifactu_search account.invoice.verifactu.search account.move filter Inherits account.view_account_invoice_filter
invoice_verifactu_tree account.invoice.list account.move field Inherits account.view_invoice_tree
l10n_es_verifactu_map_lines_view_tree verifactu.map.line list New
report_invoice_document report_invoice_document ir.ui.view qweb Inherits account.report_invoice_document
verifactu_cancel_invoice_wizard_form_view verifactu.cancel.invoice.wizard.form verifactu.cancel.invoice.wizard form New
verifactu_chaining_form_view verifactu.chaining.form verifactu.chaining form New
verifactu_chaining_tree_view verifactu.chaining.list verifactu.chaining list New
verifactu_developer_form_view verifactu.developer.form verifactu.developer form New
verifactu_developer_tree_view verifactu.developer.list verifactu.developer list New
verifactu_invoice_entry_response_view_form verifactu.invoice.entry.response.view.form verifactu.invoice.entry.response form New
verifactu_invoice_entry_response_view_kanban verifactu.invoice.entry.response.view.kanban verifactu.invoice.entry.response kanban New
verifactu_invoice_entry_response_view_search verifactu.invoice.entry.response.view.search verifactu.invoice.entry.response search New
verifactu_invoice_entry_response_view_tree verifactu.invoice.entry.response.view.list verifactu.invoice.entry.response list New
verifactu_map_view_form verifactu.map.view.form verifactu.map form New
verifactu_map_view_tree verifactu.map.view.list verifactu.map list New
verifactu_registration_keys_view_search verifactu.registration.key search New
verifactu_registration_keys_view_tree verifactu.registration.key list New
verifactu_tax_agency_form_view aeat.tax.agency.form - l10n_es_verifactu aeat.tax.agency notebook Inherits l10n_es_aeat.aeat_tax_agency_form_view
view_account_journal_form_inherit account.journal.form - l10n_es_verifactu account.journal xpath Inherits account.view_account_journal_form
view_account_position_form account.fiscal.position.form account.fiscal.position xpath Inherits account.view_account_position_form
view_company_verifactu_form res.company.verifactu.form res.company notebook Inherits base.view_company_form
view_verifactu_invoice_entry_form verifactu.invoice.entry.form verifactu.invoice.entry form New
view_verifactu_invoice_entry_search verifactu.invoice.entry.search verifactu.invoice.entry search New
view_verifactu_invoice_entry_tree verifactu.invoice.entry.list verifactu.invoice.entry list New
Models touched (18)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (3)
  • verifactu_enabled Boolean
    readonly=True related='company_id.verifactu_enabled'
  • verifactu_registration_key Many2one → verifactu.registration.key
    comodel_name='verifactu.registration.key' ondelete='restrict' string='VERI*FACTU registration key'
  • verifactu_tax_key Selection
    default='01' selection='_get_verifactu_tax_keys' string='VERI*FACTU tax key'
Public methods (0)

No public methods.

New fields (4)
  • company_verifactu_enabled Boolean
    related='company_id.verifactu_enabled' string='VERI*FACTU company enabled'
  • restrict_mode_hash_table Boolean
    compute='_compute_restrict_mode_hash_table' readonly=False store=True
  • restrict_mode_hash_table_readonly Boolean
    compute='_compute_restrict_mode_hash_table' store=True
  • verifactu_enabled Boolean
    default=True string='VERI*FACTU enabled'
Public methods (3)
  • check_hash_modification(self, vals)
  • create(self, vals_list)
    @api.model_create_multi
  • write(self, vals)

New fields (1)
  • verifactu_refund_specific_type Selection
    help='Fill this field when the refund are one of the specific cases of article 80 of LIVA for notifying to VERI*FACTU with the proper invoice type.' selection=[('R1', 'Art. 80.1 y 80.2 y error fundado en derecho'), ('R2', 'Art. 80.3'), ('R3', 'Art. 80.4'), ('R4', 'Resto'), ('R5', 'De factura simplificada')] string='VERI*FACTU refund specific type'
Public methods (5)
  • button_cancel(self)
  • button_draft(self)
  • cancel_verifactu(self)
  • resend_verifactu(self)
  • write(self, vals)

New fields (0)

No new fields.

Public methods (1)
  • reverse_moves(self, is_modify=False)

New fields (4)
  • verifactu_qr_base_url Char
    string='VERI*FACTU QR Base URL'
  • verifactu_qr_base_url_test_address Char
    string='VERI*FACTU QR Base URL Test'
  • verifactu_wsdl_out Char
    string='VERI*FACTU WSDL'
  • verifactu_wsdl_out_test_address Char
    string='VERI*FACTU Test Address'
Public methods (0)

No public methods.

New fields (6)
  • verifactu_chaining_id Many2one → verifactu.chaining
    comodel_name='verifactu.chaining' ondelete='restrict' string='VERI*FACTU chaining' tracking=True
  • verifactu_description Text
    default='/' help='The description for VERI*FACTU invoices if not set' string='VERI*FACTU description' tracking=True
  • verifactu_developer_id Many2one → verifactu.developer
    comodel_name='verifactu.developer' ondelete='restrict' string='VERI*FACTU developer' tracking=True
  • verifactu_enabled Boolean
    string='VERI*FACTU enabled' tracking=True
  • verifactu_start_date Date
    help="If this field is set, the VERI*FACTU won't be enabled on invoices with lower invoice date. If not set, it can be enabled on all invoice dates" string='VERI*FACTU start date' tracking=True
  • verifactu_test Boolean
    string='VERI*FACTU test environment?' tracking=True
Public methods (1)
  • write(self, vals)

New fields (1)
  • verifactu_enabled Boolean
    compute='_compute_aeat_sending_enabled' string='VERI*FACTU enabled'
Public methods (0)

No public methods.

New fields (2)
  • cancel_reason Char
    string='Cancellation reason'
  • invoice_id Many2one → account.move
    comodel_name='account.move' readonly=True required=True string='Invoice'
Public methods (1)
  • cancel_invoice_in_verifactu(self)

New fields (4)
  • installation_number Integer
    default=1 required=True tracking=True
  • last_verifactu_invoice_entry_id Many2one → verifactu.invoice.entry
    comodel_name='verifactu.invoice.entry' copy=False help='Reference to the last VERI*FACTU invoice entry for this company. Used for atomic chaining.' readonly=True string='Last invoice entry'
  • name Char
    required=True tracking=True
  • sif_id Char
    help='Identifier of the billing software (SIF). Must be exactly 2 alphanumeric characters (A,Z, 0,9).' required=True size=2 string='SIF ID' tracking=True
Public methods (0)

No public methods.

New fields (5)
  • name Char
    required=True string='Developer Name' tracking=True
  • responsibility_declaration Binary
    attachment=True copy=False
  • sif_name Char
    required=True tracking=True args: 'SIF Name'
  • vat Char
    required=True string='Developer VAT' tracking=True
  • version Char
    default='1.0' required=True tracking=True
Public methods (0)

No public methods.

New fields (15)
  • aeat_json_data Text
    help='Generated JSON data to send to AEAT' readonly=True string='AEAT JSON Data'
  • company_id Many2one → res.company
    readonly=True required=True string='Company' args: 'res.company'
  • document_hash Char
    readonly=True required=True
  • document_id Many2oneReference
    index=True model_field='model' readonly=True required=True string='Document'
  • document_name Char
    readonly=True
  • entry_type Selection
    default='register' required=True selection=[('register', 'Register'), ('modify', 'Modify'), ('cancel', 'Cancel')]
  • last_error_code Char
    compute='_compute_last_error_code' store=True
  • last_response_line_id Many2one → verifactu.invoice.entry.response.line
    readonly=True string='Last Response Line' args: 'verifactu.invoice.entry.response.line'
  • model Char
    readonly=True required=True
  • previous_hash Char
    readonly=True related='previous_invoice_entry_id.document_hash' string='Previous Hash'
  • previous_invoice_entry_id Many2one → verifactu.invoice.entry
    readonly=True string='Previous Invoice Entry' args: 'verifactu.invoice.entry'
  • response_line_ids One2many → verifactu.invoice.entry.response.line
    help='Responses from VERI*FACTU after sending the documents.' string='Responses' args: 'verifactu.invoice.entry.response.line', 'entry_id'
  • send_attempt Integer
    default=0 help='Number of attempts to send this document.'
  • send_state Selection
    compute='_compute_send_state' copy=False default='not_sent' help='Indicates the state of this document in relation with the presentation to VERI*FACTU.' readonly=True selection=VERIFACTU_SEND_STATES store=True
  • verifactu_chaining_id Many2one → verifactu.chaining
    ondelete='restrict' required=True string='Chaining' args: 'verifactu.chaining'
Public methods (1)
  • document(self)
    @property

New fields (8)
  • activity_type_id Many2one → mail.activity.type
    compute='_compute_activity_type_id' store=True string='Activity Type' args: 'mail.activity.type'
  • date_response Datetime
    readonly=True
  • header Text
  • invoice_data Text
  • name Char
  • response Text
  • response_line_ids One2many → verifactu.invoice.entry.response.line
    string='Response lines' args: 'verifactu.invoice.entry.response.line', 'entry_response_id'
  • verifactu_csv Text
    string='VERI*FACTU CSV'
Public methods (3)
  • complete_open_activity_on_exception(self)
  • create_activity_on_exception(self)
  • create_send_response_activity(self)

New fields (10)
  • document_id Many2oneReference
    index=True model_field='model' readonly=True string='Document'
  • document_name Char
    readonly=True related='entry_id.document_name'
  • entry_id Many2one → verifactu.invoice.entry
    comodel_name='verifactu.invoice.entry' required=True
  • entry_response_id Many2one → verifactu.invoice.entry.response
    args: 'verifactu.invoice.entry.response'
  • error_code Char
  • is_cancellation Boolean
    compute='_compute_is_cancellation' help='Indicates whether this response line is related to a cancellation request.' readonly=True string='Is cancellation'
  • model Char
    readonly=True
  • response Text
  • send_state Selection
    copy=False default='not_sent' help='Indicates the state of this document in relation with the presentation to VERI*FACTU.' readonly=True selection=VERIFACTU_SEND_STATES string='VERI*FACTU send state'
  • verifactu_csv Text
    related='entry_response_id.verifactu_csv'
Public methods (1)
  • document(self)
    @property

New fields (4)
  • date_from Date
  • date_to Date
  • map_lines One2many → verifactu.map.line
    comodel_name='verifactu.map.line' inverse_name='verifactu_map_id' string='Lines'
  • name Char
    required=True string='Model'
Public methods (0)

No public methods.

New fields (4)
  • code Char
    required=True
  • name Char
  • tax_xmlid_ids Many2many → l10n.es.aeat.map.tax.line.tax
    comodel_name='l10n.es.aeat.map.tax.line.tax' string='Taxes templates'
  • verifactu_map_id Many2one → verifactu.map
    comodel_name='verifactu.map' ondelete='cascade' string='Parent mapping'
Public methods (0)

No public methods.

New fields (21)
  • aeat_state Selection
    compute='_compute_aeat_state' copy=False selection_add=VERIFACTU_EXTRA_AEAT_STATES store=True
  • last_verifactu_invoice_entry_id Many2one → verifactu.invoice.entry
    comodel_name='verifactu.invoice.entry' copy=False readonly=True string='VERI*FACTU last invoice entry'
  • last_verifactu_response_line_id Many2one → verifactu.invoice.entry.response.line
    comodel_name='verifactu.invoice.entry.response.line' copy=False readonly=True string='VERI*FACTU response line'
  • verifactu_cancel_reason Char
    help='Optional internal reason to cancel this invoicein VERI*FACTU. This reason is not sent to VERI*FACTU' string='VERI*FACTU cancel reason'
  • verifactu_csv Char
    copy=False readonly=True string='VERI*FACTU CSV'
  • verifactu_description Text
    copy=False string='VERI*FACTU description'
  • verifactu_enabled Boolean
    compute='_compute_verifactu_enabled' search='_search_verifactu_enabled' string='VERI*FACTU enabled'
  • verifactu_hash Char
    copy=False string='VERI*FACTU hash' tracking=True
  • verifactu_hash_string Char
    copy=False string='VERI*FACTU hash string' tracking=True
  • verifactu_invoice_entry_ids One2many → verifactu.invoice.entry
    comodel_name='verifactu.invoice.entry' copy=False domain=<expr> inverse_name='document_id' readonly=True string='VERI*FACTU invoice entries'
  • verifactu_macrodata Boolean
    compute='_compute_verifactu_macrodata' help='Check to confirm that the document has an absolute amount greater o equal to 100 000 000,00 euros.' string='VERI*FACTU macrodata?'
  • verifactu_qr Binary
    compute='_compute_verifactu_qr' string='VERI*FACTU QR'
  • verifactu_qr_url Char
    compute='_compute_verifactu_qr_url' string='VERI*FACTU URL'
  • verifactu_refund_type Selection
    compute='_compute_verifactu_refund_type' readonly=False selection=[('I', 'By differences')] store=True string='VERI*FACTU refund type'
  • verifactu_registration_date Datetime
    copy=False string='VERI*FACTU registration date'
  • verifactu_registration_key Many2one → verifactu.registration.key
    comodel_name='verifactu.registration.key' compute='_compute_verifactu_registration_key' readonly=False store=True string='VERI*FACTU registration key'
  • verifactu_registration_key_code Char
    compute='_compute_verifactu_registration_key_code' string='VERI*FACTU key code'
  • verifactu_response_line_ids One2many → verifactu.invoice.entry.response.line
    comodel_name='verifactu.invoice.entry.response.line' copy=False domain=<expr> inverse_name='document_id' readonly=True string='VERI*FACTU response lines'
  • verifactu_return Text
    copy=False readonly=True string='VERI*FACTU return'
  • verifactu_send_date Datetime
    copy=False index=True string='VERI*FACTU send date'
  • verifactu_tax_key Selection
    compute='_compute_verifactu_tax_key' readonly=False selection='_get_verifactu_tax_keys' store=True string='VERI*FACTU tax key'
Public methods (1)
  • cancel_verifactu(self)

New fields (3)
  • code Char
    required=True size=2
  • name Char
    required=True
  • verifactu_tax_key Selection
    required=True selection='_get_verifactu_tax_keys' string='VERI*FACTU tax key'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/l10n-spain
GIT
GIThttps://github.com/OCA/l10n-spain.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-spain/tree/17.0/l10n_es_verifactu_oca
VERSION
VERSION 1.4.0
CATEGORY
CATEGORYAccounting/Localizations/EDI
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSAures Tic, Tecnativa, Odoo Community Association (OCA), ForgeFlow, Factor Libre
MAINTAINERS
MAINTAINERSAures Tic, Tecnativa, Odoo Community Association (OCA), ForgeFlow, Factor Libre
COMMITTERS
COMMITTERSPedro M. Baeza, Weblate, OCA-git-bot, oca-ci, sygel, Ivan Vilata-i-Balaguer, Ricard Calvo, Andreu Orensanz
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-spain
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:19:59
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-financial-reporting:
    - account_tax_balance
OCA/account-invoicing:
    - account_invoice_refund_link
OCA/l10n-spain:
    - l10n_es_aeat
OCA/server-ux:
    - date_range
odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - onboarding
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - l10n_es
    - base_iban
    - base_vat
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES unidecode
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Módulo para la presentación inmediata de la facturación.

Code Analysis

Views touched (27)
XML IDNameModelTypeStatus
address_layout address_layout ir.ui.view qweb Inherits web.address_layout
invoice_verifactu_form account.invoice.verifactu.form account.move button Inherits l10n_es_aeat.view_move_form
invoice_verifactu_search account.invoice.verifactu.search account.move filter Inherits account.view_account_invoice_filter
invoice_verifactu_tree account.invoice.tree account.move field Inherits account.view_invoice_tree
l10n_es_verifactu_map_lines_view_tree verifactu.map.line tree New
report_invoice_document report_invoice_document ir.ui.view qweb Inherits account.report_invoice_document
verifactu_cancel_invoice_wizard_form_view verifactu.cancel.invoice.wizard.form verifactu.cancel.invoice.wizard form New
verifactu_chaining_form_view verifactu.chaining.form verifactu.chaining form New
verifactu_chaining_tree_view verifactu.chaining.tree verifactu.chaining tree New
verifactu_developer_form_view verifactu.developer.form verifactu.developer form New
verifactu_developer_tree_view verifactu.developer.tree verifactu.developer tree New
verifactu_invoice_entry_response_view_form verifactu.invoice.entry.response.view.form verifactu.invoice.entry.response form New
verifactu_invoice_entry_response_view_kanban verifactu.invoice.entry.response.view.kanban verifactu.invoice.entry.response kanban New
verifactu_invoice_entry_response_view_search verifactu.invoice.entry.response.view.search verifactu.invoice.entry.response search New
verifactu_invoice_entry_response_view_tree verifactu.invoice.entry.response.view.tree verifactu.invoice.entry.response tree New
verifactu_map_view_form verifactu.map.view.form verifactu.map form New
verifactu_map_view_tree verifactu.map.view.tree verifactu.map tree New
verifactu_registration_keys_view_search verifactu.registration.key search New
verifactu_registration_keys_view_tree verifactu.registration.key tree New
verifactu_tax_agency_form_view aeat.tax.agency.form - l10n_es_verifactu aeat.tax.agency notebook Inherits l10n_es_aeat.aeat_tax_agency_form_view
view_account_journal_form_inherit account.journal.form - l10n_es_verifactu account.journal xpath Inherits account.view_account_journal_form
view_account_position_form account.fiscal.position.form account.fiscal.position xpath Inherits account.view_account_position_form
view_company_verifactu_form res.company.verifactu.form res.company notebook Inherits base.view_company_form
view_partner_form res.partner xpath Inherits l10n_es_aeat.view_partner_form
view_verifactu_invoice_entry_form verifactu.invoice.entry.form verifactu.invoice.entry form New
view_verifactu_invoice_entry_search verifactu.invoice.entry.search verifactu.invoice.entry search New
view_verifactu_invoice_entry_tree verifactu.invoice.entry.tree verifactu.invoice.entry tree New
Models touched (18)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (3)
  • verifactu_enabled Boolean
    readonly=True related='company_id.verifactu_enabled'
  • verifactu_registration_key Many2one → verifactu.registration.key
    comodel_name='verifactu.registration.key' ondelete='restrict' string='VERI*FACTU registration key'
  • verifactu_tax_key Selection
    default='01' selection='_get_verifactu_tax_keys' string='VERI*FACTU tax key'
Public methods (0)

No public methods.

New fields (4)
  • company_verifactu_enabled Boolean
    related='company_id.verifactu_enabled' string='VERI*FACTU company enabled'
  • restrict_mode_hash_table Boolean
    compute='_compute_restrict_mode_hash_table' readonly=False store=True
  • restrict_mode_hash_table_readonly Boolean
    compute='_compute_restrict_mode_hash_table' store=True
  • verifactu_enabled Boolean
    default=True string='VERI*FACTU enabled'
Public methods (3)
  • check_hash_modification(self, vals)
  • create(self, vals_list)
    @api.model_create_multi
  • write(self, vals)

New fields (1)
  • verifactu_refund_specific_type Selection
    help='Fill this field when the refund are one of the specific cases of article 80 of LIVA for notifying to VERI*FACTU with the proper invoice type.' selection=[('R1', 'Art. 80.1 y 80.2 y error fundado en derecho'), ('R2', 'Art. 80.3'), ('R3', 'Art. 80.4'), ('R4', 'Resto'), ('R5', 'De factura simplificada')] string='VERI*FACTU refund specific type'
Public methods (5)
  • button_cancel(self)
  • button_draft(self)
  • cancel_verifactu(self)
  • resend_verifactu(self)
  • write(self, vals)

New fields (0)

No new fields.

Public methods (1)
  • reverse_moves(self, is_modify=False)

New fields (4)
  • verifactu_qr_base_url Char
    string='VERI*FACTU QR Base URL'
  • verifactu_qr_base_url_test_address Char
    string='VERI*FACTU QR Base URL Test'
  • verifactu_wsdl_out Char
    string='VERI*FACTU WSDL'
  • verifactu_wsdl_out_test_address Char
    string='VERI*FACTU Test Address'
Public methods (0)

No public methods.

New fields (6)
  • verifactu_chaining_id Many2one → verifactu.chaining
    comodel_name='verifactu.chaining' ondelete='restrict' string='VERI*FACTU chaining' tracking=True
  • verifactu_description Text
    default='/' help='The description for VERI*FACTU invoices if not set' string='VERI*FACTU description' tracking=True
  • verifactu_developer_id Many2one → verifactu.developer
    comodel_name='verifactu.developer' ondelete='restrict' string='VERI*FACTU developer' tracking=True
  • verifactu_enabled Boolean
    string='VERI*FACTU enabled' tracking=True
  • verifactu_start_date Date
    help="If this field is set, the VERI*FACTU won't be enabled on invoices with lower invoice date. If not set, it can be enabled on all invoice dates" string='VERI*FACTU start date' tracking=True
  • verifactu_test Boolean
    string='VERI*FACTU test environment?' tracking=True
Public methods (1)
  • write(self, vals)

New fields (1)
  • verifactu_enabled Boolean
    compute='_compute_aeat_sending_enabled' string='VERI*FACTU enabled'
Public methods (0)

No public methods.

New fields (2)
  • cancel_reason Char
    string='Cancellation reason'
  • invoice_id Many2one → account.move
    comodel_name='account.move' readonly=True required=True string='Invoice'
Public methods (1)
  • cancel_invoice_in_verifactu(self)

New fields (4)
  • installation_number Integer
    default=1 required=True tracking=True
  • last_verifactu_invoice_entry_id Many2one → verifactu.invoice.entry
    comodel_name='verifactu.invoice.entry' copy=False help='Reference to the last VERI*FACTU invoice entry for this company. Used for atomic chaining.' readonly=True string='Last invoice entry'
  • name Char
    required=True tracking=True
  • sif_id Char
    help='Identifier of the billing software (SIF). Must be exactly 2 alphanumeric characters (A,Z, 0,9).' required=True size=2 string='SIF ID' tracking=True
Public methods (0)

No public methods.

New fields (5)
  • name Char
    required=True string='Developer Name' tracking=True
  • responsibility_declaration Binary
    attachment=True copy=False
  • sif_name Char
    required=True tracking=True args: 'SIF Name'
  • vat Char
    required=True string='Developer VAT' tracking=True
  • version Char
    default='1.0' required=True tracking=True
Public methods (0)

No public methods.

New fields (15)
  • aeat_json_data Text
    help='Generated JSON data to send to AEAT' readonly=True string='AEAT JSON Data'
  • company_id Many2one → res.company
    readonly=True required=True string='Company' args: 'res.company'
  • document_hash Char
    readonly=True required=True
  • document_id Many2oneReference
    index=True model_field='model' readonly=True required=True string='Document'
  • document_name Char
    readonly=True
  • entry_type Selection
    default='register' required=True selection=[('register', 'Register'), ('modify', 'Modify'), ('cancel', 'Cancel')]
  • last_error_code Char
    compute='_compute_last_error_code' store=True
  • last_response_line_id Many2one → verifactu.invoice.entry.response.line
    readonly=True string='Last Response Line' args: 'verifactu.invoice.entry.response.line'
  • model Char
    readonly=True required=True
  • previous_hash Char
    readonly=True related='previous_invoice_entry_id.document_hash' string='Previous Hash'
  • previous_invoice_entry_id Many2one → verifactu.invoice.entry
    readonly=True string='Previous Invoice Entry' args: 'verifactu.invoice.entry'
  • response_line_ids One2many → verifactu.invoice.entry.response.line
    help='Responses from VERI*FACTU after sending the documents.' string='Responses' args: 'verifactu.invoice.entry.response.line', 'entry_id'
  • send_attempt Integer
    default=0 help='Number of attempts to send this document.'
  • send_state Selection
    compute='_compute_send_state' copy=False default='not_sent' help='Indicates the state of this document in relation with the presentation to VERI*FACTU.' readonly=True selection=VERIFACTU_SEND_STATES store=True
  • verifactu_chaining_id Many2one → verifactu.chaining
    ondelete='restrict' required=True string='Chaining' args: 'verifactu.chaining'
Public methods (1)
  • document(self)
    @property

New fields (8)
  • activity_type_id Many2one → mail.activity.type
    compute='_compute_activity_type_id' store=True string='Activity Type' args: 'mail.activity.type'
  • date_response Datetime
    readonly=True
  • header Text
  • invoice_data Text
  • name Char
  • response Text
  • response_line_ids One2many → verifactu.invoice.entry.response.line
    string='Response lines' args: 'verifactu.invoice.entry.response.line', 'entry_response_id'
  • verifactu_csv Text
    string='VERI*FACTU CSV'
Public methods (3)
  • complete_open_activity_on_exception(self)
  • create_activity_on_exception(self)
  • create_send_response_activity(self)

New fields (10)
  • document_id Many2oneReference
    index=True model_field='model' readonly=True string='Document'
  • document_name Char
    readonly=True related='entry_id.document_name'
  • entry_id Many2one → verifactu.invoice.entry
    comodel_name='verifactu.invoice.entry' required=True
  • entry_response_id Many2one → verifactu.invoice.entry.response
    args: 'verifactu.invoice.entry.response'
  • error_code Char
  • is_cancellation Boolean
    compute='_compute_is_cancellation' help='Indicates whether this response line is related to a cancellation request.' readonly=True string='Is cancellation'
  • model Char
    readonly=True
  • response Text
  • send_state Selection
    copy=False default='not_sent' help='Indicates the state of this document in relation with the presentation to VERI*FACTU.' readonly=True selection=VERIFACTU_SEND_STATES string='VERI*FACTU send state'
  • verifactu_csv Text
    related='entry_response_id.verifactu_csv'
Public methods (1)
  • document(self)
    @property

New fields (4)
  • date_from Date
  • date_to Date
  • map_lines One2many → verifactu.map.line
    comodel_name='verifactu.map.line' inverse_name='verifactu_map_id' string='Lines'
  • name Char
    required=True string='Model'
Public methods (0)

No public methods.

New fields (4)
  • code Char
    required=True
  • name Char
  • tax_xmlid_ids Many2many → l10n.es.aeat.map.tax.line.tax
    comodel_name='l10n.es.aeat.map.tax.line.tax' string='Taxes templates'
  • verifactu_map_id Many2one → verifactu.map
    comodel_name='verifactu.map' ondelete='cascade' string='Parent mapping'
Public methods (0)

No public methods.

New fields (21)
  • aeat_state Selection
    compute='_compute_aeat_state' copy=False selection_add=VERIFACTU_EXTRA_AEAT_STATES store=True
  • last_verifactu_invoice_entry_id Many2one → verifactu.invoice.entry
    comodel_name='verifactu.invoice.entry' copy=False readonly=True string='VERI*FACTU last invoice entry'
  • last_verifactu_response_line_id Many2one → verifactu.invoice.entry.response.line
    comodel_name='verifactu.invoice.entry.response.line' copy=False readonly=True string='VERI*FACTU response line'
  • verifactu_cancel_reason Char
    help='Optional internal reason to cancel this invoicein VERI*FACTU. This reason is not sent to VERI*FACTU' string='VERI*FACTU cancel reason'
  • verifactu_csv Char
    copy=False readonly=True string='VERI*FACTU CSV'
  • verifactu_description Text
    copy=False string='VERI*FACTU description'
  • verifactu_enabled Boolean
    compute='_compute_verifactu_enabled' search='_search_verifactu_enabled' string='VERI*FACTU enabled'
  • verifactu_hash Char
    copy=False string='VERI*FACTU hash' tracking=True
  • verifactu_hash_string Char
    copy=False string='VERI*FACTU hash string' tracking=True
  • verifactu_invoice_entry_ids One2many → verifactu.invoice.entry
    comodel_name='verifactu.invoice.entry' copy=False domain=<expr> inverse_name='document_id' readonly=True string='VERI*FACTU invoice entries'
  • verifactu_macrodata Boolean
    compute='_compute_verifactu_macrodata' help='Check to confirm that the document has an absolute amount greater o equal to 100 000 000,00 euros.' string='VERI*FACTU macrodata?'
  • verifactu_qr Binary
    compute='_compute_verifactu_qr' string='VERI*FACTU QR'
  • verifactu_qr_url Char
    compute='_compute_verifactu_qr_url' string='VERI*FACTU URL'
  • verifactu_refund_type Selection
    compute='_compute_verifactu_refund_type' readonly=False selection=[('I', 'By differences')] store=True string='VERI*FACTU refund type'
  • verifactu_registration_date Datetime
    copy=False string='VERI*FACTU registration date'
  • verifactu_registration_key Many2one → verifactu.registration.key
    comodel_name='verifactu.registration.key' compute='_compute_verifactu_registration_key' readonly=False store=True string='VERI*FACTU registration key'
  • verifactu_registration_key_code Char
    compute='_compute_verifactu_registration_key_code' string='VERI*FACTU key code'
  • verifactu_response_line_ids One2many → verifactu.invoice.entry.response.line
    comodel_name='verifactu.invoice.entry.response.line' copy=False domain=<expr> inverse_name='document_id' readonly=True string='VERI*FACTU response lines'
  • verifactu_return Text
    copy=False readonly=True string='VERI*FACTU return'
  • verifactu_send_date Datetime
    copy=False index=True string='VERI*FACTU send date'
  • verifactu_tax_key Selection
    compute='_compute_verifactu_tax_key' readonly=False selection='_get_verifactu_tax_keys' store=True string='VERI*FACTU tax key'
Public methods (1)
  • cancel_verifactu(self)

New fields (3)
  • code Char
    required=True size=2
  • name Char
    required=True
  • verifactu_tax_key Selection
    required=True selection='_get_verifactu_tax_keys' string='VERI*FACTU tax key'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/l10n-spain
GIT
GIThttps://github.com/OCA/l10n-spain.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-spain/tree/16.0/l10n_es_verifactu_oca
VERSION
VERSION 1.3.0
CATEGORY
CATEGORYAccounting/Localizations/EDI
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSAures Tic, Tecnativa, Odoo Community Association (OCA), ForgeFlow, Factor Libre
MAINTAINERS
MAINTAINERSAures Tic, Tecnativa, Odoo Community Association (OCA), ForgeFlow, Factor Libre
COMMITTERS
COMMITTERSPedro M. Baeza, GitHub, Weblate, OCA-git-bot, oca-ci, almumu, Ivan Vilata-i-Balaguer, Marian Cuadra, diego.fernandez
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-spain
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:53:39
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-financial-reporting:
    - account_tax_balance
OCA/account-invoicing:
    - account_invoice_refund_link
OCA/l10n-spain:
    - l10n_es_aeat
OCA/server-ux:
    - date_range
odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - l10n_es
    - base_iban
    - base_vat
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES unidecode
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (27)
XML IDNameModelTypeStatus
address_layout address_layout ir.ui.view qweb Inherits web.address_layout
invoice_verifactu_form account.invoice.verifactu.form account.move button Inherits l10n_es_aeat.view_move_form
invoice_verifactu_search account.invoice.verifactu.search account.move filter Inherits account.view_account_invoice_filter
invoice_verifactu_tree account.invoice.tree account.move field Inherits account.view_invoice_tree
l10n_es_verifactu_map_lines_view_tree verifactu.map.line tree New
report_invoice_document report_invoice_document ir.ui.view qweb Inherits account.report_invoice_document
verifactu_cancel_invoice_wizard_form_view verifactu.cancel.invoice.wizard.form verifactu.cancel.invoice.wizard form New
verifactu_chaining_form_view verifactu.chaining.form verifactu.chaining form New
verifactu_chaining_tree_view verifactu.chaining.tree verifactu.chaining tree New
verifactu_developer_form_view verifactu.developer.form verifactu.developer form New
verifactu_developer_tree_view verifactu.developer.tree verifactu.developer tree New
verifactu_invoice_entry_response_view_form verifactu.invoice.entry.response.view.form verifactu.invoice.entry.response form New
verifactu_invoice_entry_response_view_kanban verifactu.invoice.entry.response.view.kanban verifactu.invoice.entry.response kanban New
verifactu_invoice_entry_response_view_search verifactu.invoice.entry.response.view.search verifactu.invoice.entry.response search New
verifactu_invoice_entry_response_view_tree verifactu.invoice.entry.response.view.tree verifactu.invoice.entry.response tree New
verifactu_map_view_form verifactu.map.view.form verifactu.map form New
verifactu_map_view_tree verifactu.map.view.tree verifactu.map tree New
verifactu_registration_keys_view_search verifactu.registration.key search New
verifactu_registration_keys_view_tree verifactu.registration.key tree New
verifactu_tax_agency_form_view aeat.tax.agency.form - l10n_es_verifactu aeat.tax.agency notebook Inherits l10n_es_aeat.aeat_tax_agency_form_view
view_account_journal_form_inherit account.journal.form - l10n_es_verifactu account.journal xpath Inherits account.view_account_journal_form
view_account_position_form account.fiscal.position.form account.fiscal.position xpath Inherits account.view_account_position_form
view_company_verifactu_form res.company.verifactu.form res.company notebook Inherits base.view_company_form
view_partner_form res.partner xpath Inherits l10n_es_aeat.view_partner_form
view_verifactu_invoice_entry_form verifactu.invoice.entry.form verifactu.invoice.entry form New
view_verifactu_invoice_entry_search verifactu.invoice.entry.search verifactu.invoice.entry search New
view_verifactu_invoice_entry_tree verifactu.invoice.entry.tree verifactu.invoice.entry tree New
Models touched (18)

New fields (3)
  • verifactu_enabled Boolean
    readonly=True related='company_id.verifactu_enabled'
  • verifactu_registration_key Many2one → verifactu.registration.key
    comodel_name='verifactu.registration.key' ondelete='restrict' string='VERI*FACTU registration key'
  • verifactu_tax_key Selection
    default='01' selection='_get_verifactu_tax_keys' string='VERI*FACTU tax key'
Public methods (0)

No public methods.

New fields (2)
  • verifactu_registration_key Many2one → verifactu.registration.key
    comodel_name='verifactu.registration.key' ondelete='restrict' string='VERI*FACTU registration key'
  • verifactu_tax_key Selection
    selection='_get_verifactu_tax_keys' string='VERI*FACTU tax key'
Public methods (0)

No public methods.

New fields (4)
  • company_verifactu_enabled Boolean
    related='company_id.verifactu_enabled' string='VERI*FACTU company enabled'
  • restrict_mode_hash_table Boolean
    compute='_compute_restrict_mode_hash_table' readonly=False store=True
  • restrict_mode_hash_table_readonly Boolean
    compute='_compute_restrict_mode_hash_table' store=True
  • verifactu_enabled Boolean
    default=True string='VERI*FACTU enabled'
Public methods (3)
  • check_hash_modification(self, vals)
  • create(self, vals_list)
    @api.model_create_multi
  • write(self, vals)

New fields (1)
  • verifactu_refund_specific_type Selection
    help='Fill this field when the refund are one of the specific cases of article 80 of LIVA for notifying to VERI*FACTU with the proper invoice type.' selection=[('R1', 'Art. 80.1 y 80.2 y error fundado en derecho'), ('R2', 'Art. 80.3'), ('R3', 'Art. 80.4'), ('R4', 'Resto'), ('R5', 'De factura simplificada')] string='VERI*FACTU refund specific type'
Public methods (5)
  • button_cancel(self)
  • button_draft(self)
  • cancel_verifactu(self)
  • resend_verifactu(self)
  • write(self, vals)

New fields (0)

No new fields.

Public methods (1)
  • reverse_moves(self)

New fields (4)
  • verifactu_qr_base_url Char
    string='VERI*FACTU QR Base URL'
  • verifactu_qr_base_url_test_address Char
    string='VERI*FACTU QR Base URL Test'
  • verifactu_wsdl_out Char
    string='VERI*FACTU WSDL'
  • verifactu_wsdl_out_test_address Char
    string='VERI*FACTU Test Address'
Public methods (0)

No public methods.

New fields (6)
  • verifactu_chaining_id Many2one → verifactu.chaining
    comodel_name='verifactu.chaining' ondelete='restrict' string='VERI*FACTU chaining' tracking=True
  • verifactu_description Text
    default='/' help='The description for VERI*FACTU invoices if not set' string='VERI*FACTU description' tracking=True
  • verifactu_developer_id Many2one → verifactu.developer
    comodel_name='verifactu.developer' ondelete='restrict' string='VERI*FACTU developer' tracking=True
  • verifactu_enabled Boolean
    string='VERI*FACTU enabled' tracking=True
  • verifactu_start_date Date
    help="If this field is set, the VERI*FACTU won't be enabled on invoices with lower invoice date. If not set, it can be enabled on all invoice dates" string='VERI*FACTU start date' tracking=True
  • verifactu_test Boolean
    string='VERI*FACTU test environment?' tracking=True
Public methods (1)
  • write(self, vals)

New fields (1)
  • verifactu_enabled Boolean
    compute='_compute_aeat_sending_enabled' string='VERI*FACTU enabled'
Public methods (0)

No public methods.

New fields (2)
  • cancel_reason Char
    string='Cancellation reason'
  • invoice_id Many2one → account.move
    comodel_name='account.move' readonly=True required=True string='Invoice'
Public methods (1)
  • cancel_invoice_in_verifactu(self)

New fields (4)
  • installation_number Integer
    default=1 required=True tracking=True
  • last_verifactu_invoice_entry_id Many2one → verifactu.invoice.entry
    comodel_name='verifactu.invoice.entry' copy=False help='Reference to the last VERI*FACTU invoice entry for this company. Used for atomic chaining.' readonly=True string='Last invoice entry'
  • name Char
    required=True tracking=True
  • sif_id Char
    help='Identifier of the billing software (SIF). Must be exactly 2 alphanumeric characters (A,Z, 0,9).' required=True size=2 string='SIF ID' tracking=True
Public methods (0)

No public methods.

New fields (5)
  • name Char
    required=True string='Developer Name' tracking=True
  • responsibility_declaration Binary
    attachment=True copy=False
  • sif_name Char
    required=True tracking=True args: 'SIF Name'
  • vat Char
    required=True string='Developer VAT' tracking=True
  • version Char
    default='1.0' required=True tracking=True
Public methods (0)

No public methods.

New fields (15)
  • aeat_json_data Text
    help='Generated JSON data to send to AEAT' readonly=True string='AEAT JSON Data'
  • company_id Many2one → res.company
    readonly=True required=True string='Company' args: 'res.company'
  • document_hash Char
    readonly=True required=True
  • document_id Many2oneReference
    index=True model_field='model' readonly=True required=True string='Document'
  • document_name Char
    readonly=True
  • entry_type Selection
    default='register' required=True selection=[('register', 'Register'), ('modify', 'Modify'), ('cancel', 'Cancel')]
  • last_error_code Char
    compute='_compute_last_error_code' store=True
  • last_response_line_id Many2one → verifactu.invoice.entry.response.line
    readonly=True string='Last Response Line' args: 'verifactu.invoice.entry.response.line'
  • model Char
    readonly=True required=True
  • previous_hash Char
    readonly=True related='previous_invoice_entry_id.document_hash' string='Previous Hash'
  • previous_invoice_entry_id Many2one → verifactu.invoice.entry
    readonly=True string='Previous Invoice Entry' args: 'verifactu.invoice.entry'
  • response_line_ids One2many → verifactu.invoice.entry.response.line
    help='Responses from VERI*FACTU after sending the documents.' string='Responses' args: 'verifactu.invoice.entry.response.line', 'entry_id'
  • send_attempt Integer
    default=0 help='Number of attempts to send this document.'
  • send_state Selection
    compute='_compute_send_state' copy=False default='not_sent' help='Indicates the state of this document in relation with the presentation to VERI*FACTU.' readonly=True selection=VERIFACTU_SEND_STATES store=True
  • verifactu_chaining_id Many2one → verifactu.chaining
    ondelete='restrict' required=True string='Chaining' args: 'verifactu.chaining'
Public methods (1)
  • document(self)
    @property

New fields (8)
  • activity_type_id Many2one → mail.activity.type
    compute='_compute_activity_type_id' store=True string='Activity Type' args: 'mail.activity.type'
  • date_response Datetime
    readonly=True
  • header Text
  • invoice_data Text
  • name Char
  • response Text
  • response_line_ids One2many → verifactu.invoice.entry.response.line
    string='Response lines' args: 'verifactu.invoice.entry.response.line', 'entry_response_id'
  • verifactu_csv Text
    string='VERI*FACTU CSV'
Public methods (3)
  • complete_open_activity_on_exception(self)
  • create_activity_on_exception(self)
  • create_send_response_activity(self)

New fields (10)
  • document_id Many2oneReference
    index=True model_field='model' readonly=True string='Document'
  • document_name Char
    readonly=True related='entry_id.document_name'
  • entry_id Many2one → verifactu.invoice.entry
    comodel_name='verifactu.invoice.entry' required=True
  • entry_response_id Many2one → verifactu.invoice.entry.response
    args: 'verifactu.invoice.entry.response'
  • error_code Char
  • is_cancellation Boolean
    compute='_compute_is_cancellation' help='Indicates whether this response line is related to a cancellation request.' readonly=True string='Is cancellation'
  • model Char
    readonly=True
  • response Text
  • send_state Selection
    copy=False default='not_sent' help='Indicates the state of this document in relation with the presentation to VERI*FACTU.' readonly=True selection=VERIFACTU_SEND_STATES string='VERI*FACTU send state'
  • verifactu_csv Text
    related='entry_response_id.verifactu_csv'
Public methods (1)
  • document(self)
    @property

New fields (4)
  • date_from Date
  • date_to Date
  • map_lines One2many → verifactu.map.line
    comodel_name='verifactu.map.line' inverse_name='verifactu_map_id' string='Lines'
  • name Char
    required=True string='Model'
Public methods (0)

No public methods.

New fields (4)
  • code Char
    required=True
  • name Char
  • taxes Many2many → account.tax.template
    comodel_name='account.tax.template'
  • verifactu_map_id Many2one → verifactu.map
    comodel_name='verifactu.map' ondelete='cascade' string='Parent mapping'
Public methods (0)

No public methods.

New fields (21)
  • aeat_state Selection
    compute='_compute_aeat_state' copy=False selection_add=VERIFACTU_EXTRA_AEAT_STATES store=True
  • last_verifactu_invoice_entry_id Many2one → verifactu.invoice.entry
    comodel_name='verifactu.invoice.entry' copy=False readonly=True string='VERI*FACTU last invoice entry'
  • last_verifactu_response_line_id Many2one → verifactu.invoice.entry.response.line
    comodel_name='verifactu.invoice.entry.response.line' copy=False readonly=True string='VERI*FACTU response line'
  • verifactu_cancel_reason Char
    help='Optional internal reason to cancel this invoicein VERI*FACTU. This reason is not sent to VERI*FACTU' string='VERI*FACTU cancel reason'
  • verifactu_csv Char
    copy=False readonly=True string='VERI*FACTU CSV'
  • verifactu_description Text
    copy=False string='VERI*FACTU description'
  • verifactu_enabled Boolean
    compute='_compute_verifactu_enabled' search='_search_verifactu_enabled' string='VERI*FACTU enabled'
  • verifactu_hash Char
    copy=False string='VERI*FACTU hash' tracking=True
  • verifactu_hash_string Char
    copy=False string='VERI*FACTU hash string' tracking=True
  • verifactu_invoice_entry_ids One2many → verifactu.invoice.entry
    comodel_name='verifactu.invoice.entry' copy=False domain=<expr> inverse_name='document_id' readonly=True string='VERI*FACTU invoice entries'
  • verifactu_macrodata Boolean
    compute='_compute_verifactu_macrodata' help='Check to confirm that the document has an absolute amount greater o equal to 100 000 000,00 euros.' string='VERI*FACTU macrodata?'
  • verifactu_qr Binary
    compute='_compute_verifactu_qr' string='VERI*FACTU QR'
  • verifactu_qr_url Char
    compute='_compute_verifactu_qr_url' string='VERI*FACTU URL'
  • verifactu_refund_type Selection
    compute='_compute_verifactu_refund_type' readonly=False selection=[('I', 'By differences')] store=True string='VERI*FACTU refund type'
  • verifactu_registration_date Datetime
    copy=False string='VERI*FACTU registration date'
  • verifactu_registration_key Many2one → verifactu.registration.key
    comodel_name='verifactu.registration.key' compute='_compute_verifactu_registration_key' readonly=False store=True string='VERI*FACTU registration key'
  • verifactu_registration_key_code Char
    compute='_compute_verifactu_registration_key_code' string='VERI*FACTU key code'
  • verifactu_response_line_ids One2many → verifactu.invoice.entry.response.line
    comodel_name='verifactu.invoice.entry.response.line' copy=False domain=<expr> inverse_name='document_id' readonly=True string='VERI*FACTU response lines'
  • verifactu_return Text
    copy=False readonly=True string='VERI*FACTU return'
  • verifactu_send_date Datetime
    copy=False index=True string='VERI*FACTU send date'
  • verifactu_tax_key Selection
    compute='_compute_verifactu_tax_key' readonly=False selection='_get_verifactu_tax_keys' store=True string='VERI*FACTU tax key'
Public methods (1)
  • cancel_verifactu(self)

New fields (3)
  • code Char
    required=True size=2
  • name Char
    required=True
  • verifactu_tax_key Selection
    required=True selection='_get_verifactu_tax_keys' string='VERI*FACTU tax key'
Public methods (1)
  • name_get(self)
REPOSITORY
REPOSITORYOCA/l10n-spain
GIT
GIThttps://github.com/OCA/l10n-spain.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-spain/tree/15.0/l10n_es_verifactu_oca
VERSION
VERSION 1.0.3
CATEGORY
CATEGORYAccounting/Localizations/EDI
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSAures Tic, Tecnativa, Odoo Community Association (OCA), ForgeFlow
MAINTAINERS
MAINTAINERSAures Tic, Tecnativa, Odoo Community Association (OCA), ForgeFlow
COMMITTERS
COMMITTERSPedro M. Baeza, OCA-git-bot, oca-ci, Ivan Vilata-i-Balaguer, Marian Cuadra
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-spain
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:46:29
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-financial-reporting:
    - account_tax_balance
OCA/account-invoicing:
    - account_invoice_refund_link
OCA/l10n-spain:
    - l10n_es_aeat
OCA/server-ux:
    - date_range
odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - l10n_es
    - base_iban
    - base_vat
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES cryptography
unidecode
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (27)
XML IDNameModelTypeStatus
address_layout address_layout ir.ui.view qweb Inherits web.address_layout
invoice_verifactu_form account.invoice.verifactu.form account.move button Inherits l10n_es_aeat.view_move_form
invoice_verifactu_search account.invoice.verifactu.search account.move filter Inherits account.view_account_invoice_filter
invoice_verifactu_tree account.invoice.tree account.move field Inherits account.view_invoice_tree
l10n_es_verifactu_map_lines_view_tree verifactu.map.line tree New
report_invoice_document report_invoice_document ir.ui.view qweb Inherits account.report_invoice_document
verifactu_chaining_form_view verifactu.chaining.form verifactu.chaining form New
verifactu_chaining_tree_view verifactu.chaining.tree verifactu.chaining tree New
verifactu_developer_form_view verifactu.developer.form verifactu.developer form New
verifactu_developer_tree_view verifactu.developer.tree verifactu.developer tree New
verifactu_invoice_entry_response_view_form verifactu.invoice.entry.response.view.form verifactu.invoice.entry.response form New
verifactu_invoice_entry_response_view_kanban verifactu.invoice.entry.response.view.kanban verifactu.invoice.entry.response kanban New
verifactu_invoice_entry_response_view_search verifactu.invoice.entry.response.view.search verifactu.invoice.entry.response search New
verifactu_invoice_entry_response_view_tree verifactu.invoice.entry.response.view.tree verifactu.invoice.entry.response tree New
verifactu_map_view_form verifactu.map.view.form verifactu.map form New
verifactu_map_view_tree verifactu.map.view.tree verifactu.map tree New
verifactu_registration_keys_view_search verifactu.registration.key search New
verifactu_registration_keys_view_tree verifactu.registration.key tree New
verifactu_tax_agency_form_view aeat.tax.agency.form - l10n_es_verifactu aeat.tax.agency notebook Inherits l10n_es_aeat.aeat_tax_agency_form_view
view_account_journal_form_inherit account.journal.form - l10n_es_verifactu account.journal xpath Inherits account.view_account_journal_form
view_account_position_form account.fiscal.position.form account.fiscal.position xpath Inherits account.view_account_position_form
view_company_verifactu_form res.company.verifactu.form res.company notebook Inherits base.view_company_form
view_partner_form res.partner xpath Inherits l10n_es_aeat.view_partner_form
view_partner_form_verifactu res.partner xpath Inherits account.view_partner_property_form
view_verifactu_invoice_entry_form verifactu.invoice.entry.form verifactu.invoice.entry form New
view_verifactu_invoice_entry_search verifactu.invoice.entry.search verifactu.invoice.entry search New
view_verifactu_invoice_entry_tree verifactu.invoice.entry.tree verifactu.invoice.entry tree New
Models touched (18)

New fields (4)
  • aeat_active Boolean
    copy=False default=True help='Enable AEAT communication for this fiscal position?' string='AEAT Active'
  • verifactu_enabled Boolean
    readonly=True related='company_id.verifactu_enabled'
  • verifactu_registration_key Many2one → verifactu.registration.key
    comodel_name='verifactu.registration.key' ondelete='restrict' string='VERI*FACTU registration key'
  • verifactu_tax_key Selection
    default='01' selection='_get_verifactu_tax_keys' string='VERI*FACTU tax key'
Public methods (0)

No public methods.

New fields (2)
  • verifactu_registration_key Many2one → verifactu.registration.key
    comodel_name='verifactu.registration.key' ondelete='restrict' string='VERI*FACTU registration key'
  • verifactu_tax_key Selection
    selection='_get_verifactu_tax_keys' string='VERI*FACTU tax key'
Public methods (0)

No public methods.

New fields (4)
  • company_verifactu_enabled Boolean
    related='company_id.verifactu_enabled' string='VERI*FACTU company enabled'
  • restrict_mode_hash_table Boolean
    compute='_compute_restrict_mode_hash_table' readonly=False store=True
  • restrict_mode_hash_table_readonly Boolean
    compute='_compute_restrict_mode_hash_table' store=True
  • verifactu_enabled Boolean
    default=True string='VERI*FACTU enabled'
Public methods (3)
  • check_hash_modification(self, vals)
  • create(self, vals_list)
    @api.model_create_multi
  • write(self, vals)

New fields (1)
  • verifactu_refund_specific_type Selection
    help='Fill this field when the refund are one of the specific cases of article 80 of LIVA for notifying to VERI*FACTU with the proper invoice type.' selection=[('R1', 'Art. 80.1 y 80.2 y error fundado en derecho'), ('R2', 'Art. 80.3'), ('R3', 'Art. 80.4'), ('R4', 'Resto'), ('R5', 'De factura simplificada')] string='VERI*FACTU refund specific type'
Public methods (5)
  • button_cancel(self)
  • button_draft(self)
  • cancel_verifactu(self)
  • resend_verifactu(self)
  • write(self, vals)

New fields (0)

No new fields.

Public methods (1)
  • reverse_moves(self)

New fields (5)
  • aeat_content_sent Text
    copy=False readonly=True string='AEAT last content sent'
  • aeat_header_sent Text
    copy=False readonly=True string='AEAT last header sent'
  • aeat_send_error Text
    copy=False readonly=True string='AEAT Send Error'
  • aeat_send_failed Boolean
    copy=False help='Indicates that the last attempt to communicate this document to the SII has failed. See SII return for details' string='SII send failed'
  • aeat_state Selection
    copy=False default='not_sent' help='Indicates the state of this document in relation with the presentation at the AEAT' readonly=True selection=AEAT_STATES string='AEAT send state'
Public methods (0)

No public methods.

New fields (4)
  • verifactu_qr_base_url Char
    string='VERI*FACTU QR Base URL'
  • verifactu_qr_base_url_test_address Char
    string='VERI*FACTU QR Base URL Test'
  • verifactu_wsdl_out Char
    string='VERI*FACTU WSDL'
  • verifactu_wsdl_out_test_address Char
    string='VERI*FACTU Test Address'
Public methods (0)

No public methods.

New fields (6)
  • verifactu_chaining_id Many2one → verifactu.chaining
    comodel_name='verifactu.chaining' ondelete='restrict' string='VERI*FACTU chaining' tracking=True
  • verifactu_description Text
    default='/' help='The description for VERI*FACTU invoices if not set' string='VERI*FACTU description' tracking=True
  • verifactu_developer_id Many2one → verifactu.developer
    comodel_name='verifactu.developer' ondelete='restrict' string='VERI*FACTU developer' tracking=True
  • verifactu_enabled Boolean
    string='VERI*FACTU enabled' tracking=True
  • verifactu_start_date Date
    help="If this field is set, the VERI*FACTU won't be enabled on invoices with lower invoice date. If not set, it can be enabled on all invoice dates" string='VERI*FACTU start date' tracking=True
  • verifactu_test Boolean
    string='VERI*FACTU test environment?' tracking=True
Public methods (1)
  • write(self, vals)

New fields (3)
  • aeat_sending_enabled Boolean
    compute='_compute_aeat_sending_enabled'
  • aeat_simplified_invoice Boolean
    help='Checking this mark, invoices done to this partner will be sent to AEAT as simplified invoices.' string='Simplified invoices in AEAT?'
  • verifactu_enabled Boolean
    compute='_compute_aeat_sending_enabled' string='VERI*FACTU enabled'
Public methods (0)

No public methods.

New fields (4)
  • installation_number Integer
    default=1 required=True tracking=True
  • last_verifactu_invoice_entry_id Many2one → verifactu.invoice.entry
    comodel_name='verifactu.invoice.entry' copy=False help='Reference to the last VERI*FACTU invoice entry for this company. Used for atomic chaining.' readonly=True string='Last invoice entry'
  • name Char
    required=True tracking=True
  • sif_id Char
    required=True string='SIF ID' tracking=True
Public methods (0)

No public methods.

New fields (5)
  • name Char
    required=True string='Developer Name' tracking=True
  • responsibility_declaration Binary
    attachment=True copy=False
  • sif_name Char
    required=True tracking=True args: 'SIF Name'
  • vat Char
    required=True string='Developer VAT' tracking=True
  • version Char
    default='1.0' required=True tracking=True
Public methods (0)

No public methods.

New fields (15)
  • aeat_json_data Text
    help='Generated JSON data to send to AEAT' readonly=True string='AEAT JSON Data'
  • company_id Many2one → res.company
    readonly=True required=True string='Company' args: 'res.company'
  • document_hash Char
    readonly=True required=True
  • document_id Many2oneReference
    index=True model_field='model' readonly=True required=True string='Document'
  • document_name Char
    readonly=True
  • entry_type Selection
    default='register' required=True selection=[('register', 'Register'), ('modify', 'Modify'), ('cancel', 'Cancel')]
  • last_error_code Char
    compute='_compute_last_error_code' store=True
  • last_response_line_id Many2one → verifactu.invoice.entry.response.line
    readonly=True string='Last Response Line' args: 'verifactu.invoice.entry.response.line'
  • model Char
    readonly=True required=True
  • previous_hash Char
    readonly=True related='previous_invoice_entry_id.document_hash' string='Previous Hash'
  • previous_invoice_entry_id Many2one → verifactu.invoice.entry
    readonly=True string='Previous Invoice Entry' args: 'verifactu.invoice.entry'
  • response_line_ids One2many → verifactu.invoice.entry.response.line
    help='Responses from VERI*FACTU after sending the documents.' string='Responses' args: 'verifactu.invoice.entry.response.line', 'entry_id'
  • send_attempt Integer
    default=0 help='Number of attempts to send this document.'
  • send_state Selection
    compute='_compute_send_state' copy=False default='not_sent' help='Indicates the state of this document in relation with the presentation to VERI*FACTU.' readonly=True selection=VERIFACTU_SEND_STATES store=True
  • verifactu_chaining_id Many2one → verifactu.chaining
    ondelete='restrict' required=True string='Chaining' args: 'verifactu.chaining'
Public methods (1)
  • document(self)
    @property

New fields (8)
  • activity_type_id Many2one → mail.activity.type
    compute='_compute_activity_type_id' store=True string='Activity Type' args: 'mail.activity.type'
  • date_response Datetime
    readonly=True
  • header Text
  • invoice_data Text
  • name Char
  • response Text
  • response_line_ids One2many → verifactu.invoice.entry.response.line
    string='Response lines' args: 'verifactu.invoice.entry.response.line', 'entry_response_id'
  • verifactu_csv Text
    string='VERI*FACTU CSV'
Public methods (3)
  • complete_open_activity_on_exception(self)
  • create_activity_on_exception(self)
  • create_send_response_activity(self)

New fields (8)
  • document_id Many2oneReference
    index=True model_field='model' readonly=True string='Document'
  • entry_id Many2one → verifactu.invoice.entry
    comodel_name='verifactu.invoice.entry' required=True
  • entry_response_id Many2one → verifactu.invoice.entry.response
    args: 'verifactu.invoice.entry.response'
  • error_code Char
  • model Char
    readonly=True
  • response Text
  • send_state Selection
    copy=False default='not_sent' help='Indicates the state of this document in relation with the presentation to VERI*FACTU.' readonly=True selection=VERIFACTU_SEND_STATES string='VERI*FACTU send state'
  • verifactu_csv Text
    related='entry_response_id.verifactu_csv'
Public methods (1)
  • document(self)
    @property

New fields (4)
  • date_from Date
  • date_to Date
  • map_lines One2many → verifactu.map.line
    comodel_name='verifactu.map.line' inverse_name='verifactu_map_id' string='Lines'
  • name Char
    required=True string='Model'
Public methods (0)

No public methods.

New fields (4)
  • code Char
    required=True
  • name Char
  • taxes Many2many → account.tax.template
    comodel_name='account.tax.template'
  • verifactu_map_id Many2one → verifactu.map
    comodel_name='verifactu.map' ondelete='cascade' string='Parent mapping'
Public methods (0)

No public methods.

New fields (19)
  • last_verifactu_invoice_entry_id Many2one → verifactu.invoice.entry
    comodel_name='verifactu.invoice.entry' copy=False readonly=True string='VERI*FACTU last invoice entry'
  • last_verifactu_response_line_id Many2one → verifactu.invoice.entry.response.line
    comodel_name='verifactu.invoice.entry.response.line' copy=False readonly=True string='VERI*FACTU response line'
  • verifactu_csv Char
    copy=False readonly=True string='VERI*FACTU CSV'
  • verifactu_description Text
    copy=False string='VERI*FACTU description'
  • verifactu_enabled Boolean
    compute='_compute_verifactu_enabled' search='_search_verifactu_enabled' string='VERI*FACTU enabled'
  • verifactu_hash Char
    copy=False string='VERI*FACTU hash' tracking=True
  • verifactu_hash_string Char
    copy=False string='VERI*FACTU hash string' tracking=True
  • verifactu_invoice_entry_ids One2many → verifactu.invoice.entry
    comodel_name='verifactu.invoice.entry' copy=False domain=<expr> inverse_name='document_id' readonly=True string='VERI*FACTU invoice entries'
  • verifactu_macrodata Boolean
    compute='_compute_verifactu_macrodata' help='Check to confirm that the document has an absolute amount greater o equal to 100 000 000,00 euros.' string='VERI*FACTU macrodata?'
  • verifactu_qr Binary
    compute='_compute_verifactu_qr' string='VERI*FACTU QR'
  • verifactu_qr_url Char
    compute='_compute_verifactu_qr_url' string='VERI*FACTU URL'
  • verifactu_refund_type Selection
    compute='_compute_verifactu_refund_type' readonly=False selection=[('I', 'By differences')] store=True string='VERI*FACTU refund type'
  • verifactu_registration_date Datetime
    copy=False string='VERI*FACTU registration date'
  • verifactu_registration_key Many2one → verifactu.registration.key
    comodel_name='verifactu.registration.key' compute='_compute_verifactu_registration_key' readonly=False store=True string='VERI*FACTU registration key'
  • verifactu_registration_key_code Char
    compute='_compute_verifactu_registration_key_code' string='VERI*FACTU key code'
  • verifactu_response_line_ids One2many → verifactu.invoice.entry.response.line
    comodel_name='verifactu.invoice.entry.response.line' copy=False domain=<expr> inverse_name='document_id' readonly=True string='VERI*FACTU response lines'
  • verifactu_return Text
    copy=False readonly=True string='VERI*FACTU return'
  • verifactu_send_date Datetime
    copy=False index=True string='VERI*FACTU send date'
  • verifactu_tax_key Selection
    compute='_compute_verifactu_tax_key' readonly=False selection='_get_verifactu_tax_keys' store=True string='VERI*FACTU tax key'
Public methods (0)

No public methods.

New fields (3)
  • code Char
    required=True size=2
  • name Char
    required=True
  • verifactu_tax_key Selection
    required=True selection='_get_verifactu_tax_keys' string='VERI*FACTU tax key'
Public methods (1)
  • name_get(self)
REPOSITORY
REPOSITORYOCA/l10n-spain
GIT
GIThttps://github.com/OCA/l10n-spain.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-spain/tree/14.0/l10n_es_verifactu_oca
VERSION
VERSION 1.0.4
CATEGORY
CATEGORYAccounting/Localizations/EDI
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSAures Tic, Tecnativa, Odoo Community Association (OCA), ForgeFlow
MAINTAINERS
MAINTAINERSAures Tic, Tecnativa, Odoo Community Association (OCA), ForgeFlow
COMMITTERS
COMMITTERSOCA-git-bot, oca-ci, Luis Jimenez Hernández, Ivan Hernando
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-spain
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:40:48
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-financial-reporting:
    - account_tax_balance
OCA/account-invoicing:
    - account_invoice_refund_link
OCA/l10n-spain:
    - l10n_es_aeat
OCA/server-ux:
    - date_range
odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - l10n_es
    - base_iban
    - base_vat
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES cryptography<39
unidecode
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (27)
XML IDNameModelTypeStatus
address_layout address_layout ir.ui.view qweb Inherits web.address_layout
invoice_verifactu_form account.invoice.verifactu.form account.move button Inherits l10n_es_aeat.view_move_form
invoice_verifactu_search account.invoice.verifactu.search account.move filter Inherits account.view_account_invoice_filter
invoice_verifactu_tree account.invoice.tree account.move field Inherits account.view_invoice_tree
l10n_es_verifactu_map_lines_view_tree verifactu.map.line tree New
report_invoice_document report_invoice_document ir.ui.view qweb Inherits account.report_invoice_document
verifactu_chaining_form_view verifactu.chaining.form verifactu.chaining form New
verifactu_chaining_tree_view verifactu.chaining.tree verifactu.chaining tree New
verifactu_developer_form_view verifactu.developer.form verifactu.developer form New
verifactu_developer_tree_view verifactu.developer.tree verifactu.developer tree New
verifactu_invoice_entry_response_view_form verifactu.invoice.entry.response.view.form verifactu.invoice.entry.response form New
verifactu_invoice_entry_response_view_kanban verifactu.invoice.entry.response.view.kanban verifactu.invoice.entry.response kanban New
verifactu_invoice_entry_response_view_search verifactu.invoice.entry.response.view.search verifactu.invoice.entry.response search New
verifactu_invoice_entry_response_view_tree verifactu.invoice.entry.response.view.tree verifactu.invoice.entry.response tree New
verifactu_map_view_form verifactu.map.view.form verifactu.map form New
verifactu_map_view_tree verifactu.map.view.tree verifactu.map tree New
verifactu_registration_keys_view_search verifactu.registration.key search New
verifactu_registration_keys_view_tree verifactu.registration.key tree New
verifactu_tax_agency_form_view aeat.tax.agency.form - l10n_es_verifactu aeat.tax.agency notebook Inherits l10n_es_aeat.aeat_tax_agency_form_view
view_account_journal_form_inherit account.journal.form - l10n_es_verifactu account.journal xpath Inherits account.view_account_journal_form
view_account_position_form account.fiscal.position.form account.fiscal.position xpath Inherits account.view_account_position_form
view_company_verifactu_form res.company.verifactu.form res.company notebook Inherits base.view_company_form
view_partner_form res.partner xpath Inherits l10n_es_aeat.view_partner_form
view_partner_form_verifactu res.partner xpath Inherits account.view_partner_property_form
view_verifactu_invoice_entry_form verifactu.invoice.entry.form verifactu.invoice.entry form New
view_verifactu_invoice_entry_search verifactu.invoice.entry.search verifactu.invoice.entry search New
view_verifactu_invoice_entry_tree verifactu.invoice.entry.tree verifactu.invoice.entry tree New
Models touched (18)

New fields (4)
  • aeat_active Boolean
    copy=False default=True help='Enable AEAT communication for this fiscal position?' string='AEAT Active'
  • verifactu_enabled Boolean
    readonly=True related='company_id.verifactu_enabled'
  • verifactu_registration_key Many2one → verifactu.registration.key
    comodel_name='verifactu.registration.key' ondelete='restrict' string='VERI*FACTU registration key'
  • verifactu_tax_key Selection
    default='01' selection='_get_verifactu_tax_keys' string='VERI*FACTU tax key'
Public methods (0)

No public methods.

New fields (2)
  • verifactu_registration_key Many2one → verifactu.registration.key
    comodel_name='verifactu.registration.key' ondelete='restrict' string='VERI*FACTU registration key'
  • verifactu_tax_key Selection
    selection='_get_verifactu_tax_keys' string='VERI*FACTU tax key'
Public methods (0)

No public methods.

New fields (4)
  • company_verifactu_enabled Boolean
    related='company_id.verifactu_enabled' string='VERI*FACTU company enabled'
  • restrict_mode_hash_table Boolean
    compute='_compute_restrict_mode_hash_table' readonly=False store=True
  • restrict_mode_hash_table_readonly Boolean
    compute='_compute_restrict_mode_hash_table' store=True
  • verifactu_enabled Boolean
    default=True string='VERI*FACTU enabled'
Public methods (3)
  • check_hash_modification(self, vals)
  • create(self, vals_list)
    @api.model_create_multi
  • write(self, vals)

New fields (1)
  • verifactu_refund_specific_type Selection
    help='Fill this field when the refund are one of the specific cases of article 80 of LIVA for notifying to VERI*FACTU with the proper invoice type.' selection=[('R1', 'Art. 80.1 y 80.2 y error fundado en derecho'), ('R2', 'Art. 80.3'), ('R3', 'Art. 80.4'), ('R4', 'Resto'), ('R5', 'De factura simplificada')] string='VERI*FACTU refund specific type'
Public methods (5)
  • button_cancel(self)
  • button_draft(self)
  • cancel_verifactu(self)
  • resend_verifactu(self)
  • write(self, vals)

New fields (0)

No new fields.

Public methods (1)
  • reverse_moves(self)

New fields (5)
  • aeat_content_sent Text
    copy=False readonly=True string='AEAT last content sent'
  • aeat_header_sent Text
    copy=False readonly=True string='AEAT last header sent'
  • aeat_send_error Text
    copy=False readonly=True string='AEAT Send Error'
  • aeat_send_failed Boolean
    copy=False help='Indicates that the last attempt to communicate this document to the SII has failed. See SII return for details' string='SII send failed'
  • aeat_state Selection
    copy=False default='not_sent' help='Indicates the state of this document in relation with the presentation at the AEAT' readonly=True selection=AEAT_STATES string='AEAT send state'
Public methods (0)

No public methods.

New fields (4)
  • verifactu_qr_base_url Char
    string='VERI*FACTU QR Base URL'
  • verifactu_qr_base_url_test_address Char
    string='VERI*FACTU QR Base URL Test'
  • verifactu_wsdl_out Char
    string='VERI*FACTU WSDL'
  • verifactu_wsdl_out_test_address Char
    string='VERI*FACTU Test Address'
Public methods (0)

No public methods.

New fields (6)
  • verifactu_chaining_id Many2one → verifactu.chaining
    comodel_name='verifactu.chaining' ondelete='restrict' string='VERI*FACTU chaining' tracking=True
  • verifactu_description Text
    default='/' help='The description for VERI*FACTU invoices if not set' string='VERI*FACTU description' tracking=True
  • verifactu_developer_id Many2one → verifactu.developer
    comodel_name='verifactu.developer' ondelete='restrict' string='VERI*FACTU developer' tracking=True
  • verifactu_enabled Boolean
    string='VERI*FACTU enabled' tracking=True
  • verifactu_start_date Date
    help="If this field is set, the VERI*FACTU won't be enabled on invoices with lower invoice date. If not set, it can be enabled on all invoice dates" string='VERI*FACTU start date' tracking=True
  • verifactu_test Boolean
    string='VERI*FACTU test environment?' tracking=True
Public methods (1)
  • write(self, vals)

New fields (3)
  • aeat_sending_enabled Boolean
    compute='_compute_aeat_sending_enabled'
  • aeat_simplified_invoice Boolean
    help='Checking this mark, invoices done to this partner will be sent to AEAT as simplified invoices.' string='Simplified invoices in AEAT?'
  • verifactu_enabled Boolean
    compute='_compute_aeat_sending_enabled' string='VERI*FACTU enabled'
Public methods (0)

No public methods.

New fields (4)
  • installation_number Integer
    default=1 required=True tracking=True
  • last_verifactu_invoice_entry_id Many2one → verifactu.invoice.entry
    comodel_name='verifactu.invoice.entry' copy=False help='Reference to the last VERI*FACTU invoice entry for this company. Used for atomic chaining.' readonly=True string='Last invoice entry'
  • name Char
    required=True tracking=True
  • sif_id Char
    required=True string='SIF ID' tracking=True
Public methods (0)

No public methods.

New fields (5)
  • name Char
    required=True string='Developer Name' tracking=True
  • responsibility_declaration Binary
    attachment=True copy=False
  • sif_name Char
    required=True tracking=True args: 'SIF Name'
  • vat Char
    required=True string='Developer VAT' tracking=True
  • version Char
    default='1.0' required=True tracking=True
Public methods (0)

No public methods.

New fields (15)
  • aeat_json_data Text
    help='Generated JSON data to send to AEAT' readonly=True string='AEAT JSON Data'
  • company_id Many2one → res.company
    readonly=True required=True string='Company' args: 'res.company'
  • document_hash Char
    readonly=True required=True
  • document_id Many2oneReference
    index=True model_field='model' readonly=True required=True string='Document'
  • document_name Char
    readonly=True
  • entry_type Selection
    default='register' required=True selection=[('register', 'Register'), ('modify', 'Modify'), ('cancel', 'Cancel')]
  • last_error_code Char
    compute='_compute_last_error_code' store=True
  • last_response_line_id Many2one → verifactu.invoice.entry.response.line
    readonly=True string='Last Response Line' args: 'verifactu.invoice.entry.response.line'
  • model Char
    readonly=True required=True
  • previous_hash Char
    readonly=True related='previous_invoice_entry_id.document_hash' string='Previous Hash'
  • previous_invoice_entry_id Many2one → verifactu.invoice.entry
    readonly=True string='Previous Invoice Entry' args: 'verifactu.invoice.entry'
  • response_line_ids One2many → verifactu.invoice.entry.response.line
    help='Responses from VERI*FACTU after sending the documents.' string='Responses' args: 'verifactu.invoice.entry.response.line', 'entry_id'
  • send_attempt Integer
    default=0 help='Number of attempts to send this document.'
  • send_state Selection
    compute='_compute_send_state' copy=False default='not_sent' help='Indicates the state of this document in relation with the presentation to VERI*FACTU.' readonly=True selection=VERIFACTU_SEND_STATES store=True
  • verifactu_chaining_id Many2one → verifactu.chaining
    ondelete='restrict' required=True string='Chaining' args: 'verifactu.chaining'
Public methods (1)
  • document(self)
    @property

New fields (8)
  • activity_type_id Many2one → mail.activity.type
    compute='_compute_activity_type_id' store=True string='Activity Type' args: 'mail.activity.type'
  • date_response Datetime
    readonly=True
  • header Text
  • invoice_data Text
  • name Char
  • response Text
  • response_line_ids One2many → verifactu.invoice.entry.response.line
    string='Response lines' args: 'verifactu.invoice.entry.response.line', 'entry_response_id'
  • verifactu_csv Text
    string='VERI*FACTU CSV'
Public methods (3)
  • complete_open_activity_on_exception(self)
  • create_activity_on_exception(self)
  • create_send_response_activity(self)

New fields (8)
  • document_id Many2oneReference
    index=True model_field='model' readonly=True string='Document'
  • entry_id Many2one → verifactu.invoice.entry
    comodel_name='verifactu.invoice.entry' required=True
  • entry_response_id Many2one → verifactu.invoice.entry.response
    args: 'verifactu.invoice.entry.response'
  • error_code Char
  • model Char
    readonly=True
  • response Text
  • send_state Selection
    copy=False default='not_sent' help='Indicates the state of this document in relation with the presentation to VERI*FACTU.' readonly=True selection=VERIFACTU_SEND_STATES string='VERI*FACTU send state'
  • verifactu_csv Text
    related='entry_response_id.verifactu_csv'
Public methods (1)
  • document(self)
    @property

New fields (4)
  • date_from Date
  • date_to Date
  • map_lines One2many → verifactu.map.line
    comodel_name='verifactu.map.line' inverse_name='verifactu_map_id' string='Lines'
  • name Char
    required=True string='Model'
Public methods (0)

No public methods.

New fields (4)
  • code Char
    required=True
  • name Char
  • taxes Many2many → account.tax.template
    comodel_name='account.tax.template'
  • verifactu_map_id Many2one → verifactu.map
    comodel_name='verifactu.map' ondelete='cascade' string='Parent mapping'
Public methods (0)

No public methods.

New fields (19)
  • last_verifactu_invoice_entry_id Many2one → verifactu.invoice.entry
    comodel_name='verifactu.invoice.entry' copy=False readonly=True string='VERI*FACTU last invoice entry'
  • last_verifactu_response_line_id Many2one → verifactu.invoice.entry.response.line
    comodel_name='verifactu.invoice.entry.response.line' copy=False readonly=True string='VERI*FACTU response line'
  • verifactu_csv Char
    copy=False readonly=True string='VERI*FACTU CSV'
  • verifactu_description Text
    copy=False string='VERI*FACTU description'
  • verifactu_enabled Boolean
    compute='_compute_verifactu_enabled' search='_search_verifactu_enabled' string='VERI*FACTU enabled'
  • verifactu_hash Char
    copy=False string='VERI*FACTU hash' tracking=True
  • verifactu_hash_string Char
    copy=False string='VERI*FACTU hash string' tracking=True
  • verifactu_invoice_entry_ids One2many → verifactu.invoice.entry
    comodel_name='verifactu.invoice.entry' copy=False domain=<expr> inverse_name='document_id' readonly=True string='VERI*FACTU invoice entries'
  • verifactu_macrodata Boolean
    compute='_compute_verifactu_macrodata' help='Check to confirm that the document has an absolute amount greater o equal to 100 000 000,00 euros.' string='VERI*FACTU macrodata?'
  • verifactu_qr Binary
    compute='_compute_verifactu_qr' string='VERI*FACTU QR'
  • verifactu_qr_url Char
    compute='_compute_verifactu_qr_url' string='VERI*FACTU URL'
  • verifactu_refund_type Selection
    compute='_compute_verifactu_refund_type' readonly=False selection=[('I', 'By differences')] store=True string='VERI*FACTU refund type'
  • verifactu_registration_date Datetime
    copy=False string='VERI*FACTU registration date'
  • verifactu_registration_key Many2one → verifactu.registration.key
    comodel_name='verifactu.registration.key' compute='_compute_verifactu_registration_key' readonly=False store=True string='VERI*FACTU registration key'
  • verifactu_registration_key_code Char
    compute='_compute_verifactu_registration_key_code' string='VERI*FACTU key code'
  • verifactu_response_line_ids One2many → verifactu.invoice.entry.response.line
    comodel_name='verifactu.invoice.entry.response.line' copy=False domain=<expr> inverse_name='document_id' readonly=True string='VERI*FACTU response lines'
  • verifactu_return Text
    copy=False readonly=True string='VERI*FACTU return'
  • verifactu_send_date Datetime
    copy=False index=True string='VERI*FACTU send date'
  • verifactu_tax_key Selection
    compute='_compute_verifactu_tax_key' readonly=False selection='_get_verifactu_tax_keys' store=True string='VERI*FACTU tax key'
Public methods (0)

No public methods.

New fields (3)
  • code Char
    required=True size=2
  • name Char
    required=True
  • verifactu_tax_key Selection
    required=True selection='_get_verifactu_tax_keys' string='VERI*FACTU tax key'
Public methods (1)
  • name_get(self)