Aplica deduccions de prorrata d’IVA¶
Fes servir aquesta guia quan el contribuent no pot deduir tot l’IVA suportat. Això passa quan l’activitat barreja operacions que atorguen el dret a deduir amb operacions que no (operacions exemptes sense dret a deduir). L’IVA espanyol ho anomena prorrata. Registra la tria de prorrata del contribuent una vegada i l’eina l’aplica automàticament al Modelo 303 i al Modelo 390.
Cadrumo no presenta res a l’AEAT. El registre de prorrata és un estat del contribuent local i limitat al perfil, no una superfície de presentació de l’AEAT.
L’eina necessita una contrasenya de clau mestra i la demana.
Requisit: un perfil de contribuent vàlid. Crea’n un amb aeat config profile create <name> abans de començar. Configura el teu perfil de contribuent t’hi guia.
Quina prorrata aplica¶
Prorrata general (LIVA art. 104): un únic percentatge de deducció s’aplica a cada input deduïble de l’any. Fes-la servir quan el contribuent no tingui cap motiu per separar els inputs.
Prorrata especial (LIVA art. 103): cada input dedueix segons el seu propi ús. Els inputs plenament deduïbles dedueixen la totalitat, els inputs utilitzats només per a operacions que no dedueixen no dedueixen res, i els inputs compartits («comuns») dedueixen al percentatge general. Etiqueta cada input amb el seu ús.
Si no optes per res, l’eina manté el tractament general de tota l’entitat que la seva pròpia liquidació ja produeix. Fes servir aquesta guia només quan el contribuent opta per un percentatge o divideix el negoci en sectors diferenciats.
Opta per la prorrata general¶
Opta pel percentatge general de l’any:
aeat --format json app ledger prorrata elect-general --ejercicio 2026 --percentage 80 \
--provenance inicio_actividad --reference propuesta-inicio-2026aeat --format json app ledger prorrata elect-general --ejercicio 2026 --percentage 80 `
--provenance inicio_actividad --reference propuesta-inicio-2026{ "active_profile": "docs-sequence-sandbox", "command": "ledger.prorrata.elect_general", "notices": [], "result": { "bucket_id": "<bucket-id>", "count": 1, "entry": { "authorisation_reference": "propuesta-inicio-2026", "definitive_percentage": null, "definitive_volume_con_derecho": null, "definitive_volume_sin_derecho": null, "ejercicio": 2026, "especial_transition": null, "interrupted": false, "provisional_percentage": "80", "provisional_provenance": "inicio_actividad", "regime": "general", "schema_version": "2", "sector_id": null, "source_observation_ref": null, "source_registry_snapshot_refs": [] } }, "schema_version": "2", "status": "success" }
Confirm the general election is recorded on the profile.
--ejercicioés l’any de presentació que cobreix l’opció.--percentageés el percentatge de deducció provisional, de 0 a 100 (LIVA art. 104.Uno + 105.Uno).--provenancei--referenceidentifiquen el document en què es basa el percentatge:inicio_actividadper a una proposta d’inici d’activitat (LIVA art. 105.Tres) oaeat_autorizadaper a un percentatge autoritzat per l’AEAT (LIVA art. 105.Dos). L’eina rebutja un percentatge introduït a mà sense tots dos.Per traslladar el percentatge definitiu de l’any anterior (LIVA art. 105.Uno), executa en lloc d’això
aeat app ledger prorrata seed --ejercicio <year>. Llegeix el percentatge de la liquidació del Modelo 303 de l’any anterior ja presentada.
Opta per la prorrata especial i classifica els inputs¶
Opta per l’especial per a l’any:
aeat --format json app ledger prorrata elect-especial --ejercicio 2026 --percentage 80 \
--provenance inicio_actividad --reference propuesta-inicio-2026aeat --format json app ledger prorrata elect-especial --ejercicio 2026 --percentage 80 `
--provenance inicio_actividad --reference propuesta-inicio-2026{ "active_profile": "docs-sequence-sandbox", "command": "ledger.prorrata.elect_especial", "notices": [], "result": { "bucket_id": "<bucket-id>", "count": 1, "entry": { "authorisation_reference": "propuesta-inicio-2026", "definitive_percentage": null, "definitive_volume_con_derecho": null, "definitive_volume_sin_derecho": null, "ejercicio": 2026, "especial_transition": null, "interrupted": false, "provisional_percentage": "80", "provisional_provenance": "inicio_actividad", "regime": "especial", "schema_version": "2", "sector_id": null, "source_observation_ref": null, "source_registry_snapshot_refs": [] } }, "schema_version": "2", "status": "success" }
Confirm the especial election replaces the general one for the year.
Aquí --percentage és el percentatge d’ús comú, el tipus aplicat als inputs compartits (LIVA art. 106.Uno regla 3.ª / art. 104.Dos). S’apliquen les mateixes opcions --provenance i --reference.
Després etiqueta cada fila d’input amb el seu ús quan l’afegeixis:
aeat --format json app ledger add --date 2026-02-11 --amount 605 --direction OUTGOING \
--description compra --classification BUSINESS --category-id material_oficina \
--taxable-base 500 --iva-rate 0.21 --iva-amount 105 --input-classification common \
--idempotency-key prorrata-common-inputaeat --format json app ledger add --date 2026-02-11 --amount 605 --direction OUTGOING `
--description compra --classification BUSINESS --category-id material_oficina `
--taxable-base 500 --iva-rate 0.21 --iva-amount 105 --input-classification common `
--idempotency-key prorrata-common-input{ "active_profile": "docs-sequence-sandbox", "command": "ledger.add", "notices": [ { "action": null, "code": "ledger.add.input_classification_inert", "context": { "ejercicio": "2026", "input_classification": "common", "sector_id": "" }, "message": "Input classification has no effect for ejercicio 2026: no special-prorrata election applies, so the input is deducted at the general percentage. Classification becomes operative only while a special-prorrata election applies.", "severity": "warning" } ], "result": { "bucket_event_ids": [ "caeb65ecf05baa47a01e14e67564264feceb179baf2127ff75c9c63cade1a86b" ], "bucket_id": "<bucket-id>", "review_status": "reviewed", "transaction": { "amount": "605", "attachment_ids": [], "booked_date": "2026-02-11", "business_classification": "BUSINESS", "business_pct": null, "category_id": "material_oficina", "classification_confidence": "1", "classification_reason": "aeat app ledger add", "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-11", "description": "compra", "direction": "OUTGOING", "fx_rate": null, "invoice_id": null, "irpf_category": null, "iva_amount": "105", "iva_category": null, "iva_rate": "0.21", "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": "ES", "taxable_base": "500", "transaction_id": "dbdbdfd18bb421c017e1f8516129455f2780b9062f3c33f0c67acadfbfebca31", "usage_ratio_id": null, "value_date": null, "value_in_eur": null }, "transaction_id": "dbdbdfd18bb421c017e1f8516129455f2780b9062f3c33f0c67acadfbfebca31" }, "schema_version": "2", "status": "warning" }
Confirm the tagged common input is recorded in the ledger.
--input-classification pren un valor:
exclusively_deductible- l’input serveix només operacions que atorguen el dret a deduir; dedueix la totalitat.exclusively_non_deductible- l’input serveix només operacions que no ho fan; no dedueix res.common- l’input és compartit; dedueix al percentatge d’ús comú.
Si etiquetes un input però no optes per l’especial per a aquell any, l’eina adverteix que l’etiqueta és inert: l’input dedueix sota el percentatge general. Opta per l’especial perquè l’etiqueta tingui efecte.
Declara un sector diferenciat¶
Declara un sector diferenciat quan una part de l’activitat té el seu propi règim de deducció (LIVA arts. 9.1.c / 101):
aeat --format json app ledger prorrata declare-sector --sector-id arrendamiento --letra \
c --activity-code 6820aeat --format json app ledger prorrata declare-sector --sector-id arrendamiento --letra `
c --activity-code 6820{ "active_profile": "docs-sequence-sandbox", "command": "ledger.prorrata.declare_sector", "notices": [], "result": { "bucket_id": "<bucket-id>", "count": 1, "sector": { "letra": "c", "member_activity_codes": [ "6820" ], "sector_id": "arrendamiento" } }, "schema_version": "2", "status": "success" }
Confirm the differentiated sector is registered.
--sector-idés un id estable que referencien les entrades del registre i les files del ledger.--letraés la letra de l’art. 9.1.c de la LIVA que fa que el sector sigui diferenciat:a,b,cod.--activity-codeés un codi CNAE o IAE agrupat dins del sector. Repeteix-lo per a cada codi; indica’n almenys un.
Limita una opció a un sector amb --sector, i etiqueta el sector d’una fila amb --sector a ledger add:
aeat --format json app ledger prorrata elect-especial --ejercicio 2026 --percentage 80 \
--provenance inicio_actividad --reference propuesta-inicio-2026 --sector arrendamientoaeat --format json app ledger prorrata elect-especial --ejercicio 2026 --percentage 80 `
--provenance inicio_actividad --reference propuesta-inicio-2026 --sector arrendamiento{ "active_profile": "docs-sequence-sandbox", "command": "ledger.prorrata.elect_especial", "notices": [], "result": { "bucket_id": "<bucket-id>", "count": 1, "entry": { "authorisation_reference": "propuesta-inicio-2026", "definitive_percentage": null, "definitive_volume_con_derecho": null, "definitive_volume_sin_derecho": null, "ejercicio": 2026, "especial_transition": null, "interrupted": false, "provisional_percentage": "80", "provisional_provenance": "inicio_actividad", "regime": "especial", "schema_version": "2", "sector_id": "arrendamiento", "source_observation_ref": null, "source_registry_snapshot_refs": [] } }, "schema_version": "2", "status": "success" }
aeat --format json app ledger add --date 2026-02-11 --amount 605 --direction OUTGOING \
--description compra --classification BUSINESS --category-id material_oficina \
--taxable-base 500 --iva-rate 0.21 --iva-amount 105 --sector arrendamiento \
--input-classification common --idempotency-key prorrata-sector-inputaeat --format json app ledger add --date 2026-02-11 --amount 605 --direction OUTGOING `
--description compra --classification BUSINESS --category-id material_oficina `
--taxable-base 500 --iva-rate 0.21 --iva-amount 105 --sector arrendamiento `
--input-classification common --idempotency-key prorrata-sector-input{ "active_profile": "docs-sequence-sandbox", "command": "ledger.add", "notices": [ { "action": null, "code": "ledger.add.sector_unmatched", "context": { "sector_id": "arrendamiento" }, "message": "--sector 'arrendamiento' matches no declared differentiated sector (LIVA arts. 9.1.c / 101), so this input is deducted at the common-use percentage rather than the sector percentage. The sector must exist before it can own the input.", "severity": "warning" } ], "result": { "bucket_event_ids": [ "67462ff662ec83321d22d1ffcea235d9241320bf43f5e10ec61a0162eb1883ca" ], "bucket_id": "<bucket-id>", "review_status": "reviewed", "transaction": { "amount": "605", "attachment_ids": [], "booked_date": "2026-02-11", "business_classification": "BUSINESS", "business_pct": null, "category_id": "material_oficina", "classification_confidence": "1", "classification_reason": "aeat app ledger add", "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-11", "description": "compra", "direction": "OUTGOING", "fx_rate": null, "invoice_id": null, "irpf_category": null, "iva_amount": "105", "iva_category": null, "iva_rate": "0.21", "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": "ES", "taxable_base": "500", "transaction_id": "61875c80c3fc4eae14b9b58d1b245b46ccb6b7c8a2ae28ec1b013f626aded2c9", "usage_ratio_id": null, "value_date": null, "value_in_eur": null }, "transaction_id": "61875c80c3fc4eae14b9b58d1b245b46ccb6b7c8a2ae28ec1b013f626aded2c9" }, "schema_version": "2", "status": "warning" }
Confirm the sector-scoped input is recorded against the declared sector.
Si etiquetes una fila amb un sector que no has declarat, l’eina adverteix que l’etiqueta no té correspondència: l’input dedueix al percentatge d’ús comú fins que declares el sector. Declara el sector primer, o corregeix l’id.
Llegeix els advertiments de la liquidació¶
Quan calcules el Modelo 303 de tancament d’exercici (la liquidació del 4T), l’eina pot mostrar advertiments no bloquejadors:
L’especial pot ser obligatòria - quan el contribuent calcula sota la prorrata general i l’especial deduiria almenys un 10% menys, la llei (LIVA art. 103.Dos.2) fa que l’especial sigui obligatòria. Classifica cada input de l’any perquè l’eina pugui fer aquesta comprovació; fins llavors et demana que classifiquis.
Classificació inert - una etiqueta
--input-classificationestablerta sense cap opció d’especial per a aquell any.Sector sense correspondència - una etiqueta
--sectorque anomena un sector encara no declarat.
Aquests són advertiments, no refusos. Llegeix-los juntament amb les entrades de càlcul abans de verificar la presentació.
Revisa el registre¶
Llista cada opció i cada sector declarat al perfil actiu:
aeat --format json app ledger prorrata listaeat --format json app ledger prorrata list{ "active_profile": "docs-sequence-sandbox", "command": "ledger.prorrata.list", "notices": [], "result": { "bucket_id": "<bucket-id>", "count": 1, "entries": [ { "authorisation_reference": "propuesta-inicio-2026", "definitive_percentage": null, "definitive_volume_con_derecho": null, "definitive_volume_sin_derecho": null, "ejercicio": 2026, "especial_transition": null, "interrupted": false, "provisional_percentage": "80", "provisional_provenance": "inicio_actividad", "regime": "general", "schema_version": "2", "sector_id": null, "source_observation_ref": null, "source_registry_snapshot_refs": [] } ], "sectors": [ { "letra": "c", "member_activity_codes": [ "6820" ], "sector_id": "arrendamiento" } ] }, "schema_version": "2", "status": "success" }
Confirm the register reads back the elections and declared sector.
Passos següents¶
Classifica transaccions perquè cada input porti les dades que necessita la prorrata.
Revisa les entrades de càlcul per veure els imports deduïts.
Prepara una presentació d’IVA amb el Modelo 303 i el resum anual del Modelo 390.