Prepara la teva primera presentació trimestral de l’IRPF

Aquesta pàgina tracta la teva primera presentació del Model 130 trimestral, de cap a cap: incorpora un trimestre de moviments al ledger, classifica’ls com a ingressos de negoci i despeses deduïbles, prepara l’esborrany i comprova que ha passat la verificació abans d’exportar-lo. Està escrita per a un contribuent autònom amb un NIF, CIF, NIE o una altra identitat de presentació que executa Cadrumo per primera vegada.

Cadrumo mai no presenta una declaració davant de l’Agència Estatal d’Administració Tributària (AEAT). Produeix localment l’artefacte fichero-BOE del Model 130; presentes aquest fitxer a través del canal oficial de l’AEAT.

Les ordres d’aquesta pàgina s’executen en directe en el moment de la compilació en un entorn de proves nou i sintètic. Els moviments, els imports i el contribuent són inventats. Executa les mateixes ordres sobre el teu propi perfil per veure les teves pròpies xifres.

Requisit: un perfil de contribuent vàlid. Crea’n un amb aeat config profile create <name> abans de començar. Configura el teu perfil te hi guia pas a pas.

Incorpora els moviments del teu trimestre

Importa l’extracte bancari del trimestre. Aquest exemple llegeix un petit extracte separat per comes amb dos moviments: un cobrament rebut d’un client i una compra de material d’oficina.

1Bring the quarter's bank movements into the ledger.
aeat app ledger import --file fixtures/movimientos-2026-1t.csv --provider csv
aeat app ledger import --file fixtures/movimientos-2026-1t.csv --provider csv
Rows	2
Entries imported	2
Skipped	0
2Check that the quarter's ledger now holds both movements.
aeat --format json app ledger list --year 2026 --period 1T
aeat --format json app ledger list --year 2026 --period 1T
{
  "active_profile": "docs-sequence-sandbox",
  "command": "ledger.list",
  "notices": [],
  "result": {
    "bucket_id": "<bucket-id>",
    "limit": null,
    "offset": 0,
    "rows": [
      {
        "amount": "1210",
        "attachment_ids": [],
        "booked_date": "2026-02-10",
        "business_classification": "NOT_YET_PROCESSED",
        "business_pct": null,
        "category_id": null,
        "classification_confidence": null,
        "classification_reason": "",
        "classified_at": null,
        "classified_by": "auto",
        "counterparty": "",
        "counterparty_country": null,
        "counterparty_identification_state": null,
        "created_at": "2026-04-01T09:00:00+00:00",
        "currency": "EUR",
        "date": "2026-02-10",
        "description": "Cobro factura F-2026-001 servicios de consultoria",
        "direction": "INCOMING",
        "display_id": "71a5db2b",
        "full_id": "71a5db2bb891df295bee72544c40497d24d5c8cfc7edab745ce7339dcf8d6518",
        "fx_rate": null,
        "group_label": null,
        "invoice_id": null,
        "irpf_category": null,
        "iva_amount": null,
        "iva_category": null,
        "iva_rate": null,
        "lifecycle_state": "ACTIVE",
        "m210_income_classification": null,
        "modified_at": "2026-04-01T09:00:00+00:00",
        "notes": "",
        "prorrata_reference": null,
        "purchase_invoice_evidence_id": null,
        "review_status": "pending",
        "source_jurisdiction": null,
        "taxable_base": null,
        "transaction_id": "71a5db2bb891df295bee72544c40497d24d5c8cfc7edab745ce7339dcf8d6518",
        "usage_ratio_id": null,
        "value_date": "2026-02-10",
        "value_in_eur": null
      },
      {
        "amount": "605",
        "attachment_ids": [],
        "booked_date": "2026-02-11",
        "business_classification": "NOT_YET_PROCESSED",
        "business_pct": null,
        "category_id": null,
        "classification_confidence": null,
        "classification_reason": "",
        "classified_at": null,
        "classified_by": "auto",
        "counterparty": "",
        "counterparty_country": null,
        "counterparty_identification_state": null,
        "created_at": "2026-04-01T09:00:00+00:00",
        "currency": "EUR",
        "date": "2026-02-11",
        "description": "Compra de material de oficina proveedor local",
        "direction": "OUTGOING",
        "display_id": "e3eeac5e",
        "full_id": "e3eeac5e306efe4e82a72896e92e7c236245ec85348834b2c10b120c67fe087d",
        "fx_rate": null,
        "group_label": null,
        "invoice_id": null,
        "irpf_category": null,
        "iva_amount": null,
        "iva_category": null,
        "iva_rate": null,
        "lifecycle_state": "ACTIVE",
        "m210_income_classification": null,
        "modified_at": "2026-04-01T09:00:00+00:00",
        "notes": "",
        "prorrata_reference": null,
        "purchase_invoice_evidence_id": null,
        "review_status": "pending",
        "source_jurisdiction": null,
        "taxable_base": null,
        "transaction_id": "e3eeac5e306efe4e82a72896e92e7c236245ec85348834b2c10b120c67fe087d",
        "usage_ratio_id": null,
        "value_date": "2026-02-11",
        "value_in_eur": null
      }
    ],
    "shown": 2,
    "total": 2,
    "truncated": false
  },
  "schema_version": "2",
  "status": "success"
}

Confirm both movements are now in the ledger.

La importació llegeix l’extracte i emmagatzema cada moviment com una fila del ledger. El llistat confirma que les dues files han aterrat al primer trimestre del 2026. Apunta --provider al format que exporta el teu banc; llista els proveïdors admesos amb:

1Show the import command's help, including the accepted providers.
aeat app ledger import --help
aeat app ledger import --help
Usage: aeat app ledger import [OPTIONS]

  Import bank statements or records into the accounting ledger

