AEAT modelo 296

l10n_es_aeat_mod296
REPOSITORY
REPOSITORYOCA/l10n-spain
GIT
GIThttps://github.com/OCA/l10n-spain.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-spain/tree/19.0/l10n_es_aeat_mod296
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYLocalisation/Accounting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), AvanzOSC, Qubiq
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), AvanzOSC, Qubiq
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, Emilio Pascual
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-spain
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:40:46
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-financial-reporting:
    - account_tax_balance
OCA/l10n-spain:
    - l10n_es_aeat
    - l10n_es_aeat_mod216
OCA/server-ux:
    - date_range
odoo/odoo:
    - l10n_es
    - account
    - base_setup
    - base
    - web
    - onboarding
    - product
    - mail
    - bus
    - web_tour
    - html_editor
    - uom
    - analytic
    - portal
    - http_routing
    - auth_signup
    - digest
    - resource
    - base_iban
    - base_vat
    - account_edi_ubl_cii
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES unidecode
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Modelo 296 de la AEAT. Declaración Informativa. Retenciones e ingresos a
cuenta del Impuesto sobre la Renta de no Residentes (sin establecimiento
permanente). Resumen anual.

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
view_l10n_es_aeat_mod296_report_form l10n_es.aeat.mod296.report.form l10n.es.aeat.mod296.report group Inherits l10n_es_aeat.view_l10n_es_aeat_report_form
view_l10n_es_aeat_mod296_report_line_form l10n_es.aeat.mod296.report.line.form l10n.es.aeat.mod296.report.line form New
view_l10n_es_aeat_mod296_report_line_tree l10n_es.aeat.mod296.report.line.tree l10n.es.aeat.mod296.report.line list New
view_l10n_es_aeat_mod296_report_tree l10n_es.aeat.mod296.report.tree l10n.es.aeat.mod296.report list Inherits l10n_es_aeat.view_l10n_es_aeat_report_tree
Models touched (2)

New fields (5)
  • casilla_01 Integer
    help='[01] Summary of the data included in the statement - Total number of perceivers' readonly=False string='[01] # Recipients'
  • casilla_02 Float
    help='[02] Summary of the data included in the statement - Base retention and income on account' readonly=False string='[02] Base retentions'
  • casilla_03 Float
    help='[03] Summary of the data included in the statement - Retention and income on account' readonly=False string='[03] Retentions'
  • casilla_04 Float
    help='[04] Summary of the data included in the statement - Retentions and income on account entered' readonly=False string='[04] Retentions entered'
  • lines296 One2many → l10n.es.aeat.mod296.report.line
    comodel_name='l10n.es.aeat.mod296.report.line' inverse_name='mod296_id' string='Lines'
Public methods (2)
  • calculate(self)
  • partner_group(self, move_lines_base_ids, move_lines_cuota_ids)

New fields (31)
  • base_retenciones_ingresos Float
    string='Base retention and income on account'
  • ciudad_nacimiento Char
    size=35 string='Birth city'
  • clave Selection
    selection=[('1', '1 - Dividends and other income derived from the participation in own funds of entities.'), ('2', '2 - Interest and other income derived from the transfer to parties of own capital.'), ('3', '3 - Canons derived from patents, trademarks, drawings or models, plans, formulas or secret procedures.'), ('4', '4 - Fees derived from rights on literary and artistic works.'), ('5', '5 - Canons derived from rights on scientific works.'), ('6', '6 - Fees derived from rights on cinematographic films and recorded sound or visual works.'), ('7', '7 - Canons derived from information related to industrial, commercial or scientific experiences (know-how).'), ('8', '8 - Fees derived from rights on computer programs.'), ('9', '9 - Fees derived from personal rights susceptible to transfer, such as image rights.'), ('10', '10 - Canons derived from industrial, commercial or scientific equipment.'), ('11', '11 - Other canons not previously mentioned.'), ('12', '12 - Capital income from capitalization operations and life or disability insurance contracts.'), ('13', '13 - Other income from movable capital not mentioned above.'), ('14', '14 - Real estate performance.'), ('15', '15 - Performance of business activities.'), ('16', '16 - Rents derived from technical assistance benefits.'), ('17', '17 - Rents of artistic activities.'), ('18', '18 - Rents of sports activities.'), ('19', '19 - Rents of professional activities.'), ('20', '20 - Rents of work.'), ('21', '21 - Pensions and passive assets.'), ('22', '22 - Remuneration of administrators and members of boards of directors.'), ('23', '23 - Performance derived from reinsurance operations.'), ('24', '24 - Maritime or air navigation entities.'), ('25', '25 - Other rents')] string='Key'
  • codigo Selection
    selection=[('1', '1. Emisor code corresponds to an N.I.F.'), ('2', '2. Emisor code corresponds to an code I.S.I.N.'), ('3', '3. Emisor code corresponds to values foreign that have not been assigned I.S.I.N., whose emisor does not have a NIF')] string='Code'
  • codigo_emisor Char
    size=12 string='Emisor code'
  • complemento_domicilio Char
    size=40 string='Domicile Complement'
  • cuenta_valores Many2one → res.partner.bank
    comodel_name='res.partner.bank' string='Code Account Values'
  • domicilio Char
    size=50 string='Domicile'
  • fecha_devengo Date
    string='Devengo date'
  • fecha_devengo_export Char
    compute='_compute_get_fecha_devengo_export' string='Devengo date export'
  • fecha_nacimiento Date
    string='Date of birth'
  • fecha_nacimiento_export Char
    compute='_compute_get_fecha_nacimiento_export' string='Date of birth export'
  • fisica_juridica Selection
    selection=[('F', 'Physical person'), ('J', 'Legal person or entity')] string='F/J'
  • mediador Boolean
    string='Mediator'
  • mod296_id Many2one → l10n.es.aeat.mod296.report
    comodel_name='l10n.es.aeat.mod296.report' string='Mod 296'
  • move_line_ids Many2many → account.move.line
    comodel_name='account.move.line' string='Move Lines'
  • naturaleza Selection
    selection=[('D', 'Money income'), ('E', 'Income in kind')] string='Nature'
  • nif_pais_residencia Char
    size=20 string='Nif in the country of residence'
  • pago Selection
    selection=[('1', 'As transmitter'), ('2', 'As mediator')] string='Payment'
  • pais Many2one → res.country
    comodel_name='res.country' string='Country'
  • pais_nacimiento Many2one → res.country
    comodel_name='res.country' string='Country of birth'
  • pais_residencia_fiscal Many2one → res.country
    comodel_name='res.country' string='Country territory of fiscal residence'
  • partner_id Many2one → res.partner
    comodel_name='res.partner' string='Partner'
  • pendiente Boolean
    string='Pending'
  • poblacion Char
    size=30 string='Population/City'
  • porcentaje_retencion Float
    string='% retention'
  • provincia Many2one → res.country.state
    comodel_name='res.country.state' string='Province/Region/State'
  • retenciones_ingresos Float
    string='Retention and income on account'
  • subclave Selection
    selection=[('1', '1 - Retention practiced at the general rates or scales of taxation of article 25 of the rewritten text of the Non-Resident Income Tax Law.'), ('2', '2 - Retention practiced applying limits of imposition of Agreements.'), ('3', '3 - Internal exemption (mainly: article 14 of the revised text of the Law on Non-Resident Income Tax)'), ('4', '4 - Exemption by application of a Convention.'), ('5', '5 - No Retention for previous payment of the Tax by the taxpayer or his representative..'), ('6', '6 - The declared recipient is a foreign entity for the collective management of intellectual property rights, with a retention having applied the limit of taxation, or the exemption, of a Convention.'), ('7', '7 - The recipient is a taxpayer of the Personal Income Tax of the special regime applicable to workers displaced to Spanish territory.'), ('8', '8 - The declared recipient is an entity resident abroad that sells shares or units of Spanish collective investment institutions, with a withholding tax applying a limit of taxation established in the lower Agreement.'), ('9', '9 - The declared recipient is an entity residing abroad selling shares or participations of Spanish collective investment institutions, with a retention having applied the type of lien.')] string='Subkey'
  • tipo_codigo Selection
    selection=[('C', 'Identification with the Account Code Values (C.C.V.)'), ('O', 'Other identification')] string='Code type'
  • zip Char
    size=10 string='Postal Code'
Public methods (1)
  • onchange_partner(self)
    @api.onchange('partner_id')
REPOSITORY
REPOSITORYOCA/l10n-spain
GIT
GIThttps://github.com/OCA/l10n-spain.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-spain/tree/18.0/l10n_es_aeat_mod296
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYLocalisation/Accounting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), AvanzOSC, Qubiq
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), AvanzOSC, Qubiq
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, Emilio Pascual
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-spain
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:05
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-financial-reporting:
    - account_tax_balance
OCA/l10n-spain:
    - l10n_es_aeat
    - l10n_es_aeat_mod216
OCA/server-ux:
    - date_range
odoo/odoo:
    - l10n_es
    - account
    - base_setup
    - base
    - web
    - onboarding
    - product
    - mail
    - bus
    - web_tour
    - html_editor
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - base_iban
    - base_vat
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES unidecode
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Modelo 296 de la AEAT. Declaración Informativa. Retenciones e ingresos a
cuenta del Impuesto sobre la Renta de no Residentes (sin establecimiento
permanente). Resumen anual.

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
view_l10n_es_aeat_mod296_report_form l10n_es.aeat.mod296.report.form l10n.es.aeat.mod296.report group Inherits l10n_es_aeat.view_l10n_es_aeat_report_form
view_l10n_es_aeat_mod296_report_line_form l10n_es.aeat.mod296.report.line.form l10n.es.aeat.mod296.report.line form New
view_l10n_es_aeat_mod296_report_line_tree l10n_es.aeat.mod296.report.line.tree l10n.es.aeat.mod296.report.line list New
view_l10n_es_aeat_mod296_report_tree l10n_es.aeat.mod296.report.tree l10n.es.aeat.mod296.report list Inherits l10n_es_aeat.view_l10n_es_aeat_report_tree
Models touched (2)

New fields (5)
  • casilla_01 Integer
    help='[01] Summary of the data included in the statement - Total number of perceivers' readonly=False string='[01] # Recipients'
  • casilla_02 Float
    help='[02] Summary of the data included in the statement - Base retention and income on account' readonly=False string='[02] Base retentions'
  • casilla_03 Float
    help='[03] Summary of the data included in the statement - Retention and income on account' readonly=False string='[03] Retentions'
  • casilla_04 Float
    help='[04] Summary of the data included in the statement - Retentions and income on account entered' readonly=False string='[04] Retentions entered'
  • lines296 One2many → l10n.es.aeat.mod296.report.line
    comodel_name='l10n.es.aeat.mod296.report.line' inverse_name='mod296_id' string='Lines'
Public methods (2)
  • calculate(self)
  • partner_group(self, move_lines_base_ids, move_lines_cuota_ids)

