cadrumo.core.filing_projection_ref module

Canonical typed references from official record fields to repeated filing facts.

class M303ProrrataActivityProjectionField(*values)[source]

Bases: StrEnum

Closed fields projected from one canonical prorrata activity row.

CNAE
OPERACIONES_TOTAL
OPERACIONES_CON_DERECHO
TIPO
PORCENTAJE
class M303DifferentiatedDeductionProjectionField(*values)[source]

Bases: StrEnum

Closed fields projected from one differentiated-sector deduction row.

DOMESTIC_CURRENT_BASE
DOMESTIC_CURRENT_CUOTA
DOMESTIC_INVESTMENT_BASE
DOMESTIC_INVESTMENT_CUOTA
IMPORT_CURRENT_BASE
IMPORT_CURRENT_CUOTA
IMPORT_INVESTMENT_BASE
IMPORT_INVESTMENT_CUOTA
INTRA_EU_CURRENT_BASE
INTRA_EU_CURRENT_CUOTA
INTRA_EU_INVESTMENT_BASE
INTRA_EU_INVESTMENT_CUOTA
REAGP_BASE
REAGP_CUOTA
RECTIFICATION_BASE
RECTIFICATION_CUOTA
INVESTMENT_REGULARISATION
TOTAL
class M303RegimenSimplificadoCohort(*values)[source]

Bases: StrEnum

Closed simplified-regime activity cohorts printed in DP30302.

AGRICOLA
NO_AGRICOLA
class M303RegimenSimplificadoActivityField(*values)[source]

Bases: StrEnum

Closed identity fields projected directly from an activity row.

ACTIVITY_CODE
IAE_EPIGRAFE
AUXILIARY_ACTIVITY_INDICATOR
class M303RegimenSimplificadoModuleValue(*values)[source]

Bases: StrEnum

Closed input and calculated values addressable on one annual-Orden module.

DECLARED_QUANTITY
CUOTA_DEVENGADA
class M303RegimenSimplificadoFact(*values)[source]

Bases: StrEnum

Closed semantic facts printed by the DP30302 simplified-regime record.

VOLUMEN_INGRESOS
INDICE_CUOTA
CUOTA_DEVENGADA
PORCENTAJE_INGRESO_CUENTA
INGRESO_CUENTA
CUOTA_SOPORTADA_OPERACIONES_CORRIENTES
CUOTAS_SOPORTADAS_OPERACIONES_CORRIENTES
CUOTA_ANUAL_DERIVADA_REGIMEN_SIMPLIFICADO
CUOTAS_SOPORTADAS_CUARTO_TRIMESTRE
COMPENSACIONES_REAGP_CUARTO_TRIMESTRE
DANA_ELEGIBLE
REDUCCION_DANA
CUOTA_DEVENGADA_OPERACIONES_CORRIENTES
REDUCCIONES
INDICE_CORRECTOR_ACTIVIDAD_TEMPORADA
INDICE_CORRECTOR_ACTIVIDADES_TEMPORADA
RESULTADO_CUARTO_TRIMESTRE
PORCENTAJE_CUOTA_MINIMA
DEVOLUCION_CUOTAS_SOPORTADAS_OTROS_PAISES
CUOTA_MINIMA
ACTIVIDAD_TEMPORADA_DIAS_EJERCICIO_ANIO_ANTERIOR
DIAS_EJERCICIO_TRIMESTRE
EMPLEADOS_INICIO_EJERCICIO
EMPLEADOS_INICIO_EJERCICIO_ACTUAL
ACTIVIDAD_TEMPORADA_DIAS_EJERCICIO_CUARTO_TRIMESTRE
MAX_ASALARIADOS_SIMULTANEOS
LORCA_ELEGIBLE
REDUCCION_LORCA
PERSONAL_ASALARIADO_HORAS_MAYORES_19
PERSONAL_ASALARIADO_HORAS_MENORES_19_O_FORMACION
PERSONAL_ASALARIADO_HORAS_DISCAPACIDAD_33
PERSONAL_ASALARIADO_HORAS_CONVENIO_COLECTIVO
PERSONAL_NO_ASALARIADO_HORAS_TITULAR
PERSONAL_NO_ASALARIADO_TITULAR_DISCAPACIDAD_33
PERSONAL_NO_ASALARIADO_HORAS_CONYUGE
PERSONAL_NO_ASALARIADO_HORAS_HIJOS_MENORES_18
MESAS_CAPACIDAD
MESAS_NUMERO
MESAS_DIAS_CUARTO_TRIMESTRE
SUPERFICIE_HORNO_DIAS_CUARTO_TRIMESTRE
SUPERFICIE_HORNO_CUARTO_TRIMESTRE
M303_MESA_FACTS: frozenset[M303RegimenSimplificadoFact]

Facts that repeat once per mesa (table). A mesa fact therefore REQUIRES a sub_index identifying which mesa it describes.

M303_REPEATING_FACTS: frozenset[M303RegimenSimplificadoFact]

