Contents Menu Expand Light mode Dark mode Auto light/dark, in light mode Auto light/dark, in dark mode Skip to content
Pre-alpha Breaking changes are expected. Verify Agencia Estatal de Administración Tributaria (AEAT) deadlines before filing. Updates Latest download Report an issue
CADRUMO docs
Getting started CLI reference How it works API
EN
  • English
  • Español
  • Català
  • Magyar
Cadrumo documentation - local Spanish tax preparation
  • Getting started
  • Get Cadrumo
  • Install Cadrumo
  • Quickstart
  • Connect an agent (MCP)
  • First quarterly filing
  • The income-tax year
  • The IVA year

Your profile

  • Set up a profile
  • Authenticate with AEAT
  • Maintain census facts
  • Which modelos apply to you
  • Protect data access

Your calendar

  • Filing calendar
  • AEAT notifications
  • Filing readiness

Your ledger

  • Work with transactions
  • Classify transactions
  • Classify with an LLM
  • Attach invoices and receipts
  • Manage business invoices
  • Correct mistakes
  • IVA prorrata deductions

Your filings

  • The filing workflow
  • Modelo 036 (censo)
  • Modelo 100 (Renta)
  • Modelo 130 (IRPF instalment)
  • Modelo 303 (IVA)
  • Modelo 349 (intra-community)
  • Modelo 390 (IVA summary)
  • Calculation inputs
  • Google Sheets review
  • Verify a filing
  • File at AEAT
  • Reconcile a filing

Help

  • Troubleshooting
  • Publish runtime authority
  • Disclaimer

Reference

  • CLI reference
  • Cadrumo reference
  • Glossary
  • Casilla reference
  • Legal reference

How it works

  • Overview

Project

  • Updates and downloads
  • Architecture
  • Authoring guide
  • API
    • cadrumo package
      • cadrumo.adapters package
      • cadrumo.application package
        • cadrumo.application.aeat_sync package
        • cadrumo.application.aggregation package
        • cadrumo.application.auth package
        • cadrumo.application.bienes_inversion package
        • cadrumo.application.bucket_maintenance package
        • cadrumo.application.calculations package
        • cadrumo.application.command_search package
        • cadrumo.application.corpus_search package
        • cadrumo.application.evidence package
        • cadrumo.application.export package
        • cadrumo.application.filing package
        • cadrumo.application.flows package
        • cadrumo.application.inventory package
        • cadrumo.application.invoices package
        • cadrumo.application.ledger package
        • cadrumo.application.live package
        • cadrumo.application.modelo package
        • cadrumo.application.operations package
        • cadrumo.application.operator_actions package
        • cadrumo.application.operator_output package
        • cadrumo.application.operator_surface package
        • cadrumo.application.overview package
        • cadrumo.application.prorrata_register package
        • cadrumo.application.review package
        • cadrumo.application.search package
        • cadrumo.application.storage package
        • cadrumo.application.storage_management package
        • cadrumo.application.transactions package
        • cadrumo.application.user_profile package
        • cadrumo.application.wizard package
          • cadrumo.application.wizard._checkpoint_store module
          • cadrumo.application.wizard._format_hints module
          • cadrumo.application.wizard.catalogue module
          • cadrumo.application.wizard.commands module
          • cadrumo.application.wizard.compiler module
          • cadrumo.application.wizard.descendant_door module
          • cadrumo.application.wizard.descendant_group module
          • cadrumo.application.wizard.errors module
          • cadrumo.application.wizard.flow_validators module
          • cadrumo.application.wizard.models module
          • cadrumo.application.wizard.persistence module
          • cadrumo.application.wizard.results module
          • cadrumo.application.wizard.setup_legal_validators module
          • cadrumo.application.wizard.status module
          • cadrumo.application.wizard.widgets module
        • cadrumo.application.workflow package
        • cadrumo.application._state_projection_readiness module
        • cadrumo.application.auth_credentials module
        • cadrumo.application.bucket_deletion_contracts module
        • cadrumo.application.bucket_event_repository module
        • cadrumo.application.cli_exception_preconditions module
        • cadrumo.application.config_reset module
        • cadrumo.application.config_reset_models module
        • cadrumo.application.config_reset_repository module
        • cadrumo.application.diagnostic_models module
        • cadrumo.application.diagnostics module
        • cadrumo.application.diagnostics_ports module
        • cadrumo.application.diagnostics_run_health module
        • cadrumo.application.diagnostics_run_health_ports module
        • cadrumo.application.diagnostics_telemetry module
        • cadrumo.application.errors module
        • cadrumo.application.exchange_rate_provider module
        • cadrumo.application.foreign_asset_thresholds module
        • cadrumo.application.journal_repository module
        • cadrumo.application.local_reader module
        • cadrumo.application.local_reader_operation module
        • cadrumo.application.persistence_errors module
        • cadrumo.application.preflight module
        • cadrumo.application.profile_deletion_hold_contract module
        • cadrumo.application.profile_preconditions module
        • cadrumo.application.provisioning module
        • cadrumo.application.provisioning_browser module
        • cadrumo.application.provisioning_contracts module
        • cadrumo.application.provisioning_fitness module
        • cadrumo.application.provisioning_host module
        • cadrumo.application.provisioning_runtime module
        • cadrumo.application.state_projection module
        • cadrumo.application.state_projection_auth module
        • cadrumo.application.state_projection_ports module
        • cadrumo.application.storage_write_policy module
        • cadrumo.application.workbench_capture_memory module
        • cadrumo.application.workbench_generation module
      • cadrumo.core package
      • cadrumo.domain package
      • cadrumo.entrypoints package