New fields (31)
  • base_retenciones_ingresos Float
    string='Base retention and income on account'
  • ciudad_nacimiento Char
    size=35 string='Birth city'
  • clave Selection
    selection=[('1', '1 - Dividends and other income derived from the participation in own funds of entities.'), ('2', '2 - Interest and other income derived from the transfer to parties of own capital.'), ('3', '3 - Canons derived from patents, trademarks, drawings or models, plans, formulas or secret procedures.'), ('4', '4 - Fees derived from rights on literary and artistic works.'), ('5', '5 - Canons derived from rights on scientific works.'), ('6', '6 - Fees derived from rights on cinematographic films and recorded sound or visual works.'), ('7', '7 - Canons derived from information related to industrial, commercial or scientific experiences (know-how).'), ('8', '8 - Fees derived from rights on computer programs.'), ('9', '9 - Fees derived from personal rights susceptible to transfer, such as image rights.'), ('10', '10 - Canons derived from industrial, commercial or scientific equipment.'), ('11', '11 - Other canons not previously mentioned.'), ('12', '12 - Capital income from capitalization operations and life or disability insurance contracts.'), ('13', '13 - Other income from movable capital not mentioned above.'), ('14', '14 - Real estate performance.'), ('15', '15 - Performance of business activities.'), ('16', '16 - Rents derived from technical assistance benefits.'), ('17', '17 - Rents of artistic activities.'), ('18', '18 - Rents of sports activities.'), ('19', '19 - Rents of professional activities.'), ('20', '20 - Rents of work.'), ('21', '21 - Pensions and passive assets.'), ('22', '22 - Remuneration of administrators and members of boards of directors.'), ('23', '23 - Performance derived from reinsurance operations.'), ('24', '24 - Maritime or air navigation entities.'), ('25', '25 - Other rents')] string='Key'
  • codigo Selection
    selection=[('1', '1. Emisor code corresponds to an N.I.F.'), ('2', '2. Emisor code corresponds to an code I.S.I.N.'), ('3', '3. Emisor code corresponds to values foreign that have not been assigned I.S.I.N., whose emisor does not have a NIF')] string='Code'
  • codigo_emisor Char
    size=12 string='Emisor code'
  • complemento_domicilio Char
    size=40 string='Domicile Complement'
  • cuenta_valores Many2one → res.partner.bank
    comodel_name='res.partner.bank' string='Code Account Values'
  • domicilio Char
    size=50 string='Domicile'
  • fecha_devengo Date
    string='Devengo date'
  • fecha_devengo_export Char
    compute='_compute_get_fecha_devengo_export' string='Devengo date export'
  • fecha_nacimiento Date
    string='Date of birth'
  • fecha_nacimiento_export Char
    compute='_compute_get_fecha_nacimiento_export' string='Date of birth export'
  • fisica_juridica Selection
    selection=[('F', 'Physical person'), ('J', 'Legal person or entity')] string='F/J'
  • mediador Boolean
    string='Mediator'
  • mod296_id Many2one → l10n.es.aeat.mod296.report
    comodel_name='l10n.es.aeat.mod296.report' string='Mod 296'
  • move_line_ids Many2many → account.move.line
    comodel_name='account.move.line' string='Move Lines'
  • naturaleza Selection
    selection=[('D', 'Money income'), ('E', 'Income in kind')] string='Nature'
  • nif_pais_residencia Char
    size=20 string='Nif in the country of residence'
  • pago Selection
    selection=[('1', 'As transmitter'), ('2', 'As mediator')] string='Payment'
  • pais Many2one → res.country
    comodel_name='res.country' string='Country'
  • pais_nacimiento Many2one → res.country
    comodel_name='res.country' string='Country of birth'
  • pais_residencia_fiscal Many2one → res.country
    comodel_name='res.country' string='Country territory of fiscal residence'
  • partner_id Many2one → res.partner
    comodel_name='res.partner' string='Partner'
  • pendiente Boolean
    string='Pending'
  • poblacion Char
    size=30 string='Population/City'
  • porcentaje_retencion Float
    string='% retention'
  • provincia Many2one → res.country.state
    comodel_name='res.country.state' string='Province/Region/State'
  • retenciones_ingresos Float
    string='Retention and income on account'
  • subclave Selection
    selection=[('1', '1 - Retention practiced at the general rates or scales of taxation of article 25 of the rewritten text of the Non-Resident Income Tax Law.'), ('2', '2 - Retention practiced applying limits of imposition of Agreements.'), ('3', '3 - Internal exemption (mainly: article 14 of the revised text of the Law on Non-Resident Income Tax)'), ('4', '4 - Exemption by application of a Convention.'), ('5', '5 - No Retention for previous payment of the Tax by the taxpayer or his representative..'), ('6', '6 - The declared recipient is a foreign entity for the collective management of intellectual property rights, with a retention having applied the limit of taxation, or the exemption, of a Convention.'), ('7', '7 - The recipient is a taxpayer of the Personal Income Tax of the special regime applicable to workers displaced to Spanish territory.'), ('8', '8 - The declared recipient is an entity resident abroad that sells shares or units of Spanish collective investment institutions, with a withholding tax applying a limit of taxation established in the lower Agreement.'), ('9', '9 - The declared recipient is an entity residing abroad selling shares or participations of Spanish collective investment institutions, with a retention having applied the type of lien.')] string='Subkey'
  • tipo_codigo Selection
    selection=[('C', 'Identification with the Account Code Values (C.C.V.)'), ('O', 'Other identification')] string='Code type'
  • zip Char
    size=10 string='Postal Code'
Public methods (1)
  • onchange_partner(self)
    @api.onchange('partner_id')
REPOSITORY
REPOSITORYOCA/l10n-spain
GIT
GIThttps://github.com/OCA/l10n-spain.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-spain/tree/17.0/l10n_es_aeat_mod296
VERSION
VERSION 1.0.2
CATEGORY
CATEGORYLocalisation/Accounting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), AvanzOSC, Qubiq
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), AvanzOSC, Qubiq
COMMITTERS
COMMITTERSOCA-git-bot, oca-ci, Emilio Pascual, Ignacio, david-banon-tecnativa
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-spain
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:19:59
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-financial-reporting:
    - account_tax_balance
OCA/l10n-spain:
    - l10n_es_aeat
    - l10n_es_aeat_mod216
OCA/server-ux:
    - date_range
odoo/odoo:
    - l10n_es
    - account
    - base_setup
    - base
    - web
    - onboarding
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - base_iban
    - base_vat
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES unidecode
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Modelo 296 de la AEAT. Declaración Informativa. Retenciones e ingresos a
cuenta del Impuesto sobre la Renta de no Residentes (sin establecimiento
permanente). Resumen anual.

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
view_l10n_es_aeat_mod296_report_form l10n_es.aeat.mod296.report.form l10n.es.aeat.mod296.report group Inherits l10n_es_aeat.view_l10n_es_aeat_report_form
view_l10n_es_aeat_mod296_report_line_form l10n_es.aeat.mod296.report.line.form l10n.es.aeat.mod296.report.line form New
view_l10n_es_aeat_mod296_report_line_tree l10n_es.aeat.mod296.report.line.tree l10n.es.aeat.mod296.report.line tree New
view_l10n_es_aeat_mod296_report_tree l10n_es.aeat.mod296.report.tree l10n.es.aeat.mod296.report tree Inherits l10n_es_aeat.view_l10n_es_aeat_report_tree
Models touched (2)

New fields (5)
  • casilla_01 Integer
    help='[01] Summary of the data included in the statement - Total number of perceivers' readonly=False string='[01] # Recipients'
  • casilla_02 Float
    help='[02] Summary of the data included in the statement - Base retention and income on account' readonly=False string='[02] Base retentions'
  • casilla_03 Float
    help='[03] Summary of the data included in the statement - Retention and income on account' readonly=False string='[03] Retentions'
  • casilla_04 Float
    help='[04] Summary of the data included in the statement - Retentions and income on account entered' readonly=False string='[04] Retentions entered'
  • lines296 One2many → l10n.es.aeat.mod296.report.line
    comodel_name='l10n.es.aeat.mod296.report.line' inverse_name='mod296_id' string='Lines'
Public methods (2)
  • calculate(self)
  • partner_group(self, move_lines_base_ids, move_lines_cuota_ids)

New fields (31)
  • base_retenciones_ingresos Float
    string='Base retention and income on account'
  • ciudad_nacimiento Char
    size=35 string='Birth city'
  • clave Selection
    selection=[('1', '1 - Dividends and other income derived from the participation in own funds of entities.'), ('2', '2 - Interest and other income derived from the transfer to parties of own capital.'), ('3', '3 - Canons derived from patents, trademarks, drawings or models, plans, formulas or secret procedures.'), ('4', '4 - Fees derived from rights on literary and artistic works.'), ('5', '5 - Canons derived from rights on scientific works.'), ('6', '6 - Fees derived from rights on cinematographic films and recorded sound or visual works.'), ('7', '7 - Canons derived from information related to industrial, commercial or scientific experiences (know-how).'), ('8', '8 - Fees derived from rights on computer programs.'), ('9', '9 - Fees derived from personal rights susceptible to transfer, such as image rights.'), ('10', '10 - Canons derived from industrial, commercial or scientific equipment.'), ('11', '11 - Other canons not previously mentioned.'), ('12', '12 - Capital income from capitalization operations and life or disability insurance contracts.'), ('13', '13 - Other income from movable capital not mentioned above.'), ('14', '14 - Real estate performance.'), ('15', '15 - Performance of business activities.'), ('16', '16 - Rents derived from technical assistance benefits.'), ('17', '17 - Rents of artistic activities.'), ('18', '18 - Rents of sports activities.'), ('19', '19 - Rents of professional activities.'), ('20', '20 - Rents of work.'), ('21', '21 - Pensions and passive assets.'), ('22', '22 - Remuneration of administrators and members of boards of directors.'), ('23', '23 - Performance derived from reinsurance operations.'), ('24', '24 - Maritime or air navigation entities.'), ('25', '25 - Other rents')] string='Key'
  • codigo Selection
    selection=[('1', '1. Emisor code corresponds to an N.I.F.'), ('2', '2. Emisor code corresponds to an code I.S.I.N.'), ('3', '3. Emisor code corresponds to values foreign that have not been assigned I.S.I.N., whose emisor does not have a NIF')] string='Code'
  • codigo_emisor Char
    size=12 string='Emisor code'
  • complemento_domicilio Char
    size=40 string='Domicile Complement'
  • cuenta_valores Many2one → res.partner.bank
    comodel_name='res.partner.bank' string='Code Account Values'
  • domicilio Char
    size=50 string='Domicile'
  • fecha_devengo Date
    string='Devengo date'
  • fecha_devengo_export Char
    compute='_compute_get_fecha_devengo_export' string='Devengo date export'
  • fecha_nacimiento Date
    string='Date of birth'
  • fecha_nacimiento_export Char
    compute='_compute_get_fecha_nacimiento_export' string='Date of birth export'
  • fisica_juridica Selection
    selection=[('F', 'Physical person'), ('J', 'Legal person or entity')] string='F/J'
  • mediador Boolean
    string='Mediator'
  • mod296_id Many2one → l10n.es.aeat.mod296.report
    comodel_name='l10n.es.aeat.mod296.report' string='Mod 296'
  • move_line_ids Many2many → account.move.line
    comodel_name='account.move.line' string='Move Lines'
  • naturaleza Selection
    selection=[('D', 'Money income'), ('E', 'Income in kind')] string='Nature'
  • nif_pais_residencia Char
    size=20 string='Nif in the country of residence'
  • pago Selection
    selection=[('1', 'As transmitter'), ('2', 'As mediator')] string='Payment'
  • pais Many2one → res.country
    comodel_name='res.country' string='Country'
  • pais_nacimiento Many2one → res.country
    comodel_name='res.country' string='Country of birth'
  • pais_residencia_fiscal Many2one → res.country
    comodel_name='res.country' string='Country territory of fiscal residence'
  • partner_id Many2one → res.partner
    comodel_name='res.partner' string='Partner'
  • pendiente Boolean
    string='Pending'
  • poblacion Char
    size=30 string='Population/City'
  • porcentaje_retencion Float
    string='% retention'
  • provincia Many2one → res.country.state
    comodel_name='res.country.state' string='Province/Region/State'
  • retenciones_ingresos Float
    string='Retention and income on account'
  • subclave Selection
    selection=[('1', '1 - Retention practiced at the general rates or scales of taxation of article 25 of the rewritten text of the Non-Resident Income Tax Law.'), ('2', '2 - Retention practiced applying limits of imposition of Agreements.'), ('3', '3 - Internal exemption (mainly: article 14 of the revised text of the Law on Non-Resident Income Tax)'), ('4', '4 - Exemption by application of a Convention.'), ('5', '5 - No Retention for previous payment of the Tax by the taxpayer or his representative..'), ('6', '6 - The declared recipient is a foreign entity for the collective management of intellectual property rights, with a retention having applied the limit of taxation, or the exemption, of a Convention.'), ('7', '7 - The recipient is a taxpayer of the Personal Income Tax of the special regime applicable to workers displaced to Spanish territory.'), ('8', '8 - The declared recipient is an entity resident abroad that sells shares or units of Spanish collective investment institutions, with a withholding tax applying a limit of taxation established in the lower Agreement.'), ('9', '9 - The declared recipient is an entity residing abroad selling shares or participations of Spanish collective investment institutions, with a retention having applied the type of lien.')] string='Subkey'
  • tipo_codigo Selection
    selection=[('C', 'Identification with the Account Code Values (C.C.V.)'), ('O', 'Other identification')] string='Code type'
  • zip Char
    size=10 string='Postal Code'