Every fact that repeats per unit at all – M303_MESA_FACTS plus the horno (oven) facts, which repeat per horno rather than per mesa. A fact outside this set is a singleton and must NOT carry a sub_index.

class M303Exonerado390ActivityField(*values)[source]

Bases: StrEnum

Closed fields projected from one evidenced exonerado-390 activity row.

ACTIVITY_CODE
IAE_EPIGRAFE
class M303ProrrataActivityProjectionRef(**data)[source]

Bases: BaseModel

One exact numbered endpoint on a canonical prorrata activity row.

Parameters:

data (Any)

projection_kind: Literal['m303_prorrata_activity']
slot: int
field: M303ProrrataActivityProjectionField
casilla_id: CasillaId
class M303DifferentiatedDeductionProjectionRef(**data)[source]

Bases: BaseModel

One exact numbered endpoint on a differentiated-sector row.

Parameters:

data (Any)

projection_kind: Literal['m303_differentiated_deduction']
slot: int
field: M303DifferentiatedDeductionProjectionField
casilla_id: CasillaId
class M303RegimenSimplificadoActivityProjectionRef(**data)[source]

Bases: BaseModel

One direct identity field on a simplified-regime activity row.

Parameters:

data (Any)

projection_kind: Literal['m303_regimen_simplificado_activity']
cohort: M303RegimenSimplificadoCohort
slot: int
field: M303RegimenSimplificadoActivityField
class M303RegimenSimplificadoFactProjectionRef(**data)[source]

Bases: BaseModel

One closed semantic fact at a simplified-regime cohort and slot.

Parameters:

data (Any)

projection_kind: Literal['m303_regimen_simplificado_fact']
cohort: M303RegimenSimplificadoCohort
slot: int
fact: M303RegimenSimplificadoFact
sub_index: int | None
class M303RegimenSimplificadoModuleProjectionRef(**data)[source]

Bases: BaseModel

One typed value at an annual-Orden module ordinal.

Parameters:

data (Any)

projection_kind: Literal['m303_regimen_simplificado_module']
cohort: Literal[M303RegimenSimplificadoCohort.NO_AGRICOLA]
slot: int
module_order: int
value: M303RegimenSimplificadoModuleValue
class M303Exonerado390ActivityProjectionRef(**data)[source]

Bases: BaseModel

One exact field on an evidenced exonerado-390 activity row.

Parameters:

data (Any)

projection_kind: Literal['m303_exonerado_390_activity']
slot: int
field: M303Exonerado390ActivityField
class M303Exonerado390OperacionesTercerosProjectionRef(**data)[source]

Bases: BaseModel

The evidenced Modelo 347 marker printed after exonerado activity rows.

Parameters:

data (Any)

projection_kind: Literal['m303_exonerado_390_operaciones_terceros']
class M390ActivityField(*values)[source]

Bases: StrEnum

Closed identity fields of one page-one statistical activity row.

DESCRIPTION
ACTIVITY_CODE
IAE_EPIGRAFE
class M390ActivityProjectionRef(**data)[source]

Bases: BaseModel

One field of the fixed six-row statistical-activity block on page one.

Parameters:

data (Any)

projection_kind: Literal['m390_activity']
slot: int
field: M390ActivityField
class M390RepresentativeKind(*values)[source]

Bases: StrEnum

The two non-interchangeable official representative blocks on page one.

FISICA_COMUNIDAD_BIENES
JURIDICA
class M390RepresentativeField(*values)[source]

Bases: StrEnum

Closed fields printed by one physical or legal representative row.

NIF
NOMBRE_RAZON_SOCIAL
TIPO_VIA
NOMBRE_VIA
NUMERO_VIA
ESCALERA
PISO
PUERTA
TELEFONO
MUNICIPIO
PROVINCIA
CODIGO_POSTAL
FECHA_PODER
NOTARIA
class M390RepresentativeProjectionRef(**data)[source]

Bases: BaseModel

One source-shaped page-one representative field.

Natural-person/community representation has one address-shaped row; juridical persons have three compact power/notary rows. Keeping those shapes in one discriminated projection prevents a caller from creating a fictitious fourth legal representative or a second physical address row.

Parameters:

data (Any)

projection_kind: Literal['m390_representative']
representative_kind: M390RepresentativeKind
slot: int
field: M390RepresentativeField
class M390RegimenSimplificadoCohort(*values)[source]

Bases: StrEnum

The two distinct simplified-regime activity blocks on page five.

NO_AGRICOLA
AGRICOLA_GANADERA
class M390RegimenSimplificadoActivityField(*values)[source]

Bases: StrEnum

Closed source fields for one simplified-regime activity row.

IAE_EPIGRAFE
AUXILIARY_ACTIVITY_INDICATOR
CUOTA_DEVENGADA_OPERACIONES_CORRIENTES
REDUCCION_LORCA
CUOTA_SOPORTADA_OPERACIONES_CORRIENTES
INDICE_CORRECTOR
RESULTADO
PORCENTAJE_CUOTA_MINIMA
DEVOLUCION_CUOTAS_SOPORTADAS_OTROS_PAISES
CUOTA_MINIMA
ACTIVITY_CODE
VOLUMEN_INGRESOS
INDICE_CUOTA
CUOTA_DEVENGADA
CUOTA_SOPORTADA
CUOTA_DERIVADA_REGIMEN_SIMPLIFICADO
class M390RegimenSimplificadoActivityProjectionRef(**data)[source]

