aeat.domain.contribuyente._renta_codes module

Closed AEAT Renta profile-code vocabularies.

These enums model the small code sets consumed by the Modelo 100 profile bindings. They are intentionally domain-owned so CLI and wizard surfaces can expose accepted values without hard-coding tax vocabulary in the presentation layer.

RentaDeclaracionType, RentaSexCode, RentaMaritalStatus, and RentaDisabilityGrade back Modelo 100 profile bindings; SituacionFamiliar and SituacionFamiliarM145 keep the Art. 82 LIRPF joint-taxation axis separate from Modelo 145 withholding categories.

class RentaDeclaracionType(*values)[source]

Bases: StrEnum

Modelo 100 TIPOTRIBUTACION values.

INDIVIDUAL
JOINT
class RentaSexCode(*values)[source]

Bases: StrEnum

Modelo 100 tipo_Sexo values.

HOMBRE
MUJER
class RentaMaritalStatus(*values)[source]

Bases: StrEnum

Renta taxpayer marital / registered-partnership profile values.

SOLTERO
CASADO
VIUDO
SEPARADO_DIVORCIADO
PAREJA_HECHO
RENTA_MODELO100_ECIVIL_EXPORT_CODES: frozenset[str]

Official Modelo 100 ECIVIL export codes accepted by the bundled XSD.

modelo100_ecivil_export_code(value)[source]

Return a validated official Modelo 100 ECIVIL export code.

RentaMaritalStatus.PAREJA_HECHO is intentionally profile-only. The official Modelo 100 ECIVIL field is restricted to Estado Civil codes 1-4, so callers must supply the taxpayer’s true official civil-status code instead of exporting the registered-partnership profile marker.

Return type:

str

Parameters:

value (object)

class RentaDisabilityGrade(*values)[source]

Bases: StrEnum

Modelo 100 tipo_GradoDiscapacidad values.

GE_33_LT_65
GE_65
JUDICIAL_INCAPACITY
ASSISTANCE_OR_REDUCED_MOBILITY
UE_EEA_COUNTRY_CODES: frozenset[str]

Closed set of EU + EEA ISO-3166-1 alpha-2 country codes (post-Brexit).

class FiscalResidency(*values)[source]

Bases: StrEnum

Fiscal residency category governing the applicable tax regime.

Determines whether the taxpayer files under IRPF (Spanish resident) or IRNR (non-resident), following TRLIRNR RDLeg 5/2004 Art. 2:

  • RESIDENT_IRPF: habitual residence in Spain; subject to IRPF (Ley 35/2006 LIRPF). Files Modelo 100 (or Modelo 151 for impatriados).

  • NON_RESIDENT_IRNR: no habitual residence in Spain; subject to IRNR (RDLeg 5/2004 TRLIRNR). Files Modelo 210 (general), Modelo 216 (retenciones), or Modelo 247 (pensiones).

Post-Brexit note (from 1 January 2021): GB is no longer an EU/EEA member; ue_eee_status returns False for GB residents regardless of prior residence history.

RESIDENT_IRPF
NON_RESIDENT_IRNR
class SituacionFamiliar(*values)[source]

Bases: StrEnum

Legal family situation for the Art. 82 LIRPF unidad-familiar eligibility test.

Determines whether conjunta (joint) taxation is available and which unidad familiar variant applies:

  • casado: married; conjunta available (Art. 82.1.1°).

  • pareja_hecho_registrada: registered civil partnership in an autonomic registry; conjunta available (Art. 82.1.2°).

  • pareja_hecho_no_registrada: de-facto couple, not registered; conjunta NOT available.

  • soltero: single; conjunta only available as monoparental (Art. 82.1.2° second indent) when hijos a cargo present.

  • separado_divorciado: legally separated or divorced; conjunta only available as monoparental when hijos a cargo present.

CASADO
PAREJA_HECHO_REGISTRADA
PAREJA_HECHO_NO_REGISTRADA
SOLTERO
SEPARADO_DIVORCIADO
conjunta_eligible()[source]

True when this situation permits conjunta taxation.

Return type:

bool

requires_spouse_or_partner()[source]

True when a spouse / registered partner NIF is required for conjunta.

Return type:

bool

monoparental_required()[source]

True for the single-parent situations a monoparental unit requires.

Per Art. 82.1.2 LIRPF the monoparental unidad familiar applies to a non-partnered parent, i.e. soltero or separado/divorciado.

Return type:

bool

class SituacionFamiliarM145(*values)[source]

Bases: StrEnum

Trinary “Situación familiar” axis declared on Modelo 145 (box 1).

The Modelo 145 form (Comunicación de datos al pagador, BOE-A-2011-208, art. 88 RIRPF) collects the recipient’s family-situation trinary that the pagador uses to apply Art. 81 RIRPF withholding adjustments. It is a distinct axis from SituacionFamiliar, which encodes the Art. 82 LIRPF unidad-familiar conjunta-eligibility test — Art. 81 retención arithmetic and Art. 82 conjunta arithmetic do not share categories.

Form-numbered values (mirroring the three numbered boxes on the physical mod145 form):

  • familia_1: viudo/a o casado/a separado/a legalmente con descendientes que dan derecho a la totalidad del mínimo por descendientes. Eligible for the supplementary withholding reduction under RIRPF art. 81.1.1°.

  • familia_2: casado/a y no separado/a legalmente cuyo cónyuge no obtiene rentas anuales > €1,500 (excluidas las exentas). Eligible for the supplementary withholding reduction under RIRPF art. 81.1.2°.

  • familia_3: situación familiar distinta de las anteriores. The default; no supplementary withholding reduction.

FAMILIA_1
FAMILIA_2
FAMILIA_3
is_eligible_for_supplementary_reduction()[source]

True when the situation grants the RIRPF art. 81.1.1°/2° reduction.

Return type:

bool