Public methods (1)
  • onchange_partner(self)
    @api.onchange('partner_id')
REPOSITORY
REPOSITORYOCA/l10n-spain
GIT
GIThttps://github.com/OCA/l10n-spain.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-spain/tree/16.0/l10n_es_aeat_mod296
VERSION
VERSION 1.1.1
CATEGORY
CATEGORYLocalisation/Accounting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), AvanzOSC, Qubiq
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), AvanzOSC, Qubiq
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, Emilio Pascual, pol, Eduardo López Peñalver
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-spain
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:53:39
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-financial-reporting:
    - account_tax_balance
OCA/l10n-spain:
    - l10n_es_aeat
    - l10n_es_aeat_mod216
OCA/server-ux:
    - date_range
odoo/odoo:
    - l10n_es
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - base_iban
    - base_vat
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES unidecode
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
view_l10n_es_aeat_mod296_report_form l10n_es.aeat.mod296.report.form l10n.es.aeat.mod296.report group Inherits l10n_es_aeat.view_l10n_es_aeat_report_form
view_l10n_es_aeat_mod296_report_line_form l10n_es.aeat.mod296.report.line.form l10n.es.aeat.mod296.report.line form New
view_l10n_es_aeat_mod296_report_line_tree l10n_es.aeat.mod296.report.line.tree l10n.es.aeat.mod296.report.line tree New
view_l10n_es_aeat_mod296_report_tree l10n_es.aeat.mod296.report.tree l10n.es.aeat.mod296.report tree Inherits l10n_es_aeat.view_l10n_es_aeat_report_tree
Models touched (2)

New fields (5)
  • casilla_01 Integer
    help='[01] Summary of the data included in the statement - Total number of perceivers' readonly=True states={'calculated': [('readonly', False)]} string='[01] # Recipients'
  • casilla_02 Float
    help='[02] Summary of the data included in the statement - Base retention and income on account' readonly=True states={'calculated': [('readonly', False)]} string='[02] Base retentions'
  • casilla_03 Float
    help='[03] Summary of the data included in the statement - Retention and income on account' readonly=True states={'calculated': [('readonly', False)]} string='[03] Retentions'
  • casilla_04 Float
    help='[04] Summary of the data included in the statement - Retentions and income on account entered' readonly=True states={'calculated': [('readonly', False)]} string='[04] Retentions entered'
  • lines296 One2many → l10n.es.aeat.mod296.report.line
    comodel_name='l10n.es.aeat.mod296.report.line' inverse_name='mod296_id' string='Lines'
Public methods (2)
  • calculate(self)
  • partner_group(self, move_lines_base_ids, move_lines_cuota_ids)

New fields (31)
  • base_retenciones_ingresos Float
    string='Base retention and income on account'
  • ciudad_nacimiento Char
    size=35 string='Birth city'
  • clave Selection
    selection=[('1', '1 - Dividends and other income derived from the participation in own funds of entities.'), ('2', '2 - Interest and other income derived from the transfer to parties of own capital.'), ('3', '3 - Canons derived from patents, trademarks, drawings or models, plans, formulas or secret procedures.'), ('4', '4 - Fees derived from rights on literary and artistic works.'), ('5', '5 - Canons derived from rights on scientific works.'), ('6', '6 - Fees derived from rights on cinematographic films and recorded sound or visual works.'), ('7', '7 - Canons derived from information related to industrial, commercial or scientific experiences (know-how).'), ('8', '8 - Fees derived from rights on computer programs.'), ('9', '9 - Fees derived from personal rights susceptible to transfer, such as image rights.'), ('10', '10 - Canons derived from industrial, commercial or scientific equipment.'), ('11', '11 - Other canons not previously mentioned.'), ('12', '12 - Capital income from capitalization operations and life or disability insurance contracts.'), ('13', '13 - Other income from movable capital not mentioned above.'), ('14', '14 - Real estate performance.'), ('15', '15 - Performance of business activities.'), ('16', '16 - Rents derived from technical assistance benefits.'), ('17', '17 - Rents of artistic activities.'), ('18', '18 - Rents of sports activities.'), ('19', '19 - Rents of professional activities.'), ('20', '20 - Rents of work.'), ('21', '21 - Pensions and passive assets.'), ('22', '22 - Remuneration of administrators and members of boards of directors.'), ('23', '23 - Performance derived from reinsurance operations.'), ('24', '24 - Maritime or air navigation entities.'), ('25', '25 - Other rents')] string='Key'
  • codigo Selection
    selection=[('1', '1. Emisor code corresponds to an N.I.F.'), ('2', '2. Emisor code corresponds to an code I.S.I.N.'), ('3', '3. Emisor code corresponds to values foreign that have not been assigned I.S.I.N., whose emisor does not have a NIF')] string='Code'
  • codigo_emisor Char
    size=12 string='Emisor code'
  • complemento_domicilio Char
    size=40 string='Domicile Complement'
  • cuenta_valores Many2one → res.partner.bank
    comodel_name='res.partner.bank' string='Code Account Values'
  • domicilio Char
    size=50 string='Domicile'
  • fecha_devengo Date
    string='Devengo date'
  • fecha_devengo_export Char
    compute='_compute_get_fecha_devengo_export' string='Devengo date export'
  • fecha_nacimiento Date
    string='Date of birth'
  • fecha_nacimiento_export Char
    compute='_compute_get_fecha_nacimiento_export' string='Date of birth export'
  • fisica_juridica Selection
    selection=[('F', 'Physical person'), ('J', 'Legal person or entity')] string='F/J'
  • mediador Boolean
    string='Mediator'
  • mod296_id Many2one → l10n.es.aeat.mod296.report
    comodel_name='l10n.es.aeat.mod296.report' string='Mod 296'
  • move_line_ids Many2many → account.move.line
    comodel_name='account.move.line' string='Move Lines'
  • naturaleza Selection
    selection=[('D', 'Money income'), ('E', 'Income in kind')] string='Nature'
  • nif_pais_residencia Char
    size=20 string='Nif in the country of residence'
  • pago Selection
    selection=[('1', 'As transmitter'), ('2', 'As mediator')] string='Payment'
  • pais Many2one → res.country
    comodel_name='res.country' string='Country'
  • pais_nacimiento Many2one → res.country
    comodel_name='res.country' string='Country of birth'
  • pais_residencia_fiscal Many2one → res.country
    comodel_name='res.country' string='Country territory of fiscal residence'
  • partner_id Many2one → res.partner
    comodel_name='res.partner' string='Partner'
  • pendiente Boolean
    string='Pending'
  • poblacion Char
    size=30 string='Population/City'
  • porcentaje_retencion Float
    string='% retention'
  • provincia Many2one → res.country.state
    comodel_name='res.country.state' string='Province/Region/State'
  • retenciones_ingresos Float
    string='Retention and income on account'
  • subclave Selection
    selection=[('1', '1 - Retention practiced at the general rates or scales of taxation of article 25 of the rewritten text of the Non-Resident Income Tax Law.'), ('2', '2 - Retention practiced applying limits of imposition of Agreements.'), ('3', '3 - Internal exemption (mainly: article 14 of the revised text of the Law on Non-Resident Income Tax)'), ('4', '4 - Exemption by application of a Convention.'), ('5', '5 - No Retention for previous payment of the Tax by the taxpayer or his representative..'), ('6', '6 - The declared recipient is a foreign entity for the collective management of intellectual property rights, with a retention having applied the limit of taxation, or the exemption, of a Convention.'), ('7', '7 - The recipient is a taxpayer of the Personal Income Tax of the special regime applicable to workers displaced to Spanish territory.'), ('8', '8 - The declared recipient is an entity resident abroad that sells shares or units of Spanish collective investment institutions, with a withholding tax applying a limit of taxation established in the lower Agreement.'), ('9', '9 - The declared recipient is an entity residing abroad selling shares or participations of Spanish collective investment institutions, with a retention having applied the type of lien.')] string='Subkey'
  • tipo_codigo Selection
    selection=[('C', 'Identification with the Account Code Values (C.C.V.)'), ('O', 'Other identification')] string='Code type'
  • zip Char
    size=10 string='Postal Code'
Public methods (1)
  • onchange_partner(self)
    @api.onchange('partner_id')
REPOSITORY
REPOSITORYOCA/l10n-spain
GIT
GIThttps://github.com/OCA/l10n-spain.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-spain/tree/15.0/l10n_es_aeat_mod296
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYLocalisation/Accounting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), AvanzOSC, Qubiq
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), AvanzOSC, Qubiq
COMMITTERS
COMMITTERSVíctor Martínez, Weblate, OCA-git-bot, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-spain
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:46:29
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-financial-reporting:
    - account_tax_balance
OCA/l10n-spain:
    - l10n_es_aeat
    - l10n_es_aeat_mod216
    - l10n_es_irnr
OCA/server-ux:
    - date_range
odoo/odoo:
    - l10n_es
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - base_iban
    - base_vat
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES cryptography
unidecode
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
view_l10n_es_aeat_mod296_report_form l10n_es.aeat.mod296.report.form l10n.es.aeat.mod296.report group Inherits l10n_es_aeat.view_l10n_es_aeat_report_form
view_l10n_es_aeat_mod296_report_line_form l10n_es.aeat.mod296.report.line.form l10n.es.aeat.mod296.report.line form New
view_l10n_es_aeat_mod296_report_line_tree l10n_es.aeat.mod296.report.line.tree l10n.es.aeat.mod296.report.line tree New
view_l10n_es_aeat_mod296_report_tree l10n_es.aeat.mod296.report.tree l10n.es.aeat.mod296.report tree Inherits l10n_es_aeat.view_l10n_es_aeat_report_tree
Models touched (2)