Bases: BaseModel

One source-shaped endpoint on a page-five simplified-regime activity.

Parameters:

data (Any)

projection_kind: Literal['m390_regimen_simplificado_activity']
cohort: M390RegimenSimplificadoCohort
slot: int
field: M390RegimenSimplificadoActivityField
class M390RegimenSimplificadoModuleValue(*values)[source]

Bases: StrEnum

The paired module inputs printed for each non-agricultural activity.

UNITS
IMPORTE
class M390RegimenSimplificadoModuleProjectionRef(**data)[source]

Bases: BaseModel

One of seven numbered module pairs on either non-agricultural activity.

Parameters:

data (Any)

projection_kind: Literal['m390_regimen_simplificado_module']
slot: int
module_order: int
value: M390RegimenSimplificadoModuleValue
class M390ProrrataActivityProjectionField(*values)[source]

Bases: StrEnum

Closed fields on one of the five page-seven prorrata activity rows.

ACTIVITY_DESCRIPTION
CNAE
OPERACIONES_TOTAL
OPERACIONES_CON_DERECHO
TIPO
PORCENTAJE
class M390ProrrataActivityProjectionRef(**data)[source]

Bases: BaseModel

One source-shaped page-seven prorrata endpoint.

Parameters:

data (Any)

projection_kind: Literal['m390_prorrata_activity']
slot: int
field: M390ProrrataActivityProjectionField
class M390DifferentiatedDeductionProjectionField(*values)[source]

Bases: StrEnum

Closed deduction fields on one of the three differentiated-sector rows.

DOMESTIC_CURRENT_BASE
DOMESTIC_CURRENT_CUOTA
DOMESTIC_INVESTMENT_BASE
DOMESTIC_INVESTMENT_CUOTA
IMPORT_CURRENT_BASE
IMPORT_CURRENT_CUOTA
IMPORT_INVESTMENT_BASE
IMPORT_INVESTMENT_CUOTA
INTRA_EU_CURRENT_BASE
INTRA_EU_CURRENT_CUOTA
INTRA_EU_INVESTMENT_BASE
INTRA_EU_INVESTMENT_CUOTA
REAGP_BASE
REAGP_CUOTA
RECTIFICATION_BASE
RECTIFICATION_CUOTA
INVESTMENT_REGULARISATION
TOTAL
class M390DifferentiatedDeductionProjectionRef(**data)[source]

Bases: BaseModel

One page-eight endpoint on one of three differentiated deduction sectors.

Parameters:

data (Any)

projection_kind: Literal['m390_differentiated_deduction']
slot: int
field: M390DifferentiatedDeductionProjectionField
class M200EstablecimientoPermanenteField(*values)[source]

Bases: StrEnum

Closed fields of one detail row for a permanent establishment abroad.

IDENTIFICACION
PAIS_RESIDENCIA_FISCAL
VOLUMEN_OPERACIONES
BENEFICIO_O_PERDIDA
SUMA_AJUSTES_RESULTADO_CONTABLE
SUMA_DEDUCCIONES_DI_INTERNACIONAL_ANTERIORES
class M200EstablecimientoPermanenteProjectionRef(**data)[source]

Bases: BaseModel

One numbered establecimiento permanente detail row.

Parameters:

data (Any)

projection_kind: Literal['m200_establecimiento_permanente']
slot: int
field: M200EstablecimientoPermanenteField
class M200SocioSicavDisolucionField(*values)[source]

Bases: StrEnum

Closed fields of one SICAV disolucion socio row.

NIF_SOCIEDAD_DISUELTA
NIF_IIC_REINVERSION
class M200SocioSicavDisolucionProjectionRef(**data)[source]

Bases: BaseModel

One numbered socio row of the SICAV disolucion y liquidacion regime.

Parameters:

data (Any)

projection_kind: Literal['m200_socio_sicav_disolucion']
slot: int
field: M200SocioSicavDisolucionField
class M200EntidadMenorDependienteField(*values)[source]

Bases: StrEnum

Closed fields of one dependent minor ecclesiastical entity row.

NIF
NOMBRE_O_RAZON_SOCIAL
class M200EntidadMenorDependienteProjectionRef(**data)[source]

Bases: BaseModel

One numbered entidad menor dependiente row.

AEAT numbers these “Entidad 1”, “Entidad 2” in the field’s own description rather than with a bracketed or dotted index, which is why an earlier pass mistook the run for an unnumbered one.

Parameters:

data (Any)

projection_kind: Literal['m200_entidad_menor_dependiente']
slot: int
field: M200EntidadMenorDependienteField
class M200IncnGrupoSociedadField(*values)[source]