Back to top
View this page
Edit this page
Home/Python API overview/cadrumo package/cadrumo.application package/cadrumo.application.wizard package/cadrumo.application.wizard.setup_legal_validators module

cadrumo.application.wizard.setup_legal_validators module¶

Art. 82 LIRPF unidad-familiar validator for the interactive setup flow.

Art. 82.1 LIRPF defines the two unidad-familiar modalities eligible for tributación conjunta (joint taxation):

  • Modalidad 1ª (Art. 82.1.1ª): the married couple not legally separated, together with their minor or judicially-incapacitated children if any. Children are optional — a childless married couple may still opt for conjunta as a couple.

  • Modalidad 2ª (Art. 82.1.2ª): in cases of legal separation, or where no marriage bond exists, the single parent and all the cohabiting children who meet the modalidad-1ª requirements — the monoparental unit. This modality requires qualifying children: no unidad familiar forms without them, and the absence of a marriage bond is registration-agnostic (a de-facto couple, registered or not, has no marriage bond).

The single flow validator this module registers enforces the modalidad-2ª children requirement at familia section exit. A joint declaration whose family situation is a non-married modality resolved by the typed situacion_familiar_monoparental_required projection and which declares no minor children in the unit cannot form a valid unidad familiar, so it fails and blocks forward navigation with a typed verdict. A married declaration (modalidad 1ª) and a monoparental declaration that does carry children both pass. The verdict carries a catalogue key and redacted context only — the raw answers never enter the diagnostic.

SETUP_UNIDAD_FAMILIAR_VALIDATOR_ID¶

Registered id of the familia section-exit Art. 82.1.2ª validator.

validate_unidad_familiar_conjunta(answers)[source]¶

Enforce the Art. 82.1.2ª monoparental children requirement.

A joint declaration (taxation-type == JOINT) whose situacion-familiar is a non-married modality forms a valid unidad familiar only as a monoparental unit, which Art. 82.1.2ª conditions on qualifying children. When no minor children are declared in the unit the verdict fails; a married (modalidad 1ª) or a child-bearing monoparental declaration passes.

family-minor-children-in-unit is the sole qualifying-children proxy the setup flow models. Art. 82.1.1ª(b) also admits adult judicially incapacitated children under prorogated patria potestad into the unit, but the flow collects no field for that case and the registry’s conjunta reduction keys on the same minor-children signal, so the hard refusal is exact within the declared data model. Modelling the incapacitated-adult axis later requires widening this predicate and the registry signal together, not relaxing this gate alone.

Return type:

tuple[ValidationVerdict, ...]

Parameters:

answers (Mapping[str, str])

attach_setup_legal_validators(definition)[source]¶

Return definition with the familia section carrying the Art. 82 exit validator.

The setup flow projects from the one-shot catalogue (which declares no validator ids), so this decorator names the registered validator on the familia FlowSection’s exit_validator_ids — mirroring how attach_format_hints() decorates the projected definition. Idempotent: a definition already carrying the id passes through untouched.

Return type:

FlowDefinition

Parameters:

definition (FlowDefinition)

Project notices

Cadrumo is pre-alpha, local-first software. It is not tax advice, is not affiliated with the Agencia Estatal de Administración Tributaria (AEAT), and never replaces official AEAT tools or advice from a qualified professional.

Stay current

  • Critical updates
  • Latest download
  • Release notes

Get help

  • Report an issue
  • CLI reference
  • How it works

Trust and responsibility

  • Disclaimer
  • Events and deadlines
  • Repository
Next
cadrumo.application.wizard.status module
Previous
cadrumo.application.wizard.results module
Copyright © 2026, the Cadrumo authors
Made with Sphinx and @pradyunsg's Furo
On this page
  • cadrumo.application.wizard.setup_legal_validators module
    • SETUP_UNIDAD_FAMILIAR_VALIDATOR_ID
    • validate_unidad_familiar_conjunta()
    • attach_setup_legal_validators()