New fields (5)
  • casilla_01 Integer
    help='[01] Summary of the data included in the statement - Total number of perceivers' readonly=True states={'calculated': [('readonly', False)]} string='[01] # Recipients'
  • casilla_02 Float
    help='[02] Summary of the data included in the statement - Base retention and income on account' readonly=True states={'calculated': [('readonly', False)]} string='[02] Base retentions'
  • casilla_03 Float
    help='[03] Summary of the data included in the statement - Retention and income on account' readonly=True states={'calculated': [('readonly', False)]} string='[03] Retentions'
  • casilla_04 Float
    help='[04] Summary of the data included in the statement - Retentions and income on account entered' readonly=True states={'calculated': [('readonly', False)]} string='[04] Retentions entered'
  • lines296 One2many → l10n.es.aeat.mod296.report.line
    comodel_name='l10n.es.aeat.mod296.report.line' inverse_name='mod296_id' string='Lines'
Public methods (2)
  • calculate(self)
  • partner_group(self, move_lines_base_ids, move_lines_cuota_ids)

New fields (31)
  • base_retenciones_ingresos Float
    string='Base retention and income on account'
  • ciudad_nacimiento Char
    size=35 string='Birth city'
  • clave Selection
    selection=[('1', '1 - Dividends and other income derived from the participation in own funds of entities.'), ('2', '2 - Interest and other income derived from the transfer to parties of own capital.'), ('3', '3 - Canons derived from patents, trademarks, drawings or models, plans, formulas or secret procedures.'), ('4', '4 - Fees derived from rights on literary and artistic works.'), ('5', '5 - Canons derived from rights on scientific works.'), ('6', '6 - Fees derived from rights on cinematographic films and recorded sound or visual works.'), ('7', '7 - Canons derived from information related to industrial, commercial or scientific experiences (know-how).'), ('8', '8 - Fees derived from rights on computer programs.'), ('9', '9 - Fees derived from personal rights susceptible to transfer, such as image rights.'), ('10', '10 - Canons derived from industrial, commercial or scientific equipment.'), ('11', '11 - Other canons not previously mentioned.'), ('12', '12 - Capital income from capitalization operations and life or disability insurance contracts.'), ('13', '13 - Other income from movable capital not mentioned above.'), ('14', '14 - Real estate performance.'), ('15', '15 - Performance of business activities.'), ('16', '16 - Rents derived from technical assistance benefits.'), ('17', '17 - Rents of artistic activities.'), ('18', '18 - Rents of sports activities.'), ('19', '19 - Rents of professional activities.'), ('20', '20 - Rents of work.'), ('21', '21 - Pensions and passive assets.'), ('22', '22 - Remuneration of administrators and members of boards of directors.'), ('23', '23 - Performance derived from reinsurance operations.'), ('24', '24 - Maritime or air navigation entities.'), ('25', '25 - Other rents')] string='Key'
  • codigo Selection
    selection=[('1', '1. Emisor code corresponds to an N.I.F.'), ('2', '2. Emisor code corresponds to an code I.S.I.N.'), ('3', '3. Emisor code corresponds to values foreign that have not been assigned I.S.I.N., whose emisor does not have a NIF')] string='Code'
  • codigo_emisor Char
    size=12 string='Emisor code'
  • complemento_domicilio Char
    size=40 string='Domicile Complement'
  • cuenta_valores Many2one → res.partner.bank
    comodel_name='res.partner.bank' string='Code Account Values'
  • domicilio Char
    size=50 string='Domicile'
  • fecha_devengo Date
    string='Devengo date'
  • fecha_devengo_export Char
    compute='_compute_get_fecha_devengo_export' string='Devengo date export'
  • fecha_nacimiento Date
    string='Date of birth'
  • fecha_nacimiento_export Char
    compute='_compute_get_fecha_nacimiento_export' string='Date of birth export'
  • fisica_juridica Selection
    selection=[('F', 'Physical person'), ('J', 'Legal person or entity')] string='F/J'
  • mediador Boolean
    string='Mediator'
  • mod296_id Many2one → l10n.es.aeat.mod296.report
    comodel_name='l10n.es.aeat.mod296.report' string='Mod 296'
  • move_line_ids Many2many → account.move.line
    comodel_name='account.move.line' string='Move Lines'
  • naturaleza Selection
    selection=[('D', 'Money income'), ('E', 'Income in kind')] string='Nature'
  • nif_pais_residencia Char
    size=20 string='Nif in the country of residence'
  • pago Selection
    selection=[('1', 'As transmitter'), ('2', 'As mediator')] string='Payment'
  • pais Many2one → res.country
    comodel_name='res.country' string='Country'
  • pais_nacimiento Many2one → res.country
    comodel_name='res.country' string='Country of birth'
  • pais_residencia_fiscal Many2one → res.country
    comodel_name='res.country' string='Country territory of fiscal residence'
  • partner_id Many2one → res.partner
    comodel_name='res.partner' string='Partner'
  • pendiente Boolean
    string='Pending'
  • poblacion Char
    size=30 string='Population/City'
  • porcentaje_retencion Float
    string='% retention'
  • provincia Many2one → res.country.state
    comodel_name='res.country.state' string='Province/Region/State'
  • retenciones_ingresos Float
    string='Retention and income on account'
  • subclave Selection
    selection=[('1', '1 - Retention practiced at the general rates or scales of taxation of article 25 of the rewritten text of the Non-Resident Income Tax Law.'), ('2', '2 - Retention practiced applying limits of imposition of Agreements.'), ('3', '3 - Internal exemption (mainly: article 14 of the revised text of the Law on Non-Resident Income Tax)'), ('4', '4 - Exemption by application of a Convention.'), ('5', '5 - No Retention for previous payment of the Tax by the taxpayer or his representative..'), ('6', '6 - The declared recipient is a foreign entity for the collective management of intellectual property rights, with a retention having applied the limit of taxation, or the exemption, of a Convention.'), ('7', '7 - The recipient is a taxpayer of the Personal Income Tax of the special regime applicable to workers displaced to Spanish territory.'), ('8', '8 - The declared recipient is an entity resident abroad that sells shares or units of Spanish collective investment institutions, with a withholding tax applying a limit of taxation established in the lower Agreement.'), ('9', '9 - The declared recipient is an entity residing abroad selling shares or participations of Spanish collective investment institutions, with a retention having applied the type of lien.')] string='Subkey'
  • tipo_codigo Selection
    selection=[('C', 'Identification with the Account Code Values (C.C.V.)'), ('O', 'Other identification')] string='Code type'
  • zip Char
    size=10 string='Postal Code'
Public methods (1)
  • onchange_partner(self)
    @api.onchange('partner_id')
REPOSITORY
REPOSITORYOCA/l10n-spain
GIT
GIThttps://github.com/OCA/l10n-spain.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-spain/tree/13.0/l10n_es_aeat_mod296
VERSION
VERSION 1.2.0
CATEGORY
CATEGORYLocalisation/Accounting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), AvanzOSC, Qubiq
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), AvanzOSC, Qubiq
COMMITTERS
COMMITTERSVíctor Martínez, oca-travis, Weblate, OCA-git-bot, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-spain
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:34:09
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-financial-reporting:
    - account_tax_balance
OCA/l10n-spain:
    - l10n_es_aeat
    - l10n_es_aeat_mod216
    - l10n_es_irnr
OCA/server-ux:
    - date_range
odoo/odoo:
    - l10n_es
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - base_iban
    - base_vat
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES pyOpenSSL
unidecode
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
view_l10n_es_aeat_mod296_report_form l10n_es.aeat.mod296.report.form l10n.es.aeat.mod296.report group Inherits l10n_es_aeat.view_l10n_es_aeat_report_form
view_l10n_es_aeat_mod296_report_line_form l10n_es.aeat.mod296.report.line.form l10n.es.aeat.mod296.report.line form New
view_l10n_es_aeat_mod296_report_line_tree l10n_es.aeat.mod296.report.line.tree l10n.es.aeat.mod296.report.line tree New
view_l10n_es_aeat_mod296_report_tree l10n_es.aeat.mod296.report.tree l10n.es.aeat.mod296.report tree Inherits l10n_es_aeat.view_l10n_es_aeat_report_tree
Models touched (2)

New fields (5)
  • casilla_01 Integer
    help='[01] Summary of the data included in the statement - Total number of perceivers' readonly=True states={'calculated': [('readonly', False)]} string='[01] # Recipients'
  • casilla_02 Float
    help='[02] Summary of the data included in the statement - Base retention and income on account' readonly=True states={'calculated': [('readonly', False)]} string='[02] Base retentions'
  • casilla_03 Float
    help='[03] Summary of the data included in the statement - Retention and income on account' readonly=True states={'calculated': [('readonly', False)]} string='[03] Retentions'
  • casilla_04 Float
    help='[04] Summary of the data included in the statement - Retentions and income on account entered' readonly=True states={'calculated': [('readonly', False)]} string='[04] Retentions entered'
  • lines296 One2many → l10n.es.aeat.mod296.report.line
    comodel_name='l10n.es.aeat.mod296.report.line' inverse_name='mod296_id' string='Lines'
Public methods (2)
  • calculate(self)
  • partner_group(self, move_lines_base_ids, move_lines_cuota_ids)

