FinchContext
Run with

Build the Modelo 200 Corporate Tax Return

Skill: Convert annual accounts into the Modelo 200 casillas dataset (JSON)

Region: Spain (España) Category: Corporate tax — Impuesto sobre Sociedades (Modelo 200, declaración del IS) Does: Takes a company's annual accounts (resultado contable) and tax adjustments and produces a strictly-valid JSON object of the key Modelo 200 casillas (box numbers) — the resultado contable → base imponible bridge (ajustes extracontables, compensación de BINs), tipo de gravamen, cuota íntegra, deducciones y bonificaciones, retenciones y pagos fraccionados, and the líquido a ingresar / a devolver — ready to key into the AEAT Sociedades form. Standard: AEAT Modelo 200 — Impuesto sobre Sociedades (Orden HFP vigente; declaración del IS / pago de la cuota)

This skill produces the box-by-box dataset for the Modelo 200, not the signed AEAT presentation. The AI builds the resultado-contable-to-base-imponible bridge and computes the cuota; the taxpayer must validate every ajuste against the cuentas anuales and tax law, confirm the BINs available, and submit through the AEAT Sociedades web service. Casilla numbering and the tipo de gravamen change between exercises — verify against the current year's Modelo 200 before filing.


When this applies


Conversion procedure

  1. Read the source. Accept the cuentas anuales (balance + pérdidas y ganancias), a trial balance, or pasted figures: the resultado contable antes de impuestos / después de impuestos, the gasto por impuesto, the list of ajustes extracontables, BINs pending, deducciones, retenciones, and pagos fraccionados.
  2. Extract fields. Capture the resultado de la cuenta de pérdidas y ganancias (casilla 500), every ajuste (aumento / disminución, permanente / temporario) with its amount, the BINs available and the year they arose, the tipo de gravamen, deducciones y bonificaciones, retenciones e ingresos a cuenta, and pagos fraccionados (Modelo 202). If an ajuste or BIN is ambiguous, ask — do not invent.
  3. Normalize. Amounts in EUR, dot decimal, 2 decimals, no thousands separator. NIF uppercased; ejercicio as yyyy.
  4. Bridge resultado → base imponible. Start from casilla 500; add aumentos and subtract disminuciones (casillas of ajustes) to reach the base imponible antes de compensación (casilla 550), then subtract BINs (casilla 547) to reach the base imponible (casilla 552). Recompute — never copy a printed base.
  5. Compute the cuota. Apply the tipo de gravamen (casilla 558) to get cuota íntegra (casilla 562); subtract deducciones por doble imposición and bonificaciones (cuota íntegra ajustada, casilla 592); subtract deducciones para incentivar (casilla 582…) to cuota líquida (casilla 592); subtract retenciones (casilla 595) and pagos fraccionados (casilla 599) to the líquido a ingresar/devolver (casilla 621).
  6. Emit the JSON keyed by casilla (see output structure and worked example) and validate against the checklist, reconciling casilla 500 with the cuenta de pérdidas y ganancias of the cuentas anuales.

Source → Modelo 200 casilla map

From the source → Casilla (box)
Identification: NIF, name, ejercicio header (nif, razonSocial, ejercicio)
Resultado de la cuenta de pérdidas y ganancias 500
Impuesto sobre Sociedades (gasto contable) — aumento 301 (aumentos)
Ajuste por IS — disminución 302 (disminuciones)
Ajustes por diferencias permanentes — aumentos 303, 305
Ajustes por diferencias permanentes — disminuciones 304, 306
Ajustes por diferencias temporarias (origen) — aumento 307
Ajustes por diferencias temporarias (reversión) — disminución 308
Total aumentos al resultado contable 417 (suma de aumentos)
Total disminuciones al resultado contable 418 (suma de disminuciones)
Base imponible antes de aplicación de la reserva de capitalización 550
Reserva de capitalización (reducción) 1032
Base imponible antes de compensación de BINs 551
Compensación de bases imponibles negativas de períodos anteriores 547
Base imponible 552
Tipo de gravamen (%) 558
Cuota íntegra 562
Deducciones por doble imposición 570/571
Bonificaciones 567
Cuota íntegra ajustada positiva 582
Deducciones para incentivar determinadas actividades 588
Cuota líquida positiva 592
Retenciones e ingresos a cuenta 595
Pagos fraccionados (Modelo 202) 599
Cuota diferencial 611
Incremento por pérdida de beneficios fiscales / intereses de demora 612/613
Líquido a ingresar o a devolver 621

