aeat.domain.iva._recargo_equivalencia module

Registry-backed loader for LIVA art. 161 recargo de equivalencia rates.

Closes the recargo de equivalencia rate gap in the IVA substrate: the four LIVA art. 161 rate values (general 5.2 %, reduced 1.4 %, super-reduced 0.5 %, tobacco 1.75 %) live in registry/aeat/legal/iva-recargo-equivalencia.toml under [parameters."liva-art-161:*"] entries with explicit BOE citations and review metadata, and Python consumers import them from this module.

The loader follows the same idiom as aeat.domain.fincas._imputacion_parameters: a frozen pydantic record loaded once at module import time, with an explicit recargo_rate_for() helper that maps from the substrate’s IvaRateKind tier to the corresponding recargo Decimal. The LIVA_ART_161_RECARGO accessor is the canonical source for recargo de equivalencia rates across the codebase.

The recargo de equivalencia regime (LIVA arts. 148-163) applies to comerciantes minoristas (retailers) with limited annual revenue who buy stock for resale; their suppliers charge them an additional recargo on top of the regular IVA rate. The four rates align with the four IVA tiers per LIVA art. 161:

  • General (21 % IVA) → 5.2 % recargo (art. 161 1.º).

  • Reduced (10 % IVA, art. 91 uno) → 1.4 % recargo (art. 161 2.º).

  • Super-reduced (4 % IVA, art. 91 dos) → 0.5 % recargo (art. 161 3.º).

  • Tobacco-specific → 1.75 % recargo (art. 161 4.º).

class LivaArt161RecargoRates(**data)[source]

Bases: BaseModel

Frozen record of the LIVA art. 161 recargo de equivalencia rates.

Variables:
  • general_rate – 5.2 % recargo applied alongside the 21 % IVA tier (LIVA art. 161 1.º).

  • reducido_rate – 1.4 % recargo applied alongside the 10 % IVA tier (LIVA art. 161 2.º, referencing art. 91 uno).

  • super_reducido_rate – 0.5 % recargo applied alongside the 4 % IVA tier (LIVA art. 161 3.º, referencing art. 91 dos).

  • tabaco_rate – 1.75 % recargo applied to entregas de labores del tabaco (LIVA art. 161 4.º).

Parameters:
general_rate: Decimal
reducido_rate: Decimal
super_reducido_rate: Decimal
tabaco_rate: Decimal
load_recargo_rates()[source]

Public accessor for the LIVA art. 161 recargo de equivalencia rates.

Reads the four art. 161 rate parameters from the bundled legal-parameter catalogue and returns the typed LivaArt161RecargoRates record. Use recargo_rate_for() for the convenient IvaRateKind- keyed lookup; tobacco callers read .tabaco_rate directly.

Return type:

LivaArt161RecargoRates

recargo_rate_for(rate_kind)[source]

Return the recargo de equivalencia rate aligned with rate_kind.

Parameters:

rate_kind (IvaRateKind) – The substrate IVA rate tier.

Return type:

Decimal | None

Returns:

The matching recargo Decimal for GENERAL / REDUCED / SUPER_REDUCED tiers; None for ZERO and EXEMPT (recargo de equivalencia does not apply to operations whose underlying IVA rate is zero or exempt).

The tobacco-specific 1.75 % rate is not keyed by IvaRateKind; callers that handle labores del tabaco read LIVA_ART_161_RECARGO.tabaco_rate directly.