Bases: StrEnum

Closed fields of one group-company row of the INCN communication.

NIF_ENTIDAD_GRUPO
CODIGO_PAIS
class M200IncnGrupoSociedadProjectionRef(**data)[source]

Bases: BaseModel

One numbered group company in the importe neto cifra negocios block.

Parameters:

data (Any)

projection_kind: Literal['m200_incn_grupo_sociedad']
slot: int
field: M200IncnGrupoSociedadField
class M200IncnEstablecimientoPermanenteProjectionRef(**data)[source]

Bases: BaseModel

One numbered permanent establishment of a non-resident in the INCN block.

Numbered from 1 on the SAME sheet as the group-company block above, which is why slots are grouped by the block phrase preceding the number rather than by sheet.

Parameters:

data (Any)

projection_kind: Literal['m200_incn_establecimiento_permanente']
slot: int
class M200OperacionReestructuracionField(*values)[source]

Bases: StrEnum

Closed fields of one fusion, escision or canje de valores row.

TIPO_OPERACION
TRANSMITENTE_NIF
TRANSMITENTE_DENOMINACION_SOCIAL
ADQUIRENTE_NIF
ADQUIRENTE_DENOMINACION_SOCIAL
FECHA_INSCRIPCION_REGISTRO_MERCANTIL
FECHA_COMUNICACION_OPERACION
VALOR_ACCIONES_ENTREGADAS
VALOR_ACCIONES_RECIBIDAS
IMPORTE_RENTAS_NO_INTEGRADAS
class M200OperacionReestructuracionProjectionRef(**data)[source]

Bases: BaseModel

One numbered restructuring operation row.

Parameters:

data (Any)

projection_kind: Literal['m200_operacion_reestructuracion']
slot: int
field: M200OperacionReestructuracionField
class M200ParticipeAieUteField(*values)[source]

Bases: StrEnum

Closed fields of one AIE/UTE participe row.

NIF
REPRESENTANTE
FORMA_JURIDICA
RESIDENCIA
APELLIDOS_NOMBRE_RAZON_SOCIAL
CODIGO_PROVINCIA_PAIS
BASE_IMPONIBLE
PORCENTAJE_PARTICIPACION
class M200ParticipeAieUteProjectionRef(**data)[source]

Bases: BaseModel

One numbered participe of an agrupacion de interes economico or UTE.

Parameters:

data (Any)

projection_kind: Literal['m200_participe_aie_ute']
slot: int
field: M200ParticipeAieUteField
class M200TransparenciaFiscalInternacionalField(*values)[source]

Bases: StrEnum

Closed fields of one transparencia fiscal internacional entity row.

NOMBRE_O_RAZON_SOCIAL
DOMICILIO_SOCIAL
CLAVE_PAIS_TERRITORIO
IMPORTE_RENTA
ADMINISTRADORES_LINEA_1
ADMINISTRADORES_LINEA_2
ADMINISTRADORES_LINEA_3
ADMINISTRADORES_LINEA_4
ADMINISTRADORES_LINEA_5
class M200TransparenciaFiscalInternacionalProjectionRef(**data)[source]

Bases: BaseModel

One numbered entity row of the transparencia fiscal internacional regime.

AEAT letters each slot’s importe – “Importe renta [A]”, “[B]”, “[C]” – which is a slot marker rather than a different field, so every slot carries the same nine fields.

Parameters:

data (Any)

projection_kind: Literal['m200_transparencia_fiscal_internacional']
slot: int
field: M200TransparenciaFiscalInternacionalField
class M200AdministradorField(*values)[source]

Bases: StrEnum

Closed fields of one row of the relacion de administradores.

NIF
FORMA_JURIDICA
REPRESENTANTE
APELLIDOS_NOMBRE_RAZON_SOCIAL
DOMICILIO_FISCAL
CODIGO_PROVINCIA
class M200AdministradorProjectionRef(**data)[source]

Bases: BaseModel

One numbered administrador row.

Parameters:

data (Any)

projection_kind: Literal['m200_administrador']
slot: int
field: M200AdministradorField
class M200EntidadParticipadaField(*values)[source]

Bases: StrEnum

Closed fields of one AIE/UTE participada row.

Declared in the order AEAT prints them. The Canary-Islands investment variants precede their plain counterparts, which is read from the design rather than assumed.

