cadrumo.core.modelo_232_codigos module

Closed value sets for the Modelo 232 coded declaration fields.

Modelo 232 declares each operación vinculada with three coded fields, and AEAT publishes their enumerations as Tablas A, B and C of the diseño de registro DR23200, bundled under _data/corpus/aeat_official/disenos_registro/ modelo_232/. Orden HFP/816/2017 art. 3 names the same three axes in prose – art. 3.1.d the tipo de vinculación, art. 3.1.f the tipo de operación with its eleven claves enumerated inline, art. 3.1.h the método de valoración – and delegates the first and last to Ley 27/2014 arts. 18.2 and 18.4.

These enums are the single typed home for those three sets, declared in core per the core-authority discipline: closed axes live in core/, hydrate at boundaries, and are asserted as members in tests. Two packages read them – domain.modelos types the operator-supplied CLI row, and domain.calculations.registry types the related-party observation its binding family resolves – which is why the home is core rather than either consumer.

The DR’s field widths are load-bearing rather than incidental, because these values are written into fixed-width positions on page_01: tipo de vinculación occupies ONE position (240), while tipo de operación (243-244) and método de valoración (246-247) occupy two each. A code wider than its field cannot be declared at all, which is what rules out the OECD abbreviations (CUP, TNMM) for the art. 18.4 methods AEAT codes as 1A-1E.

Each axis carries an explicit blank member. The whole vinculada block is marked conditional rather than obligatorio in the DR, so a blank field is a state the record genuinely represents – and the alternative, defaulting to a real code, would declare a relationship, an operation kind or a valuation method the taxpayer never stated.

class TipoVinculacion(*values)[source]

Bases: StrEnum

One Modelo 232 tipo-de-vinculación code — DR23200 Tabla A.

The art. 18.2 LIS relationship cases, in the single alphanumeric position the DR gives the field. The value byte-equals the stored token, so a member compares, hashes, and JSON-serialises identically to its string.

Variables:
  • A_SOCIOS_O_PARTICIPES – Una entidad y sus socios o partícipes.

  • B_CONSEJEROS_O_ADMINISTRADORES – Una entidad y sus consejeros o administradores.

  • C_PARIENTES_DE_SOCIOS_O_ADMINISTRADORES – Una entidad y los cónyuges o personas unidas por relaciones de parentesco con sus socios, partícipes, consejeros o administradores (art. 18.3.c LIS).

  • D_ENTIDADES_DEL_MISMO_GRUPO – Dos entidades que pertenezcan a un grupo.

  • E_ADMINISTRADORES_DE_OTRA_DEL_GRUPO – Una entidad y los consejeros o administradores de otra entidad, cuando ambas pertenezcan a un grupo.

  • F_PARTICIPACION_INDIRECTA_25 – Una entidad y otra participada por la primera indirectamente en, al menos, el 25 % del capital social o de los fondos propios.

  • G_SOCIOS_COMUNES_25 – Dos entidades en las cuales los mismos socios, partícipes o sus cónyuges, o personas unidas por relaciones de parentesco, participen directa o indirectamente en, al menos, el 25 % del capital social o los fondos propios.

  • H_ESTABLECIMIENTOS_PERMANENTES_EN_EL_EXTRANJERO – Una entidad residente en territorio español y sus establecimientos permanentes en el extranjero.

  • NO_DECLARADO – The DR’s blank — the conditional field carries no code.

A_SOCIOS_O_PARTICIPES
B_CONSEJEROS_O_ADMINISTRADORES
C_PARIENTES_DE_SOCIOS_O_ADMINISTRADORES
D_ENTIDADES_DEL_MISMO_GRUPO
E_ADMINISTRADORES_DE_OTRA_DEL_GRUPO
F_PARTICIPACION_INDIRECTA_25
G_SOCIOS_COMUNES_25
H_ESTABLECIMIENTOS_PERMANENTES_EN_EL_EXTRANJERO
NO_DECLARADO
class TipoOperacionVinculada(*values)[source]

Bases: StrEnum

One Modelo 232 tipo-de-operación clave — DR23200 Tabla C.