Options:
  --file <path>                   Path to the bank statement file or directory
                                  [required]
  --provider <auto|csv|ofx|qfx|xlsx|excel|n26|pdf|pdf-n26>
                                  Statement format provider.  [required]
  --dry-run                       Run the import in dry-run mode (without
                                  saving)
  --verify                        Verify entries after import
  --verify-source <path>          Original file used to verify imported rows.
  --verbose                       Show detailed information during import
  --period <str>                  Filing period as an AEAT token: 1T-4T
                                  (quarters), 0A (annual), 01-12 (months).
                                  Combine with --year to choose the year.
  --year <int>                    Filing year for --period (e.g. 2024).
  --install-completion            Install completion for the current shell.
  --show-completion               Show completion for the current shell, to
                                  copy it or customize the installation.
  --help                          Show this message and exit.

Confirm the import command lists its accepted providers.

Classifica cada moviment

Una fila importada porta una data i un import, però encara no diu com l’ha de tractar el càlcul fiscal. Classifica cada fila abans de calcular.

Marca el cobrament rebut com a ingrés de negoci i la compra com a despesa de negoci deduïble amb una categoria. Pren cada id de moviment del llistat anterior. La classificació d’ingressos pren només la decisió de negoci:

1Classify the collected payment as business income.
aeat --format json app ledger classify 71a5db2b --classification BUSINESS
aeat --format json app ledger classify 71a5db2b --classification BUSINESS
{
  "active_profile": "docs-sequence-sandbox",
  "command": "ledger.classify",
  "notices": [],
  "result": {
    "bucket_event_ids": [
      "59813ece53d01035dac79cf9a8fc8cf9cd8928359b15b5d910766dbbc15948f8"
    ],
    "bucket_id": "<bucket-id>",
    "review_status": "reviewed",
    "transaction": {
      "amount": "1210",
      "attachment_ids": [],
      "booked_date": "2026-02-10",
      "business_classification": "BUSINESS",
      "business_pct": null,
      "category_id": null,
      "classification_confidence": "1",
      "classification_reason": "aeat app ledger classify",
      "classified_at": "2026-04-01T09:00:00+00:00",
      "classified_by": "manual",
      "counterparty": "",
      "counterparty_country": null,
      "counterparty_identification_state": null,
      "created_at": "2026-04-01T09:00:00+00:00",
      "currency": "EUR",
      "date": "2026-02-10",
      "description": "Cobro factura F-2026-001 servicios de consultoria",
      "direction": "INCOMING",
      "fx_rate": null,
      "invoice_id": null,
      "irpf_category": null,
      "iva_amount": null,
      "iva_category": null,
      "iva_rate": null,
      "lifecycle_state": "ACTIVE",
      "m210_income_classification": null,
      "modified_at": "2026-04-01T09:00:00+00:00",
      "notes": "",
      "prorrata_reference": null,
      "purchase_invoice_evidence_id": null,
      "source_jurisdiction": null,
      "taxable_base": null,
      "transaction_id": "71a5db2bb891df295bee72544c40497d24d5c8cfc7edab745ce7339dcf8d6518",
      "usage_ratio_id": null,
      "value_date": "2026-02-10",
      "value_in_eur": null
    },
    "transaction_id": "71a5db2bb891df295bee72544c40497d24d5c8cfc7edab745ce7339dcf8d6518"
  },
  "schema_version": "2",
  "status": "success"
}

Confirm the collected payment is classified as business income.

Per a una despesa, afegeix --category-id <category-id> més els camps de base imposable i IVA. Llista les categories admeses en qualsevol moment:

1List the accepted expense categories.
aeat --format json app ledger categories
aeat --format json app ledger categories
{
  "active_profile": "docs-sequence-sandbox",
  "command": "ledger.categories",
  "notices": [],
  "result": {
    "category_ids": [
      "cuotas_colegiales",
      "cuotas_autonomos_ss",
      "mutualidad_alternativa",
      "arrendamiento_local",
      "arrendamiento_vivienda_afecto",
      "ibi_local_afecto",
      "suministros_local_afecto",
      "suministros_home_office_luz",
      "suministros_home_office_agua",
      "suministros_home_office_gas",
      "suministros_home_office_internet",
      "amortizacion_vivienda_afecto",
      "ibi_vivienda_afecto",
      "comunidad_vivienda_afecto",
      "telefonia_movil",
      "telefonia_fija",
      "material_oficina",
      "software_suscripcion",
      "hardware_amortizable",
      "mobiliario_amortizable",
      "reparaciones_conservacion",
      "vehiculo_combustible",
      "vehiculo_mantenimiento",
      "vehiculo_seguro",
      "vehiculo_peaje",
      "vehiculo_parking",
      "manutencion_dietas_nacional",
      "manutencion_dietas_extranjero",
      "asesoria_fiscal",
      "asesoria_juridica",
      "asesoria_contable",
      "publicidad_marketing",
      "formacion_profesional",
      "viajes_transporte",
      "viajes_alojamiento",
      "seguros_responsabilidad_civil",
      "seguros_salud_autonomo",
      "gastos_bancarios",
      "gastos_financieros",
      "suministros_cliente_directos",
      "subcontratacion",
      "tributos_fiscalmente_deducibles"
    ],
    "families": [
      {
        "category_ids": [
          "cuotas_colegiales",
          "cuotas_autonomos_ss",
          "mutualidad_alternativa"
        ],
        "family": "social_security"
      },
      {
        "category_ids": [
          "arrendamiento_local",
          "ibi_local_afecto",
          "suministros_local_afecto"
        ],
        "family": "premises"
      },
      {
        "category_ids": [
          "suministros_home_office_luz",
          "suministros_home_office_agua",
          "suministros_home_office_gas",
          "suministros_home_office_internet",
          "telefonia_fija"
        ],
        "family": "home_office_suministros"
      },
      {
        "category_ids": [
          "amortizacion_vivienda_afecto",
          "ibi_vivienda_afecto",
          "comunidad_vivienda_afecto",
          "arrendamiento_vivienda_afecto"
        ],
        "family": "home_office_ownership"
      },
      {
        "category_ids": [
          "telefonia_movil"
        ],
        "family": "telecoms"
      },
      {
        "category_ids": [
          "material_oficina",
          "software_suscripcion",
          "hardware_amortizable",
          "mobiliario_amortizable",
          "reparaciones_conservacion",
          "publicidad_marketing",
          "formacion_profesional"
        ],
        "family": "office"
      },
      {
        "category_ids": [
          "vehiculo_combustible",
          "vehiculo_mantenimiento",
          "vehiculo_seguro",
          "vehiculo_peaje",
          "vehiculo_parking"
        ],
        "family": "vehicle"
      },
      {
        "category_ids": [
          "manutencion_dietas_nacional",
          "manutencion_dietas_extranjero"
        ],
        "family": "meals"
      },
      {
        "category_ids": [
          "asesoria_fiscal",
          "asesoria_juridica",
          "asesoria_contable"
        ],
        "family": "professional_services"
      },
      {
        "category_ids": [
          "viajes_transporte",
          "viajes_alojamiento"
        ],
        "family": "travel"
      },
      {
        "category_ids": [
          "seguros_responsabilidad_civil",
          "seguros_salud_autonomo"
        ],
        "family": "insurance"
      },
      {
        "category_ids": [
          "gastos_bancarios",
          "gastos_financieros"
        ],
        "family": "financial"
      },
      {
        "category_ids": [
          "suministros_cliente_directos",
          "subcontratacion"
        ],
        "family": "direct_costs"
      },
      {
        "category_ids": [
          "tributos_fiscalmente_deducibles"
        ],
        "family": "taxes"
      }
    ],
    "income_requires_category": false,
    "irpf_categories": [
      {
        "directions": [
          "INCOMING",
          "OUTGOING"
        ],
        "id": "actividad_economica",
        "net_paid_invoice": true,
        "purpose": "activity_income_withholding",
        "related_category_ids": [
          "asesoria_contable",
          "asesoria_fiscal",
          "asesoria_juridica"
        ]
      },
      {
        "directions": [
          "OUTGOING"
        ],
        "id": "arrendamiento_local",
        "net_paid_invoice": true,
        "purpose": "rent_expense_withholding",
        "related_category_ids": [
          "arrendamiento_local"
        ]
      },
      {
        "directions": [
          "OUTGOING"
        ],
        "id": "arrendamiento_vivienda_afecto",
        "net_paid_invoice": true,
        "purpose": "rent_expense_withholding",
        "related_category_ids": [
          "arrendamiento_vivienda_afecto"
        ]
      },
      {
        "directions": [
          "INCOMING"
        ],
        "id": "trabajo",
        "net_paid_invoice": false,
        "purpose": "employment_income",
        "related_category_ids": []
      }
    ],
    "irpf_category_ids": [
      "actividad_economica",
      "arrendamiento_local",
      "arrendamiento_vivienda_afecto",
      "trabajo"
    ],
    "net_paid_withholding_irpf_category_ids": [
      "actividad_economica",
      "arrendamiento_local",
      "arrendamiento_vivienda_afecto"
    ]
  },
  "schema_version": "2",
  "status": "success"
}

Confirm the accepted expense categories read back.

Per al flux de classificació complet (classificació en massa, proporcions d’ús mixt i la cua de revisió), llegeix Classifica els moviments.

Prepara l’esborrany del Model 130

Un cop classificades les files del trimestre, prepara el pagament fraccionat. La preparació següent configura un perfil d’autònom i un ledger classificat, i després crea l’esborrany, el calcula i el verifica. El Model 130 és el pagament a compte de l’IRPF per a l’activitat d’autònom en estimación directa.

1Open a Modelo 130 draft for the first quarter.
aeat --format json app modelo work create --modelo 130 --year 2026 --period 1T
aeat --format json app modelo work create --modelo 130 --year 2026 --period 1T
{
  "active_profile": "docs-sequence-sandbox",
  "command": "modelo.work.create",
  "notices": [],
  "result": {
    "applicability_guard_bypassed": false,
    "bucket_id": "<bucket-id>",
    "causante_ccaa": null,
    "created_at": "2026-04-01T09:00:00+00:00",
    "current_calculation_revision_id": null,
    "current_filing_record_id": null,
    "discard_reason": null,
    "discarded_at": null,
    "discarded_by": null,
    "filed_calculation_revision_id": null,
    "filing_year": 2026,
    "modelo": "130",
    "name": "130-2026-1T",
    "name_applied": null,
    "operation": "modelo.work.create",
    "period": {
      "code": "1T",
      "filing_year": 2026
    },
    "revision_id": "2019-y-siguientes",
    "short_current_calculation_revision_id": null,
    "short_filed_calculation_revision_id": null,
    "short_work_unit_id": "3d88172f4204",
    "state": "borrador",
    "status": "created",
    "status_message": "New work unit created.",
    "updated_at": "2026-04-01T09:00:00+00:00",
    "work_unit_id": "ca5815c72d1ed564e582924ad157fd1c3349eba45264da2a7b843d88172f4204"
  },
  "schema_version": "2",
  "status": "success"
}
2Calculate the quarter's instalment from the classified ledger.
aeat --format json app modelo work calculate {work_unit_id} --binding \
  modelo-130-resultados-negativos-anteriores=0 --binding \
  modelo-130-pagos-fraccionados-anteriores=0 --binding \
  irpf.previous_year_economic_activity_net_income=0