NIF
NOMBRE_O_RAZON_SOCIAL
CODIGO_PROVINCIA_PAIS
TIPO_AGRUPACION_INTERES_ECONOMICO_ESPANOLA
TIPO_AGRUPACION_EUROPEA_INTERES_ECONOMICO
TIPO_UNION_TEMPORAL_EMPRESAS
TIPO_COLABORACION_EXTRANJERA_ANALOGA
CRITERIO_IMPUTACION_FIN_PERIODO
CRITERIO_IMPUTACION_SIGUIENTE_PERIODO
VALORACION_PARTICIPACION_INICIO
VALORACION_PARTICIPACION_FINAL
INGRESOS_FINANCIEROS_PARTICIPACION
RESULTADO_CONTABLE_IMPUTADO
GASTOS_FINANCIEROS_NETOS_IMPUTADOS
RESERVA_CAPITALIZACION_NO_APLICADA_IMPUTADA
BASE_IMPONIBLE_IMPUTADA
DEDUCCION_DOBLE_IMPOSICION_BASES_IMPUTADAS
BONIFICACION_BASES_IMPUTADAS
DEDUCCION_ACTIVOS_FIJOS_CANARIAS
DEDUCCION_IDI_CANARIAS
DEDUCCION_PRODUCCION_ESPECTACULOS_CANARIAS
DEDUCCION_RESTO_INVERSION_CANARIAS
DEDUCCION_IDI_BASES_IMPUTADAS
DEDUCCION_PRODUCCION_ESPECTACULOS_BASES_IMPUTADAS
DEDUCCION_RESTO_INCENTIVAR_ACTIVIDADES
DEDUCCION_RESTO_NO_MENCIONADAS
RETENCIONES_INGRESOS_A_CUENTA_IMPUTADOS
DIVIDENDOS_EJERCICIOS_ANTERIORES
DIVIDENDOS_EJERCICIOS_POSTERIORES
class M200EntidadParticipadaProjectionRef(**data)[source]

Bases: BaseModel

One sub-lettered AIE/UTE participada row.

Parameters:

data (Any)

projection_kind: Literal['m200_entidad_participada']
slot: int
field: M200EntidadParticipadaField
class M200ParticipacionDirectaField(*values)[source]

Bases: StrEnum

Closed fields of one B.1 participacion directa row of the declarante.

NIF
NOMBRE_O_RAZON_SOCIAL
CODIGO_PROVINCIA_PAIS
PORCENTAJE_PARTICIPACION
VALOR_NOMINAL_TOTAL
VALOR_EN_LIBROS
INGRESOS_POR_DIVIDENDOS
CORRECCION_VALOR_PERDIDAS_GANANCIAS
REVERSION_PERDIDAS_DETERIORO_VALORES
ELIMINACION_DETERIORO_CONTABLE
ELIMINACION_DETERIORO_VALORES_PARTICIPACION
AJUSTE_VALOR_RAZONABLE
EFECTO_CORRECCION_VALORATIVA_BASE_IMPONIBLE
SALDO_CORRECCIONES_FISCALES_PENDIENTES
CAPITAL
RESERVAS_Y_OTRAS_PARTIDAS_FONDOS_PROPIOS
OTRAS_PARTIDAS_PATRIMONIO_NETO
RESULTADO_ULTIMO_EJERCICIO
class M200ParticipacionDirectaProjectionRef(**data)[source]

Bases: BaseModel

One numbered B.1 participacion of the declarante in another entity.

Parameters:

data (Any)

projection_kind: Literal['m200_participacion_directa']
slot: int
field: M200ParticipacionDirectaField
class M200ParticipacionSocioField(*values)[source]

Bases: StrEnum

Closed fields of one B.2 row: a person or entity holding the declarante.

NIF
REPRESENTANTE
FORMA_JURIDICA
APELLIDOS_NOMBRE_RAZON_SOCIAL
CODIGO_PROVINCIA_PAIS
NOMINAL
PORCENTAJE_PARTICIPACION
class M200ParticipacionSocioProjectionRef(**data)[source]

Bases: BaseModel

One B.2 holder row.

AEAT prints no index here; the row identity comes from the field labels restarting at “N.I.F.” every seventh field.

Parameters:

data (Any)

projection_kind: Literal['m200_participacion_socio']
slot: int
field: M200ParticipacionSocioField
class M200SecretarioConsejoField(*values)[source]

Bases: StrEnum

Closed fields of the secretario del consejo de administracion row.

APELLIDOS_Y_NOMBRE
NIF
class M200SecretarioConsejoProjectionRef(**data)[source]

Bases: BaseModel

The secretario del consejo de administracion.

Exactly one slot: the design’s section G prints a single secretario, then a separately-shaped list of representantes legales, which is its own projection rather than a further slot of this one.

Parameters:

data (Any)

projection_kind: Literal['m200_secretario_consejo']
slot: int
field: M200SecretarioConsejoField
class M200RepresentanteLegalField(*values)[source]

Bases: StrEnum

Closed fields of one representante legal row.

Wider than the secretario’s: AEAT prints a fecha de poder and a notaria for a representante and neither for the secretario, so the two cannot share one field set without one of them declaring slots it can never fill.

APELLIDOS_Y_NOMBRE
NIF
FECHA_PODER
NOTARIA_OTROS
class M200RepresentanteLegalProjectionRef(**data)[source]

Bases: BaseModel

One representante legal de la entidad row.

Parameters:

data (Any)

projection_kind: Literal['m200_representante_legal']
slot: int
field: M200RepresentanteLegalField
class M296PerceptorField(*values)[source]

Bases: StrEnum

Closed fields of one Modelo 296 perceptor row.