New fields (31)
  • base_retenciones_ingresos Float
    string='Base retention and income on account'
  • ciudad_nacimiento Char
    size=35 string='Birth city'
  • clave Selection
    selection=[('1', '1 - Dividends and other income derived from the participation in own funds of entities.'), ('2', '2 - Interest and other income derived from the transfer to parties of own capital.'), ('3', '3 - Canons derived from patents, trademarks, drawings or models, plans, formulas or secret procedures.'), ('4', '4 - Fees derived from rights on literary and artistic works.'), ('5', '5 - Canons derived from rights on scientific works.'), ('6', '6 - Fees derived from rights on cinematographic films and recorded sound or visual works.'), ('7', '7 - Canons derived from information related to industrial, commercial or scientific experiences (know-how).'), ('8', '8 - Fees derived from rights on computer programs.'), ('9', '9 - Fees derived from personal rights susceptible to transfer, such as image rights.'), ('10', '10 - Canons derived from industrial, commercial or scientific equipment.'), ('11', '11 - Other canons not previously mentioned.'), ('12', '12 - Capital income from capitalization operations and life or disability insurance contracts.'), ('13', '13 - Other income from movable capital not mentioned above.'), ('14', '14 - Real estate performance.'), ('15', '15 - Performance of business activities.'), ('16', '16 - Rents derived from technical assistance benefits.'), ('17', '17 - Rents of artistic activities.'), ('18', '18 - Rents of sports activities.'), ('19', '19 - Rents of professional activities.'), ('20', '20 - Rents of work.'), ('21', '21 - Pensions and passive assets.'), ('22', '22 - Remuneration of administrators and members of boards of directors.'), ('23', '23 - Performance derived from reinsurance operations.'), ('24', '24 - Maritime or air navigation entities.'), ('25', '25 - Other rents')] string='Key'
  • codigo Selection
    selection=[('1', '1. Emisor code corresponds to an N.I.F.'), ('2', '2. Emisor code corresponds to an code I.S.I.N.'), ('3', '3. Emisor code corresponds to values foreign that have not been assigned I.S.I.N., whose emisor does not have a NIF')] string='Code'
  • codigo_emisor Char
    size=12 string='Emisor code'
  • complemento_domicilio Char
    size=40 string='Domicile Complement'
  • cuenta_valores Many2one → res.partner.bank
    comodel_name='res.partner.bank' string='Code Account Values'
  • domicilio Char
    size=50 string='Domicile'
  • fecha_devengo Date
    string='Devengo date'
  • fecha_devengo_export Char
    compute='_compute_get_fecha_devengo_export' string='Devengo date export'
  • fecha_nacimiento Date
    string='Date of birth'
  • fecha_nacimiento_export Char
    compute='_compute_get_fecha_nacimiento_export' string='Date of birth export'
  • fisica_juridica Selection
    selection=[('F', 'Physical person'), ('J', 'Legal person or entity')] string='F/J'
  • mediador Boolean
    string='Mediator'
  • mod296_id Many2one → l10n.es.aeat.mod296.report
    comodel_name='l10n.es.aeat.mod296.report' string='Mod 296'
  • move_line_ids Many2many → account.move.line
    comodel_name='account.move.line' string='Move Lines'
  • naturaleza Selection
    selection=[('D', 'Money income'), ('E', 'Income in kind')] string='Nature'
  • nif_pais_residencia Char
    size=20 string='Nif in the country of residence'
  • pago Selection
    selection=[('1', 'As transmitter'), ('2', 'As mediator')] string='Payment'
  • pais Many2one → res.country
    comodel_name='res.country' string='Country'
  • pais_nacimiento Many2one → res.country
    comodel_name='res.country' string='Country of birth'
  • pais_residencia_fiscal Many2one → res.country
    comodel_name='res.country' string='Country territory of fiscal residence'
  • partner_id Many2one → res.partner
    comodel_name='res.partner' string='Partner'
  • pendiente Boolean
    string='Pending'
  • poblacion Char
    size=30 string='Population/City'
  • porcentaje_retencion Float
    string='% retention'
  • provincia Many2one → res.country.state
    comodel_name='res.country.state' string='Province/Region/State'
  • retenciones_ingresos Float
    string='Retention and income on account'
  • subclave Selection
    selection=[('1', '1 - Retention practiced at the general rates or scales of taxation of article 25 of the rewritten text of the Non-Resident Income Tax Law.'), ('2', '2 - Retention practiced applying limits of imposition of Agreements.'), ('3', '3 - Internal exemption (mainly: article 14 of the revised text of the Law on Non-Resident Income Tax)'), ('4', '4 - Exemption by application of a Convention.'), ('5', '5 - No Retention for previous payment of the Tax by the taxpayer or his representative..'), ('6', '6 - The declared recipient is a foreign entity for the collective management of intellectual property rights, with a retention having applied the limit of taxation, or the exemption, of a Convention.'), ('7', '7 - The recipient is a taxpayer of the Personal Income Tax of the special regime applicable to workers displaced to Spanish territory.'), ('8', '8 - The declared recipient is an entity resident abroad that sells shares or units of Spanish collective investment institutions, with a withholding tax applying a limit of taxation established in the lower Agreement.'), ('9', '9 - The declared recipient is an entity residing abroad selling shares or participations of Spanish collective investment institutions, with a retention having applied the type of lien.')] string='Subkey'
  • tipo_codigo Selection
    selection=[('C', 'Identification with the Account Code Values (C.C.V.)'), ('O', 'Other identification')] string='Code type'
  • zip Char
    size=10 string='Postal Code'
Public methods (1)
  • onchange_partner(self)
    @api.onchange('partner_id')
REPOSITORY
REPOSITORYOCA/l10n-spain
GIT
GIThttps://github.com/OCA/l10n-spain.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-spain/tree/12.0/l10n_es_aeat_mod296
VERSION
VERSION 2.2.0
CATEGORY
CATEGORYLocalisation/Accounting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), AvanzOSC, Qubiq
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), AvanzOSC, Qubiq
COMMITTERS
COMMITTERSPedro M. Baeza, mreficent, OCA Transbot, oca-travis, OCA-git-bot
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-spain
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:29:12
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-financial-reporting:
    - account_tax_balance
OCA/l10n-spain:
    - l10n_es_aeat
    - l10n_es_aeat_mod216
    - l10n_es_irnr
OCA/server-ux:
    - date_range
odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - product
    - decimal_precision
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - http_routing
    - digest
    - base_iban
    - l10n_es
    - base_vat
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES OpenSSL
requests
unidecode
zeep
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
view_l10n_es_aeat_mod296_report_form l10n_es.aeat.mod296.report.form l10n.es.aeat.mod296.report group Inherits l10n_es_aeat.view_l10n_es_aeat_report_form
view_l10n_es_aeat_mod296_report_line_form l10n_es.aeat.mod296.report.line.form l10n.es.aeat.mod296.report.line form New
view_l10n_es_aeat_mod296_report_line_tree l10n_es.aeat.mod296.report.line.tree l10n.es.aeat.mod296.report.line tree New
view_l10n_es_aeat_mod296_report_tree l10n_es.aeat.mod296.report.tree l10n.es.aeat.mod296.report tree Inherits l10n_es_aeat.view_l10n_es_aeat_report_tree
Models touched (2)

New fields (5)
  • casilla_01 Integer
    help='[01] Summary of the data included in the statement - Total number of perceivers' readonly=True states={'calculated': [('readonly', False)]} string='[01] # Recipients'
  • casilla_02 Float
    help='[02] Summary of the data included in the statement - Base retention and income on account' readonly=True states={'calculated': [('readonly', False)]} string='[02] Base retentions'
  • casilla_03 Float
    help='[03] Summary of the data included in the statement - Retention and income on account' readonly=True states={'calculated': [('readonly', False)]} string='[03] Retentions'
  • casilla_04 Float
    help='[04] Summary of the data included in the statement - Retentions and income on account entered' readonly=True states={'calculated': [('readonly', False)]} string='[04] Retentions entered'
  • lines296 One2many → l10n.es.aeat.mod296.report.line
    string='Lines' args: 'l10n.es.aeat.mod296.report.line', 'mod296_id'
Public methods (2)
  • calculate(self)
    @api.multi
  • partner_group(self, move_lines_base_ids, move_lines_cuota_ids)
    @api.multi

New fields (31)
  • base_retenciones_ingresos Float
    string='Base retention and income on account'
  • ciudad_nacimiento Char
    size=35 string='Birth city'
  • clave Selection
    string='Key' args: [('1', '1 - Dividends and other income derived from the participation in own funds of entities.'), ('2', '2 - Interest and other income derived from the transfer to parties of own capital.'), ('3', '3 - Canons derived from patents, trademarks, drawings or models, plans, formulas or secret procedures.'), ('4', '4 - Fees derived from rights on literary and artistic works.'), ('5', '5 - Canons derived from rights on scientific works.'), ('6', '6 - Fees derived from rights on cinematographic films and recorded sound or visual works.'), ('7', '7 - Canons derived from information related to industrial, commercial or scientific experiences (know-how).'), ('8', '8 - Fees derived from rights on computer programs.'), ('9', '9 - Fees derived from personal rights susceptible to transfer, such as image rights.'), ('10', '10 - Canons derived from industrial, commercial or scientific equipment.'), ('11', '11 - Other canons not previously mentioned.'), ('12', '12 - Capital income from capitalization operations and life or disability insurance contracts.'), ('13', '13 - Other income from movable capital not mentioned above.'), ('14', '14 - Real estate performance.'), ('15', '15 - Performance of business activities.'), ('16', '16 - Rents derived from technical assistance benefits.'), ('17', '17 - Rents of artistic activities.'), ('18', '18 - Rents of sports activities.'), ('19', '19 - Rents of professional activities.'), ('20', '20 - Rents of work.'), ('21', '21 - Pensions and passive assets.'), ('22', '22 - Remuneration of administrators and members of boards of directors.'), ('23', '23 - Performance derived from reinsurance operations.'), ('24', '24 - Maritime or air navigation entities.'), ('25', '25 - Other rents')]
  • codigo Selection
    string='Code' args: [('1', '1. Emisor code corresponds to an N.I.F.'), ('2', '2. Emisor code corresponds to an code I.S.I.N.'), ('3', '3. Emisor code corresponds to values foreign that have not been assigned I.S.I.N., whose emisor does not have a NIF')]
  • codigo_emisor Char
    size=12 string='Emisor code'
  • complemento_domicilio Char
    size=40 string='Domicile Complement'
  • cuenta_valores Many2one → res.partner.bank
    string='Code Account Values' args: 'res.partner.bank'
  • domicilio Char
    size=50 string='Domicile'
  • fecha_devengo Date
    string='Devengo date'
  • fecha_devengo_export Char
    compute='_compute_get_fecha_devengo_export' string='Devengo date export'
  • fecha_nacimiento Date
    string='Date of birth'
  • fecha_nacimiento_export Char
    compute='_compute_get_fecha_nacimiento_export' string='Date of birth export'
  • fisica_juridica Selection
    string='F/J' args: [('F', 'Physical person'), ('J', 'Legal person or entity')]
  • mediador Boolean
    string='Mediator'
  • mod296_id Many2one → l10n.es.aeat.mod296.report
    string='Mod 296' args: 'l10n.es.aeat.mod296.report'
  • move_line_ids Many2many → account.move.line
    string='Move Lines' args: 'account.move.line'
  • naturaleza Selection
    string='Nature' args: [('D', 'Money income'), ('E', 'Income in kind')]
  • nif_pais_residencia Char
    size=20 string='Nif in the country of residence'
  • pago Selection
    string='Payment' args: [('1', 'As transmitter'), ('2', 'As mediator')]
  • pais Many2one → res.country
    string='Country' args: 'res.country'
  • pais_nacimiento Many2one → res.country
    string='Country of birth' args: 'res.country'
  • pais_residencia_fiscal Many2one → res.country
    string='Country territory of fiscal residence' args: 'res.country'
  • partner_id Many2one → res.partner
    string='Partner' args: 'res.partner'
  • pendiente Boolean
    string='Pending'
  • poblacion Char
    size=30 string='Population/City'
  • porcentaje_retencion Float
    string='% retention'
  • provincia Many2one → res.country.state
    string='Province/Region/State' args: 'res.country.state'
  • retenciones_ingresos Float
    string='Retention and income on account'
  • subclave Selection
    string='Subkey' args: [('1', '1 - Retention practiced at the general rates or scales of taxation of article 25 of the rewritten text of the Non-Resident Income Tax Law.'), ('2', '2 - Retention practiced applying limits of imposition of Agreements.'), ('3', '3 - Internal exemption (mainly: article 14 of the revised text of the Law on Non-Resident Income Tax)'), ('4', '4 - Exemption by application of a Convention.'), ('5', '5 - No Retention for previous payment of the Tax by the taxpayer or his representative..'), ('6', '6 - The declared recipient is a foreign entity for the collective management of intellectual property rights, with a retention having applied the limit of taxation, or the exemption, of a Convention.'), ('7', '7 - The recipient is a taxpayer of the Personal Income Tax of the special regime applicable to workers displaced to Spanish territory.'), ('8', '8 - The declared recipient is an entity resident abroad that sells shares or units of Spanish collective investment institutions, with a withholding tax applying a limit of taxation established in the lower Agreement.'), ('9', '9 - The declared recipient is an entity residing abroad selling shares or participations of Spanish collective investment institutions, with a retention having applied the type of lien.')]
  • tipo_codigo Selection
    string='Code type' args: [('C', 'Identification with the Account Code Values (C.C.V.)'), ('O', 'Other identification')]
  • zip Char
    size=10 string='Postal Code'
Public methods (1)
  • onchange_partner(self)
    @api.multi@api.onchange('partner_id')