aeat --format json app modelo work calculate {work_unit_id} --binding `
  modelo-130-resultados-negativos-anteriores=0 --binding `
  modelo-130-pagos-fraccionados-anteriores=0 --binding `
  irpf.previous_year_economic_activity_net_income=0
{
  "active_profile": "docs-sequence-sandbox",
  "command": "modelo.work.calculate",
  "notices": [],
  "result": {
    "authorization_state": null,
    "binding_overrides": {
      "irpf.previous_year_economic_activity_net_income": "0",
      "modelo-130-actividad-economica-gastos-cumulative": "500",
      "modelo-130-actividad-economica-ingresos-cumulative": "1000",
      "modelo-130-actividad-economica-ingresos-taxable-base-cumulative": "1000",
      "modelo-130-actividad-economica-rendimiento-neto-cumulative": "1000",
      "modelo-130-actividad-economica-retenciones-cumulative": "0",
      "modelo-130-pagos-fraccionados-anteriores": "0",
      "modelo-130-resultados-negativos-anteriores": "0"
    },
    "calculation_revision_id": "07d9ed8eec846976eac02aeae13217e835e000f8a460d053909b33d9a3995fec",
    "casilla_values": {
      "01": "1000",
      "02": "500",
      "03": "500.00",
      "04": "100.00",
      "05": "0",
      "06": "0",
      "07": "100.00",
      "08": "0",
      "09": "0.00",
      "10": "0",
      "11": "0.00",
      "12": "100.00",
      "13": "100.00",
      "14": "0.00",
      "15": "0.00",
      "16": "0",
      "17": "0.00",
      "18": "0",
      "19": "0.00",
      "saldo-negativo-fin-periodo": "0.00"
    },
    "created_at": "2026-04-01T09:00:00+00:00",
    "deadline": {
      "closes_on": "2026-04-20",
      "conditional_recargo_preview": null,
      "days_overdue": null,
      "days_remaining": 19
    },
    "detail_rows": [],
    "filed_at": null,
    "filed_by": null,
    "input_values_by_casilla_id": {
      "01": "1000",
      "02": "500",
      "05": "0",
      "06": "0"
    },
    "modality": null,
    "modality_reason": null,
    "observations": [
      {
        "absent_by_design": false,
        "casilla_id": "01",
        "formula_id": null,
        "legal_refs": [
          "rd-439-2007:art-110",
          "orden-eha-672-2007:art-1",
          "ley-35-2006:art-99",
          "rd-439-2007:art-95",
          "ley-35-2006:art-27",
          "ley-35-2006:art-28"
        ],
        "op": null,
        "operand_casilla_refs": [],
        "operand_refs": [],
        "operand_values": [],
        "source_refs": [
          "aeat-dr-130-2019-v12",
          "aeat-modelo-130-instructions"
        ],
        "value": "1000"
      },
      {
        "absent_by_design": false,
        "casilla_id": "02",
        "formula_id": null,
        "legal_refs": [
          "rd-439-2007:art-110",
          "orden-eha-672-2007:art-1",
          "ley-35-2006:art-99",
          "rd-439-2007:art-95",
          "ley-35-2006:art-28",
          "ley-35-2006:art-30"
        ],
        "op": null,
        "operand_casilla_refs": [],
        "operand_refs": [],
        "operand_values": [],
        "source_refs": [
          "aeat-dr-130-2019-v12",
          "aeat-modelo-130-instructions"
        ],
        "value": "500"
      },
      {
        "absent_by_design": false,
        "casilla_id": "03",
        "formula_id": "modelo-130-rendimiento-neto",
        "legal_refs": [
          "rd-439-2007:art-110",
          "orden-eha-672-2007:art-1",
          "ley-35-2006:art-99",
          "rd-439-2007:art-95"
        ],
        "op": "subtract",
        "operand_casilla_refs": [
          "01",
          "02"
        ],
        "operand_refs": [
          "01",
          "02"
        ],
        "operand_values": [
          "1000",
          "500"
        ],
        "source_refs": [
          "aeat-dr-130-2019-v12",
          "aeat-modelo-130-instructions"
        ],
        "value": "500.00"
      },
      {
        "absent_by_design": false,
        "casilla_id": "04",
        "formula_id": "modelo-130-pago-fraccionado-directa",
        "legal_refs": [
          "rd-439-2007:art-110",
          "orden-eha-672-2007:art-1",
          "ley-35-2006:art-99",
          "rd-439-2007:art-95"
        ],
        "op": "max",
        "operand_casilla_refs": [
          "03"
        ],
        "operand_refs": [
          "03",
          "irpf.direct_estimation_fractional_payment_rate"
        ],
        "operand_values": [
          "500.00",
          "20"
        ],
        "source_refs": [
          "aeat-dr-130-2019-v12",
          "aeat-modelo-130-instructions"
        ],
        "value": "100.00"
      },
      {
        "absent_by_design": false,
        "casilla_id": "05",
        "formula_id": null,
        "legal_refs": [
          "rd-439-2007:art-110",
          "orden-eha-672-2007:art-1",
          "ley-35-2006:art-99",
          "rd-439-2007:art-95"
        ],
        "op": null,
        "operand_casilla_refs": [],
        "operand_refs": [],
        "operand_values": [],
        "source_refs": [
          "aeat-dr-130-2019-v12",
          "aeat-modelo-130-instructions"
        ],
        "value": "0"
      },
      {
        "absent_by_design": false,
        "casilla_id": "06",
        "formula_id": null,
        "legal_refs": [
          "rd-439-2007:art-110",
          "orden-eha-672-2007:art-1",
          "ley-35-2006:art-99",
          "rd-439-2007:art-95"
        ],
        "op": null,
        "operand_casilla_refs": [],
        "operand_refs": [],
        "operand_values": [],
        "source_refs": [
          "aeat-dr-130-2019-v12",
          "aeat-modelo-130-instructions"
        ],
        "value": "0"
      },
      {
        "absent_by_design": false,
        "casilla_id": "07",
        "formula_id": "modelo-130-resultado-apartado-i",
        "legal_refs": [
          "rd-439-2007:art-110",
          "orden-eha-672-2007:art-1",
          "ley-35-2006:art-99",
          "rd-439-2007:art-95"
        ],
        "op": "subtract",
        "operand_casilla_refs": [
          "04",
          "05",
          "06"
        ],
        "operand_refs": [
          "04",
          "05",
          "06"
        ],
        "operand_values": [
          "100.00",
          "0",
          "0"
        ],
        "source_refs": [
          "aeat-dr-130-2019-v12",
          "aeat-modelo-130-instructions"
        ],
        "value": "100.00"
      },
      {
        "absent_by_design": false,
        "casilla_id": "08",
        "formula_id": null,
        "legal_refs": [
          "rd-439-2007:art-110",
          "orden-eha-672-2007:art-1",
          "ley-35-2006:art-99",
          "rd-439-2007:art-95"
        ],
        "op": null,
        "operand_casilla_refs": [],
        "operand_refs": [],
        "operand_values": [],
        "source_refs": [
          "aeat-dr-130-2019-v12",
          "aeat-modelo-130-instructions"
        ],
        "value": "0"
      },
      {
        "absent_by_design": false,
        "casilla_id": "09",
        "formula_id": "modelo-130-pago-fraccionado-agrario",
        "legal_refs": [
          "rd-439-2007:art-110",
          "orden-eha-672-2007:art-1",
          "ley-35-2006:art-99",
          "rd-439-2007:art-95"
        ],
        "op": "percent",
        "operand_casilla_refs": [
          "08"
        ],
        "operand_refs": [
          "08",
          "irpf.agriculture_fractional_payment_rate"
        ],
        "operand_values": [
          "0",
          "2"
        ],
        "source_refs": [
          "aeat-dr-130-2019-v12",
          "aeat-modelo-130-instructions"
        ],
        "value": "0.00"
      },
      {
        "absent_by_design": false,
        "casilla_id": "10",
        "formula_id": null,
        "legal_refs": [
          "rd-439-2007:art-110",
          "orden-eha-672-2007:art-1",
          "ley-35-2006:art-99",
          "rd-439-2007:art-95"
        ],
        "op": null,
        "operand_casilla_refs": [],
        "operand_refs": [],
        "operand_values": [],
        "source_refs": [
          "aeat-dr-130-2019-v12",
          "aeat-modelo-130-instructions"
        ],
        "value": "0"
      },
      {
        "absent_by_design": false,
        "casilla_id": "11",
        "formula_id": "modelo-130-resultado-apartado-ii",
        "legal_refs": [
          "rd-439-2007:art-110",
          "orden-eha-672-2007:art-1",
          "ley-35-2006:art-99",
          "rd-439-2007:art-95"
        ],
        "op": "subtract",
        "operand_casilla_refs": [
          "09",
          "10"
        ],
        "operand_refs": [
          "09",
          "10"
        ],
        "operand_values": [
          "0.00",
          "0"
        ],
        "source_refs": [
          "aeat-dr-130-2019-v12",
          "aeat-modelo-130-instructions"
        ],
        "value": "0.00"
      },
      {
        "absent_by_design": false,
        "casilla_id": "12",
        "formula_id": "modelo-130-suma-parciales",
        "legal_refs": [
          "rd-439-2007:art-110",
          "orden-eha-672-2007:art-1",
          "ley-35-2006:art-99",
          "rd-439-2007:art-95"
        ],
        "op": "max",
        "operand_casilla_refs": [
          "07",
          "11"
        ],
        "operand_refs": [
          "07",
          "11"
        ],
        "operand_values": [
          "100.00",
          "0.00"
        ],
        "source_refs": [
          "aeat-dr-130-2019-v12",
          "aeat-modelo-130-instructions"
        ],
        "value": "100.00"
      },
      {
        "absent_by_design": false,
        "casilla_id": "13",
        "formula_id": "modelo-130-minoracion-rendimientos-netos",
        "legal_refs": [
          "rd-439-2007:art-110",
          "orden-eha-672-2007:art-1",
          "ley-35-2006:art-99",
          "rd-439-2007:art-95"
        ],
        "op": "if_then_else",
        "operand_casilla_refs": [],
        "operand_refs": [
          "irpf.previous_year_economic_activity_net_income"
        ],
        "operand_values": [
          "0"
        ],
        "source_refs": [
          "aeat-dr-130-2019-v12",
          "aeat-modelo-130-instructions"
        ],
        "value": "100.00"
      },
      {
        "absent_by_design": false,
        "casilla_id": "14",
        "formula_id": "modelo-130-neto-tras-minoracion",
        "legal_refs": [
          "rd-439-2007:art-110",
          "orden-eha-672-2007:art-1",
          "ley-35-2006:art-99",
          "rd-439-2007:art-95"
        ],
        "op": "subtract",
        "operand_casilla_refs": [
          "12",
          "13"
        ],
        "operand_refs": [
          "12",
          "13"
        ],
        "operand_values": [
          "100.00",
          "100.00"
        ],
        "source_refs": [
          "aeat-dr-130-2019-v12",
          "aeat-modelo-130-instructions"
        ],
        "value": "0.00"
      },
      {
        "absent_by_design": false,
        "casilla_id": "15",
        "formula_id": "modelo-130-resultados-negativos-anteriores-cap",
        "legal_refs": [
          "rd-439-2007:art-110",
          "orden-eha-672-2007:art-1",
          "ley-35-2006:art-99",
          "rd-439-2007:art-95"
        ],
        "op": "min",
        "operand_casilla_refs": [
          "14"
        ],
        "operand_refs": [
          "modelo-130-resultados-negativos-anteriores",
          "14"
        ],
        "operand_values": [
          "0",
          "0.00"
        ],
        "source_refs": [
          "aeat-dr-130-2019-v12",
          "aeat-modelo-130-instructions"
        ],
        "value": "0.00"
      },
      {
        "absent_by_design": false,
        "casilla_id": "16",
        "formula_id": null,
        "legal_refs": [
          "rd-439-2007:art-110",
          "orden-eha-672-2007:art-1",
          "ley-35-2006:art-99",
          "rd-439-2007:art-95"
        ],
        "op": null,
        "operand_casilla_refs": [],
        "operand_refs": [],
        "operand_values": [],
        "source_refs": [
          "aeat-dr-130-2019-v12",
          "aeat-modelo-130-instructions"
        ],
        "value": "0"
      },
      {
        "absent_by_design": false,
        "casilla_id": "17",
        "formula_id": "modelo-130-diferencia",
        "legal_refs": [
          "rd-439-2007:art-110",
          "orden-eha-672-2007:art-1",
          "ley-35-2006:art-99",
          "rd-439-2007:art-95"
        ],
        "op": "subtract",
        "operand_casilla_refs": [
          "14",
          "15",
          "16"
        ],
        "operand_refs": [
          "14",
          "15",
          "16"
        ],
        "operand_values": [
          "0.00",
          "0.00",
          "0"
        ],
        "source_refs": [
          "aeat-dr-130-2019-v12",
          "aeat-modelo-130-instructions"
        ],
        "value": "0.00"
      },
      {
        "absent_by_design": false,
        "casilla_id": "18",
        "formula_id": null,
        "legal_refs": [
          "rd-439-2007:art-110",
          "orden-eha-672-2007:art-1",
          "ley-35-2006:art-99",
          "rd-439-2007:art-95"
        ],
        "op": null,
        "operand_casilla_refs": [],
        "operand_refs": [],
        "operand_values": [],
        "source_refs": [
          "aeat-dr-130-2019-v12",
          "aeat-modelo-130-instructions"
        ],
        "value": "0"
      },
      {
        "absent_by_design": false,
        "casilla_id": "19",
        "formula_id": "modelo-130-resultado-final",
        "legal_refs": [
          "rd-439-2007:art-110",
          "orden-eha-672-2007:art-1",
          "ley-35-2006:art-99",
          "rd-439-2007:art-95"
        ],
        "op": "subtract",
        "operand_casilla_refs": [
          "17",
          "18"
        ],
        "operand_refs": [
          "17",
          "18"
        ],
        "operand_values": [
          "0.00",
          "0"
        ],
        "source_refs": [
          "aeat-dr-130-2019-v12",
          "aeat-modelo-130-instructions"
        ],
        "value": "0.00"
      },
      {
        "absent_by_design": false,
        "casilla_id": "saldo-negativo-fin-periodo",
        "formula_id": "modelo-130-saldo-negativo-fin-periodo",
        "legal_refs": [
          "rd-439-2007:art-110",
          "orden-eha-672-2007:art-1",
          "ley-35-2006:art-99",
          "rd-439-2007:art-95"
        ],
        "op": "max",
        "operand_casilla_refs": [
          "17"
        ],
        "operand_refs": [
          "17"
        ],
        "operand_values": [
          "0.00"
        ],
        "source_refs": [
          "aeat-dr-130-2019-v12",
          "aeat-modelo-130-instructions"
        ],
        "value": "0.00"
      }
    ],
    "operation": "modelo.work.calculate",
    "registry_snapshot_ref": {
      "modelo": "130",
      "modelo_year": 2026,
      "period": "1T",
      "revision_id": "2019-y-siguientes"
    },
    "relation_overrides": {},
    "result_summary": [
      {
        "casilla_id": "03",
        "label": "Net yield",
        "role": "key_figure",
        "value": "500.00"
      },
      {
        "casilla_id": "04",
        "label": "Fractional payment amount",
        "role": "key_figure",
        "value": "100.00"
      },
      {
        "casilla_id": "07",
        "label": "Partial result of Section I",
        "role": "key_figure",
        "value": "100.00"
      },
      {
        "casilla_id": "09",
        "label": "Fractional payment amount",
        "role": "key_figure",
        "value": "0.00"
      },
      {
        "casilla_id": "11",
        "label": "Partial result of Section II",
        "role": "key_figure",
        "value": "0.00"
      },
      {
        "casilla_id": "12",
        "label": "Sum of partial results",
        "role": "key_figure",
        "value": "100.00"
      },
      {
        "casilla_id": "13",
        "label": "Reduction for net yields",
        "role": "key_figure",
        "value": "100.00"
      },
      {
        "casilla_id": "14",
        "label": "Net amount after reduction",
        "role": "key_figure",
        "value": "0.00"
      },
      {
        "casilla_id": "17",
        "label": "Difference",
        "role": "key_figure",
        "value": "0.00"
      },
      {
        "casilla_id": "19",
        "label": "Final result",
        "role": "key_figure",
        "value": "0.00"
      }
    ],
    "saved": true,
    "saved_confirmation": "Saved as draft calculation revision 07d9ed8eec846976eac02aeae13217e835e000f8a460d053909b33d9a3995fec (state: draft). It is persisted and can be resumed later.",
    "source_provenance": [
      {
        "contributor_binding_source": "ledger_renta_income_aggregation",
        "contributor_source_kind": "ledger_renta_income_aggregation",
        "dependency_treatment": "",
        "fingerprint": null,
        "lineage_role": "primary",
        "parent_source_ref": null,
        "resolved_binding_source": "ledger_renta_income_aggregation",
        "resolver_id": "ledger_renta_income_aggregation",
        "source_ref": "transaction:71a5db2bb891df295bee72544c40497d24d5c8cfc7edab745ce7339dcf8d6518"
      },
      {
        "contributor_binding_source": "ledger_renta_gastos_pago_fraccionado_aggregation",
        "contributor_source_kind": "ledger_renta_gastos_pago_fraccionado_aggregation",
        "dependency_treatment": "",
        "fingerprint": null,
        "lineage_role": "primary",
        "parent_source_ref": null,
        "resolved_binding_source": "ledger_renta_gastos_pago_fraccionado_aggregation",
        "resolver_id": "ledger_renta_gastos_pago_fraccionado_aggregation",
        "source_ref": "transaction:e3eeac5e306efe4e82a72896e92e7c236245ec85348834b2c10b120c67fe087d"
      },
      {
        "contributor_binding_source": "previous_filing",
        "contributor_source_kind": "previous_filing",
        "dependency_treatment": "factual_evidence",
        "fingerprint": null,
        "lineage_role": "primary",
        "parent_source_ref": null,
        "resolved_binding_source": "previous_filing",
        "resolver_id": "previous_filing",
        "source_ref": "100:2025:0A:irpf.previous_year_economic_activity_net_income"
      }
    ],
    "state": "borrador",
    "superseded_at": null,
    "updated_at": "2026-04-01T09:00:00+00:00",
    "verified_at": null,
    "verified_by": null,
    "work_unit_id": "ca5815c72d1ed564e582924ad157fd1c3349eba45264da2a7b843d88172f4204"
  },
  "schema_version": "2",
  "status": "success"
}
3Verify the draft before you export it.
aeat --format json app modelo work verify {calculation_revision_id}
aeat --format json app modelo work verify {calculation_revision_id}
{
  "active_profile": "docs-sequence-sandbox",
  "command": "modelo.work.verify",
  "notices": [
    {
      "action": null,
      "code": "modelo.work.verify.finding.advisory",
      "context": {
        "activity_start_date": "2026-01-01",
        "kind": "advisory",
        "legal_refs": "rd-1065-2007:art-9",
        "origin_code": "previous_filing_binding",
        "severity": "warning",
        "source_filing_year": "2025",
        "source_modelo": "100",
        "source_period": "0A",
        "source_refs": "aeat-dr-130-2019-v12, aeat-modelo-130-instructions"
      },
      "message": "Modelo 100 2025 0A is suppressed by operator declaration (previous_filing_binding), with declared activity start date 2026-01-01.",
      "severity": "warning"
    },
    {
      "action": null,
      "code": "modelo.work.verify.finding.advisory",
      "context": {
        "binding_id": "71a5db2bb891df295bee72544c40497d24d5c8cfc7edab745ce7339dcf8d6518",
        "diagnostic_reason_code": "missing_transaction_evidence",
        "kind": "advisory",
        "legal_refs": "ley-37-1992:art-97, rd-1619-2012:art-2",
        "severity": "warning",
        "source_kind_code": "output_iva_evidence",
        "source_refs": "aeat-dr-130-2019-v12, aeat-modelo-130-instructions"
      },
      "message": "An output transaction has no supporting evidence (binding 71a5db2bb891df295bee72544c40497d24d5c8cfc7edab745ce7339dcf8d6518, source output_iva_evidence, reason missing_transaction_evidence).",
      "severity": "warning"
    }
  ],
  "result": {
    "calculation_revision_id": "07d9ed8eec846976eac02aeae13217e835e000f8a460d053909b33d9a3995fec",
    "completeness_status": "complete",
    "findings": [
      {
        "action": null,
        "casilla_id": null,
        "expectation_id": null,
        "kind": "advisory",
        "legal_refs": [
          "rd-1065-2007:art-9"
        ],
        "message": "Modelo 100 2025 0A is suppressed by operator declaration (previous_filing_binding), with declared activity start date 2026-01-01.",
        "severity": "warning",
        "source_refs": [
          "aeat-dr-130-2019-v12",
          "aeat-modelo-130-instructions"
        ]
      },
      {
        "action": null,
        "casilla_id": null,
        "expectation_id": null,
        "kind": "advisory",
        "legal_refs": [
          "ley-37-1992:art-97",
          "rd-1619-2012:art-2"
        ],
        "message": "An output transaction has no supporting evidence (binding 71a5db2bb891df295bee72544c40497d24d5c8cfc7edab745ce7339dcf8d6518, source output_iva_evidence, reason missing_transaction_evidence).",
        "severity": "warning",
        "source_refs": [
          "aeat-dr-130-2019-v12",
          "aeat-modelo-130-instructions"
        ]
      }
    ],
    "granted_verificado_completo": true,
    "missing_required_casilla_ids": [],
    "operation": "modelo.work.verify",
    "registry_snapshot_ref": {
      "modelo": "130",
      "modelo_year": 2026,
      "period": "1T",
      "revision_id": "2019-y-siguientes"
    },
    "resolved_casilla_ids": [],
    "run_at": "2026-04-01T09:00:00+00:00",
    "verification_report_id": "475fedcde9467701a4a5f9a29274e4a6db03e03b6971e85112a4c911fe7f2f4f",
    "verified_by": "docs-sequence-sandbox"
  },
  "schema_version": "2",
  "status": "warning"
}

Confirm the draft passed verification before you file it.

Llegeix els marcs en ordre:

  • Crea l’esborrany per al Model 130, primer trimestre del 2026. L’ordre reporta un work_unit_id que adreça l’esborrany.

  • Calcula’l. Cadrumo llegeix el ledger classificat i emplena les caselles: la casella 01 és l’ingrés del trimestre, la casella 02 les despeses deduïbles, la casella 03 el rendiment net i la casella 04 el pagament fraccionat. La casella 01 mostra 1000.00, no els 1210.00 que has cobrat: l’IVA no forma part mai dels teus ingressos, de manera que els 210.00 d’IVA es deixen fora. Amb el ledger d’exemple, el rendiment net és 500.00 i el pagament fraccionat és 100.00, el vint per cent del net. Els tres valors --binding ...=0 són els trasllats del període anterior que un primer trimestre real no té.

  • Verifica l’esborrany. El resultat diu granted_verificado_completo cert, de manera que l’esborrany està complet i a punt per exportar.

Comprova les xifres i exporta

El resultat de la verificació indica que l’esborrany està a punt. La verificació es denega fins que cada fila de despesa deduïble tingui vinculada l’evidència de la factura de compra; per això aquest exemple registra la factura del proveïdor i l’adjunta abans de calcular. Fes-ho en aquest ordre: l’esborrany incorpora la seva evidència quan el verifiques, de manera que una factura adjuntada després no arriba a la presentació.

La seqüència següent exporta l’esborrany verificat i després registra el marcador local de presentat.

1Export the verified draft to the registry-backed fichero-BOE layout.
aeat --format json app modelo export --modelo 130 --year 2026 --period 1T --output \
  ./modelo-130.boe
aeat --format json app modelo export --modelo 130 --year 2026 --period 1T --output `
  ./modelo-130.boe
{
  "active_profile": "docs-sequence-sandbox",
  "command": "modelo.export",
  "notices": [
    {
      "action": null,
      "code": "modelo.export.local_export_not_official_evidence",
      "context": {
        "evidence_status": "local_export_not_official_aeat_filing_evidence",
        "filing_year": "2026",
        "modelo": "130",
        "period": "1T"
      },
      "message": "The local export is not official filing evidence.",
      "severity": "warning"
    }
  ],
  "result": {
    "bucket_event_id": "3ff37989bdc94cfba48d032cd41b6f30e38e44375d3aded8bb46cd96f453832b",
    "bucket_id": "<bucket-id>",
    "byte_size": 946,
    "calculation_revision_id": "07d9ed8eec846976eac02aeae13217e835e000f8a460d053909b33d9a3995fec",
    "file_sha256": "eaf7e73156441acfec60519635ebea91a6a221f32b23b85a638b5219b8536c7d",
    "filing_year": 2026,
    "format": "fichero-boe",
    "modelo": "130",
    "operation": "modelo.export",
    "output_path": "modelo-130.boe",
    "payment_election": null,
    "period": {
      "code": "1T",
      "filing_year": 2026
    },
    "prior_domiciliation_election": {
      "baseline_evidence_reference_id": null,
      "baseline_filing_record_id": null,
      "baseline_result_disposition": null,
      "baseline_source_header_locator": null,
      "election": "keep"
    },
    "refund_election": null,
    "resolved_result_disposition": "N",
    "work_unit_id": "ca5815c72d1ed564e582924ad157fd1c3349eba45264da2a7b843d88172f4204"
  },
  "schema_version": "2",
  "status": "warning"
}
2Record the separate local filed marker in the obligation window.
aeat --format json app modelo work file --modelo 130 --year 2026 --period 1T
aeat --format json app modelo work file --modelo 130 --year 2026 --period 1T
{
  "active_profile": "docs-sequence-sandbox",
  "command": "modelo.work.file",
  "notices": [],
  "result": {
    "aeat_accepted": false,
    "aeat_register": null,
    "amends_filing_record_id": null,
    "bucket_id": "<bucket-id>",
    "calculation_revision_id": "07d9ed8eec846976eac02aeae13217e835e000f8a460d053909b33d9a3995fec",
    "confirmation": "pendiente",
    "declaration_kind": "original",
    "external_evidence": null,
    "filed_at": "2026-04-01T09:00:00+00:00",
    "filed_by": "docs-sequence-sandbox",
    "filing_record_id": "608622207ce0b6d86cab159d3ba196e5848eb48f2517a06fa8e2bcc508da595b",
    "filing_year": 2026,
    "kind": "internal_filing",
    "live_submission": false,
    "member_nif": null,
    "modelo": "130",
    "notes": null,
    "operation": "modelo.work.file",
    "origin": "local",
    "period": {
      "code": "1T",
      "filing_year": 2026
    },
    "status": "vigente",
    "superseded_at": null,
    "superseded_by_filing_record_id": null,
    "work_unit_id": "ca5815c72d1ed564e582924ad157fd1c3349eba45264da2a7b843d88172f4204"
  },
  "schema_version": "2",
  "status": "success"
}

Confirm the export succeeds and the filing marker stays local.

Un trimestre posterior es construeix sobre aquest: deixa les tres vinculacions del període anterior sense establir perquè es resolguin a partir del teu historial presentat. Consulta Prepara un pagament fraccionat del Model 130 d’IRPF per al comportament acumulatiu de l’any fins a la data.

Passos següents