Modelo 296 is the IRNR annual withholding summary, and AEAT repeats the whole PERCEPTOR RECORD once per payee rather than repeating fields inside one record. The row’s data already exists in the registry as Withholding296Observation – perceptor tax id, legal name, naturaleza, clave, subclave, base and retención – so these fields are projected from that observation set rather than supplied as operator header facts.

Declaring them as header producers is what left every one of them rendering blank on a filed 296 while the withholding substrate already held the values.

APELLIDOS_Y_NOMBRE_RAZON_SOCIAL_O_DENO
BASE_RETENCIONES_E_INGRESOS_A_CUENTA
CIUDAD
CLAVE
CLAVE_DE_MERCADO
CODIGO
CODIGO_BIC_DEL_PERCEPTOR_MEDIADOR
CODIGO_CUENTA_VALORES
CODIGO_EMISOR
CODIGO_LEI_DEL_PERCEPTOR
CODIGO_PAIS
DECIMAL
DECIMAL_NUMERICO_PARTE_DECIMAL
DECIMAL_NUMERICO_PARTE_DECIMAL_2
DECIMAL_NUMERICO_PARTE_DECIMAL_3
DECLARANTE
DIRECCION_DEL_PERCEPTOR
EJERCICIO
EJERCICIO_DEVENGO
ENTERO
ENTERO_NUMERICO_PARTE_ENTERA
ENTERO_NUMERICO_PARTE_ENTERA_2
ENTERO_NUMERICO_PARTE_ENTERA_3
F_J
FECHA_DE_DEVENGO
FECHA_DE_INICIO_DEL_PRESTAMO
FECHA_DE_NACIMIENTO
FECHA_DE_VENCIMIENTO_DEL_PRESTAMO
IDENTIFICADOR_DE_REGISTRO_O_NUMERO_DE
INGRESOS_A_CUENTA_REPERCUTIDOS
NATURALEZA
NIF_DEL_DECLARANTE
NIF_DEL_PAGADOR_ANTERIOR
NIF_DEL_PERCEPTOR
NIF_EN_EL_PAIS_DE_RESIDENCIA_FISCAL
PAIS_O_TERRITORIO_DE_RESIDENCIA_FISCAL
PARTE_DECIMAL_DEL_IMPORTE_DE_LAS_RETEN
PARTE_ENTERA_DEL_IMPORTE_DE_LAS_RETENC
PENDIENTE
PERCEPTOR_MEDIADOR
PROCEDIMIENTO_ESPECIAL_DE_RETENCIONES
SUBCLAVE
TIPO_CODIGO
class M296PerceptorProjectionRef(**data)[source]

Bases: BaseModel

One field of the Modelo 296 perceptor row.

This reference carries NO slot, and the omission is the point. The m200 party references carry one because AEAT prints those rows a fixed number of times on the form, so the slot is part of the field’s address. The number of perceptores is the number of payees and is not bounded by the design, so the perceptor RECORD repeats instead: it declares repeat = "projection_rows", the plan emits one render context per payee, and the projection address is completed by that context’s occurrence. A slot here would be a second row axis that is always 1 – meaningless at best, and at worst an invitation to cap the payees at the slots someone declared.

Parameters:

data (Any)

projection_kind: Literal['m296_perceptor']
field: M296PerceptorField
class M296PerceptorInteresesField(*values)[source]

Bases: StrEnum

Closed fields of one Modelo 296 perceptor-intereses row.

AEAT’s alternative Tipo 2 hoja (TIPO DE HOJA F) for intereses y otras rentas, emitted once per perceptor of that type. Its single payload field is the aggregate of retenciones ingresadas across the Estado, the Diputaciones Forales del Pais Vasco and the Comunidad Foral de Navarra.

APELLIDOS_Y_NOMBRE_RAZON_SOCIAL_O_DENO
EJERCICIO
F_J
IDENTIFICADOR_DE_REGISTRO_O_NUMERO_DE
NIF_DEL_DECLARANTE
NIF_DEL_PERCEPTOR
RETENCIONES_E_INGRESOS_A_CUENTA_INGRES
class M296PerceptorInteresesProjectionRef(**data)[source]

Bases: BaseModel

One field of a Modelo 296 perceptor-intereses row.

No slot: the record repeats and the render occurrence identifies the perceptor. See M296PerceptorProjectionRef for why that is the right axis here.

Parameters:

data (Any)

projection_kind: Literal['m296_perceptor_intereses']
field: M296PerceptorInteresesField
class M296AnexoPagoField(*values)[source]

Bases: StrEnum

Closed fields of one Modelo 296 anexo A row: a pago to one contribuyente.

AEAT’s “Anexo - Valores Negociables. Relacion de Pago a Contribuyentes” is a relacion – a list – and each row carries its own ISIN, fecha de devengo, contribuyente identity, importe, porcentaje and retenciones, beneath perceptor header fields that AEAT restates on every row.