The eleven claves Orden HFP/816/2017 art. 3.1.f enumerates, zero-padded to the two positions the DR gives the field. The prose numbers them Clave 1 through Clave 11; the record design stores them 01 through 11, and the padded form is what a declaration carries.

Variables:
  • C01_BIENES_TANGIBLES – Adquisición/transmisión de bienes tangibles (existencias, inmovilizados materiales, etc.).

  • C02_INTANGIBLES – Adquisición/transmisión/cesión de uso de intangibles: cánones y otros ingresos o pagos por utilización de tecnología, patentes, marcas, know-how, etc.

  • C03_FONDOS_PROPIOS – Adquisición/transmisión de activos financieros representativos de fondos propios.

  • C04_DERECHOS_DE_CREDITO_Y_DEUDA – Adquisición/transmisión de derechos de crédito y activos financieros representativos de deuda, excluidas las operaciones de tipo 5.

  • C05_OPERACIONES_FINANCIERAS_DE_DEUDA – Constitución o amortización de créditos o préstamos, emisión o amortización de obligaciones y bonos, etc., excluidos los intereses.

  • C06_SERVICIOS – Servicios entre personas o entidades vinculadas (art. 18.5 LIS), incluidos rendimientos de actividades profesionales, artísticas y deportivas.

  • C07_ACUERDOS_DE_REPARTO_DE_COSTES – Acuerdos de reparto de costes de bienes o servicios (art. 18.7 LIS).

  • C08_ALQUILERES_DE_INMUEBLES – Alquileres y otros rendimientos por cesión de uso de inmuebles, excluidas las transmisiones.

  • C09_INTERESES – Intereses de créditos, préstamos y demás activos financieros representativos de deuda, excluidas las transmisiones.

  • C10_RENDIMIENTOS_DEL_TRABAJO_Y_PENSIONES – Rendimientos del trabajo, pensiones y aportaciones a fondos de pensiones y a otros sistemas de capitalización o retribución diferida, entrega de acciones u opciones sobre las mismas, etc.

  • C11_OTRAS_OPERACIONES – Otras operaciones.

  • NO_DECLARADO – The DR’s blank — the conditional field carries no clave.

C01_BIENES_TANGIBLES
C02_INTANGIBLES
C03_FONDOS_PROPIOS
C04_DERECHOS_DE_CREDITO_Y_DEUDA
C05_OPERACIONES_FINANCIERAS_DE_DEUDA
C06_SERVICIOS
C07_ACUERDOS_DE_REPARTO_DE_COSTES
C08_ALQUILERES_DE_INMUEBLES
C09_INTERESES
C10_RENDIMIENTOS_DEL_TRABAJO_Y_PENSIONES
C11_OTRAS_OPERACIONES
NO_DECLARADO
class MetodoValoracion(*values)[source]

Bases: StrEnum

One Modelo 232 método-de-valoración code — DR23200 Tabla B.

The five transfer-pricing methods of art. 18.4.1º LIS, in the two positions the DR gives the field. These are AEAT’s own codes, not the OECD abbreviations for the same methods: the OECD names (CUP, RPM, CPM, PS, TNMM) are three and four characters wide and could not be written into the field even if AEAT accepted them.

Variables:
  • M1A_PRECIO_LIBRE_COMPARABLE – Método del precio libre comparable (art. 18.4.1º.a LIS).

  • M1B_COSTE_INCREMENTADO – Método del coste incrementado (art. 18.4.1º.b LIS).

  • M1C_PRECIO_DE_REVENTA – Método del precio de reventa (art. 18.4.1º.c LIS).

  • M1D_DISTRIBUCION_DEL_RESULTADO – Método de la distribución del resultado (art. 18.4.1º.d LIS).

  • M1E_MARGEN_NETO_OPERACIONAL – Método del margen neto operacional del conjunto de operaciones (art. 18.4.1º.e LIS).

  • NO_DECLARADO – The DR’s blank — the conditional field carries no método.

M1A_PRECIO_LIBRE_COMPARABLE
M1B_COSTE_INCREMENTADO
M1C_PRECIO_DE_REVENTA
M1D_DISTRIBUCION_DEL_RESULTADO
M1E_MARGEN_NETO_OPERACIONAL
NO_DECLARADO