REPOSITORY
REPOSITORYOCA/l10n-spain
GIT
GIThttps://github.com/OCA/l10n-spain.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-spain/tree/11.0/l10n_es_aeat_mod296
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYLocalisation/Accounting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), AvanzOSC, Qubiq
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), AvanzOSC, Qubiq
COMMITTERS
COMMITTERSPedro M. Baeza, OCA Transbot, oca-travis, OCA-git-bot
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-spain
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:23:55
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-financial-reporting:
    - account_tax_balance
OCA/l10n-spain:
    - l10n_es_aeat
    - l10n_es_aeat_mod216
    - l10n_es_irnr
OCA/server-ux:
    - date_range
odoo/odoo:
    - account_invoicing
    - account
    - base_setup
    - base
    - web
    - product
    - decimal_precision
    - mail
    - bus
    - web_tour
    - analytic
    - web_planner
    - portal
    - http_routing
    - base_iban
    - l10n_es
    - base_vat
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES unidecode
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
view_l10n_es_aeat_mod296_report_form l10n_es.aeat.mod296.report.form l10n.es.aeat.mod296.report group Inherits l10n_es_aeat.view_l10n_es_aeat_report_form
view_l10n_es_aeat_mod296_report_line_form l10n_es.aeat.mod296.report.line.form l10n.es.aeat.mod296.report.line form New
view_l10n_es_aeat_mod296_report_line_tree l10n_es.aeat.mod296.report.line.tree l10n.es.aeat.mod296.report.line tree New
view_l10n_es_aeat_mod296_report_tree l10n_es.aeat.mod296.report.tree l10n.es.aeat.mod296.report tree Inherits l10n_es_aeat.view_l10n_es_aeat_report_tree
Models touched (2)

New fields (5)
  • casilla_01 Integer
    help='[01] Summary of the data included in the statement - Total number of perceivers' readonly=True states={'calculated': [('readonly', False)]} string='[01] # Recipients'
  • casilla_02 Float
    help='[02] Summary of the data included in the statement - Base retention and income on account' readonly=True states={'calculated': [('readonly', False)]} string='[02] Base retentions'
  • casilla_03 Float
    help='[03] Summary of the data included in the statement - Retention and income on account' readonly=True states={'calculated': [('readonly', False)]} string='[03] Retentions'
  • casilla_04 Float
    help='[04] Summary of the data included in the statement - Retentions and income on account entered' readonly=True states={'calculated': [('readonly', False)]} string='[04] Retentions entered'
  • lines296 One2many → l10n.es.aeat.mod296.report.line
    string='Lines' args: 'l10n.es.aeat.mod296.report.line', 'mod296_id'
Public methods (2)
  • calculate(self)
    @api.multi
  • partner_group(self, move_lines_base_ids, move_lines_cuota_ids)
    @api.multi

New fields (31)
  • base_retenciones_ingresos Float
    string='Base retention and income on account'
  • ciudad_nacimiento Char
    size=35 string='Birth city'
  • clave Selection
    string='Key' args: [('1', '1 - Dividends and other income derived from the participation in own funds of entities.'), ('2', '2 - Interest and other income derived from the transfer to parties of own capital.'), ('3', '3 - Canons derived from patents, trademarks, drawings or models, plans, formulas or secret procedures.'), ('4', '4 - Fees derived from rights on literary and artistic works.'), ('5', '5 - Canons derived from rights on scientific works.'), ('6', '6 - Fees derived from rights on cinematographic films and recorded sound or visual works.'), ('7', '7 - Canons derived from information related to industrial, commercial or scientific experiences (know-how).'), ('8', '8 - Fees derived from rights on computer programs.'), ('9', '9 - Fees derived from personal rights susceptible to transfer, such as image rights.'), ('10', '10 - Canons derived from industrial, commercial or scientific equipment.'), ('11', '11 - Other canons not previously mentioned.'), ('12', '12 - Capital income from capitalization operations and life or disability insurance contracts.'), ('13', '13 - Other income from movable capital not mentioned above.'), ('14', '14 - Real estate performance.'), ('15', '15 - Performance of business activities.'), ('16', '16 - Rents derived from technical assistance benefits.'), ('17', '17 - Rents of artistic activities.'), ('18', '18 - Rents of sports activities.'), ('19', '19 - Rents of professional activities.'), ('20', '20 - Rents of work.'), ('21', '21 - Pensions and passive assets.'), ('22', '22 - Remuneration of administrators and members of boards of directors.'), ('23', '23 - Performance derived from reinsurance operations.'), ('24', '24 - Maritime or air navigation entities.'), ('25', '25 - Other rents')]
  • codigo Selection
    string='Code' args: [('1', '1. Emisor code corresponds to an N.I.F.'), ('2', '2. Emisor code corresponds to an code I.S.I.N.'), ('3', '3. Emisor code corresponds to values foreign that have not been assigned I.S.I.N., whose emisor does not have a NIF')]
  • codigo_emisor Char
    size=12 string='Emisor code'
  • complemento_domicilio Char
    size=40 string='Domicile Complement'
  • cuenta_valores Many2one → res.partner.bank
    string='Code Account Values' args: 'res.partner.bank'
  • domicilio Char
    size=50 string='Domicile'
  • fecha_devengo Date
    string='Devengo date'
  • fecha_devengo_export Char
    compute='_compute_get_fecha_devengo_export' string='Devengo date export'
  • fecha_nacimiento Date
    string='Date of birth'
  • fecha_nacimiento_export Char
    compute='_compute_get_fecha_nacimiento_export' string='Date of birth export'
  • fisica_juridica Selection
    string='F/J' args: [('F', 'Physical person'), ('J', 'Legal person or entity')]
  • mediador Boolean
    string='Mediator'
  • mod296_id Many2one → l10n.es.aeat.mod296.report
    string='Mod 296' args: 'l10n.es.aeat.mod296.report'
  • move_line_ids Many2many → account.move.line
    string='Move Lines' args: 'account.move.line'
  • naturaleza Selection
    string='Nature' args: [('D', 'Money income'), ('E', 'Income in kind')]
  • nif_pais_residencia Char
    size=20 string='Nif in the country of residence'
  • pago Selection
    string='Payment' args: [('1', 'As transmitter'), ('2', 'As mediator')]
  • pais Many2one → res.country
    string='Country' args: 'res.country'
  • pais_nacimiento Many2one → res.country
    string='Country of birth' args: 'res.country'
  • pais_residencia_fiscal Many2one → res.country
    string='Country territory of fiscal residence' args: 'res.country'
  • partner_id Many2one → res.partner
    string='Partner' args: 'res.partner'
  • pendiente Boolean
    string='Pending'
  • poblacion Char
    size=30 string='Population/City'
  • porcentaje_retencion Float
    string='% retention'
  • provincia Many2one → res.country.state
    string='Province/Region/State' args: 'res.country.state'
  • retenciones_ingresos Float
    string='Retention and income on account'
  • subclave Selection
    string='Subkey' args: [('1', '1 - Retention practiced at the general rates or scales of taxation of article 25 of the rewritten text of the Non-Resident Income Tax Law.'), ('2', '2 - Retention practiced applying limits of imposition of Agreements.'), ('3', '3 - Internal exemption (mainly: article 14 of the revised text of the Law on Non-Resident Income Tax)'), ('4', '4 - Exemption by application of a Convention.'), ('5', '5 - No Retention for previous payment of the Tax by the taxpayer or his representative..'), ('6', '6 - The declared recipient is a foreign entity for the collective management of intellectual property rights, with a retention having applied the limit of taxation, or the exemption, of a Convention.'), ('7', '7 - The recipient is a taxpayer of the Personal Income Tax of the special regime applicable to workers displaced to Spanish territory.'), ('8', '8 - The declared recipient is an entity resident abroad that sells shares or units of Spanish collective investment institutions, with a withholding tax applying a limit of taxation established in the lower Agreement.'), ('9', '9 - The declared recipient is an entity residing abroad selling shares or participations of Spanish collective investment institutions, with a retention having applied the type of lien.')]
  • tipo_codigo Selection
    string='Code type' args: [('C', 'Identification with the Account Code Values (C.C.V.)'), ('O', 'Other identification')]
  • zip Char
    size=10 string='Postal Code'
Public methods (1)
  • onchange_partner(self)
    @api.multi@api.onchange('partner_id')
REPOSITORY
REPOSITORYOCA/l10n-spain
GIT
GIThttps://github.com/OCA/l10n-spain.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-spain/tree/10.0/l10n_es_aeat_mod296
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYLocalisation/Accounting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), AvanzOSC, Qubiq 2010 S.L
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), AvanzOSC, Qubiq 2010 S.L
COMMITTERS
COMMITTERSPedro M. Baeza, OCA Transbot, oca-travis, OCA-git-bot, OCA Git Bot
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-spain
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:19:53
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-financial-reporting:
    - account_tax_balance
OCA/l10n-spain:
    - l10n_es_aeat
    - l10n_es_aeat_mod216
    - l10n_es_aeat_mod111
    - l10n_es
OCA/server-tools:
    - date_range
odoo/odoo:
    - account
    - base_setup
    - base
    - web_kanban
    - web
    - product
    - decimal_precision
    - mail
    - bus
    - web_tour
    - report
    - analytic
    - web_planner
    - base_iban
    - base_vat
    - l10n_es
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES unidecode
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
view_l10n_es_aeat_mod296_report_form l10n_es.aeat.mod296.report.form l10n.es.aeat.mod296.report group Inherits l10n_es_aeat.view_l10n_es_aeat_report_form
view_l10n_es_aeat_mod296_report_line_form l10n_es.aeat.mod296.report.line.form l10n.es.aeat.mod296.report.line form New
view_l10n_es_aeat_mod296_report_line_tree l10n_es.aeat.mod296.report.line.tree l10n.es.aeat.mod296.report.line tree New
view_l10n_es_aeat_mod296_report_tree l10n_es.aeat.mod296.report.tree l10n.es.aeat.mod296.report tree Inherits l10n_es_aeat.view_l10n_es_aeat_report_tree
Models touched (2)

New fields (5)
  • casilla_01 Integer
    help='[01] Summary of the data included in the statement - Total number of perceivers' readonly=True states={'calculated': [('readonly', False)]} string='[01] # Recipients'
  • casilla_02 Float
    help='[02] Summary of the data included in the statement - Base retention and income on account' readonly=True states={'calculated': [('readonly', False)]} string='[02] Base retentions'
  • casilla_03 Float
    help='[03] Summary of the data included in the statement - Retention and income on account' readonly=True states={'calculated': [('readonly', False)]} string='[03] Retentions'
  • casilla_04 Float
    help='[04] Summary of the data included in the statement - Retentions and income on account entered' readonly=True states={'calculated': [('readonly', False)]} string='[04] Retentions entered'
  • lines296 One2many → l10n.es.aeat.mod296.report.line
    string='Lines' args: 'l10n.es.aeat.mod296.report.line', 'mod296_id'
Public methods (2)
  • calculate(self)
    @api.multi
  • partner_group(self, move_lines_base_ids, move_lines_cuota_ids)
    @api.multi