APELLIDOS_Y_NOMBRE_RAZON_SOCIAL_O_DENO
APELLIDOS_Y_NOMBRE_RAZON_SOCIAL_O_DENO_2
CIUDAD
CLAVE_DE_PERSONALIDAD_DEL_CONTRIBUYENT
CODIGO_ISIN
CODIGO_LEI_DEL_CONTRIBUYENTE
CODIGO_PAIS
DIRECCION_DEL_CONTRIBUYENTE
EJERCICIO
F_J
FECHA_DE_DEVENGO
FECHA_DE_NACIMIENTO_DEL_CONTRIBUYENTE
IDENTIFICADOR_DE_REGISTRO_O_NUMERO_DE
IMPORTE_DEL_PAGO_AL_CONTRIBUYENTE
NIF_DEL_CONTRIBUYENTE
NIF_DEL_DECLARANTE
NIF_DEL_PERCEPTOR
NIF_EN_EL_PAIS_DE_RESIDENCIA_FISCAL_DE
NUMERO_DE_JUSTIFICANTE_DEL_MODELO_210
PAIS_O_TERRITORIO_DE_RESIDENCIA_FISCAL
PORCENTAJE_DE_RETENCION
RETENCIONES
class M296AnexoPagoProjectionRef(**data)[source]

Bases: BaseModel

One field of a Modelo 296 anexo A pago row.

No slot: the record repeats once per pago and the render occurrence identifies it.

Parameters:

data (Any)

projection_kind: Literal['m296_anexo_pago']
field: M296AnexoPagoField
class M296AnexoCertificadoField(*values)[source]

Bases: StrEnum

Closed fields of one Modelo 296 anexo B row: one certificado de pago.

AEAT’s “Anexo - Valores Negociables. Relacion de Certificados de Pago” is a relacion, one row per certificado, each carrying its ISIN, codigo cuenta de valores, titular registral, numero de titulos, fecha de pago, importe bruto and retencion.

Several member names are opaque – entero, decimal, entero_2 and their siblings – because AEAT’s design splits a money field into entera and decimal sub-columns and the source slug took the sub-column heading rather than the parent field name. The parent each belongs to is recorded on the member.

APELLIDOS_Y_NOMBRE_RAZON_SOCIAL_O_DENO
APELLIDOS_Y_NOMBRE_RAZON_SOCIAL_O_DENO_2
CODIGO_CUENTA_VALORES_DEL_CERTIFICADO
CODIGO_ISIN_DEL_CERTIFICADO
CODIGO_LEI_DEL_TITULAR_REGISTRAL
DECIMAL

IMPORTE BRUTO DE LA RENTA DEL CERTIFICADO, decimal.

DECIMAL_2

RETENCION DEL CERTIFICADO, decimal.

DECIMAL_3

PORCENTAJE DE RETENCION DEL CERTIFICADO, decimal.

EJERCICIO
ENTERO

IMPORTE BRUTO DE LA RENTA DEL CERTIFICADO, entera.

ENTERO_2

RETENCION DEL CERTIFICADO, entera.

ENTERO_3

PORCENTAJE DE RETENCION DEL CERTIFICADO, entera.

F_J
FECHA_DE_PAGO
FECHA_DE_PRESENTACION_DEL_MODELO_210
IDENTIFICADOR_DE_REGISTRO_O_NUMERO_DE
NIF_DEL_DECLARANTE
NIF_DEL_PERCEPTOR
NUMERO_DE_JUSTIFICANTE_DEL_MODELO_210
PARTE_DECIMAL_DEL_NUMERO_DE_TITULOS

NUMERO DE TITULOS EN LA CUENTA DE VALORES, decimal.

PARTE_DECIMAL_DEL_NUMERO_DE_TITULOS_2

NUMERO DE TITULOS DEL CONTRIBUYENTE, decimal.

PARTE_ENTERA_DEL_NUMERO_DE_TITULOS

NUMERO DE TITULOS EN LA CUENTA DE VALORES, entera.

PARTE_ENTERA_DEL_NUMERO_DE_TITULOS_2

NUMERO DE TITULOS DEL CONTRIBUYENTE, entera.

TITULAR_REGISTRAL_DE_LA_CUENTA_DE_VALO
class M296AnexoCertificadoProjectionRef(**data)[source]

Bases: BaseModel

One field of a Modelo 296 anexo B certificado row.

No slot: the record repeats once per certificado and the occurrence identifies it.

Parameters:

data (Any)

projection_kind: Literal['m296_anexo_certificado']
field: M296AnexoCertificadoField
compile_filing_projection_ref(value)[source]

Compile one canonical projection reference from exact persisted primitives.

Return type:

M303ProrrataActivityProjectionRef | M303DifferentiatedDeductionProjectionRef | M303RegimenSimplificadoActivityProjectionRef | M303RegimenSimplificadoFactProjectionRef | M303RegimenSimplificadoModuleProjectionRef | M303Exonerado390ActivityProjectionRef | M303Exonerado390OperacionesTercerosProjectionRef | M390ActivityProjectionRef | M390RepresentativeProjectionRef | M390RegimenSimplificadoActivityProjectionRef | M390RegimenSimplificadoModuleProjectionRef | M390ProrrataActivityProjectionRef | M390DifferentiatedDeductionProjectionRef | M200EstablecimientoPermanenteProjectionRef | M200SocioSicavDisolucionProjectionRef | M200EntidadMenorDependienteProjectionRef | M200IncnGrupoSociedadProjectionRef | M200IncnEstablecimientoPermanenteProjectionRef | M200OperacionReestructuracionProjectionRef | M200ParticipeAieUteProjectionRef | M200TransparenciaFiscalInternacionalProjectionRef | M200AdministradorProjectionRef | M200EntidadParticipadaProjectionRef | M200ParticipacionDirectaProjectionRef | M200ParticipacionSocioProjectionRef | M200SecretarioConsejoProjectionRef | M200RepresentanteLegalProjectionRef | M296PerceptorProjectionRef | M296PerceptorInteresesProjectionRef | M296AnexoPagoProjectionRef | M296AnexoCertificadoProjectionRef

Parameters:

value (object)

hydrate_filing_projection_ref(value)[source]

Return value as a typed reference, compiling it if it is still raw.

The one entry point every persisted boundary uses. A reference that is already typed was produced by compile_filing_projection_ref() and is returned unchanged; a mapping is compiled by that same function now. So the invariant is “every projection reference was compiled by the one canonical compiler”, which is what the boundaries actually need to guarantee.

Boundaries previously asserted that invariant by demanding an already-constructed model. That proxy held for TOML, where the loader compiles before validating, and was impossible for JSON, where a reference can only arrive as a mapping – so a manifest could be written and never read back. Compiling here reaches the same guarantee through one path instead of one path and one dead end, and a malformed mapping still refuses exactly as it always did, because the compiler is unchanged.

Return type:

M303ProrrataActivityProjectionRef | M303DifferentiatedDeductionProjectionRef | M303RegimenSimplificadoActivityProjectionRef | M303RegimenSimplificadoFactProjectionRef | M303RegimenSimplificadoModuleProjectionRef | M303Exonerado390ActivityProjectionRef | M303Exonerado390OperacionesTercerosProjectionRef | M390ActivityProjectionRef | M390RepresentativeProjectionRef | M390RegimenSimplificadoActivityProjectionRef | M390RegimenSimplificadoModuleProjectionRef | M390ProrrataActivityProjectionRef | M390DifferentiatedDeductionProjectionRef | M200EstablecimientoPermanenteProjectionRef | M200SocioSicavDisolucionProjectionRef | M200EntidadMenorDependienteProjectionRef | M200IncnGrupoSociedadProjectionRef | M200IncnEstablecimientoPermanenteProjectionRef | M200OperacionReestructuracionProjectionRef | M200ParticipeAieUteProjectionRef | M200TransparenciaFiscalInternacionalProjectionRef | M200AdministradorProjectionRef | M200EntidadParticipadaProjectionRef | M200ParticipacionDirectaProjectionRef | M200ParticipacionSocioProjectionRef | M200SecretarioConsejoProjectionRef | M200RepresentanteLegalProjectionRef | M296PerceptorProjectionRef | M296PerceptorInteresesProjectionRef | M296AnexoPagoProjectionRef | M296AnexoCertificadoProjectionRef

Parameters:

value (object)

filing_projection_ref_casilla_id(reference)[source]

Return the numbered official endpoint carried by reference, if any.

Return type:

TypeAliasType | None

Parameters:

reference (Annotated[M303ProrrataActivityProjectionRef | M303DifferentiatedDeductionProjectionRef | M303RegimenSimplificadoActivityProjectionRef | M303RegimenSimplificadoFactProjectionRef | M303RegimenSimplificadoModuleProjectionRef | M303Exonerado390ActivityProjectionRef | M303Exonerado390OperacionesTercerosProjectionRef | M390ActivityProjectionRef | M390RepresentativeProjectionRef | M390RegimenSimplificadoActivityProjectionRef | M390RegimenSimplificadoModuleProjectionRef | M390ProrrataActivityProjectionRef | M390DifferentiatedDeductionProjectionRef | M200EstablecimientoPermanenteProjectionRef | M200SocioSicavDisolucionProjectionRef | M200EntidadMenorDependienteProjectionRef | M200IncnGrupoSociedadProjectionRef | M200IncnEstablecimientoPermanenteProjectionRef | M200OperacionReestructuracionProjectionRef | M200ParticipeAieUteProjectionRef | M200TransparenciaFiscalInternacionalProjectionRef | M200AdministradorProjectionRef | M200EntidadParticipadaProjectionRef | M200ParticipacionDirectaProjectionRef | M200ParticipacionSocioProjectionRef | M200SecretarioConsejoProjectionRef | M200RepresentanteLegalProjectionRef | M296PerceptorProjectionRef | M296PerceptorInteresesProjectionRef | M296AnexoPagoProjectionRef | M296AnexoCertificadoProjectionRef, FieldInfo(annotation=NoneType, required=True, discriminator='projection_kind')])