Boxes with no data are omitted. The casilla numbers follow the current official Modelo 200; several have shifted across recent exercises — confirm the active layout.


Output structure

Modelo200 (JSON object)
├── identificacion                  (nif, razonSocial, ejercicio, periodoImpositivo)
├── resultadoContable
│   └── casilla500                  (resultado de pérdidas y ganancias)
├── ajustesExtracontables
│   ├── aumentos                    (301/303/305/307…)  → total 417
│   ├── disminuciones               (302/304/306/308…)  → total 418
│   └── reservaCapitalizacion       (1032)
├── baseImponible
│   ├── baseAntesCompensacion       (551)
│   ├── compensacionBINs            (547)
│   └── casilla552                  (base imponible)
├── liquidacion
│   ├── tipoGravamen                (558)
│   ├── cuotaIntegra                (562)
│   ├── deduccionesBonificaciones   (567/570/588…)
│   ├── cuotaLiquida                (592)
│   ├── retenciones                 (595)
│   ├── pagosFraccionados           (599)
│   ├── cuotaDiferencial            (611)
│   └── liquidoIngresarDevolver     (621)
└── reconciliacionCuentasAnuales    (resultadoPyG, vínculo con depósito de cuentas)

Mandatory: identificacion, casilla500, casilla552, tipoGravamen, cuotaIntegra, cuotaLiquida, and liquidoIngresarDevolver.


Code tables

Tipo de gravamen (casilla 558)

Tipo Aplica a
25 Tipo general
23 Entidades de reducida dimensión con cifra de negocios < €1.000.000 (reducido)
15 Entidades de nueva creación (primer período con base positiva y el siguiente)
20 Cooperativas fiscalmente protegidas (resultado cooperativo)
30 Entidades de crédito y de hidrocarburos
10 Entidades sin fines lucrativos (Ley 49/2002)
1 SOCIMI / determinadas instituciones de inversión colectiva

Tipo de ajuste extracontable

Tipo Efecto sobre el resultado
Permanente — aumento Suma a la base, sin reversión futura (p.ej. multas, gastos no deducibles)
Permanente — disminución Resta de la base, sin reversión (p.ej. dividendos exentos art. 21)
Temporario — aumento (origen) Suma ahora, revierte (resta) en ejercicios futuros (p.ej. amortización contable > fiscal)
Temporario — disminución (reversión) Resta ahora por reversión de un ajuste temporario previo

Resultado de la liquidación

Valor Casilla 621 Significado
a ingresar > 0 Cuota a pagar a la AEAT
a devolver < 0 Devolución solicitada (exceso de retenciones / pagos fraccionados)
cuota cero = 0 Sin cuota diferencial

Calculation rules


Worked example (end-to-end)

Input — FY2025 corporate tax (pasted)

Sociedad: Tecnología Norte SL   NIF: B12345678
Período impositivo: 01/01/2025 – 31/12/2025 (ejercicio 2025, presentado 2026)
Entidad de reducida dimensión.

De las cuentas anuales:
  Resultado contable después de impuestos: 150.000,00 €
  Gasto por Impuesto sobre Sociedades contabilizado: 50.000,00 €

Ajustes fiscales:
  - Multa administrativa no deducible: +3.000,00 € (permanente, aumento)
  - Dividendos exentos art. 21 LIS: −20.000,00 € (permanente, disminución)