New fields (31)
  • base_retenciones_ingresos Float
    string='Base retention and income on account'
  • ciudad_nacimiento Char
    size=35 string='Birth city'
  • clave Selection
    string='Key' args: [('1', '1 - Dividends and other income derived from the participation in own funds of entities.'), ('2', '2 - Interest and other income derived from the transfer to parties of own capital.'), ('3', '3 - Canons derived from patents, trademarks, drawings or models, plans, formulas or secret procedures.'), ('4', '4 - Fees derived from rights on literary and artistic works.'), ('5', '5 - Canons derived from rights on scientific works.'), ('6', '6 - Fees derived from rights on cinematographic films and recorded sound or visual works.'), ('7', '7 - Canons derived from information related to industrial, commercial or scientific experiences (know-how).'), ('8', '8 - Fees derived from rights on computer programs.'), ('9', '9 - Fees derived from personal rights susceptible to transfer, such as image rights.'), ('10', '10 - Canons derived from industrial, commercial or scientific equipment.'), ('11', '11 - Other canons not previously mentioned.'), ('12', '12 - Capital income from capitalization operations and life or disability insurance contracts.'), ('13', '13 - Other income from movable capital not mentioned above.'), ('14', '14 - Real estate performance.'), ('15', '15 - Performance of business activities.'), ('16', '16 - Rents derived from technical assistance benefits.'), ('17', '17 - Rents of artistic activities.'), ('18', '18 - Rents of sports activities.'), ('19', '19 - Rents of professional activities.'), ('20', '20 - Rents of work.'), ('21', '21 - Pensions and passive assets.'), ('22', '22 - Remuneration of administrators and members of boards of directors.'), ('23', '23 - Performance derived from reinsurance operations.'), ('24', '24 - Maritime or air navigation entities.'), ('25', '25 - Other rents')]
  • codigo Selection
    string='Code' args: [('1', '1. Emisor code corresponds to an N.I.F.'), ('2', '2. Emisor code corresponds to an code I.S.I.N.'), ('3', '3. Emisor code corresponds to values foreign that have not been assigned I.S.I.N., whose emisor does not have a NIF')]
  • codigo_emisor Char
    size=12 string='Emisor code'
  • complemento_domicilio Char
    size=40 string='Domicile Complement'
  • cuenta_valores Many2one → res.partner.bank
    string='Code Account Values' args: 'res.partner.bank'
  • domicilio Char
    size=50 string='Domicile'
  • fecha_devengo Date
    string='Devengo date'
  • fecha_devengo_export Char
    compute='_compute_get_fecha_devengo_export' string='Devengo date export'
  • fecha_nacimiento Date
    string='Date of birth'
  • fecha_nacimiento_export Char
    compute='_compute_get_fecha_nacimiento_export' string='Date of birth export'
  • fisica_juridica Selection
    string='F/J' args: [('F', 'Physical person'), ('J', 'Legal person or entity')]
  • mediador Boolean
    string='Mediator'
  • mod296_id Many2one → l10n.es.aeat.mod296.report
    string='Mod 296' args: 'l10n.es.aeat.mod296.report'
  • move_line_ids Many2many → account.move.line
    string='Move Lines' args: 'account.move.line'
  • naturaleza Selection
    string='Nature' args: [('D', 'Money income'), ('E', 'Income in kind')]
  • nif_pais_residencia Char
    size=20 string='Nif in the country of residence'
  • pago Selection
    string='Payment' args: [('1', 'As transmitter'), ('2', 'As mediator')]
  • pais Many2one → res.country
    string='Country' args: 'res.country'
  • pais_nacimiento Many2one → res.country
    string='Country of birth' args: 'res.country'
  • pais_residencia_fiscal Many2one → res.country
    string='Country territory of fiscal residence' args: 'res.country'
  • partner_id Many2one → res.partner
    string='Partner' args: 'res.partner'
  • pendiente Boolean
    string='Pending'
  • poblacion Char
    size=30 string='Population/City'
  • porcentaje_retencion Float
    string='% retention'
  • provincia Many2one → res.country.state
    string='Province/Region/State' args: 'res.country.state'
  • retenciones_ingresos Float
    string='Retention and income on account'
  • subclave Selection
    string='Subkey' args: [('1', '1 - Retention practiced at the general rates or scales of taxation of article 25 of the rewritten text of the Non-Resident Income Tax Law.'), ('2', '2 - Retention practiced applying limits of imposition of Agreements.'), ('3', '3 - Internal exemption (mainly: article 14 of the revised text of the Law on Non-Resident Income Tax)'), ('4', '4 - Exemption by application of a Convention.'), ('5', '5 - No Retention for previous payment of the Tax by the taxpayer or his representative..'), ('6', '6 - The declared recipient is a foreign entity for the collective management of intellectual property rights, with a retention having applied the limit of taxation, or the exemption, of a Convention.'), ('7', '7 - The recipient is a taxpayer of the Personal Income Tax of the special regime applicable to workers displaced to Spanish territory.'), ('8', '8 - The declared recipient is an entity resident abroad that sells shares or units of Spanish collective investment institutions, with a withholding tax applying a limit of taxation established in the lower Agreement.'), ('9', '9 - The declared recipient is an entity residing abroad selling shares or participations of Spanish collective investment institutions, with a retention having applied the type of lien.')]
  • tipo_codigo Selection
    string='Code type' args: [('C', 'Identification with the Account Code Values (C.C.V.)'), ('O', 'Other identification')]
  • zip Char
    size=10 string='Postal Code'
Public methods (1)
  • onchange_partner(self)
    @api.multi@api.onchange('partner_id')
REPOSITORY
REPOSITORYOCA/l10n-spain
GIT
GIThttps://github.com/OCA/l10n-spain.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-spain/tree/9.0/l10n_es_aeat_mod296
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYLocalisation/Accounting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), AvanzOSC, Qubiq 2010 S.L
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), AvanzOSC, Qubiq 2010 S.L
COMMITTERS
COMMITTERSPedro M. Baeza, OCA Transbot, oca-travis, Weblate, OCA-git-bot, OCA Git Bot
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-spain
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:15:18
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-financial-reporting:
    - account_tax_balance
OCA/l10n-spain:
    - l10n_es_aeat
    - l10n_es_aeat_mod216
    - l10n_es_aeat_mod111
    - l10n_es
OCA/server-tools:
    - date_range
odoo/odoo:
    - account
    - base_setup
    - base
    - web_kanban
    - web
    - product
    - decimal_precision
    - mail
    - bus
    - report
    - analytic
    - web_tip
    - web_planner
    - base_iban
    - base_vat
    - l10n_es
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES unidecode
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
view_l10n_es_aeat_mod296_report_form l10n_es.aeat.mod296.report.form l10n.es.aeat.mod296.report group Inherits l10n_es_aeat.view_l10n_es_aeat_report_form
view_l10n_es_aeat_mod296_report_line_form l10n_es.aeat.mod296.report.line.form l10n.es.aeat.mod296.report.line form New
view_l10n_es_aeat_mod296_report_line_tree l10n_es.aeat.mod296.report.line.tree l10n.es.aeat.mod296.report.line tree New
view_l10n_es_aeat_mod296_report_tree l10n_es.aeat.mod296.report.tree l10n.es.aeat.mod296.report tree Inherits l10n_es_aeat.view_l10n_es_aeat_report_tree
Models touched (2)

New fields (5)
  • casilla_01 Integer
    help='[01] Summary of the data included in the statement - Total number of perceivers' readonly=True states={'calculated': [('readonly', False)]} string='[01] # Recipients'
  • casilla_02 Float
    help='[02] Summary of the data included in the statement - Base retention and income on account' readonly=True states={'calculated': [('readonly', False)]} string='[02] Base retentions'
  • casilla_03 Float
    help='[03] Summary of the data included in the statement - Retention and income on account' readonly=True states={'calculated': [('readonly', False)]} string='[03] Retentions'
  • casilla_04 Float
    help='[04] Summary of the data included in the statement - Retentions and income on account entered' readonly=True states={'calculated': [('readonly', False)]} string='[04] Retentions entered'
  • lines296 One2many → l10n.es.aeat.mod296.report.line
    string='Lines' args: 'l10n.es.aeat.mod296.report.line', 'mod296_id'
Public methods (2)
  • calculate(self)
    @api.multi
  • partner_group(self, move_lines_base_ids, move_lines_cuota_ids)
    @api.multi

New fields (31)
  • base_retenciones_ingresos Float
    string='Base retention and income on account'
  • ciudad_nacimiento Char
    size=35 string='Birth city'
  • clave Selection
    string='Key' args: [('1', '1 - Dividends and other income derived from the participation in own funds of entities.'), ('2', '2 - Interest and other income derived from the transfer to parties of own capital.'), ('3', '3 - Canons derived from patents, trademarks, drawings or models, plans, formulas or secret procedures.'), ('4', '4 - Fees derived from rights on literary and artistic works.'), ('5', '5 - Canons derived from rights on scientific works.'), ('6', '6 - Fees derived from rights on cinematographic films and recorded sound or visual works.'), ('7', '7 - Canons derived from information related to industrial, commercial or scientific experiences (know-how).'), ('8', '8 - Fees derived from rights on computer programs.'), ('9', '9 - Fees derived from personal rights susceptible to transfer, such as image rights.'), ('10', '10 - Canons derived from industrial, commercial or scientific equipment.'), ('11', '11 - Other canons not previously mentioned.'), ('12', '12 - Capital income from capitalization operations and life or disability insurance contracts.'), ('13', '13 - Other income from movable capital not mentioned above.'), ('14', '14 - Real estate performance.'), ('15', '15 - Performance of business activities.'), ('16', '16 - Rents derived from technical assistance benefits.'), ('17', '17 - Rents of artistic activities.'), ('18', '18 - Rents of sports activities.'), ('19', '19 - Rents of professional activities.'), ('20', '20 - Rents of work.'), ('21', '21 - Pensions and passive assets.'), ('22', '22 - Remuneration of administrators and members of boards of directors.'), ('23', '23 - Performance derived from reinsurance operations.'), ('24', '24 - Maritime or air navigation entities.'), ('25', '25 - Other rents')]
  • codigo Selection
    string='Code' args: [('1', '1. Emisor code corresponds to an N.I.F.'), ('2', '2. Emisor code corresponds to an code I.S.I.N.'), ('3', '3. Emisor code corresponds to values foreign that have not been assigned I.S.I.N., whose emisor does not have a NIF')]
  • codigo_emisor Char
    size=12 string='Emisor code'
  • complemento_domicilio Char
    size=40 string='Domicile Complement'
  • cuenta_valores Many2one → res.partner.bank
    string='Code Account Values' args: 'res.partner.bank'
  • domicilio Char
    size=50 string='Domicile'
  • fecha_devengo Date
    string='Devengo date'
  • fecha_devengo_export Char
    compute='_compute_get_fecha_devengo_export' string='Devengo date export'
  • fecha_nacimiento Date
    string='Date of birth'
  • fecha_nacimiento_export Char
    compute='_compute_get_fecha_nacimiento_export' string='Date of birth export'
  • fisica_juridica Selection
    string='F/J' args: [('F', 'Physical person'), ('J', 'Legal person or entity')]
  • mediador Boolean
    string='Mediator'
  • mod296_id Many2one → l10n.es.aeat.mod296.report
    string='Mod 296' args: 'l10n.es.aeat.mod296.report'
  • move_line_ids Many2many → account.move.line
    string='Move Lines' args: 'account.move.line'
  • naturaleza Selection
    string='Nature' args: [('D', 'Money income'), ('E', 'Income in kind')]
  • nif_pais_residencia Char
    size=20 string='Nif in the country of residence'
  • pago Selection
    string='Payment' args: [('1', 'As transmitter'), ('2', 'As mediator')]
  • pais Many2one → res.country
    string='Country' args: 'res.country'
  • pais_nacimiento Many2one → res.country
    string='Country of birth' args: 'res.country'
  • pais_residencia_fiscal Many2one → res.country
    string='Country territory of fiscal residence' args: 'res.country'
  • partner_id Many2one → res.partner
    string='Partner' args: 'res.partner'
  • pendiente Boolean
    string='Pending'
  • poblacion Char
    size=30 string='Population/City'
  • porcentaje_retencion Float
    string='% retention'
  • provincia Many2one → res.country.state
    string='Province/Region/State' args: 'res.country.state'
  • retenciones_ingresos Float
    string='Retention and income on account'
  • subclave Selection
    string='Subkey' args: [('1', '1 - Retention practiced at the general rates or scales of taxation of article 25 of the rewritten text of the Non-Resident Income Tax Law.'), ('2', '2 - Retention practiced applying limits of imposition of Agreements.'), ('3', '3 - Internal exemption (mainly: article 14 of the revised text of the Law on Non-Resident Income Tax)'), ('4', '4 - Exemption by application of a Convention.'), ('5', '5 - No Retention for previous payment of the Tax by the taxpayer or his representative..'), ('6', '6 - The declared recipient is a foreign entity for the collective management of intellectual property rights, with a retention having applied the limit of taxation, or the exemption, of a Convention.'), ('7', '7 - The recipient is a taxpayer of the Personal Income Tax of the special regime applicable to workers displaced to Spanish territory.'), ('8', '8 - The declared recipient is an entity resident abroad that sells shares or units of Spanish collective investment institutions, with a withholding tax applying a limit of taxation established in the lower Agreement.'), ('9', '9 - The declared recipient is an entity residing abroad selling shares or participations of Spanish collective investment institutions, with a retention having applied the type of lien.')]
  • tipo_codigo Selection
    string='Code type' args: [('C', 'Identification with the Account Code Values (C.C.V.)'), ('O', 'Other identification')]
  • zip Char
    size=10 string='Postal Code'
