| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/l10n-spain |
| GIT | |
| GIT | https://github.com/OCA/l10n-spain.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/l10n-spain/tree/18.0/l10n_es_verifactu_oca |
| VERSION | |
| VERSION | 1.4.0 |
| CATEGORY | |
| CATEGORY | Accounting/Localizations/EDI |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Aures Tic, Tecnativa, Odoo Community Association (OCA), ForgeFlow, Factor Libre |
| MAINTAINERS | |
| MAINTAINERS | Aures Tic, Tecnativa, Odoo Community Association (OCA), ForgeFlow, Factor Libre |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, Weblate, OCA-git-bot, oca-ci, LauraCForgeFlow, sygel, Ivan Vilata-i-Balaguer, Ricard Calvo, Andrii Kompaniiets |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/l10n-spain |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-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 - 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. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
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 |
No new fields.
Public methods (0)No public methods.
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'
No public methods.
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'
check_hash_modification(self, vals)
create(self, vals_list)
write(self, vals)
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'
button_cancel(self)
button_draft(self)
cancel_verifactu(self)
resend_verifactu(self)
write(self, vals)
No new fields.
Public methods (1)reverse_moves(self, is_modify=False)
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'
No public methods.
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
write(self, vals)
verifactu_enabled
Boolean
compute='_compute_aeat_sending_enabled'
string='VERI*FACTU enabled'
No public methods.
cancel_reason
Char
string='Cancellation reason'
invoice_id
Many2one → account.move
comodel_name='account.move'
readonly=True
required=True
string='Invoice'
cancel_invoice_in_verifactu(self)
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
No public methods.
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
No public methods.
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'
document(self)
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'
complete_open_activity_on_exception(self)
create_activity_on_exception(self)
create_send_response_activity(self)
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
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'
document(self)
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'
No public methods.
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'
No public methods.
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'
cancel_verifactu(self)
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'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/l10n-spain |
| GIT | |
| GIT | https://github.com/OCA/l10n-spain.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/l10n-spain/tree/17.0/l10n_es_verifactu_oca |
| VERSION | |
| VERSION | 1.4.0 |
| CATEGORY | |
| CATEGORY | Accounting/Localizations/EDI |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Aures Tic, Tecnativa, Odoo Community Association (OCA), ForgeFlow, Factor Libre |
| MAINTAINERS | |
| MAINTAINERS | Aures Tic, Tecnativa, Odoo Community Association (OCA), ForgeFlow, Factor Libre |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, Weblate, OCA-git-bot, oca-ci, sygel, Ivan Vilata-i-Balaguer, Ricard Calvo, Andreu Orensanz |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/l10n-spain |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-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 - 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. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
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 |
No new fields.
Public methods (0)No public methods.
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'
No public methods.
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'
check_hash_modification(self, vals)
create(self, vals_list)
write(self, vals)
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'
button_cancel(self)
button_draft(self)
cancel_verifactu(self)
resend_verifactu(self)
write(self, vals)
No new fields.
Public methods (1)reverse_moves(self, is_modify=False)
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'
No public methods.
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
write(self, vals)
verifactu_enabled
Boolean
compute='_compute_aeat_sending_enabled'
string='VERI*FACTU enabled'
No public methods.
cancel_reason
Char
string='Cancellation reason'
invoice_id
Many2one → account.move
comodel_name='account.move'
readonly=True
required=True
string='Invoice'
cancel_invoice_in_verifactu(self)
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
No public methods.
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
No public methods.
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'
document(self)
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'
complete_open_activity_on_exception(self)
create_activity_on_exception(self)
create_send_response_activity(self)
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
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'
document(self)
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'
No public methods.
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'
No public methods.
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'
cancel_verifactu(self)
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'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/l10n-spain |
| GIT | |
| GIT | https://github.com/OCA/l10n-spain.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/l10n-spain/tree/16.0/l10n_es_verifactu_oca |
| VERSION | |
| VERSION | 1.3.0 |
| CATEGORY | |
| CATEGORY | Accounting/Localizations/EDI |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Aures Tic, Tecnativa, Odoo Community Association (OCA), ForgeFlow, Factor Libre |
| MAINTAINERS | |
| MAINTAINERS | Aures Tic, Tecnativa, Odoo Community Association (OCA), ForgeFlow, Factor Libre |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, GitHub, Weblate, OCA-git-bot, oca-ci, almumu, Ivan Vilata-i-Balaguer, Marian Cuadra, diego.fernandez |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/l10n-spain |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-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 - 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 | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
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 |
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'
No public methods.
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'
No public methods.
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'
check_hash_modification(self, vals)
create(self, vals_list)
write(self, vals)
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'
button_cancel(self)
button_draft(self)
cancel_verifactu(self)
resend_verifactu(self)
write(self, vals)
No new fields.
Public methods (1)reverse_moves(self)
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'
No public methods.
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
write(self, vals)
verifactu_enabled
Boolean
compute='_compute_aeat_sending_enabled'
string='VERI*FACTU enabled'
No public methods.
cancel_reason
Char
string='Cancellation reason'
invoice_id
Many2one → account.move
comodel_name='account.move'
readonly=True
required=True
string='Invoice'
cancel_invoice_in_verifactu(self)
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
No public methods.
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
No public methods.
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'
document(self)
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'
complete_open_activity_on_exception(self)
create_activity_on_exception(self)
create_send_response_activity(self)
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
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'
document(self)
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'
No public methods.
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'
No public methods.
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'
cancel_verifactu(self)
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'
name_get(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/l10n-spain |
| GIT | |
| GIT | https://github.com/OCA/l10n-spain.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/l10n-spain/tree/15.0/l10n_es_verifactu_oca |
| VERSION | |
| VERSION | 1.0.3 |
| CATEGORY | |
| CATEGORY | Accounting/Localizations/EDI |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Aures Tic, Tecnativa, Odoo Community Association (OCA), ForgeFlow |
| MAINTAINERS | |
| MAINTAINERS | Aures Tic, Tecnativa, Odoo Community Association (OCA), ForgeFlow |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, OCA-git-bot, oca-ci, Ivan Vilata-i-Balaguer, Marian Cuadra |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/l10n-spain |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-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 - 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 | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
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 |
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'
No public methods.
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'
No public methods.
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'
check_hash_modification(self, vals)
create(self, vals_list)
write(self, vals)
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'
button_cancel(self)
button_draft(self)
cancel_verifactu(self)
resend_verifactu(self)
write(self, vals)
No new fields.
Public methods (1)reverse_moves(self)
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'
No public methods.
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'
No public methods.
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
write(self, vals)
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'
No public methods.
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
No public methods.
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
No public methods.
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'
document(self)
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'
complete_open_activity_on_exception(self)
create_activity_on_exception(self)
create_send_response_activity(self)
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
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'
document(self)
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'
No public methods.
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'
No public methods.
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'
No public methods.
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'
name_get(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/l10n-spain |
| GIT | |
| GIT | https://github.com/OCA/l10n-spain.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/l10n-spain/tree/14.0/l10n_es_verifactu_oca |
| VERSION | |
| VERSION | 1.0.4 |
| CATEGORY | |
| CATEGORY | Accounting/Localizations/EDI |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Aures Tic, Tecnativa, Odoo Community Association (OCA), ForgeFlow |
| MAINTAINERS | |
| MAINTAINERS | Aures Tic, Tecnativa, Odoo Community Association (OCA), ForgeFlow |
| COMMITTERS | |
| COMMITTERS | OCA-git-bot, oca-ci, Luis Jimenez Hernández, Ivan Hernando |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/l10n-spain |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-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 - 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 | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
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 |
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'
No public methods.
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'
No public methods.
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'
check_hash_modification(self, vals)
create(self, vals_list)
write(self, vals)
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'
button_cancel(self)
button_draft(self)
cancel_verifactu(self)
resend_verifactu(self)
write(self, vals)
No new fields.
Public methods (1)reverse_moves(self)
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'
No public methods.
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'
No public methods.
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
write(self, vals)
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'
No public methods.
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
No public methods.
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
No public methods.
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'
document(self)
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'
complete_open_activity_on_exception(self)
create_activity_on_exception(self)
create_send_response_activity(self)
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
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'
document(self)
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'
No public methods.
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'
No public methods.
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'
No public methods.
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'
name_get(self)