Compensación de BIN de 2022: 10.000,00 €
Tipo de gravamen: 25 % (general)
Retenciones soportadas: 4.000,00 €
Pagos fraccionados (Modelo 202): 18.000,00 €

After extraction + normalization (intermediate)

casilla 500 (resultado contable) = 150000.00 + 50000.00 = 200000.00   (antes de impuestos)
Aumentos: IS contabilizado 50000.00 (301) + multa 3000.00 (303) = 53000.00 → casilla 417 = 53000.00
Wait — el IS contable ya está fuera del resultado antes de impuestos; aquí partimos del resultado ANTES de impuestos.
Ajuste IS (301) = 50000.00 (aumento, gasto IS no deducible) ; multa (303) = 3000.00
  → total aumentos (417) = 53000.00
Disminuciones: dividendos exentos (304) = 20000.00 → casilla 418 = 20000.00
Tomando casilla 500 como resultado contable ANTES de impuestos = 150000.00:
  base antes compensación (551) = 150000.00 + 53000.00 − 20000.00 = 183000.00
  Nota: si 500 fuese el resultado DESPUÉS de impuestos (200000−50000=150000), el ajuste 301 reincorpora el IS.
compensación BIN (547) = 10000.00
base imponible (552) = 183000.00 − 10000.00 = 173000.00
cuota íntegra (562) = 173000.00 × 25 % = 43250.00
cuota líquida (592) = 43250.00 (sin otras deducciones)
cuota diferencial (611) = 43250.00 − 4000.00 (595) − 18000.00 (599) = 21250.00
líquido a ingresar (621) = 21250.00  → a ingresar

Output — Modelo 200 casillas (JSON)

{
  "modelo": "200",
  "identificacion": {
    "nif": "B12345678",
    "razonSocial": "Tecnología Norte SL",
    "ejercicio": "2025",
    "periodoImpositivo": { "inicio": "2025-01-01", "fin": "2025-12-31" }
  },
  "resultadoContable": {
    "casilla500": 150000.00
  },
  "ajustesExtracontables": {
    "aumentos": {
      "casilla301": 50000.00,
      "casilla303": 3000.00,
      "casilla417": 53000.00
    },
    "disminuciones": {
      "casilla304": 20000.00,
      "casilla418": 20000.00
    },
    "reservaCapitalizacion": { "casilla1032": 0.00 }
  },
  "baseImponible": {
    "casilla551": 183000.00,
    "casilla547": 10000.00,
    "casilla552": 173000.00
  },
  "liquidacion": {
    "casilla558": 25,
    "casilla562": 43250.00,
    "casilla592": 43250.00,
    "casilla595": 4000.00,
    "casilla599": 18000.00,
    "casilla611": 21250.00,
    "casilla621": 21250.00,
    "tipoResultado": "a ingresar"
  },
  "reconciliacionCuentasAnuales": {
    "resultadoPyG": 150000.00,
    "nota": "Casilla 500 debe coincidir con el resultado de la cuenta de pérdidas y ganancias de las cuentas anuales depositadas en el Registro Mercantil."
  }
}

Normalisations shown: amounts 150.000,00 €150000.00 (dot decimal, 2dp); rate 25 % → tipo 25; the IS contabilizado reincorporated as a permanent aumento (casilla 301, 50000.00) and the multa as 303; dividendos exentos as disminución 304; base antes compensación recomputed 500 + 417 − 418 = 183000.00, base imponible 551 − 547 = 173000.00; cuota íntegra 173000.00 × 25 % = 43250.00; cuota diferencial 43250.00 − 4000.00 − 18000.00 = 21250.00 → a ingresar. Casilla 500 reconciles with the cuenta de pérdidas y ganancias of the cuentas anuales.


Validation checklist


Last updated: 2026-06-13 — verify the current Modelo 200 casilla layout, tipo de gravamen, BIN compensation limits, and filing deadline against the AEAT Impuesto sobre Sociedades specification before use.