Public methods (1)
  • onchange_partner(self)
    @api.multi@api.onchange('partner_id')
REPOSITORY
REPOSITORYOCA/l10n-spain
GIT
GIThttps://github.com/OCA/l10n-spain.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-spain/tree/8.0/l10n_es_aeat_mod296
VERSION
VERSION 1.3.0
CATEGORY
CATEGORYLocalisation/Accounting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), AvanzOSC, Antiun Ingeniería S.L., Serv. Tecnol. Avanzados - Pedro M. Baeza
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), AvanzOSC, Antiun Ingeniería S.L., Serv. Tecnol. Avanzados - Pedro M. Baeza
COMMITTERS
COMMITTERSStéphane Bidoul, Pedro M. Baeza, Jairo Llopis, Stéphane Bidoul (ACSONE), cubells, OCA Transbot, Hugo Santos, oca-travis, agaldona, Antonio Espinosa, Jose Maria Alzaga
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-spain
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:11:19
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/l10n-spain:
    - l10n_es_aeat
    - l10n_es_aeat_mod216
    - l10n_es_aeat_mod111
odoo/odoo:
    - account
    - base_setup
    - base
    - web_kanban
    - web
    - product
    - decimal_precision
    - mail
    - report
    - analytic
    - board
    - edi
    - email_template
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES unidecode
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
view_l10n_es_aeat_mod296_report_form l10n_es.aeat.mod296.report.form l10n.es.aeat.mod296.report button Inherits l10n_es_aeat.view_l10n_es_aeat_report_form
view_l10n_es_aeat_mod296_report_line_form l10n_es.aeat.mod296.report.line.form l10n.es.aeat.mod296.report.line form New
view_l10n_es_aeat_mod296_report_line_tree l10n_es.aeat.mod296.report.line.tree l10n.es.aeat.mod296.report.line tree New
view_l10n_es_aeat_mod296_report_tree l10n_es.aeat.mod296.report.tree l10n.es.aeat.mod296.report tree Inherits l10n_es_aeat.view_l10n_es_aeat_report_tree
Models touched (3)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (7)
  • casilla_01 Integer
    help='Casilla [01] Resumen de los datos incluidos en la declaración - Número total de perceptores' readonly=True states={'calculated': [('readonly', False)]} string='[01] Número de perceptores'
  • casilla_02 Float
    help='Casilla [02] Resumen de los datos incluidos en la declaración - Base retenciones e ingresos a cuenta' readonly=True states={'calculated': [('readonly', False)]} string='[02] Base retenciones'
  • casilla_03 Float
    help='Casilla [03] Resumen de los datos incluidos en la declaración - Retenciones e ingresos a cuenta' readonly=True states={'calculated': [('readonly', False)]} string='[03] Retenciones'
  • casilla_04 Float
    help='Casilla [04] Resumen de los datos incluidos en la declaración - Retenciones e ingresos a cuenta ingresados' readonly=True states={'calculated': [('readonly', False)]} string='[04] Retenciones ingresadas'
  • currency_id Many2one → res.currency
    comodel_name='res.currency' readonly=True related='company_id.currency_id' store=True string='Moneda'
  • lines296 One2many → l10n.es.aeat.mod296.report.line
    string='Lines' args: 'l10n.es.aeat.mod296.report.line', 'mod296_id'
  • number Char
    default='296'
Public methods (1)
  • calculate(self)
    @api.multi

New fields (30)
  • base_retenciones_ingresos Float
    string='Base retenciones e ingresos a cuenta'
  • ciudad_nacimiento Char
    size=35 string='Ciudad nacimiento'
  • clave Selection
    string='Clave' args: [('1', '1 - Dividendos y otras rentas derivadas de la participación en fondos propios de entidades.'), ('2', '2 - Intereses y otras rentas derivadas de la cesión a terceros de capitales propios.'), ('3', '3 - Cánones derivados de patentes, marcas de fábrica o de comercio, dibujos o meodelos, planos, fórmulas o procedimientos secretos.'), ('4', '4 - Cánones derivados de derechos sobre obras literarias y artísticas.'), ('5', '5 - Cánones derivados de derechos sobre obras científicas.'), ('6', '6 - Cánones derivados de derechos sobre películas cinematográficas y obras sonoras o visuales grabadas.'), ('7', '7 - Cánones derivados de informaciones relativas a experiencias industriales, comerciales o científicas (know-how).'), ('8', '8 - Cánones derivados de derechos sobre programas informáticos.'), ('9', '9 - Cánones derivados de derechos personales susceptibles de cesión, tales como los derechos de imagen.'), ('10', '10 - Cánones derivados de equipos industriales, comerciales o científicos.'), ('11', '11 - Otros cánones no relacionados anteriormente.'), ('12', '12 - Rendimientos de capital mobiliario de operaciones de capitalización y de contratos de seguros de vida o invalidez.'), ('13', '13 - Otros rendimientos de capital mobiliario no citados anteriormente.'), ('14', '14 - Rendimientos de bienes inmuebles.'), ('15', '15 - Rendimientos de actividades empresariales.'), ('16', '16 - Rentas derivadas de prestaciones de asistencia técnica.'), ('17', '17 - Rentas de actividades artísticas.'), ('18', '18 - Rentas de actividades deportivas.'), ('19', '19 - Rentas de actividades profesionales.'), ('20', '20 - Rentas del trabajo.'), ('21', '21 - Pensiones y haberes pasivos.'), ('22', '22 - Retribuciones de administradores y miembros de consejos de Administración.'), ('23', '23 - Rendimientos derivados de operaciones de reaseguros.'), ('24', '24 - Entidades de navegación marítima o aérea.'), ('25', '25 - Otras rentas')]
  • codigo Selection
    string='Código' args: [('1', '1. El código emisor corresponde a un N.I.F.'), ('2', '2. El código emisor corresponde a un código I.S.I.N.'), ('3', '3. El código emisor corresponde a valores extranjeros que no tienen asignado I.S.I.N., cuyo emisor no dispone de NIF')]
  • codigo_emisor Char
    size=12 string='Código emisor'
  • complemento_domicilio Char
    size=40 string='Complemento del domicilio'
  • cuenta_valores Many2one → res.partner.bank
    string='Código Cuenta Valores' args: 'res.partner.bank'
  • domicilio Char
    size=50 string='Domicilio'
  • ejercicio_devengo Many2one → account.fiscalyear
    string='Ejercicio devengo' args: 'account.fiscalyear'
  • fecha_devengo Date
    string='Fecha devengo'
  • fecha_nacimiento Date
    string='Fecha de nacimiento'
  • fisica_juridica Selection
    string='F/J' args: [('F', 'Persona fisica'), ('J', 'Persona Juridica o entidad')]
  • mediador Boolean
    string='Mediador'
  • mod296_id Many2one → l10n.es.aeat.mod296.report
    string='Mod 296' args: 'l10n.es.aeat.mod296.report'
  • move_line_ids Many2many → account.move.line
    string='Move Lines' args: 'account.move.line'
  • naturaleza Selection
    string='Naturaleza' args: [('D', 'Renta dineraria'), ('E', 'Renta en especie')]
  • nif_pais_residencia Char
    size=20 string='Nif en el país de residencia'
  • pago Selection
    string='Pago' args: [('1', 'Como emisor'), ('2', 'Como mediador')]
  • pais Many2one → res.country
    string='Pais' args: 'res.country'
  • pais_nacimiento Many2one → res.country
    string='Pais nacimiento' args: 'res.country'
  • pais_residencia_fiscal Many2one → res.country
    string='Pais o territorio de residencia fiscal' args: 'res.country'
  • partner_id Many2one → res.partner
    string='Partner' args: 'res.partner'
  • pendiente Boolean
    string='Pendiente'
  • poblacion Char
    size=30 string='Problación/Ciudad'
  • porcentaje_retencion Float
    string='% retención'
  • provincia Many2one → res.country.state
    string='Provincia/Región/Estado' args: 'res.country.state'
  • retenciones_ingresos Float
    string='Retenciones e ingresos a cuenta'
  • subclave Selection
    string='Subclave' args: [('1', '1 - Retención practicada a los tipos generales o escalas de tributación del artículo 25 del texto refundido de la Ley del Impuesto sobre la Renta de no Residentes.'), ('2', '2 - Retención practicada aplicando límites de imposición de Convenios.'), ('3', '3 - Exención interna (principalmente: artículo 14 del texto refundido de la Ley del Impuesto sobre la Renta de no Residentes)'), ('4', '4 - Exención por aplicación de un Convenio.'), ('5', '5 - Sin retención por previo pago del Impuesto por el contribuyente o su representante.'), ('6', '6 - El perceptor declarado es una entidad extranjera de gestión colectiva de derechos de la propiedad intelectual, habiéndose practicado retención aplicando el límite de imposición, o la exención, de un Convenio.'), ('7', '7 - El perceptor es un contribuyente del Impuesto sobre la Renta de las Personas Físicas del régimen especial aplicable a los trabajadores desplazados a territorio español.'), ('8', '8 - El perceptor declarado es una entidad residente en el extranjero comercializadora de acciones o participaciones de instituciones de inversión colectiva españolas, habiéndose practicado retención aplicando un límite de imposición fijado en el Convenio inferior.'), ('9', '9 - El perceptor declarado es una entidad residente en el extranjero comercializadora de acciones o participaciones de instituciones de inversión colectiva españoas, habiéndose practicado retención aplicando el tipo de gravamen.')]
  • tipo_codigo Selection
    string='Tipo código' args: [('C', 'Identificación con el Código Cuenta Valores (C.C.V.)'), ('O', 'Otra identificación')]
  • zip Char
    size=10 string='Código postal'
Public methods (1)
  • onchange_partner(self)
    @api.one@api.onchange('partner_id')