| 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_aeat_sii_match |
| VERSION | |
| VERSION | 2.0.0 |
| CATEGORY | |
| CATEGORY | Accounting & Finance |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA), Studio73 |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA), Studio73 |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, Weblate, OCA-git-bot, oca-ci, FernandoRomera |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/l10n-spain |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:09:21 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/account-financial-reporting: - account_tax_balance OCA/account-invoicing: - account_invoice_refund_link OCA/l10n-spain: - l10n_es_aeat_sii_oca - 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 |
deepdiff<8 requests zeep unidecode |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
invoice_sii_match_form |
account.invoice.sii.match.form | account.move | field | Inherits l10n_es_aeat_sii_oca.invoice_sii_form |
view_account_invoice_sii_match_filter |
account.invoice.sii.match.filter | account.move | xpath | Inherits account.view_account_invoice_filter |
view_invoice_tree |
account.invoice.sii.match.list | account.move | field | Inherits account.view_invoice_tree |
view_l10n_es_aeat_sii_match_report_filter |
l10n_es.aeat.sii.match.report.filter | l10n.es.aeat.sii.match.report | search | New |
view_l10n_es_aeat_sii_match_report_form |
l10n_es.aeat.sii.match.report.form | l10n.es.aeat.sii.match.report | form | New |
view_l10n_es_aeat_sii_match_report_tree |
l10n_es.aeat.sii.match.report.list | l10n.es.aeat.sii.match.report | list | New |
view_l10n_es_aeat_sii_match_result_filter |
l10n_es.aeat.sii.match.result.filter | l10n.es.aeat.sii.match.result | search | New |
view_l10n_es_aeat_sii_match_result_form |
l10n_es.aeat.sii.match.result.form | l10n.es.aeat.sii.match.result | form | New |
view_l10n_es_aeat_sii_match_result_tree |
l10n_es.aeat.sii.match.result.list | l10n.es.aeat.sii.match.result | list | New |
No new fields.
Public methods (1)contrast_aeat(self)
invoice_id
Many2oneReference
index=True
model_field='model'
readonly=True
string='Document'
model
Char
default='account.move'
report_id
Many2one → l10n.es.aeat.sii.match.result
comodel_name='l10n.es.aeat.sii.match.result'
index=True
ondelete='cascade'
string='Related SII match report'
sii_field
Char
copy=False
string='SII field name'
sii_return_field_value
Char
copy=False
string='SII return field value'
sii_sent_field_value
Char
copy=False
string='SII sent field value'
No public methods.
calculate_date
Datetime
string='Calculate date'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
required=True
string='Company'
fiscalyear
Integer
default=fields.Date.today().year
required=True
string='Fiscal year'
invoice_type
Selection
required=True
selection=[('out', 'Out invoice/refund'), ('in', 'In invoice/refund')]
string='Invoice type'
name
Char
required=True
string='Report identifier'
number_records
Integer
readonly=True
string='Total records'
number_records_both
Integer
readonly=True
string='Records in Odoo and SII'
number_records_contrasted
Integer
readonly=True
string='Records contrasted'
number_records_correct
Integer
readonly=True
string='Records correctly contrasted'
number_records_in_process
Integer
readonly=True
string='Records in process of contrast'
number_records_no_exist
Integer
readonly=True
string='Records without contrast'
number_records_no_test
Integer
readonly=True
string='Records no testables'
number_records_not_contrasted
Integer
readonly=True
string='Records not contasted'
number_records_odoo
Integer
readonly=True
string='Records only in Odoo'
number_records_partially
Integer
readonly=True
string='Records partially correct'
number_records_partially_contrasted
Integer
readonly=True
string='Records partially contrasted'
number_records_sii
Integer
readonly=True
string='Records only in SII'
period_type
Selection
required=True
selection=[('01', '01 - January'), ('02', '02 - February'), ('03', '03 - March'), ('04', '04 - April'), ('05', '05 - May'), ('06', '06 - June'), ('07', '07 - July'), ('08', '08 - August'), ('09', '09 - September'), ('10', '10 - October'), ('11', '11 - November'), ('12', '12 - December')]
string='Period type'
result_ids
One2many → l10n.es.aeat.sii.match.result
comodel_name='l10n.es.aeat.sii.match.result'
inverse_name='report_id'
readonly=True
string='SII Match Result'
state
Selection
default='draft'
selection=[('draft', 'Draft'), ('calculated', 'Calculated'), ('done', 'Done'), ('error', 'Error'), ('cancelled', 'Cancelled')]
button_calculate(self)
button_cancel(self)
button_confirm(self)
button_recover(self)
open_result(self)
csv
Char
string='CSV'
invoice
Char
invoice_id
Many2oneReference
index=True
model_field='model'
readonly=True
required=True
string='Document'
invoice_location
Selection
copy=False
readonly=True
selection=[('both', 'Invoice in Odoo and SII'), ('odoo', 'Invoice in Odoo'), ('sii', 'Invoice in SII')]
string='Invoice location'
model
Char
default='account.move'
required=True
report_id
Many2one → l10n.es.aeat.sii.match.report
comodel_name='l10n.es.aeat.sii.match.report'
ondelete='cascade'
string='AEAT SII Match Report ID'
sii_contrast_state
Selection
copy=False
readonly=True
selection=[('correct', 'Correct'), ('no_exist', "Doesn't exist"), ('partially', 'Partially correct')]
string='AEAT contrast state'
sii_match_difference_ids
One2many → l10n.es.aeat.sii.match.difference
comodel_name='l10n.es.aeat.sii.match.difference'
copy=False
inverse_name='report_id'
readonly=True
string='SII match differences'
sii_match_state
Selection
copy=False
readonly=True
selection='_get_selection_sii_match_state'
string='Match state'
No public methods.
sii_contrast_state
Selection
copy=False
readonly=True
selection=[('correct', 'Correct'), ('no_exist', "Doesn't exist"), ('partially', 'Partially correct')]
string='AEAT contrast state'
sii_match_difference_ids
One2many → l10n.es.aeat.sii.match.difference
comodel_name='l10n.es.aeat.sii.match.difference'
copy=False
domain=<expr>
inverse_name='invoice_id'
readonly=True
string='SII match differences'
sii_match_return
Text
copy=False
readonly=True
string='SII match return'
sii_match_sent
Text
copy=False
readonly=True
string='SII match sent'
sii_match_state
Selection
copy=False
help='- No testable: The counterpart is not subscribed to SII the record will not be contrasted.\n- In process of contrast: AEAT is processing the data soon will be a result.\n- Not contrasted: The counterpart has not sent the invoice to SII, AEAT gives up to 4 months in order to contrast the information.\n- Partially contrasted: A invoice has been found but some data is different.\n- Contrasted: The counterpart has send the invoice to SII, all is OK.'
readonly=True
selection=[('1', 'No testable'), ('2', 'In process of contrast'), ('3', 'Not contrasted'), ('4', 'Partially contrasted'), ('5', 'Contrasted')]
string='Match state'
contrast_aeat(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/17.0/l10n_es_aeat_sii_match |
| VERSION | |
| VERSION | 1.0.5 |
| CATEGORY | |
| CATEGORY | Accounting & Finance |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Studio73 |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Studio73 |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, Weblate, OCA-git-bot, Ignacio, david-banon-tecnativa |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/l10n-spain |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:59:24 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/account-financial-reporting: - account_tax_balance OCA/account-invoicing: - account_invoice_refund_link OCA/l10n-spain: - l10n_es_aeat_sii_oca - 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 |
deepdiff<8 requests zeep unidecode |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
invoice_sii_match_form |
account.invoice.sii.match.form | account.move | field | Inherits l10n_es_aeat_sii_oca.invoice_sii_form |
view_account_invoice_sii_match_filter |
account.invoice.sii.match.filter | account.move | xpath | Inherits account.view_account_invoice_filter |
view_invoice_tree |
account.invoice.sii.match.tree | account.move | field | Inherits account.view_invoice_tree |
view_l10n_es_aeat_sii_match_report_filter |
l10n_es.aeat.sii.match.report.filter | l10n.es.aeat.sii.match.report | search | New |
view_l10n_es_aeat_sii_match_report_form |
l10n_es.aeat.sii.match.report.form | l10n.es.aeat.sii.match.report | form | New |
view_l10n_es_aeat_sii_match_report_tree |
l10n_es.aeat.sii.match.report.tree | l10n.es.aeat.sii.match.report | tree | New |
view_l10n_es_aeat_sii_match_result_filter |
l10n_es.aeat.sii.match.result.filter | l10n.es.aeat.sii.match.result | search | New |
view_l10n_es_aeat_sii_match_result_form |
l10n_es.aeat.sii.match.result.form | l10n.es.aeat.sii.match.result | form | New |
view_l10n_es_aeat_sii_match_result_tree |
l10n_es.aeat.sii.match.result.tree | l10n.es.aeat.sii.match.result | tree | New |
sii_contrast_state
Selection
copy=False
readonly=True
selection=[('correct', 'Correct'), ('no_exist', "Doesn't exist"), ('partially', 'Partially correct')]
string='AEAT contrast state'
sii_match_difference_ids
One2many → l10n.es.aeat.sii.match.difference
comodel_name='l10n.es.aeat.sii.match.difference'
copy=False
inverse_name='invoice_id'
readonly=True
string='SII match differences'
sii_match_return
Text
copy=False
readonly=True
string='SII match return'
sii_match_sent
Text
copy=False
readonly=True
string='SII match sent'
sii_match_state
Selection
copy=False
help='- No testable: The counterpart is not subscribed to SII the record will not be contrasted.\n- In process of contrast: AEAT is processing the data soon will be a result.\n- Not contrasted: The counterpart has not sent the invoice to SII, AEAT gives up to 4 months in order to contrast the information.\n- Partially contrasted: A invoice has been found but some data is different.\n- Contrasted: The counterpart has send the invoice to SII, all is OK.'
readonly=True
selection=[('1', 'No testable'), ('2', 'In process of contrast'), ('3', 'Not contrasted'), ('4', 'Partially contrasted'), ('5', 'Contrasted')]
string='Match state'
contrast_aeat(self)
invoice_id
Many2one → account.move
comodel_name='account.move'
string='Related invoice'
report_id
Many2one → l10n.es.aeat.sii.match.result
comodel_name='l10n.es.aeat.sii.match.result'
string='Related SII match report'
sii_field
Char
copy=False
string='SII field name'
sii_return_field_value
Char
copy=False
string='SII return field value'
sii_sent_field_value
Char
copy=False
string='SII sent field value'
No public methods.
calculate_date
Datetime
string='Calculate date'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
required=True
string='Company'
fiscalyear
Integer
default=fields.Date.today().year
required=True
string='Fiscal year'
invoice_type
Selection
required=True
selection=[('out', 'Out invoice/refund'), ('in', 'In invoice/refund')]
string='Invoice type'
name
Char
required=True
string='Report identifier'
number_records
Integer
readonly=True
string='Total records'
number_records_both
Integer
readonly=True
string='Records in Odoo and SII'
number_records_contrasted
Integer
readonly=True
string='Records contrasted'
number_records_correct
Integer
readonly=True
string='Records correctly contrasted'
number_records_in_process
Integer
readonly=True
string='Records in process of contrast'
number_records_no_exist
Integer
readonly=True
string='Records without contrast'
number_records_no_test
Integer
readonly=True
string='Records no testables'
number_records_not_contrasted
Integer
readonly=True
string='Records not contasted'
number_records_odoo
Integer
readonly=True
string='Records only in Odoo'
number_records_partially
Integer
readonly=True
string='Records partially correct'
number_records_partially_contrasted
Integer
readonly=True
string='Records partially contrasted'
number_records_sii
Integer
readonly=True
string='Records only in SII'
period_type
Selection
required=True
selection=[('01', '01 - January'), ('02', '02 - February'), ('03', '03 - March'), ('04', '04 - April'), ('05', '05 - May'), ('06', '06 - June'), ('07', '07 - July'), ('08', '08 - August'), ('09', '09 - September'), ('10', '10 - October'), ('11', '11 - November'), ('12', '12 - December')]
string='Period type'
sii_match_result
One2many → l10n.es.aeat.sii.match.result
comodel_name='l10n.es.aeat.sii.match.result'
inverse_name='report_id'
readonly=True
string='SII Match Result'
state
Selection
default='draft'
selection=[('draft', 'Draft'), ('calculated', 'Calculated'), ('done', 'Done'), ('error', 'Error'), ('cancelled', 'Cancelled')]
button_calculate(self)
button_cancel(self)
button_confirm(self)
button_recover(self)
open_result(self)
csv
Char
string='CSV'
invoice
Char
invoice_id
Many2one → account.move
comodel_name='account.move'
string='Odoo invoice'
invoice_location
Selection
copy=False
readonly=True
selection=[('both', 'Invoice in Odoo and SII'), ('odoo', 'Invoice in Odoo'), ('sii', 'Invoice in SII')]
string='Invoice location'
report_id
Many2one → l10n.es.aeat.sii.match.report
comodel_name='l10n.es.aeat.sii.match.report'
ondelete='cascade'
string='AEAT SII Match Report ID'
sii_contrast_state
Selection
copy=False
readonly=True
selection=[('correct', 'Correct'), ('no_exist', "Doesn't exist"), ('partially', 'Partially correct')]
string='AEAT contrast state'
sii_match_difference_ids
One2many → l10n.es.aeat.sii.match.difference
comodel_name='l10n.es.aeat.sii.match.difference'
copy=False
inverse_name='report_id'
readonly=True
string='SII match differences'
sii_match_state
Selection
copy=False
readonly=True
selection='_get_selection_sii_match_state'
string='Match state'
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_aeat_sii_match |
| VERSION | |
| VERSION | 2.0.2 |
| CATEGORY | |
| CATEGORY | Accounting & Finance |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Studio73 |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Studio73 |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, Jairo Llopis, Weblate, OCA-git-bot, Ethan Hildick, oca-ci, Carlos, Jose Zambudio, extrememicro |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/l10n-spain |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:53:40 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/account-financial-reporting: - account_tax_balance OCA/account-invoicing: - account_invoice_refund_link OCA/l10n-spain: - l10n_es_aeat_sii_oca - l10n_es_aeat OCA/queue: - queue_job 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 - base_sparse_field |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
deepdiff<8 unidecode requests |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
invoice_sii_match_form |
account.invoice.sii.match.form | account.move | field | Inherits l10n_es_aeat_sii_oca.invoice_sii_form |
view_account_invoice_sii_match_filter |
account.invoice.sii.match.filter | account.move | xpath | Inherits account.view_account_invoice_filter |
view_invoice_tree |
account.invoice.sii.match.tree | account.move | field | Inherits account.view_invoice_tree |
view_l10n_es_aeat_sii_match_report_filter |
l10n_es.aeat.sii.match.report.filter | l10n.es.aeat.sii.match.report | search | New |
view_l10n_es_aeat_sii_match_report_form |
l10n_es.aeat.sii.match.report.form | l10n.es.aeat.sii.match.report | form | New |
view_l10n_es_aeat_sii_match_report_tree |
l10n_es.aeat.sii.match.report.tree | l10n.es.aeat.sii.match.report | tree | New |
view_l10n_es_aeat_sii_match_result_filter |
l10n_es.aeat.sii.match.result.filter | l10n.es.aeat.sii.match.result | search | New |
view_l10n_es_aeat_sii_match_result_form |
l10n_es.aeat.sii.match.result.form | l10n.es.aeat.sii.match.result | form | New |
view_l10n_es_aeat_sii_match_result_tree |
l10n_es.aeat.sii.match.result.tree | l10n.es.aeat.sii.match.result | tree | New |
sii_contrast_state
Selection
copy=False
readonly=True
selection=[('correct', 'Correct'), ('no_exist', "Doesn't exist"), ('partially', 'Partially correct')]
string='AEAT contrast state'
sii_match_difference_ids
One2many → l10n.es.aeat.sii.match.difference
comodel_name='l10n.es.aeat.sii.match.difference'
copy=False
inverse_name='invoice_id'
readonly=True
string='SII match differences'
sii_match_return
Text
copy=False
readonly=True
string='SII match return'
sii_match_sent
Text
copy=False
readonly=True
string='SII match sent'
sii_match_state
Selection
copy=False
help='- No testable: The counterpart is not suscribed to SII the record will not be contrasted.\n- In process of contrast: AEAT is processing the data soon will be a result.\n- Not contrasted: The counterpart has not sent the invoice to SII, AEAT gives up to 4 months in order to contrast the information.\n- Partially contrasted: A invoice has been found but some data is different.\n- Contrasted: The counterpart has send the invoice to SII, all is OK.'
readonly=True
selection=[('1', 'No testable'), ('2', 'In process of contrast'), ('3', 'Not contrasted'), ('4', 'Partially contrasted'), ('5', 'Contrasted')]
string='Match state'
contrast_aeat(self)
contrast_one_invoice(self)
direct_contrast_aeat(self)
invoice_id
Many2one → account.move
comodel_name='account.move'
string='Related invoice'
report_id
Many2one → l10n.es.aeat.sii.match.result
comodel_name='l10n.es.aeat.sii.match.result'
string='Related SII match report'
sii_field
Char
copy=False
string='SII field name'
sii_return_field_value
Char
copy=False
string='SII return field value'
sii_sent_field_value
Char
copy=False
string='SII sent field value'
No public methods.
calculate_date
Datetime
readonly=True
states={'draft': [('readonly', False)]}
string='Calculate date'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Company'
fiscalyear
Integer
default=fields.Date.today().year
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Fiscal year'
invoice_type
Selection
readonly=True
required=True
selection=[('out', 'Out invoice/refund'), ('in', 'In invoice/refund')]
states={'draft': [('readonly', False)]}
string='Invoice type'
name
Char
required=True
string='Report identifier'
number_records
Integer
readonly=True
string='Total records'
number_records_both
Integer
readonly=True
string='Records in Odoo and SII'
number_records_contrasted
Integer
readonly=True
string='Records contrasted'
number_records_correct
Integer
readonly=True
string='Records correctly contrasted'
number_records_in_process
Integer
readonly=True
string='Records in process of contrast'
number_records_no_exist
Integer
readonly=True
string='Records without contrast'
number_records_no_test
Integer
readonly=True
string='Records no testables'
number_records_not_contrasted
Integer
readonly=True
string='Records not contasted'
number_records_odoo
Integer
readonly=True
string='Records only in Odoo'
number_records_partially
Integer
readonly=True
string='Records partially correct'
number_records_partially_contrasted
Integer
readonly=True
string='Records partially contrasted'
number_records_sii
Integer
readonly=True
string='Records only in SII'
period_type
Selection
readonly=True
required=True
selection=[('01', '01 - January'), ('02', '02 - February'), ('03', '03 - March'), ('04', '04 - April'), ('05', '05 - May'), ('06', '06 - June'), ('07', '07 - July'), ('08', '08 - August'), ('09', '09 - September'), ('10', '10 - October'), ('11', '11 - November'), ('12', '12 - December')]
states={'draft': [('readonly', False)]}
string='Period type'
sii_match_jobs_ids
Many2many → queue.job
column1='sii_match_id'
column2='job_id'
comodel_name='queue.job'
copy=False
string='Connector Jobs'
sii_match_result
One2many → l10n.es.aeat.sii.match.result
comodel_name='l10n.es.aeat.sii.match.result'
inverse_name='report_id'
readonly=True
string='SII Match Result'
state
Selection
default='draft'
selection=[('draft', 'Draft'), ('calculated', 'Calculated'), ('done', 'Done'), ('error', 'Error'), ('cancelled', 'Cancelled')]
button_calculate(self)
button_cancel(self)
button_confirm(self)
button_recover(self)
get_invoice_aeat(self)
open_result(self)
csv
Char
string='CSV'
invoice
Char
invoice_id
Many2one → account.move
comodel_name='account.move'
string='Odoo invoice'
invoice_location
Selection
copy=False
readonly=True
selection=[('both', 'Invoice in Odoo and SII'), ('odoo', 'Invoice in Odoo'), ('sii', 'Invoice in SII')]
string='Invoice location'
report_id
Many2one → l10n.es.aeat.sii.match.report
comodel_name='l10n.es.aeat.sii.match.report'
ondelete='cascade'
string='AEAT SII Match Report ID'
sii_contrast_state
Selection
copy=False
readonly=True
selection=[('correct', 'Correct'), ('no_exist', "Doesn't exist"), ('partially', 'Partially correct')]
string='AEAT contrast state'
sii_match_difference_ids
One2many → l10n.es.aeat.sii.match.difference
comodel_name='l10n.es.aeat.sii.match.difference'
copy=False
inverse_name='report_id'
readonly=True
string='SII match differences'
sii_match_state
Selection
copy=False
readonly=True
selection='_get_selection_sii_match_state'
string='Match state'
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/15.0/l10n_es_aeat_sii_match |
| VERSION | |
| VERSION | 1.0.1 |
| CATEGORY | |
| CATEGORY | Accounting & Finance |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Studio73 |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Studio73 |
| COMMITTERS | |
| COMMITTERS | Jairo Llopis, VÃctor MartÃnez, Weblate, OCA-git-bot, oca-ci |
| 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_sii_oca - l10n_es_aeat OCA/queue: - queue_job 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 - base_sparse_field |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
deepdiff<8 zeep requests cryptography unidecode |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
invoice_sii_match_form |
account.invoice.sii.match.form | account.move | field | Inherits l10n_es_aeat_sii_oca.invoice_sii_form |
view_account_invoice_sii_match_filter |
account.invoice.sii.match.filter | account.move | xpath | Inherits account.view_account_invoice_filter |
view_invoice_tree |
account.invoice.sii.match.tree | account.move | field | Inherits account.view_invoice_tree |
view_l10n_es_aeat_sii_match_report_filter |
l10n_es.aeat.sii.match.report.filter | l10n.es.aeat.sii.match.report | search | New |
view_l10n_es_aeat_sii_match_report_form |
l10n_es.aeat.sii.match.report.form | l10n.es.aeat.sii.match.report | form | New |
view_l10n_es_aeat_sii_match_report_tree |
l10n_es.aeat.sii.match.report.tree | l10n.es.aeat.sii.match.report | tree | New |
view_l10n_es_aeat_sii_match_result_filter |
l10n_es.aeat.sii.match.result.filter | l10n.es.aeat.sii.match.result | search | New |
view_l10n_es_aeat_sii_match_result_form |
l10n_es.aeat.sii.match.result.form | l10n.es.aeat.sii.match.result | form | New |
view_l10n_es_aeat_sii_match_result_tree |
l10n_es.aeat.sii.match.result.tree | l10n.es.aeat.sii.match.result | tree | New |
sii_contrast_state
Selection
copy=False
readonly=True
selection=[('correct', 'Correct'), ('no_exist', "Doesn't exist"), ('partially', 'Partially correct')]
string='AEAT contrast state'
sii_match_difference_ids
One2many → l10n.es.aeat.sii.match.difference
comodel_name='l10n.es.aeat.sii.match.difference'
copy=False
inverse_name='invoice_id'
readonly=True
string='SII match differences'
sii_match_return
Text
copy=False
readonly=True
string='SII match return'
sii_match_sent
Text
copy=False
readonly=True
string='SII match sent'
sii_match_state
Selection
copy=False
help='- No testable: The counterpart is not suscribed to SII the record will not be contrasted.\n- In process of contrast: AEAT is processing the data soon will be a result.\n- Not contrasted: The counterpart has not sent the invoice to SII, AEAT gives up to 4 months in order to contrast the information.\n- Partially contrasted: A invoice has been found but some data is different.\n- Contrasted: The counterpart has send the invoice to SII, all is OK.'
readonly=True
selection=[('1', 'No testable'), ('2', 'In process of contrast'), ('3', 'Not contrasted'), ('4', 'Partially contrasted'), ('5', 'Contrasted')]
string='Match state'
contrast_aeat(self)
contrast_one_invoice(self)
direct_contrast_aeat(self)
invoice_id
Many2one → account.move
comodel_name='account.move'
string='Related invoice'
report_id
Many2one → l10n.es.aeat.sii.match.result
comodel_name='l10n.es.aeat.sii.match.result'
string='Related SII match report'
sii_field
Char
copy=False
string='SII field name'
sii_return_field_value
Char
copy=False
string='SII return field value'
sii_sent_field_value
Char
copy=False
string='SII sent field value'
No public methods.
calculate_date
Datetime
readonly=True
states={'draft': [('readonly', False)]}
string='Calculate date'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Company'
fiscalyear
Integer
default=fields.Date.from_string(fields.Date.today()).year
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Fiscal year'
invoice_type
Selection
readonly=True
required=True
selection=[('out', 'Out invoice/refund'), ('in', 'In invoice/refund')]
states={'draft': [('readonly', False)]}
string='Invoice type'
name
Char
required=True
string='Report identifier'
number_records
Integer
readonly=True
string='Total records'
number_records_both
Integer
readonly=True
string='Records in Odoo and SII'
number_records_contrasted
Integer
readonly=True
string='Records contrasted'
number_records_correct
Integer
readonly=True
string='Records correctly contrasted'
number_records_in_process
Integer
readonly=True
string='Records in process of contrast'
number_records_no_exist
Integer
readonly=True
string='Records without contrast'
number_records_no_test
Integer
readonly=True
string='Records no testables'
number_records_not_contrasted
Integer
readonly=True
string='Records not contasted'
number_records_odoo
Integer
readonly=True
string='Records only in Odoo'
number_records_partially
Integer
readonly=True
string='Records partially contrasted'
number_records_partially_contrasted
Integer
readonly=True
string='Records partially contrasted'
number_records_sii
Integer
readonly=True
string='Records only in SII'
period_type
Selection
readonly=True
required=True
selection=[('01', '01 - January'), ('02', '02 - February'), ('03', '03 - March'), ('04', '04 - April'), ('05', '05 - May'), ('06', '06 - June'), ('07', '07 - July'), ('08', '08 - August'), ('09', '09 - September'), ('10', '10 - October'), ('11', '11 - November'), ('12', '12 - December')]
states={'draft': [('readonly', False)]}
string='Period type'
sii_match_jobs_ids
Many2many → queue.job
column1='sii_match_id'
column2='job_id'
comodel_name='queue.job'
copy=False
string='Connector Jobs'
sii_match_result
One2many → l10n.es.aeat.sii.match.result
comodel_name='l10n.es.aeat.sii.match.result'
inverse_name='report_id'
readonly=True
string='SII Match Result'
state
Selection
default='draft'
selection=[('draft', 'Draft'), ('calculated', 'Calculated'), ('done', 'Done'), ('error', 'Error'), ('cancelled', 'Cancelled')]
button_calculate(self)
button_cancel(self)
button_confirm(self)
button_recover(self)
get_invoice_aeat(self)
open_result(self)
csv
Char
string='CSV'
invoice
Char
invoice_id
Many2one → account.move
comodel_name='account.move'
string='Odoo invoice'
invoice_location
Selection
copy=False
readonly=True
selection=[('both', 'Invoice in Odoo and SII'), ('odoo', 'Invoice in Odoo'), ('sii', 'Invoice in SII')]
string='Invoice location'
report_id
Many2one → l10n.es.aeat.sii.match.report
comodel_name='l10n.es.aeat.sii.match.report'
ondelete='cascade'
string='AEAT SII Match Report ID'
sii_contrast_state
Selection
copy=False
readonly=True
selection=[('correct', 'Correct'), ('no_exist', "Doesn't exist"), ('partially', 'Partially correct')]
string='AEAT contrast state'
sii_match_difference_ids
One2many → l10n.es.aeat.sii.match.difference
comodel_name='l10n.es.aeat.sii.match.difference'
copy=False
inverse_name='report_id'
readonly=True
string='SII match differences'
sii_match_state
Selection
copy=False
readonly=True
selection='_get_selection_sii_match_state'
string='Match state'
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/13.0/l10n_es_aeat_sii_match |
| VERSION | |
| VERSION | 1.0.0 |
| CATEGORY | |
| CATEGORY | Accounting & Finance |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Studio73 |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Studio73 |
| COMMITTERS | |
| COMMITTERS | OCA-git-bot, Ethan Hildick, oca-ci, Carlos |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/l10n-spain |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:34:09 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/account-financial-reporting: - account_tax_balance OCA/account-invoicing: - account_invoice_refund_link OCA/l10n-spain: - l10n_es_aeat_sii_oca - l10n_es_aeat OCA/queue: - queue_job 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 |
deepdiff pyOpenSSL requests zeep unidecode |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
invoice_sii_match_form |
account.invoice.sii.match.form | account.move | field | Inherits l10n_es_aeat_sii_oca.invoice_sii_form |
view_account_invoice_sii_match_filter |
account.invoice.sii.match.filter | account.move | xpath | Inherits account.view_account_invoice_filter |
view_invoice_tree |
account.invoice.sii.match.tree | account.move | field | Inherits account.view_invoice_tree |
view_l10n_es_aeat_sii_match_report_filter |
l10n_es.aeat.sii.match.report.filter | l10n.es.aeat.sii.match.report | search | New |
view_l10n_es_aeat_sii_match_report_form |
l10n_es.aeat.sii.match.report.form | l10n.es.aeat.sii.match.report | form | New |
view_l10n_es_aeat_sii_match_report_tree |
l10n_es.aeat.sii.match.report.tree | l10n.es.aeat.sii.match.report | tree | New |
view_l10n_es_aeat_sii_match_result_filter |
l10n_es.aeat.sii.match.result.filter | l10n.es.aeat.sii.match.result | search | New |
view_l10n_es_aeat_sii_match_result_form |
l10n_es.aeat.sii.match.result.form | l10n.es.aeat.sii.match.result | form | New |
view_l10n_es_aeat_sii_match_result_tree |
l10n_es.aeat.sii.match.result.tree | l10n.es.aeat.sii.match.result | tree | New |
sii_contrast_state
Selection
copy=False
readonly=True
selection=[('correct', 'Correct'), ('no_exist', "Doesn't exist"), ('partially', 'Partially correct')]
string='AEAT contrast state'
sii_match_difference_ids
One2many → l10n.es.aeat.sii.match.difference
comodel_name='l10n.es.aeat.sii.match.difference'
copy=False
inverse_name='invoice_id'
readonly=True
string='SII match differences'
sii_match_return
Text
copy=False
readonly=True
string='SII match return'
sii_match_sent
Text
copy=False
readonly=True
string='SII match sent'
sii_match_state
Selection
copy=False
help='- No testable: The counterpart is not suscribed to SII the record will not be contrasted.\n- In process of contrast: AEAT is processing the data soon will be a result.\n- Not contrasted: The counterpart has not sent the invoice to SII, AEAT gives up to 4 months in order to contrast the information.\n- Partially contrasted: A invoice has been found but some data is different.\n- Contrasted: The counterpart has send the invoice to SII, all is OK.'
readonly=True
selection=[('1', 'No testable'), ('2', 'In process of contrast'), ('3', 'Not contrasted'), ('4', 'Partially contrasted'), ('5', 'Contrasted')]
string='Match state'
contrast_aeat(self)
contrast_one_invoice(self)
direct_contrast_aeat(self)
invoice_id
Many2one → account.move
comodel_name='account.move'
string='Related invoice'
report_id
Many2one → l10n.es.aeat.sii.match.result
comodel_name='l10n.es.aeat.sii.match.result'
string='Related SII match report'
sii_field
Char
copy=False
string='SII field name'
sii_return_field_value
Char
copy=False
string='SII return field value'
sii_sent_field_value
Char
copy=False
string='SII sent field value'
No public methods.
calculate_date
Datetime
readonly=True
states={'draft': [('readonly', False)]}
string='Calculate date'
company_id
Many2one → res.company
comodel_name='res.company'
default=_default_company_id
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Company'
fiscalyear
Integer
default=fields.Date.from_string(fields.Date.today()).year
lenght=4
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Fiscal year'
invoice_type
Selection
readonly=True
required=True
selection=[('out', 'Out invoice/refund'), ('in', 'In invoice/refund')]
states={'draft': [('readonly', False)]}
string='Invoice type'
name
Char
required=True
string='Report identifier'
number_records
Integer
readonly=True
string='Total records'
number_records_both
Integer
readonly=True
string='Records in Odoo and SII'
number_records_contrasted
Integer
readonly=True
string='Records contrasted'
number_records_correct
Integer
readonly=True
string='Records correctly contrasted'
number_records_in_process
Integer
readonly=True
string='Records in process of contrast'
number_records_no_exist
Integer
readonly=True
string='Records without contrast'
number_records_no_test
Integer
readonly=True
string='Records no testables'
number_records_not_contrasted
Integer
readonly=True
string='Records not contasted'
number_records_odoo
Integer
readonly=True
string='Records only in Odoo'
number_records_partially
Integer
readonly=True
string='Records partially contrasted'
number_records_partially_contrasted
Integer
readonly=True
string='Records partially contrasted'
number_records_sii
Integer
readonly=True
string='Records only in SII'
period_type
Selection
readonly=True
required=True
selection=[('01', '01 - January'), ('02', '02 - February'), ('03', '03 - March'), ('04', '04 - April'), ('05', '05 - May'), ('06', '06 - June'), ('07', '07 - July'), ('08', '08 - August'), ('09', '09 - September'), ('10', '10 - October'), ('11', '11 - November'), ('12', '12 - December')]
states={'draft': [('readonly', False)]}
string='Period type'
sii_match_jobs_ids
Many2many → queue.job
column1='sii_match_id'
column2='job_id'
comodel_name='queue.job'
copy=False
string='Connector Jobs'
sii_match_result
One2many → l10n.es.aeat.sii.match.result
comodel_name='l10n.es.aeat.sii.match.result'
inverse_name='report_id'
readonly=True
string='SII Match Result'
state
Selection
default='draft'
selection=[('draft', 'Draft'), ('calculated', 'Calculated'), ('done', 'Done'), ('error', 'Error'), ('cancelled', 'Cancelled')]
string='State'
button_calculate(self)
button_cancel(self)
button_confirm(self)
button_recover(self)
get_invoice_aeat(self)
open_result(self)
csv
Char
string='CSV'
invoice
Char
string='Invoice'
invoice_id
Many2one → account.move
comodel_name='account.move'
string='Odoo invoice'
invoice_location
Selection
copy=False
readonly=True
selection=[('both', 'Invoice in Odoo and SII'), ('odoo', 'Invoice in Odoo'), ('sii', 'Invoice in SII')]
string='Invoice location'
report_id
Many2one → l10n.es.aeat.sii.match.report
comodel_name='l10n.es.aeat.sii.match.report'
ondelete='cascade'
string='AEAT SII Match Report ID'
sii_contrast_state
Selection
copy=False
readonly=True
selection=[('correct', 'Correct'), ('no_exist', "Doesn't exist"), ('partially', 'Partially correct')]
string='AEAT contrast state'
sii_match_difference_ids
One2many → l10n.es.aeat.sii.match.difference
comodel_name='l10n.es.aeat.sii.match.difference'
copy=False
inverse_name='report_id'
readonly=True
string='SII match differences'
sii_match_state
Selection
copy=False
readonly=True
selection='_get_selection_sii_match_state'
string='Match state'
No public methods.