aeat app — command reference

This page documents every leaf command under aeat app. Help strings are rendered in English; the CLI respects the active output-language setting at runtime.

aeat app diagnostics errors

Break down recent failed local LLM runs by provider and error kind.

Command path: aeat app diagnostics errors

Registry key: diagnostics.errors

Parameters

--since

Option, optional. Inclusive lower ISO date (YYYY-MM-DD) bound on LLM run records.

--until

Option, optional. Inclusive upper ISO date (YYYY-MM-DD) bound on LLM run records.

--provider

Option, optional. Restrict the breakdown to this provider label (e.g. claude, antigravity, codex).

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._diagnostics_payloads.ErrorsBreakdownResult.

aeat app diagnostics latency

Report P50/P95/P99 duration percentiles over recent local LLM runs.

Command path: aeat app diagnostics latency

Registry key: diagnostics.latency

Parameters

--since

Option, optional. Inclusive lower ISO date (YYYY-MM-DD) bound on LLM run records.

--until

Option, optional. Inclusive upper ISO date (YYYY-MM-DD) bound on LLM run records.

--provider

Option, optional. Restrict the report to this provider label (e.g. claude, antigravity, codex).

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._diagnostics_payloads.LatencyResult.

aeat app diagnostics llm-usage

Report LLM run-usage totals (counts, durations, success rate) by provider and model.

Command path: aeat app diagnostics llm-usage

Registry key: diagnostics.llm_usage

Parameters

--since

Option, optional. Inclusive lower ISO date (YYYY-MM-DD) bound on LLM run records.

--until

Option, optional. Inclusive upper ISO date (YYYY-MM-DD) bound on LLM run records.

--provider

Option, optional. Restrict the summary to this provider label (e.g. claude, antigravity, codex).

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._diagnostics_payloads.LlmUsageResult.

aeat app diagnostics run-health

Report recent local LLM run timing and persisted AEAT session staleness.

Command path: aeat app diagnostics run-health

Registry key: diagnostics.run_health

Parameters

--since

Option, optional. Inclusive lower ISO date (YYYY-MM-DD) bound on LLM run records.

--until

Option, optional. Inclusive upper ISO date (YYYY-MM-DD) bound on LLM run records.

--provider

Option, optional. Restrict the LLM run-timing section to this provider label (e.g. claude, antigravity, codex).

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._diagnostics_payloads.RunHealthResult.

aeat app diagnostics runs

List recent local LLM run-timing records, most-recent-first.

Command path: aeat app diagnostics runs

Registry key: diagnostics.runs

Parameters

--since

Option, optional. Inclusive lower ISO date (YYYY-MM-DD) bound on LLM run records.

--until

Option, optional. Inclusive upper ISO date (YYYY-MM-DD) bound on LLM run records.

--provider

Option, optional. Restrict the listing to this provider label (e.g. claude, antigravity, codex).

--limit

Option, optional. Cap the listing to this many most-recent runs.

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._diagnostics_payloads.RunsListResult.

aeat app diagnostics telemetry flush

Build the aggregate local telemetry payload and, unless –dry-run, send it.

Command path: aeat app diagnostics telemetry flush

Registry key: diagnostics.telemetry.flush

Parameters

--dry-run

Option, optional. Preview the payload that would be sent without transmitting anything (default). Pass –no-dry-run to actually send when the consent gate permits.

--opt-in

Option, optional. Preview/send as if AEAT_TELEMETRY_OPT_IN were this value for this invocation only; omit to use the deployment’s actual configured setting.

--tier

Option, optional. Preview/send as if AEAT_TELEMETRY_TIER were this value (off / crash_only / full) for this invocation only; omit to use the deployment’s actual configured tier.

--endpoint

Option, optional. Preview/send as if AEAT_TELEMETRY_ENDPOINT were this URL for this invocation only; omit to use the deployment’s actual configured endpoint.

--acknowledge-remote-telemetry

Option, optional. Acknowledge this specific remote-telemetry send. Required (in addition to opt-in and a non-off tier) for –no-dry-run to actually transmit; never sticky, re-affirm on every invocation.

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._diagnostics_payloads.TelemetryFlushResult.

aeat app diagnostics telemetry status

Report the current remote-telemetry consent posture. Never emits anything.

Command path: aeat app diagnostics telemetry status

Registry key: diagnostics.telemetry.status

Parameters

--opt-in

Option, optional. Preview/send as if AEAT_TELEMETRY_OPT_IN were this value for this invocation only; omit to use the deployment’s actual configured setting.

--tier

Option, optional. Preview/send as if AEAT_TELEMETRY_TIER were this value (off / crash_only / full) for this invocation only; omit to use the deployment’s actual configured tier.

--endpoint

Option, optional. Preview/send as if AEAT_TELEMETRY_ENDPOINT were this URL for this invocation only; omit to use the deployment’s actual configured endpoint.

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._diagnostics_payloads.TelemetryStatusResult.

aeat app ledger add

Add one manual ledger transaction in the active profile

Command path: aeat app ledger add

Registry key: ledger.add

Parameters

--date

Option, required. Booked date (YYYY-MM-DD)

--amount

Option, required. Transaction amount in the transaction currency (decimal, e.g. 1200.50).

--direction

Option, required. Transaction direction (INCOMING / OUTGOING / INTERNAL_TRANSFER)

--description

Option, required. Non-blank narrative

--value-date

Option, optional. Value date (YYYY-MM-DD)

--currency

Option, optional. Three-letter ISO 4217 currency code

--counterparty

Option, optional. Counterparty descriptor

--classification

Option, optional. Business classification (BUSINESS / PERSONAL / MIXED / …)

--business-pct

Option, optional. Business-use share from 0 to 1; only for MIXED rows. Omit for fully BUSINESS rows.

--category-id

Option, optional. Deductible-expense category id (expense transactions only; income needs no category)

--taxable-base

Option, optional. IVA-exclusive base amount

--iva-rate

Option, optional. Optional IVA rate as a decimal fraction

--iva-amount

Option, optional. Optional IVA amount on the row

--iva-category

Option, optional. Explicit IVA category override for this transaction (e.g. intra_community_supply, export_third_country_zero_rated, export_assimilated_zero_rated, domestic_not_subject)

--counterparty-eu-member-state

Option, optional. EU member state or Northern Ireland IVA prefix of the counterparty (ISO 3166-1 alpha-2 lowercase, e.g. de or xi); required with –iva-category intra_community_supply, prohibited with export_third_country_zero_rated or export_assimilated_zero_rated

--recargo-amount

Option, optional. Recargo de equivalencia cuota charged on this sale to a recargo-regime retailer (LIVA art. 161); aggregated into the Modelo 303 recargo cuota by IVA rate tier

--irpf-category

Option, optional. IRPF-specific category key

--usage-ratio-id

Option, optional. Existing configured usage-ratio id for proportional business use. Use a category id shown by ‘aeat app ledger ratios list’ or ‘aeat app ledger ratios eligible’; create one with ‘aeat app ledger ratios set <category-id> <ratio>’. Not arbitrary prose.

--prorrata-reference

Option, optional. IVA prorrata substrate reference

--art-104-tres-exclusion

Option, optional. Operator-declared LIVA art. 104.Tres denominator exclusion (foreign permanent establishment or non-habitual real-estate/financial operation); excludes the operation from both terms of the prorrata ratio.

--input-classification

Option, optional. Operator-declared LIVA art. 106 prorrata-especial per-input use classification (exclusively_deductible: deducted in full; exclusively_non_deductible: no deduction; common: deducted at the general prorrata percentage); meaningful only for input rows in a bucket under prorrata especial.

--sector

Option, optional. Differentiated-sector id (LIVA arts. 9.1.c / 101) this input belongs to; must match a sector declared via ‘app ledger prorrata declare-sector’.

--purchase-invoice-evidence-id

Option, optional. Canonical purchase-invoice evidence id

--attachment-id

Option, optional. Supplementary attachment id (repeatable)

--notes

Option, optional. Operator notes stored with the transaction

--actor

Option, optional. Operator name recorded on the bucket event

--idempotency-key

Option, optional. Stable key for this logical add: passing the same key again is a safe no-op, so retries do not duplicate the row. Omit it to append a deliberate duplicate.

--source-jurisdiction

Option, optional. Two-letter ISO 3166-1 alpha-2 country code identifying the regulatory source jurisdiction of the income or expense (e.g. ES for Spanish-source, FR for French-source). Required for IRNR scope and the Art. 93 LIRPF Beckham filter.

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._ledger_payloads.LedgerAddResult.

aeat app ledger allocate

Record business/private proportionality for a ledger transaction

Command path: aeat app ledger allocate

Registry key: ledger.allocate

Parameters

transaction_id

Option, required. Ledger transaction id to allocate

--business-pct

Option, required. Business-use share from 0 to 1 for MIXED/proportional rows; do not use ledger allocate for a fully BUSINESS row.

--category-id

Option, optional. Deductible-expense category id (expense transactions only; income needs no category)

--usage-ratio-id

Option, optional. Existing configured usage-ratio id for proportional business use. Use a category id shown by ‘aeat app ledger ratios list’ or ‘aeat app ledger ratios eligible’; create one with ‘aeat app ledger ratios set <category-id> <ratio>’. Not arbitrary prose.

--prorrata-reference

Option, optional. IVA prorrata reference for IVA workflows

--actor

Option, optional. Operator name recorded on the bucket event

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._ledger_payloads.LedgerAllocateResult.

aeat app ledger archive

Archive one ledger transaction in the active profile

Command path: aeat app ledger archive

Registry key: ledger.archive

Parameters

transaction_id

Option, required. Ledger transaction id to archive

--reason

Option, optional. Reason recorded in lifecycle history

--yes

Option, optional. Confirm archiving the ledger transaction

--actor

Option, optional. Operator name recorded on the bucket event

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._ledger_payloads.LedgerArchiveResult.

aeat app ledger attach

Attach secure evidence objects to one ledger transaction. Create a purchase invoice evidence id first with ‘aeat app ledger evidence add PATH’.

Command path: aeat app ledger attach

Registry key: ledger.attach

Parameters

transaction_id

Option, required. Ledger transaction id to attach evidence to

--purchase-invoice-evidence-id

Option, optional. Purchase invoice evidence id supporting the transaction; create one with ‘aeat app ledger evidence add PATH’

--attachment-id

Option, optional. Secure attachment id to link to the transaction; repeat for multiple attachments

--actor

Option, optional. Operator name recorded on the bucket event

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._ledger_payloads.LedgerAttachResult.

aeat app ledger bienes-inversion declare

Declare one capital good tracked for IVA regularización.

Command path: aeat app ledger bienes-inversion declare

Registry key: ledger.bienes_inversion.declare

Parameters

identifier

Option, required. Stable register identifier.

--description

Option, required. Human description of the good.

--acquisition-year

Option, required. Year the good was acquired.

--cuota-soportada

Option, required. Total input IVA borne on acquisition (positive).

--prorrata-inicial

Option, required. Definitive deduction percentage of the acquisition year (0-100).

--kind

Option, required. Regularisation window: mueble (4yr) or inmueble (9yr).

--art108-elegible

Option, optional. Whether the good qualifies as a bien de inversión under LIVA art. 108.

--asset-ref

Option, optional. Optional cross-reference to an AssetRecord identifier.

--disposal-year

Option, optional. Optional art-110 disposal year.

--disposal-regime

Option, optional. Disposal regime (sujeta_no_exenta or exenta_o_no_sujeta); required with –disposal-year.

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._bienes_inversion_payloads.BienesInversionDeclareResult.

aeat app ledger bienes-inversion list

List every tracked capital good on the active profile register.

Command path: aeat app ledger bienes-inversion list

Registry key: ledger.bienes_inversion.list

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._bienes_inversion_payloads.BienesInversionListResult.

aeat app ledger categories

List the category ids accepted by –category-id and –irpf-category

Command path: aeat app ledger categories

Registry key: ledger.categories

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._ledger_payloads.LedgerCategoriesResult.

aeat app ledger check

Probe ledger transactions in the addressed profile (defaults to the active profile) and report anomaly rows aggregated across every period a transaction touches. Local-only; never contacts AEAT.

Command path: aeat app ledger check

Registry key: ledger.check

Parameters

--bucket-id

Option, optional. Bucket id to probe (defaults to the active profile).

--period

Option, optional. Optional filing period as an AEAT token: 1T-4T (quarters), 0A (annual), 01-12 (months). Combine with –year to match ledger status.

--year

Option, optional. Filing year for –period (e.g. 2024).

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._ledger_payloads.LedgerCheckResult.

aeat app ledger classify

Classify one ledger transaction in the active profile

Command path: aeat app ledger classify

Registry key: ledger.classify

Parameters

transaction_id

Option, optional. Ledger transaction id to classify

--classification

Option, optional. Business classification state for the transaction

--from-csv

Option, optional. Path to a CSV file with columns transaction_id, classification[, category_id, business_pct, usage_ratio_id, taxable_base, iva_rate, iva_amount, iva_category, irpf_category].

--business-pct

Option, optional. Business-use share from 0 to 1; required with –classification MIXED, rejected for any other classification, and omitted for fully BUSINESS rows

--category-id

Option, optional. Deductible-expense category id (expense transactions only; income needs no category)

--taxable-base

Option, optional. Taxable base amount

--iva-rate

Option, optional. IVA rate as a decimal, for example 0.21

--iva-amount

Option, optional. IVA amount

--irpf-category

Option, optional. IRPF category id. Use aeat app ledger categories. Net-paid professional invoices use actividad_economica; net-paid rent uses arrendamiento_local/arrendamiento_vivienda_afecto. Royalties/SGAE: Art. 25.4 can be capital mobiliario when the taxpayer is not the author; use actividad_economica only for own-account activity under LIRPF Art. 27.

--iva-category

Option, optional. Explicit IVA category override for this transaction (e.g. intra_community_supply, export_third_country_zero_rated, export_assimilated_zero_rated, domestic_not_subject)

--counterparty-eu-member-state

Option, optional. EU member state or Northern Ireland IVA prefix of the counterparty (ISO 3166-1 alpha-2 lowercase, e.g. de or xi); required with –iva-category intra_community_supply, prohibited with export_third_country_zero_rated or export_assimilated_zero_rated

--actor

Option, optional. Operator name recorded on the bucket event

--reaffirm

Option, optional. Reaffirm the classification of an already-classified transaction.

--llm

Option, optional. Ask a local LLM provider (claude/antigravity/codex) to classify the transaction; preview by default, persist with –apply.

--apply

Option, optional. Persist the LLM suggestion with llm: provenance instead of only previewing it.

--saturate

Option, optional. Saturate via LLM: also select the IVA category and derive the rate, base, and IVA amount.

--read-evidence

Option, optional. Read the transaction’s attached evidence on-host and feed it to the classifier.

--evidence-acknowledged

Option, optional. Acknowledge that reading evidence with a cloud provider uploads it off your machine (required by the consent gate).

--vision-model

Option, optional. Override the local Ollama vision model for an image/scanned-invoice read (e.g. qwen2.5vl:7b); defaults to the configured model.

--auto-split

Option, optional. Read the attached invoice and, when it is multi-component, split it into per-line base/IVA children; otherwise classify it in place (requires –read-evidence).

--reject

Option, optional. Record an explicit rejection of the LLM suggestion as an audit event, without classifying the row (cannot be combined with –apply).

--reason

Option, optional. Free-text reason recorded as the transaction notes and as the classification decision’s provenance reason (visible on ledger view), or with a –reject decision.

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._ledger_payloads.LedgerClassifySingleResult.

aeat app ledger evidence add

Register purchase invoice evidence from a PDF or image

Command path: aeat app ledger evidence add

Registry key: ledger.evidence.add

Parameters

source_path

Option, required. Path to the invoice PDF or image

--supplier

Option, optional. Supplier name

--invoice-number

Option, optional. Supplier invoice number

--invoice-date

Option, optional. Invoice issue date in ISO 8601 (YYYY-MM-DD), e.g. 2026-01-15.

--taxable-base

Option, optional. Invoice taxable base

--iva-rate

Option, optional. Applied IVA rate as a decimal

--iva-amount

Option, optional. Invoice IVA amount

--notes

Option, optional. Internal notes about the evidence

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._ledger_business_payloads.EvidenceAddResult.

aeat app ledger evidence confirm

Re-extract evidence on-host and confirm it into a real catalogue Invoice.

Command path: aeat app ledger evidence confirm

Registry key: ledger.evidence.confirm

Parameters

--kind

Option, required. Invoice kind: issued (a customer owes you) or received (you owe a supplier)

--evidence-id

Option, optional. Purchase invoice evidence record id to extract from.

--attachment-id

Option, optional. Linked attachment id to extract from (alternative to –evidence-id).

--counterparty-nif

Option, optional. Override the extracted supplier tax id.

--counterparty-name

Option, optional. Counterparty display name (no extraction heuristic yet; normally required).

--invoice-number

Option, optional. Override the extracted invoice number.

--invoice-date

Option, optional. Override the extracted invoice date (YYYY-MM-DD).

--taxable-base

Option, optional. Override the extracted taxable base.

--iva-rate

Option, optional. Override the extracted IVA rate (omit to keep the extracted value).

--country-code

Option, optional. Counterparty ISO 3166-1 alpha-2 country code (defaults to ES).

--currency

Option, optional. ISO-4217 currency code.

--notes

Option, optional. Internal notes about the evidence

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._ledger_business_payloads.EvidenceConfirmResult.

aeat app ledger evidence extract

Read an invoice PDF’s fields on-host into a reviewable draft.

Command path: aeat app ledger evidence extract

Registry key: ledger.evidence.extract

Parameters

--evidence-id

Option, optional. Purchase invoice evidence record id to extract from.

--attachment-id

Option, optional. Linked attachment id to extract from (alternative to –evidence-id).

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._ledger_business_payloads.EvidenceExtractResult.

aeat app ledger evidence list

List registered purchase invoice evidence

Command path: aeat app ledger evidence list

Registry key: ledger.evidence.list

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._ledger_business_payloads.EvidenceListResult.

aeat app ledger evidence remove

Delete purchase invoice evidence

Command path: aeat app ledger evidence remove

Registry key: ledger.evidence.remove

Parameters

evidence_id

Option, required. Evidence id (exact match)

--yes

Option, optional. Confirm deleting the evidence

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._ledger_business_payloads.EvidenceRemoveResult.

aeat app ledger evidence update

Update purchase invoice evidence details

Command path: aeat app ledger evidence update

Registry key: ledger.evidence.update

Parameters

evidence_id

Option, required. Evidence id (exact match)

--supplier

Option, optional. No description.

--invoice-number

Option, optional. No description.

--invoice-date

Option, optional. No description.

--taxable-base

Option, optional. No description.

--iva-rate

Option, optional. No description.

--iva-amount

Option, optional. No description.

--notes

Option, optional. No description.

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._ledger_business_payloads.EvidenceUpdateResult.

aeat app ledger evidence view

Show purchase invoice evidence

Command path: aeat app ledger evidence view

Registry key: ledger.evidence.view

Parameters

evidence_id

Option, required. Evidence id (exact match)

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._ledger_business_payloads.EvidenceViewResult.

aeat app ledger exclude

Mark one reviewed ledger transaction as deliberately excluded from filing.

Command path: aeat app ledger exclude

Registry key: ledger.exclude

Parameters

transaction_id

Option, required. Ledger transaction id.

--reason

Option, optional. Optional note recording why the row is excluded.

--yes

Option, optional. Confirm the reviewed-excluded decision.

--actor

Option, optional. Operator label.

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._ledger_payloads.LedgerExcludeResult.

aeat app ledger export

Export canonical ledger rows from the active profile

Command path: aeat app ledger export

Registry key: ledger.export

Parameters

--output

Option, required. Path to write the exported ledger file

--export-format

Option, optional. Export serialization format

--include-inactive

Option, optional. Include archived and stashed ledger transactions

--period

Option, optional. Filing period as an AEAT token: 1T-4T (quarters), 0A (annual), 01-12 (months). Combine with –year to choose the year.

--year

Option, optional. Filing year for –period (e.g. 2024).

--actor

Option, optional. Operator name recorded on the bucket event

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._ledger_payloads.LedgerExportPayload.

aeat app ledger history

Emit the chronological bucket-event chain for one ledger transaction id

Command path: aeat app ledger history

Registry key: ledger.history

Parameters

transaction_id

Option, required. Ledger transaction id (or unambiguous hex prefix) to inspect

--include-split-siblings

Option, optional. Expand the chain to include events for every split sibling that shares a split_group_id with this transaction

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._ledger_payloads.LedgerHistoryResult.

aeat app ledger import

Import bank statements or records into the accounting ledger

Command path: aeat app ledger import

Registry key: ledger.import

Parameters

path

Option, required. Path to the bank statement file or directory

--provider

Option, required. Statement format provider. Recognised values: auto, csv, ofx, qfx, xlsx, excel, n26, pdf, pdf-n26

--dry-run

Option, optional. Run the import in dry-run mode (without saving)

--verify

Option, optional. Verify entries after import

--file

Option, optional. Original file used to verify imported rows.

--verbose

Option, optional. Show detailed information during import

--period

Option, optional. Filing period as an AEAT token: 1T-4T (quarters), 0A (annual), 01-12 (months). Combine with –year to choose the year.

--year

Option, optional. Filing year for –period (e.g. 2024).

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._ledger_payloads.LedgerImportPayload.

aeat app ledger inventory create

Create an inventory ledger for one activity and tax year

Command path: aeat app ledger inventory create

Registry key: ledger.inventory.create

Parameters

actividad_id

Option, required. Economic activity identifier

--year

Option, required. Tax year

--valuation-method

Option, required. Valuation method (fifo or pmp)

--opening-stock

Option, optional. Opening stock value

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._ledger_business_payloads.InventoryCreateResult.

aeat app ledger inventory list

List inventory ledgers in the active profile

Command path: aeat app ledger inventory list

Registry key: ledger.inventory.list

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._ledger_business_payloads.InventoryListResult.

aeat app ledger inventory movement add

Add a purchase, sale, or adjustment movement to the ledger

Command path: aeat app ledger inventory movement add

Registry key: ledger.inventory.movement.add

Parameters

--actividad-id

Option, required. Economic activity identifier

--year

Option, required. Tax year

--movement-id

Option, required. Movement id within the ledger

--date

Option, required. Movement date (YYYY-MM-DD)

--kind

Option, required. Movement kind (purchase, sale, adjustment)

--quantity

Option, required. Movement quantity, positive or negative

--unit-cost

Option, optional. Unit cost for purchase movements

--taxable-base

Option, optional. Taxable base linked to the movement

--iva-rate

Option, optional. IVA rate as a percentage

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._ledger_business_payloads.InventoryMovementAddResult.

aeat app ledger inventory valuation preview

Preview closing stock and cost of sales

Command path: aeat app ledger inventory valuation preview

Registry key: ledger.inventory.valuation.preview

Parameters

--actividad-id

Option, required. Economic activity identifier

--year

Option, required. Tax year

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._ledger_business_payloads.InventoryValuationPreviewPayload.

aeat app ledger invoice add

Register a new business invoice

Command path: aeat app ledger invoice add

Registry key: ledger.invoice.add

Parameters

--kind

Option, required. Invoice kind: issued (a customer owes you) or received (you owe a supplier)

--counterparty-nif

Option, required. No description.

--invoice-number

Option, required. No description.

--invoice-date

Option, required. Invoice issue date in ISO 8601 (YYYY-MM-DD), e.g. 2026-01-15.

--counterparty-name

Option, optional. No description.

--currency

Option, optional. No description.

--taxable-base

Option, optional. No description.

--iva-rate

Option, optional. No description.

--iva-amount

Option, optional. No description.

--total-amount

Option, optional. No description.

--notes

Option, optional. No description.

--country-code

Option, optional. Counterparty ISO 3166-1 alpha-2 country code (intracom EU operations)

--eu-iva-id

Option, optional. Counterparty EU IVA-ID (e.g. DE345678901) for intracom operations

--operation-type

Option, optional. M349 operation type: E supply of goods, S services, T triangular, R rectification, A acquisition of goods, I acquisition of services, M miscellaneous

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._ledger_business_payloads.InvoiceAddResult.

aeat app ledger invoice catalogue create

Create a linkable reconciliation invoice in the catalogue.

Command path: aeat app ledger invoice catalogue create

Registry key: ledger.invoice.catalogue.create

Parameters

--kind

Option, required. Invoice kind: issued (a customer owes you) or received (you owe a supplier)

--counterparty-nif

Option, required. No description.

--counterparty-name

Option, required. No description.

--invoice-number

Option, required. No description.

--invoice-date

Option, required. Invoice issue date in ISO 8601 (YYYY-MM-DD), e.g. 2026-01-15.

--taxable-base

Option, required. No description.

--iva-rate

Option, optional. No description.

--currency

Option, optional. No description.

--country-code

Option, optional. Counterparty ISO 3166-1 alpha-2 country code (defaults to ES).

--operation-type

Option, optional. M349 operation type: E supply of goods, S services, T triangular, R rectification, A acquisition of goods, I acquisition of services, M miscellaneous

--notes

Option, optional. No description.

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._ledger_catalogue_invoice_payloads.CatalogueInvoiceCreateResult.

aeat app ledger invoice catalogue import

Bulk-create catalogue invoices from a CSV or XLSX file.

Command path: aeat app ledger invoice catalogue import

Registry key: ledger.invoice.catalogue.import

Parameters

--file

Option, required. Path to a CSV or XLSX file of invoice rows (counterparty_nif, counterparty_name, invoice_number, invoice_date, taxable_base, and optional iva_rate/currency/country_code/notes).

--kind

Option, required. Invoice kind: issued (a customer owes you) or received (you owe a supplier)

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._ledger_catalogue_invoice_payloads.CatalogueInvoiceImportResult.

aeat app ledger invoice catalogue list

List reconciliation catalogue invoices.

Command path: aeat app ledger invoice catalogue list

Registry key: ledger.invoice.catalogue.list

Parameters

--kind

Option, optional. Invoice kind: issued (a customer owes you) or received (you owe a supplier)

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._ledger_catalogue_invoice_payloads.CatalogueInvoiceListResult.

aeat app ledger invoice catalogue remove

Delete one reconciliation catalogue invoice.

Command path: aeat app ledger invoice catalogue remove

Registry key: ledger.invoice.catalogue.remove

Parameters

invoice_id

Option, required. Catalogue invoice id (or unambiguous prefix).

--yes

Option, optional. Confirm deleting the invoice

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._ledger_catalogue_invoice_payloads.CatalogueInvoiceRemoveResult.

aeat app ledger invoice catalogue view

Show one reconciliation catalogue invoice by id or unambiguous prefix.

Command path: aeat app ledger invoice catalogue view

Registry key: ledger.invoice.catalogue.view

Parameters

invoice_id

Option, required. Catalogue invoice id (or unambiguous prefix).

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._ledger_catalogue_invoice_payloads.CatalogueInvoiceViewResult.

aeat app ledger invoice catalogue wizard

Guided, non-interactive manual entry when extraction is unavailable.

Command path: aeat app ledger invoice catalogue wizard

Registry key: ledger.invoice.catalogue.wizard

Parameters

--kind

Option, required. Invoice kind: issued (a customer owes you) or received (you owe a supplier)

--counterparty-nif

Option, required. No description.

--counterparty-name

Option, required. No description.

--invoice-number

Option, required. No description.

--invoice-date

Option, required. Invoice issue date in ISO 8601 (YYYY-MM-DD), e.g. 2026-01-15.

--taxable-base

Option, required. No description.

--iva-rate

Option, optional. No description.

--currency

Option, optional. No description.

--country-code

Option, optional. Counterparty ISO 3166-1 alpha-2 country code (defaults to ES).

--operation-type

Option, optional. M349 operation type: E supply of goods, S services, T triangular, R rectification, A acquisition of goods, I acquisition of services, M miscellaneous

--notes

Option, optional. No description.

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._ledger_catalogue_invoice_payloads.CatalogueInvoiceWizardResult.

aeat app ledger invoice list

List business invoices (both kinds unless –kind filters)

Command path: aeat app ledger invoice list

Registry key: ledger.invoice.list

Parameters

--kind

Option, optional. Invoice kind: issued (a customer owes you) or received (you owe a supplier)

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._ledger_business_payloads.InvoiceListResult.

aeat app ledger invoice remove

Delete a business invoice

Command path: aeat app ledger invoice remove

Registry key: ledger.invoice.remove

Parameters

invoice_id

Option, required. Invoice id (or unambiguous prefix)

--kind

Option, required. Invoice kind: issued (a customer owes you) or received (you owe a supplier)

--yes

Option, optional. Confirm deleting the invoice

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._ledger_business_payloads.InvoiceRemoveResult.

aeat app ledger invoice update

Update business invoice details

Command path: aeat app ledger invoice update

Registry key: ledger.invoice.update

Parameters

invoice_id

Option, required. Invoice id (or unambiguous prefix)

--kind

Option, required. Invoice kind: issued (a customer owes you) or received (you owe a supplier)

--counterparty-nif

Option, optional. No description.

--counterparty-name

Option, optional. No description.

--invoice-number

Option, optional. No description.

--invoice-date

Option, optional. No description.

--currency

Option, optional. No description.

--taxable-base

Option, optional. No description.

--iva-rate

Option, optional. No description.

--iva-amount

Option, optional. No description.

--total-amount

Option, optional. No description.

--notes

Option, optional. No description.

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._ledger_business_payloads.InvoiceUpdateResult.

aeat app ledger invoice view

Show one business invoice

Command path: aeat app ledger invoice view

Registry key: ledger.invoice.view

Parameters

invoice_id

Option, required. Invoice id (or unambiguous prefix)

--kind

Option, required. Invoice kind: issued (a customer owes you) or received (you owe a supplier)

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._ledger_business_payloads.InvoiceViewResult.

aeat app ledger list

List ledger transactions in the active profile

Command path: aeat app ledger list

Registry key: ledger.list

Parameters

--filter

Option, optional. Filter rows by status, period (a bare AEAT token, e.g. period=1T) plus year (e.g. year=2026), classification, issue, import, direction (ingreso/gasto), or text. To filter by organisational group label use the separate –group option.

--period

Option, optional. Filing period as an AEAT token: 1T-4T (quarters), 0A (annual), 01-12 (months). Combine with –year to choose the year.

--year

Option, optional. Filing year for –period (e.g. 2024).

--limit

Option, optional. Maximum rows to show (default: all rows).

--offset

Option, optional. Skip this many rows before listing (default: 0).

--group

Option, optional. Show only rows in this group label.

--by-group

Option, optional. Section the listing by group label.

--sort-by

Option, optional. Sort the listed rows by this field (date, amount, description, created_at, modified_at, …).

--sort-order

Option, optional. Sort order: asc (ascending) or desc (descending).

--hide-llm-rejected

Option, optional. Hide rows whose most recent LLM suggestion was rejected (a reviewed-and-declined row drops out of the pending queue).

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._ledger_payloads.LedgerListResult.

aeat app ledger llm-diagnostics

Report existing LLM usage, cost, and classification-confidence metrics.

Command path: aeat app ledger llm-diagnostics

Registry key: ledger.llm_diagnostics

Parameters

--since

Option, optional. Inclusive lower ISO date (YYYY-MM-DD) bound on usage records.

--until

Option, optional. Inclusive upper ISO date (YYYY-MM-DD) bound on usage records.

--low-confidence-below

Option, optional. Confidence floor below which a classification counts as low-confidence.

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._ledger_rule_payloads.LedgerLlmDiagnosticsResult.

aeat app ledger merge

Re-merge a complete cohort of split children into a fresh transaction

Command path: aeat app ledger merge

Registry key: ledger.merge

Parameters

--child-id

Option, optional. One child id (or unambiguous prefix) to merge. Repeat for every sibling in the cohort; partial merges are refused.

--reason

Option, optional. Reason recorded in the bucket-event payload and lifecycle history

--yes

Option, optional. Confirm the merge (archives every child and the parent, persists a fresh content-addressed merged transaction)

--actor

Option, optional. Operator name recorded on the LEDGER_TRANSACTION_MERGED event

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._ledger_payloads.LedgerMergeResult.

aeat app ledger participation rebuild

Run rebuild_participation_index() for the active bucket.

Command path: aeat app ledger participation rebuild

Registry key: ledger.participation.rebuild

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._ledger_payloads.LedgerParticipationRebuildResult.

aeat app ledger preflight

Report missing ledger facts (category, taxable base, IVA amount/rate, currency, proportionality reference) for the active profile’s transactions in a given period. Local-only; never contacts AEAT.

Command path: aeat app ledger preflight

Registry key: ledger.preflight

Parameters

--period

Option, required. Filing period as an AEAT token: 1T-4T (quarters), 0A (annual), 01-12 (months). Combine with –year to choose the year.

--year

Option, required. Filing year (e.g. 2024).

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._ledger_payloads.LedgerPreflightResult.

aeat app ledger prorrata declare-sector

Declare one differentiated sector (LIVA arts. 9.1.c / 101): the operator’s art. 9.1.c partition, never inferred from the ledger.

Command path: aeat app ledger prorrata declare-sector

Registry key: ledger.prorrata.declare_sector

Parameters

--sector-id

Option, required. Stable sector id the register entries and ledger rows reference.

--letra

Option, required. LIVA art. 9.1.c letra (a/b/c/d) that makes this sector differentiated.

--activity-code

Option, optional. CNAE / IAE activity code grouped into this sector (repeatable, at least one).

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._prorrata_register_payloads.ProrrataDeclareSectorResult.

aeat app ledger prorrata elect-especial

Elect prorrata especial for an ejercicio (LIVA art. 103.Dos.1): per-input deduction routes by –input-classification on each ledger row.

Command path: aeat app ledger prorrata elect-especial

Registry key: ledger.prorrata.elect_especial

Parameters

--ejercicio

Option, required. Filing year the election covers.

--percentage

Option, required. Common-use deduction percentage 0-100 (LIVA art. 106.Uno regla 3.a / art. 104.Dos).

--provenance

Option, optional. LIVA art. 105 source of the provisional percentage.

--reference

Option, optional. AEAT authorisation (art. 105.Dos) or inicio proposal (art. 105.Tres) reference.

--sector

Option, optional. Differentiated-sector id this entry covers; omit for the whole-entity entry.

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._prorrata_register_payloads.ProrrataElectEspecialResult.

aeat app ledger prorrata elect-general

Elect prorrata general for an ejercicio (LIVA art. 104): one deduction percentage applies to every deducible cuota.

Command path: aeat app ledger prorrata elect-general

Registry key: ledger.prorrata.elect_general

Parameters

--ejercicio

Option, required. Filing year the election covers.

--percentage

Option, required. Provisional deduction percentage 0-100 (LIVA art. 104.Uno + 105.Uno).

--provenance

Option, optional. LIVA art. 105 source of the provisional percentage.

--reference

Option, optional. AEAT authorisation (art. 105.Dos) or inicio proposal (art. 105.Tres) reference.

--sector

Option, optional. Differentiated-sector id this entry covers; omit for the whole-entity entry.

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._prorrata_register_payloads.ProrrataElectGeneralResult.

aeat app ledger prorrata list

List every register entry and declared differentiated sector on the active profile.

Command path: aeat app ledger prorrata list

Registry key: ledger.prorrata.list

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._prorrata_register_payloads.ProrrataListResult.

aeat app ledger providers

List which subprocess LLM providers have a usable CLI on PATH.

Command path: aeat app ledger providers

Registry key: ledger.providers

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._ledger_rule_payloads.LedgerProvidersResult.

aeat app ledger pull-folder

Bulk-fetch every PDF/image invoice in a Drive folder and store each as encrypted evidence (unlinked to any transaction; link with ‘aeat app ledger attach’ or ‘link’).

Command path: aeat app ledger pull-folder

Registry key: ledger.pull_folder

Parameters

--folder

Option, required. Drive folder URL or bare folder id to bulk-fetch invoice PDFs/images from.

--note

Option, optional. Optional note recorded on every fetched attachment.

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._ledger_payloads.LedgerDocLinkPullFolderResult.

aeat app ledger ratios eligible

List categories that accept a specific ratio

Command path: aeat app ledger ratios eligible

Registry key: ledger.ratios.eligible

Parameters

--output-language, --language

Option, optional. Output language for the response text (es, en, ca, hu).

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._ledger_ratios_payloads.RatiosEligibleResult.

aeat app ledger ratios list

List category ratios in the active profile

Command path: aeat app ledger ratios list

Registry key: ledger.ratios.list

Parameters

--output-language, --language

Option, optional. Output language for the response text (es, en, ca, hu).

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._ledger_ratios_payloads.RatiosListResult.

aeat app ledger ratios set

Set or replace the ratio for a category

Command path: aeat app ledger ratios set

Registry key: ledger.ratios.set

Parameters

category

Option, required. Spending category id (e.g. USAGE_RATIO_VEHICLE)

ratio

Option, required. Applicable ratio between 0 and 1

--output-language, --language

Option, optional. Output language for the response text (es, en, ca, hu).

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._ledger_ratios_payloads.RatiosSetResult.

aeat app ledger ratios unset

Remove the specific ratio for a category

Command path: aeat app ledger ratios unset

Registry key: ledger.ratios.unset

Parameters

category

Option, required. Category id whose ratio you want to clear

--output-language, --language

Option, optional. Output language for the response text (es, en, ca, hu).

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._ledger_ratios_payloads.RatiosUnsetResult.

aeat app ledger ratios validate

Validate ratios against eligible categories and bounds

Command path: aeat app ledger ratios validate

Registry key: ledger.ratios.validate

Parameters

--output-language, --language

Option, optional. Output language for the response text (es, en, ca, hu).

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._ledger_ratios_payloads.RatiosValidateResult.

aeat app ledger remove

Remove one ledger transaction from the active profile

Command path: aeat app ledger remove

Registry key: ledger.remove

Parameters

transaction_id

Option, required. Ledger transaction id to remove

--reason

Option, optional. Reason recorded in removal history

--dry-run

Option, optional. Report removal effects without deleting the ledger transaction

--yes

Option, optional. Confirm deletion of the ledger transaction

--actor

Option, optional. Operator name recorded on the bucket event

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._ledger_payloads.LedgerRemoveResult.

aeat app ledger reset

Reset the active profile’s ledger catalogue

Command path: aeat app ledger reset

Registry key: ledger.reset

Parameters

--reason

Option, optional. Reason recorded in reset history

--dry-run

Option, optional. Report reset effects without clearing the ledger catalogue

--yes

Option, optional. Confirm clearing the active ledger catalogue

--actor

Option, optional. Operator name recorded on the bucket event

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._ledger_payloads.LedgerResetResult.

aeat app ledger restore

Restore one stashed or archived ledger transaction to active

Command path: aeat app ledger restore

Registry key: ledger.restore

Parameters

transaction_id

Option, required. Ledger transaction id to restore to active

--reason

Option, optional. Reason recorded in lifecycle history

--yes

Option, optional. Confirm restoring the ledger transaction to active

--actor

Option, optional. Operator name recorded on the bucket event

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._ledger_payloads.LedgerRestoreResult.

aeat app ledger review

Interactive review and validation of ledger entries

Command path: aeat app ledger review

Registry key: ledger.review

Parameters

--filter

Option, optional. Filter rows by status, period (a bare AEAT token, e.g. period=1T) plus year (e.g. year=2026), issue, import, classification, text, or direction

record_id

Option, optional. Identifier of the specific entry to review

--verbose

Option, optional. Show detailed information during review

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._ledger_payloads.LedgerReviewResult.

aeat app ledger rule add

Add a classification rule that auto-classifies matching transactions.

Command path: aeat app ledger rule add

Registry key: ledger.rule.add

Parameters

--description-pattern

Option, required. Regex pattern matched (case-insensitive) against transaction description.

--classification

Option, required. Target classification for matching transactions.

--category-id

Option, optional. Optional spending category to apply.

--priority

Option, optional. Numeric priority; lower value is evaluated first (default 100).

--actor

Option, optional. Operator identifier recorded in the rule provenance.

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._ledger_rule_payloads.RuleAddResult.

aeat app ledger rule apply

Apply stored classification rules to unclassified ACTIVE transactions.

Command path: aeat app ledger rule apply

Registry key: ledger.rule.apply

Parameters

--reaffirm

Option, optional. Also re-classify transactions that were manually classified.

--dry-run

Option, optional. Show what would be classified without persisting changes.

--actor

Option, optional. Operator identifier recorded in the rule provenance.

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._ledger_rule_payloads.RuleApplyResult.

aeat app ledger rule list

List stored classification rules ordered by priority.

Command path: aeat app ledger rule list

Registry key: ledger.rule.list

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._ledger_rule_payloads.RuleListResult.

aeat app ledger split

Redistribute one parent transaction into N child transactions whose amounts sum to the parent amount exactly

Command path: aeat app ledger split

Registry key: ledger.split

Parameters

transaction_id

Option, required. Parent transaction id (or unambiguous hex prefix) to split

--child-amount

Option, optional. One child amount as a non-negative magnitude in the parent’s currency. Repeat once per child; the count must match –child-description.

--child-description

Option, optional. One child narrative. Repeat once per child; the count must match –child-amount.

--llm

Option, optional. Propose an evidence-driven N-way split with the given LLM provider.

--apply

Option, optional. Persist the proposed –llm split (requires –yes); without it the proposal is previewed only.

--read-evidence

Option, optional. Read the transaction’s attached invoice on-host and feed it to the –llm split proposer.

--evidence-acknowledged

Option, optional. Acknowledge –read-evidence sends the evidence to a cloud model (off by default, gestor-barred).

--vision-model

Option, optional. Override the local Ollama vision model for an image/scanned-invoice read (e.g. qwen2.5vl:7b); defaults to the configured model.

--reason

Option, optional. Reason recorded in the bucket-event payload and lifecycle history

--yes

Option, optional. Confirm the split (transitions the parent to SPLIT and persists N child transactions)

--actor

Option, optional. Operator name recorded on the LEDGER_TRANSACTION_SPLIT event

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._ledger_payloads.LedgerSplitResult.

aeat app ledger stash

Stash one ledger transaction in the active profile

Command path: aeat app ledger stash

Registry key: ledger.stash

Parameters

transaction_id

Option, required. Ledger transaction id to stash

--reason

Option, optional. Reason recorded in lifecycle history

--yes

Option, optional. Confirm stashing the ledger transaction

--actor

Option, optional. Operator name recorded on the bucket event

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._ledger_payloads.LedgerStashResult.

aeat app ledger status

Summarize ledger state and calculation readiness for the active profile

Command path: aeat app ledger status

Registry key: ledger.status

Parameters

--period

Option, optional. Filing period as an AEAT token: 1T-4T (quarters), 0A (annual), 01-12 (months). Combine with –year to choose the year.

--year

Option, optional. Filing year for –period (e.g. 2024).

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._ledger_payloads.LedgerStatusResult.

aeat app ledger track

Show the event lineage for one ledger transaction

Command path: aeat app ledger track

Registry key: ledger.track

Parameters

transaction_id

Option, required. Ledger transaction id to inspect

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._ledger_payloads.LedgerTrackResult.

aeat app ledger update

Update one ledger transaction with full-replace field semantics

Command path: aeat app ledger update

Registry key: ledger.update

Parameters

transaction_id

Option, required. Ledger transaction id (or unambiguous hex prefix) to update

--date

Option, optional. New booked date (YYYY-MM-DD)

--value-date

Option, optional. New value date (YYYY-MM-DD)

--amount

Option, optional. New non-negative amount magnitude (full replace)

--direction

Option, optional. New transaction direction

--currency

Option, optional. New three-letter ISO 4217 currency code

--counterparty

Option, optional. New counterparty descriptor

--description

Option, optional. New narrative

--taxable-base

Option, optional. New IVA-exclusive base amount

--iva-rate

Option, optional. New IVA rate as a decimal fraction

--iva-amount

Option, optional. New IVA amount

--irpf-category

Option, optional. New IRPF-specific category key

--notes

Option, optional. New operator notes

--group

Option, optional. Assign an organisational group label (pass an empty string to clear).

--actor

Option, optional. Operator name recorded on the bucket event

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._ledger_payloads.LedgerUpdateResult.

aeat app ledger view

View one ledger transaction in the active profile

Command path: aeat app ledger view

Registry key: ledger.view

Parameters

transaction_id

Option, required. Ledger transaction id (or unambiguous hex prefix)

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._ledger_payloads.LedgerViewResult.

aeat app live borrador 100 latest

Show the most recent active snapshot for a filing year

Command path: aeat app live borrador 100 latest

Registry key: app.live.borrador.100.latest

Parameters

--filing-year

Option, required. Filing year (e.g. 2024)

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._app_live_payloads.Borrador100LatestResult.

aeat app live borrador 100 list

List persisted Modelo 100 borrador snapshots

Command path: aeat app live borrador 100 list

Registry key: app.live.borrador.100.list

Parameters

--state

Option, optional. Snapshot state filter: active, superseded, discarded, or all

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._app_live_payloads.Borrador100ListResult.

aeat app live borrador 100 view

Show one Modelo 100 borrador snapshot

Command path: aeat app live borrador 100 view

Registry key: app.live.borrador.100.view

Parameters

snapshot_id

Option, required. Snapshot id (or unambiguous prefix)

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._app_live_payloads.Borrador100ViewResult.

aeat app live expedientes latest

Show the most recent expediente snapshot

Command path: aeat app live expedientes latest

Registry key: app.live.expedientes.latest

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._app_live_payloads.ExpedientesLatestResult.

aeat app live expedientes list

List saved expediente snapshots

Command path: aeat app live expedientes list

Registry key: app.live.expedientes.list

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._app_live_payloads.ExpedientesListResult.

aeat app live expedientes pull

Pull the AEAT declaration register and persist a bucket-scoped snapshot.

Command path: aeat app live expedientes pull

Registry key: app.live.expedientes.pull

Parameters

--modelo

Option, optional. Limit this pull to this modelo.

--year

Option, optional. Filing year

--from-year

Option, optional. First filing year

--to-year

Option, optional. Last filing year

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._app_live_payloads.ExpedientesCaptureResult.

aeat app live expedientes view

Show an expediente snapshot

Command path: aeat app live expedientes view

Registry key: app.live.expedientes.view

Parameters

snapshot_id

Option, required. Snapshot id (or unambiguous prefix)

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._app_live_payloads.ExpedientesViewResult.

aeat app live filed list

List filed declaration rows without downloading artefacts

Command path: aeat app live filed list

Registry key: app.live.filed.list

Parameters

--modelo

Option, optional. Modelo code

--from-year

Option, optional. First filing year

--to-year

Option, optional. Last filing year

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._app_live_payloads.FiledListResult.

aeat app live filed pull

Pull filed-declaration data from the authenticated AEAT register.

Command path: aeat app live filed pull

Registry key: app.live.filed.pull

Parameters

--modelo

Option, optional. Limit this pull to this modelo.

--year

Option, optional. Filing year

--from-year

Option, optional. First filing year

--to-year

Option, optional. Last filing year

--output-root

Option, optional. Directory for captured filed-declaration observations

--period

Option, optional. Filing period

--expediente

Option, optional. AEAT expediente identifier

--limit

Option, optional. Maximum rows to capture

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._app_live_payloads.FiledCaptureResult.

aeat app live filed pull-sources

Pull the filed observations required by a target filing’s dependencies.

Command path: aeat app live filed pull-sources

Registry key: app.live.filed.pull_sources

Parameters

--modelo

Option, required. Modelo code

--year

Option, required. Filing year

--period

Option, required. Filing period

--output-root

Option, optional. Directory for captured filed-declaration observations

--registry-root

Option, optional. Registry root

--source-root

Option, optional. Project source root

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._app_live_payloads.FiledCaptureSourcesResult.

aeat app live iva-wallet history

List secure local IVA compensation history, carry-forward lots, and persisted wallet authority decisions derived from Modelo 303 captures.

Command path: aeat app live iva-wallet history

Registry key: app.live.iva_wallet.history

Parameters

--as-of-year

Option, optional. Year used to age IVA compensation carry-forward lots.

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._app_live_payloads.IvaWalletHistoryResult.

aeat app live iva-wallet pull

Live-fetch and persist AEAT’s IVA compensation wallet. The only AEAT form action allowed is the guarded wallet read query; representation gates only continue in own-name mode.

Command path: aeat app live iva-wallet pull

Registry key: app.live.iva_wallet.pull

Parameters

--year

Option, required. Filing year

--period

Option, required. Filing period

--taxpayer-nif

Option, optional. Taxpayer NIF; defaults to the authenticated identity.

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._app_live_payloads.IvaWalletPullResult.

aeat app live iva-wallet pull-evidence

Pull filed Modelo 303 history and attempt the AEAT IVA wallet/cartera read as one typed read-only acquisition.

Command path: aeat app live iva-wallet pull-evidence

Registry key: app.live.iva_wallet.pull_evidence

Parameters

--from-year

Option, required. First filing year

--to-year

Option, required. Last filing year

--target-year

Option, required. Filing year

--target-period

Option, required. Filing period

--taxpayer-nif

Option, optional. Taxpayer NIF; defaults to the authenticated identity.

--output-root

Option, optional. Directory for captured filed-declaration observations

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._app_live_payloads.IvaWalletPullEvidenceResult.

aeat app live iva-wallet pull-history

Pull filed Modelo 303 history and persist secure IVA compensation state. No AEAT filing or wallet form choices are submitted.

Command path: aeat app live iva-wallet pull-history

Registry key: app.live.iva_wallet.pull_history

Parameters

--from-year

Option, required. First filing year

--to-year

Option, required. Last filing year

--output-root

Option, optional. Directory for captured filed-declaration observations

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._app_live_payloads.IvaWalletCaptureHistoryResult.

aeat app live justificante list

List persisted justificante captures in the active profile.

Command path: aeat app live justificante list

Registry key: app.live.justificante.list

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._app_live_payloads.JustificanteListResult.

aeat app live justificante pull

Pull the AEAT justificante for a filed period and persist it as official evidence.

Command path: aeat app live justificante pull

Registry key: app.live.justificante.pull

Parameters

--modelo

Option, required. Modelo code

--year

Option, required. Filing year

--period

Option, required. Filing period

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._app_live_payloads.JustificanteCaptureResult.

aeat app live justificante view

View one justificante capture.

Command path: aeat app live justificante view

Registry key: app.live.justificante.view

Parameters

snapshot_id

Option, required. Snapshot id (or unambiguous prefix).

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._app_live_payloads.JustificanteViewResult.

aeat app live notifications latest

Show the most recent DEHU notification snapshot.

Command path: aeat app live notifications latest

Registry key: app.live.notifications.latest

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._app_live_payloads.NotificationsLatestResult.

aeat app live notifications list

List saved DEHú notification snapshots

Command path: aeat app live notifications list

Registry key: app.live.notifications.list

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._app_live_payloads.NotificationsListResult.

aeat app live notifications pull

Pull DEHu notifications and persist a bucket-scoped snapshot.

Command path: aeat app live notifications pull

Registry key: app.live.notifications.pull

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._app_live_payloads.NotificationsCaptureResult.

aeat app live notifications view

Show a DEHú notification snapshot

Command path: aeat app live notifications view

Registry key: app.live.notifications.view

Parameters

snapshot_id

Option, required. Snapshot id (or unambiguous prefix)

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._app_live_payloads.NotificationsViewResult.

aeat app live portals list

List portal catalogue entries

Command path: aeat app live portals list

Registry key: app.live.portals.list

Parameters

--category

Option, optional. Filter by portal category

--modelo

Option, optional. Filter by portals linked to a modelo

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._app_live_payloads.PortalsListResult.

aeat app live portals view

Show a portal catalogue entry

Command path: aeat app live portals view

Registry key: app.live.portals.view

Parameters

portal_id

Option, required. Portal identifier

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._app_live_payloads.PortalsViewResult.

aeat app live verify latest

Show the most recent observation for surface and NIF

Command path: aeat app live verify latest

Registry key: app.live.verify.latest

Parameters

--surface

Option, required. Verification surface: nif_iva or tgvi

--nif

Option, required. NIF to look up

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._app_live_payloads.VerifyLatestResult.

aeat app live verify list

List saved verification observations

Command path: aeat app live verify list

Registry key: app.live.verify.list

Parameters

--surface

Option, optional. Filter by surface: nif_iva or tgvi

--nif

Option, optional. Filter by one NIF

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._app_live_payloads.VerifyListResult.

aeat app live verify nif-iva

Verify an intra-community NIF-IVA in AEAT IXVI and save the observation

Command path: aeat app live verify nif-iva

Registry key: app.live.verify.nif_iva

Parameters

nif

Option, required. NIF-IVA value (e.g. ESB12345678)

--expected

Option, optional. Optional expected result (valid, invalid, or unknown)

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._app_live_payloads.VerifyNifIvaResult.

aeat app live verify tgvi

Verify a NIF’s ROI/VIES registration in GROI and save the observation

Command path: aeat app live verify tgvi

Registry key: app.live.verify.tgvi

Parameters

nif

Option, required. Spanish NIF/NIE to check

--expected

Option, optional. Optional expected result (valid, invalid, or unknown)

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._app_live_payloads.VerifyTgviResult.

aeat app live verify view

Show a saved verification observation

Command path: aeat app live verify view

Registry key: app.live.verify.view

Parameters

observation_id

Option, required. Observation id (or unambiguous prefix)

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._app_live_payloads.VerifyViewResult.

aeat app modelo aggregate

Run the backend per-modelo aggregation service from explicit canonical observations. Accepted source_kind values are ledger_transaction, purchase_invoice_evidence, payable_invoice, and collectible_invoice.

Command path: aeat app modelo aggregate

Registry key: modelo.aggregate

Parameters

--modelo

Option, required. Supported modelo code for the backend aggregation service (111, 115, 123, 180, 190, 193, 347, 349, or 720).

--year

Option, required. Tax year of the work unit (e.g. 2026)

--period

Option, required. Aggregation period token: 0A annual, 1T-4T quarters, 01-12 months.

--retencion-observation

Option, optional. JSON RetencionObservation object. The source_kind value must be ledger_transaction, purchase_invoice_evidence, payable_invoice, or collectible_invoice. For Modelo 111 trabajo, scheme rendimientos_trabajo is the empleado progressive rate (LIRPF art. 101.1) and rendimientos_trabajo_administrador is the fixed administrador/consejero rate (LIRPF art. 101.2: 35 percent, or 19 percent when the entity’s net turnover is below 100,000 EUR). Repeat for multiple observations.

--counterpart-observation

Option, optional. JSON CounterpartObservation object. The source_kind value must be ledger_transaction, purchase_invoice_evidence, payable_invoice, or collectible_invoice. Repeat for multiple observations.

--foreign-asset-observation

Option, optional. JSON ForeignAssetObservation object. The source_kind value must be ledger_transaction, purchase_invoice_evidence, payable_invoice, or collectible_invoice. Repeat for multiple observations.

--withholding-observation

Option, optional. Per-perceptor-clave withholding observation (JSON) for the Modelo 190 percepciones count; repeatable.

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_payloads.ModeloAggregateResult.

aeat app modelo audit check

Re-verify an evidence bundle by recomputing record digests.

Command path: aeat app modelo audit check

Registry key: modelo.audit.check

Parameters

bundle_id

Option, required. Evidence bundle id (full SHA-256 or unambiguous prefix).

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_aux_payloads.ModeloAuditCheckResult.

aeat app modelo audit export

Write a deterministic ZIP archive of the evidence bundle (manifest.json emitted last).

Command path: aeat app modelo audit export

Registry key: modelo.audit.export

Parameters

bundle_id

Option, required. Evidence bundle id (full SHA-256 or unambiguous prefix).

--output

Option, required. Output path for the bundle ZIP archive.

--force-incomplete

Option, optional. Allow export when verification reports the bundle as incomplete.

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_aux_payloads.ModeloAuditExportResult.

aeat app modelo audit replay

Re-run the evidence-case verification for forensic audit handoff; never contacts AEAT and never performs submission.

Command path: aeat app modelo audit replay

Registry key: modelo.audit.replay

Parameters

bundle_id

Option, required. Evidence bundle id (full SHA-256 or unambiguous prefix).

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_aux_payloads.ModeloAuditReplayResult.

aeat app modelo audit show

Render an evidence bundle’s manifest and referenced records

Command path: aeat app modelo audit show

Registry key: modelo.audit.show

Parameters

bundle_id

Option, required. Evidence bundle id (full SHA-256 or unambiguous prefix).

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_aux_payloads.ModeloAuditShowResult.

aeat app modelo bindings list

List the required and available bindings for a modelo / year / period

Command path: aeat app modelo bindings list

Registry key: modelo.bindings.list

Parameters

--modelo

Option, optional. Tax form code (e.g. 303, 130, 100)

--year

Option, optional. Tax year of the modelo (e.g. 2026)

--period

Option, optional. Period token: 0A annual, 1T-4T quarters, 01-12 months; for censo modelos (036) use alta, modificacion, or baja.

--missing

Option, optional. Filter to the bindings still owed: drops constant-valued bindings and any the active profile already resolves. With no active profile every non-constant binding is shown (the conservative answer).

--as-of

Option, optional. Resolve the modelo revision active on the supplied ISO date (YYYY-MM-DD)

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_bindings_payloads.ModeloBindingsListResult.

aeat app modelo bindings resolve

Resolve bindings and show their values with optional temporary overrides, without mutating state

Command path: aeat app modelo bindings resolve

Registry key: modelo.bindings.resolve

Parameters

--modelo

Option, optional. Tax form code (e.g. 303, 130, 100)

--year

Option, optional. Tax year of the modelo (e.g. 2026)

--period

Option, optional. Period token: 0A annual, 1T-4T quarters, 01-12 months; for censo modelos (036) use alta, modificacion, or baja.

--binding

Option, optional. Temporary binding override with KEY=VALUE syntax (repeatable)

--as-of

Option, optional. Resolve the modelo revision active on the supplied ISO date (YYYY-MM-DD)

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_bindings_payloads.ModeloBindingsPreviewResult.

aeat app modelo casilla

Show the label, legal grounding, input kind, and formula for one casilla on the resolved registry snapshot.

Command path: aeat app modelo casilla

Registry key: modelo.casilla

Parameters

modelo

Option, required. Tax form code (e.g. 303, 130, 100)

casilla_id

Option, required. Casilla id or printed casilla number to describe (e.g. 0596).

--year

Option, optional. Filter the modelo catalogue to a single fiscal year

--period

Option, optional. Period token used to resolve the modelo revision: 0A annual, 1T-4T quarters, 01-12 months; for censo modelos (036) use alta, modificacion, or baja.

--as-of

Option, optional. Resolve the modelo revision active on the supplied ISO date (YYYY-MM-DD)

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_payloads.ModeloCasillaResult.

aeat app modelo casillas

List all casillas (fields/boxes) defined for a specific modelo revision.

Command path: aeat app modelo casillas

Registry key: modelo.casillas

Parameters

modelo

Option, required. Tax form code (e.g. 303, 130, 100)

--year

Option, optional. Filter the modelo catalogue to a single fiscal year

--period

Option, optional. Period token used to resolve the modelo revision: 0A annual, 1T-4T quarters, 01-12 months; for censo modelos (036) use alta, modificacion, or baja.

--as-of

Option, optional. Resolve the modelo revision active on the supplied ISO date (YYYY-MM-DD)

--input-kind

Option, optional. Filter casillas by input kind (manual, bound, computed, informational)

--required

Option, optional. Show only casillas the modelo marks as required

--form-number

Option, optional. Filter casillas by BOE-printed form number (e.g. 46)

--number

Option, optional. Filter casillas by printed casilla number or canonical id (e.g. 0596).

--explain

Option, optional. Include localized help text in the text output.

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_payloads.ModeloCasillasResult.

aeat app modelo compare

Compare two filing-year calculation revisions for the same modelo. Emits per-casilla delta rows (year_b - year_a) grouped by section.

Command path: aeat app modelo compare

Registry key: modelo.compare

Parameters

--year

Option, optional. Filing year to include in the comparison. Specify exactly twice (–year 2024 –year 2025).

--modelo

Option, optional. Modelo number to compare (e.g. 100, 130).

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_payloads.ModeloCompareResult.

aeat app modelo describe

Show detailed structure, metadata, and active periods for a specific modelo.

Command path: aeat app modelo describe

Registry key: modelo.describe

Parameters

modelo

Option, required. Tax form code (e.g. 303, 130, 100)

--year

Option, optional. Filter the modelo catalogue to a single fiscal year

--period

Option, optional. Period token used to resolve the modelo revision: 0A annual, 1T-4T quarters, 01-12 months; for censo modelos (036) use alta, modificacion, or baja.

--as-of

Option, optional. Resolve the modelo revision active on the supplied ISO date (YYYY-MM-DD)

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_aux_payloads.ModeloDescribeResult.

aeat app modelo export

Export a verified-complete or filed modelo revision to a local AEAT-compatible fichero-BOE file. Local-only; never contacts AEAT, and the generated file is not official AEAT filing evidence. Use AEAT justificante, declaration consultation, or CSV cotejo evidence after filing.

Command path: aeat app modelo export

Registry key: modelo.export

Parameters

work_unit_id

Option, optional. Work unit id (SHA-256 or unambiguous prefix).

--modelo

Option, optional. Tax form code (e.g. 303, 130, 100)

--year

Option, optional. Tax year of the work unit (e.g. 2026)

--period

Option, optional. Work-unit period token: 0A annual, 1T-4T quarters, 01-12 months; for censo modelos (036) use alta, modificacion, or baja.

--registry-revision

Option, optional. Stable id of the targeted registry modelo revision; run aeat app modelo describe MODELO to see the available revision ids.

--bucket-id

Option, optional. Profile the work unit belongs to

--select

Option, optional. Revision selector.

--output

Option, optional. Path to write the fichero-BOE artefact to.

--revision

Option, optional. Calculation revision id to export; defaults to the work unit’s most recent verified-complete or filed revision.

--by

Option, optional. Operator label recorded into the MODELO_EXPORTED event.

--disposition

Option, optional. Modelo 303 negative-result disposition: compensar (carry the credit forward, default) or devolver (request a refund; only in the year’s last filing period for a non-REDEME taxpayer).

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_payloads.ModeloExportPayload.

aeat app modelo filing-record import

Persist an externally-filed return as a baseline filing record carrying imported AEAT-attested evidence

Command path: aeat app modelo filing-record import

Registry key: modelo.filing_record.import

Parameters

work_unit_id

Option, required. Stable 64-character SHA-256 identifier of the work unit

--evidence-kind

Option, required. Kind of imported evidence (aeat_justificante_pdf, aeat_csv_register, aeat_live_capture)

--evidence-id

Option, required. Stable reference id of the imported evidence (justificante number, CSV register id, live capture id)

--by

Option, optional. Actor responsible for the action (free-text label up to 64 chars)

--set

Option, optional. Imported casilla value with CASILLA_ID=DECIMAL syntax (repeatable; at least one required)

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_payloads.FilingRecordImportResult.

aeat app modelo filing-record list

List registered filing records

Command path: aeat app modelo filing-record list

Registry key: modelo.filing_record.list

Parameters

--bucket-id

Option, optional. Filter by profile

--modelo

Option, optional. Filter by modelo code (e.g. 303, 130, 100)

--include-superseded

Option, optional. Include superseded filing records (excluded by default)

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_payloads.ModeloRecordListResult.

aeat app modelo filing-record observe-local

Record an operator-supplied local observation for calculation prefill

Command path: aeat app modelo filing-record observe-local

Registry key: modelo.filing_record.observe_local

Parameters

--modelo

Option, required. Tax form code (e.g. 303, 130, 100)

--year

Option, required. Tax year of the work unit (e.g. 2026)

--period

Option, required. Work-unit period token: 0A annual, 1T-4T quarters, 01-12 months; for censo modelos (036) use alta, modificacion, or baja.

--by

Option, optional. Actor responsible for the action (free-text label up to 64 chars)

--set

Option, optional. Canonical casilla.id and Decimal value to record, e.g. –set 1391=0

--file

Option, optional. Path to a local CSV or XLSX spreadsheet of casilla_code,value rows (a cert-free reconstruction of a past filing). Combines with –set; a –set value for the same casilla overrides the spreadsheet row

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_payloads.FilingRecordLocalObservationResult.

aeat app modelo filing-record view

Show one filing record by id

Command path: aeat app modelo filing-record view

Registry key: modelo.filing_record.view

Parameters

filing_record_id

Option, required. Stable filing-record identifier

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_payloads.ModeloRecordShowResult.

aeat app modelo formulas

List all computed casillas and their formulas for a specific modelo revision.

Command path: aeat app modelo formulas

Registry key: modelo.formulas

Parameters

modelo

Option, required. Tax form code (e.g. 303, 130, 100)

--year

Option, optional. Filter the modelo catalogue to a single fiscal year

--period

Option, optional. Period token used to resolve the modelo revision: 0A annual, 1T-4T quarters, 01-12 months; for censo modelos (036) use alta, modificacion, or baja.

--as-of

Option, optional. Resolve the modelo revision active on the supplied ISO date (YYYY-MM-DD)

--explain

Option, optional. Include the legal_refs and source_refs that ground each formula in the text output. The JSON payload always carries them.

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_payloads.FormulasResult.

aeat app modelo history

Show the chronological lifecycle audit for one modelo

Command path: aeat app modelo history

Registry key: modelo.history

Parameters

--modelo

Option, required. Modelo code (e.g. 100, 303)

--year

Option, optional. Optional filing year filter

--period

Option, optional. Optional period filter using the modelo revision token: 0A annual, 1T-4T quarters, 01-12 months; for censo modelos (036) use alta, modificacion, or baja.

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_payloads.ModeloHistoryResult.

aeat app modelo iva-wallet balance

Show aggregated IVA compensation carry-forward balance computed from local Modelo 303 history. Reports total_balance, active_balance, expired_balance, lot_count, and next_expiry_year.

Command path: aeat app modelo iva-wallet balance

Registry key: modelo.iva_wallet.balance

Parameters

--as-of-year

Option, required. Reference year for carry-forward age and expiry calculations.

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_iva_wallet_payloads.IvaWalletBalanceResult.

aeat app modelo iva-wallet correct

Correct a wrong opening Modelo 303 carry-forward balance previously seeded for a pre-history period. Overwrites the existing seeded amount; refuses when no record exists for the period (seed first) and when an already-filed Modelo 303 has consumed the seeded basis (correcting it would change a filed return). Records –reason into an audit event. Requires –confirm.

Command path: aeat app modelo iva-wallet correct

Registry key: modelo.iva_wallet.correct

Parameters

--filing-year

Option, required. Filing year of the seeded Modelo 303 period to correct.

--period

Option, required. Period of the seeded Modelo 303 record to correct (e.g. 4T, 3T).

--amount

Option, required. Corrected carry-forward balance amount in EUR (decimal, e.g. 1200.50).

--reason

Option, required. Reason for the correction, recorded into the audit event.

--confirm, --yes

Option, optional. Required confirmation flag. Acknowledge that this overwrites a previously seeded carry-forward balance and filing accuracy depends on the new value.

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_payloads_m036.IvaWalletCorrectResult.

aeat app modelo iva-wallet override

Record a taxpayer override for the Modelo 303 prior-compensation carry from evidence held outside the local wallet. It unblocks calculation only and does not satisfy the official-evidence verification gate. Requires –confirm.

Command path: aeat app modelo iva-wallet override

Registry key: modelo.iva_wallet.override

Parameters

--filing-year

Option, required. Filing year of the Modelo 303 period whose prior-compensation carry is overridden.

--period

Option, required. Period of the dependent Modelo 303 filing receiving the carry, for example 2T or 3T.

--amount

Option, required. Overridden prior-compensation amount in EUR applied to iva.compensacion-pendiente-periodos-anteriores, AEAT box 110; decimal, for example 420.00.

--reason

Option, required. Required basis for the override, recorded as auditable provenance.

--evidence-locator

Option, required. Required locator for the evidence supporting the override, for example a prior justificante reference.

--confirm, --yes

Option, optional. Required confirmation flag. Acknowledge that the override changes the filed prior-compensation figure and filing accuracy depends on the supplied value.

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_iva_wallet_payloads.IvaWalletOverrideResult.

aeat app modelo iva-wallet seed

Declare a Modelo 303 carry-forward balance for a period that pre-dates local history. Refuses if a record already exists for the period.

Two cases:

–amount 0 True first-period: this is the taxpayer’s first ever Modelo 303 filing under this NIF. Casilla 110 is zero because no prior compensation balance exists (LIVA art. 99.5, Ley 37/1992). The reconciliation layer treats this as first_period_zero — non-blocking and legally certain.

--amount X

Carry-in: the taxpayer has filed prior M303s under a different tool or directly with AEAT. X is the compensacion pendiente de periodos posteriores from the last filed M303.

Command path: aeat app modelo iva-wallet seed

Registry key: modelo.iva_wallet.seed

Parameters

--filing-year

Option, required. Filing year of the Modelo 303 period to seed.

--period

Option, required. Period of the Modelo 303 filing: 1T-4T quarters (e.g. 4T).

--amount

Option, required. Carry-forward balance amount in EUR (decimal, e.g. 1200.50). This is the compensación pendiente de periodos anteriores for the NEXT period after the seeded one.

--confirm

Option, optional. Required confirmation flag. Acknowledge that seeding declares a carry-forward balance and filing accuracy depends on the value supplied.

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_iva_wallet_payloads.IvaWalletSeedResult.

aeat app modelo list

List all official tax forms (modelos) registered in the system.

Command path: aeat app modelo list

Registry key: modelo.list

Parameters

--year

Option, optional. Filter the modelo catalogue to a single fiscal year

--domain

Option, optional. Filter the modelo catalogue to a single tax family (e.g. iva, irpf, is)

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_aux_payloads.ModeloListResult.

aeat app modelo m036 alta

Record an M036 alta declaration (initial census registration) filed at sede.

Command path: aeat app modelo m036 alta

Registry key: modelo.m036.alta

Parameters

--declared-on

Option, required. ISO date (YYYY-MM-DD) the operator filed the M036 at sede.

--sede-justificante

Option, optional. Optional AEAT acuse de recibo identifier emitted by sede for the filing.

--note

Option, optional. Optional operator note (up to 512 chars).

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_payloads_m036.M036DeclarationRecordResult.

aeat app modelo m036 baja

Record an M036 baja declaration (census deregistration) filed at sede.

Command path: aeat app modelo m036 baja

Registry key: modelo.m036.baja

Parameters

--declared-on

Option, required. ISO date (YYYY-MM-DD) the operator filed the M036 at sede.

--sede-justificante

Option, optional. Optional AEAT acuse de recibo identifier emitted by sede for the filing.

--note

Option, optional. Optional operator note (up to 512 chars).

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_payloads_m036.M036DeclarationRecordResult.

aeat app modelo m036 list

List the M036 declarations recorded in the active profile.

Command path: aeat app modelo m036 list

Registry key: modelo.m036.list

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_payloads_m036.M036DeclarationListResult.

aeat app modelo m036 modificacion

Record an M036 modificacion declaration (census update) filed at sede.

Command path: aeat app modelo m036 modificacion

Registry key: modelo.m036.modificacion

Parameters

--declared-on

Option, required. ISO date (YYYY-MM-DD) the operator filed the M036 at sede.

--sede-justificante

Option, optional. Optional AEAT acuse de recibo identifier emitted by sede for the filing.

--note

Option, optional. Optional operator note (up to 512 chars).

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_payloads_m036.M036DeclarationRecordResult.

aeat app modelo m036 view

View one recorded M036 declaration by id (or unambiguous prefix).

Command path: aeat app modelo m036 view

Registry key: modelo.m036.view

Parameters

declaration_id

Option, required. The declaration id (or an unambiguous prefix of it) to view.

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_payloads_m036.M036DeclarationShowResult.

aeat app modelo m145 create

Create a Modelo 145 local payer communication record.

Command path: aeat app modelo m145 create

Registry key: modelo.m145.create

Parameters

--year

Option, required. Communication year.

--period

Option, optional. Communication period token: comunicacion or variacion.

--casilla

Option, optional. Repeatable registry field assignment, ID=VALUE.

--note

Option, optional. Optional operator note.

--by

Option, optional. Operator label for the event.

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_payloads_m145.M145CommunicationRecordResult.

aeat app modelo m145 export

Export a Modelo 145 local payer communication record.

Command path: aeat app modelo m145 export

Registry key: modelo.m145.export

Parameters

communication_record_id

Option, required. Communication record id or unambiguous prefix.

--by

Option, optional. Operator label for the event.

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_payloads_m145.M145CommunicationExportResultPayload.

aeat app modelo m145 mark-delivered-to-payer

Mark a Modelo 145 local communication record delivered to the payer.

Command path: aeat app modelo m145 mark-delivered-to-payer

Registry key: modelo.m145.mark_delivered_to_payer

Parameters

communication_record_id

Option, required. Communication record id or unambiguous prefix.

--by

Option, optional. Operator label for the event.

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_payloads_m145.M145CommunicationRecordResult.

aeat app modelo m145 mark-locally-completed

Mark a Modelo 145 local communication record locally completed.

Command path: aeat app modelo m145 mark-locally-completed

Registry key: modelo.m145.mark_locally_completed

Parameters

communication_record_id

Option, required. Communication record id or unambiguous prefix.

--by

Option, optional. Operator label for the event.

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_payloads_m145.M145CommunicationRecordResult.

aeat app modelo m145 validate

Validate a Modelo 145 local payer communication record.

Command path: aeat app modelo m145 validate

Registry key: modelo.m145.validate

Parameters

communication_record_id

Option, required. Communication record id or unambiguous prefix.

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_payloads_m145.M145CommunicationValidationResultPayload.

aeat app modelo project

Run modelo aggregate projections (e.g. year-end Modelo 130 aggregation).

Command path: aeat app modelo project

Registry key: modelo.project

Parameters

--year

Option, required. Filing year (e.g. 2024).

--ccaa

Option, required. Autonomous community tax residence key for the M100 autonomic scale (e.g. cataluna, comunidad-valenciana). Must match the registry enum.

--casilla

Option, optional. Additional M100 casilla override as CASILLA_ID=DECIMAL (e.g. 0513=1150 for age supplement). Repeat for multiple overrides.

--binding

Option, optional. Additional M100 binding override as KEY=VALUE. Repeat for multiple. Retenciones bindings default to zero when not supplied.

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_payloads.ModeloProjectResult.

aeat app modelo readiness

Report whether the active profile is ready to file one modelo / year / period.

Command path: aeat app modelo readiness

Registry key: modelo.readiness

Parameters

--modelo

Option, required. Modelo code (e.g. 303).

--revision-id

Option, required. Registry revision id.

--year

Option, required. Filing year.

--period

Option, optional. Period token used to resolve the modelo revision: 0A annual, 1T-4T quarters, 01-12 months; for censo modelos (036) use alta, modificacion, or baja.

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_payloads.ModeloReadinessResult.

aeat app modelo reconcile file

Reconcile a work unit against a local justificante or declaración PDF. Local-only; never contacts AEAT.

Command path: aeat app modelo reconcile file

Registry key: modelo.reconcile.file

Parameters

--file

Option, required. Path to the local justificante or declaración PDF to reconcile against.

work_unit_id

Option, optional. Work unit id (SHA-256 or unambiguous prefix).

--modelo

Option, optional. Tax form code (e.g. 303, 130, 100)

--year

Option, optional. Tax year of the work unit (e.g. 2026)

--period

Option, optional. Work-unit period token: 0A annual, 1T-4T quarters, 01-12 months; for censo modelos (036) use alta, modificacion, or baja.

--revision

Option, optional. Stable id of the targeted registry modelo revision; run aeat app modelo describe MODELO to see the available revision ids.

--bucket-id

Option, optional. Profile the work unit belongs to

--by

Option, optional. Actor responsible for the action (free-text label up to 64 chars)

--kind

Option, optional. Evidence document kind: justificante (AEAT receipt, every modelo) or declaration (filed declaración PDF, casilla-level reconcile, enrolled modelos only). Defaults to justificante.

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._payloads_modelo_reconcile.ModeloReconcileResult.

aeat app modelo reconcile history

List past reconciliations recorded for the active profile.

Command path: aeat app modelo reconcile history

Registry key: modelo.reconcile.history

Parameters

--work-unit-id

Option, optional. Optional work unit id to narrow the history to one work unit.

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_payloads_m036.ModeloReconciliationHistoryResult.

aeat app modelo reconcile pull

Pull the justificante for a work unit from AEAT and reconcile against it. Contacts AEAT (read-only).

Command path: aeat app modelo reconcile pull

Registry key: modelo.reconcile.pull

Parameters

work_unit_id

Option, optional. Work unit id (SHA-256 or unambiguous prefix).

--modelo

Option, optional. Tax form code (e.g. 303, 130, 100)

--year

Option, optional. Tax year of the work unit (e.g. 2026)

--period

Option, optional. Work-unit period token: 0A annual, 1T-4T quarters, 01-12 months; for censo modelos (036) use alta, modificacion, or baja.

--revision

Option, optional. Stable id of the targeted registry modelo revision; run aeat app modelo describe MODELO to see the available revision ids.

--bucket-id

Option, optional. Profile the work unit belongs to

--by

Option, optional. Actor responsible for the action (free-text label up to 64 chars)

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._payloads_modelo_reconcile.ModeloReconcileResult.

aeat app modelo requires

Show the data-inventory checklist for one modelo and period: which casillas must be hand-entered, which are optional, which are populated automatically from the ledger, and which come from the active profile.

Command path: aeat app modelo requires

Registry key: modelo.requires

Parameters

modelo

Option, required. Tax form code (e.g. 303, 130, 100).

--year

Option, required. Filter the modelo catalogue to a single fiscal year

--period

Option, required. Period token used to resolve the modelo revision: 0A annual, 1T-4T quarters, 01-12 months; for censo modelos (036) use alta, modificacion, or baja.

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_payloads.ModeloRequiresResult.

aeat app modelo review-package build

Assemble a shareable, checksum-verifiable review package (fichero-BOE draft, revision provenance, and bundled ledger evidence) for accountant handoff. Local-only; never contacts AEAT.

Command path: aeat app modelo review-package build

Registry key: modelo.review_package.build

Parameters

work_unit_id

Option, optional. Work unit id (SHA-256 or unambiguous prefix).

--modelo

Option, optional. Tax form code (e.g. 303, 130, 100)

--year

Option, optional. Tax year of the work unit (e.g. 2026)

--period

Option, optional. Work-unit period token: 0A annual, 1T-4T quarters, 01-12 months; for censo modelos (036) use alta, modificacion, or baja.

--registry-revision

Option, optional. Stable id of the targeted registry modelo revision; run aeat app modelo describe MODELO to see the available revision ids.

--bucket-id

Option, optional. Profile the work unit belongs to

--select

Option, optional. Revision selector.

--output

Option, optional. Path to write the review package ZIP to.

--revision

Option, optional. Calculation revision id to package; defaults to the work unit’s most recent verified-complete or filed revision.

--by

Option, optional. Operator label recorded into the package descriptor and the underlying export event.

--notes

Option, optional. Free-text note embedded in the package descriptor (e.g. why it was shared).

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_review_package_payloads.ModeloReviewPackageBuildResult.

aeat app modelo review-package counter-sign

Counter-sign an operator-signed review package on behalf of the receiving accountant and write the receipt envelope to –output. Local-only; never contacts AEAT.

Command path: aeat app modelo review-package counter-sign

Registry key: modelo.review_package.counter_sign

Parameters

package

Option, required. Path to the review package ZIP to verify.

signature

Option, required. Path to the signature envelope JSON produced by sign.

--output

Option, required. Path to write the counter-signed receipt JSON to.

--note

Option, optional. Free-text counter-signer note or verdict (e.g. ‘reviewed, no changes’).

--bucket-id

Option, optional. Bucket id the review package operates on (defaults to the active profile).

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_review_package_payloads.ModeloReviewPackageCounterSignResult.

aeat app modelo review-package decrypt

Open a recipient-encrypted review package with this bucket’s X25519 encryption keypair (minted on first use) and write the recovered package ZIP to –output. Local-only; never contacts AEAT.

Command path: aeat app modelo review-package decrypt

Registry key: modelo.review_package.decrypt

Parameters

envelope_path

Option, required. Path to the recipient-encrypted envelope JSON produced by encrypt-for-recipient.

--output

Option, required. Path to write the recovered review package ZIP to.

--bucket-id

Option, optional. Bucket id the review package operates on (defaults to the active profile).

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_review_package_payloads.ModeloReviewPackageDecryptResult.

aeat app modelo review-package encrypt-feedback

Seal a recipient’s review feedback (a note, optionally a counter-signed receipt) back to the originator so only the originator’s private key can open it, and write the envelope to –output. Local-only; never contacts AEAT.

Command path: aeat app modelo review-package encrypt-feedback

Registry key: modelo.review_package.encrypt_feedback

Parameters

--originator

Option, required. Registered originator id whose public key seals the feedback (see aeat config collab recipient add).

--work-unit-id

Option, required. Work unit id the feedback concerns (from the reviewed package descriptor).

--calculation-revision-id

Option, required. Calculation revision id the feedback concerns (from the reviewed package descriptor).

--by

Option, required. The reviewer’s actor label (e.g. the accountant’s display name).

--output

Option, required. Path to write the originator-encrypted feedback envelope JSON to.

--note

Option, optional. Free-text verdict or note (e.g. reviewed, no changes).

--receipt

Option, optional. Optional counter-signed receipt JSON (from counter-sign) to bundle as a formal sign-off.

--bucket-id

Option, optional. Bucket id the review package operates on (defaults to the active profile).

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_review_package_payloads.ModeloReviewPackageEncryptFeedbackResult.

aeat app modelo review-package encrypt-for-recipient

Seal a review package so only a registered recipient’s private key can open it, and write the encrypted envelope to –output. Local-only; never contacts AEAT.

Command path: aeat app modelo review-package encrypt-for-recipient

Registry key: modelo.review_package.encrypt_for_recipient

Parameters

package

Option, required. Path to the review package ZIP to verify.

--recipient

Option, required. Registered recipient id (see aeat config collab recipient add).

--output

Option, required. Path to write the recipient-encrypted envelope JSON to.

--review-only

Option, optional. Mark the sealed package as carrying no filing authority (the recipient may read and verify it, but it is not evidence the underlying revision has been or will be filed).

--valid-for-days

Option, optional. Optional validity window in days; omit for a package that never expires.

--bucket-id

Option, optional. Bucket id the review package operates on (defaults to the active profile).

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_review_package_payloads.ModeloReviewPackageEncryptForRecipientResult.

aeat app modelo review-package import-feedback

Open a feedback envelope with this bucket’s X25519 keypair, verify any counter-signed receipt against your locally-held review package, and attach the verified countersignature to your approval journal. Local-only; never contacts AEAT.

Command path: aeat app modelo review-package import-feedback

Registry key: modelo.review_package.import_feedback

Parameters

envelope_path

Option, required. Path to the originator-encrypted feedback envelope JSON produced by encrypt-feedback.

--package

Option, required. Path to your locally-held original review package ZIP a counter-signed receipt is verified against.

--operator-public-key

Option, required. Your own Ed25519 signing public key the original signature must verify against.

--counter-signer-public-key

Option, optional. The reviewer’s Ed25519 signing public key the counter-signature must verify against (required when the feedback carries a receipt).

--bucket-id

Option, optional. Bucket id the review package operates on (defaults to the active profile).

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_review_package_payloads.ModeloReviewPackageImportFeedbackResult.

aeat app modelo review-package sign

Sign a review package’s checksum manifest with the bucket’s Ed25519 signing keypair (minted on first use) and write the signature envelope to –output. Local-only; never contacts AEAT.

Command path: aeat app modelo review-package sign

Registry key: modelo.review_package.sign

Parameters

package

Option, required. Path to the review package ZIP to verify.

--output

Option, required. Path to write the signature envelope JSON to.

--bucket-id

Option, optional. Bucket id the review package operates on (defaults to the active profile).

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_review_package_payloads.ModeloReviewPackageSignResult.

aeat app modelo review-package verify

Verify a review package’s checksum manifest (integrity only; does not assert who built it). Local-only; never contacts AEAT.

Command path: aeat app modelo review-package verify

Registry key: modelo.review_package.verify

Parameters

package

Option, required. Path to the review package ZIP to verify.

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_review_package_payloads.ModeloReviewPackageVerifyResult.

aeat app modelo review-package verify-receipt

Verify both signature layers of a counter-signed review-package receipt: the operator’s original signature and the accountant’s counter-signature. Local-only; never contacts AEAT.

Command path: aeat app modelo review-package verify-receipt

Registry key: modelo.review_package.verify_receipt

Parameters

package

Option, required. Path to the review package ZIP to verify.

receipt_path

Option, required. Path to the counter-signed receipt JSON produced by counter-sign.

--operator-public-key

Option, required. The operator’s (original signer’s) public key, as 64 lowercase hex characters.

--counter-signer-public-key

Option, required. The accountant’s (counter-signer’s) public key, as 64 lowercase hex characters.

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_review_package_payloads.ModeloReviewPackageVerifyReceiptResult.

aeat app modelo review-package verify-signature

Verify a review package’s Ed25519 signature envelope against a signer’s public key (authenticity check; re-runs the checksum-manifest integrity check first). Local-only; never contacts AEAT.

Command path: aeat app modelo review-package verify-signature

Registry key: modelo.review_package.verify_signature

Parameters

package

Option, required. Path to the review package ZIP to verify.

signature

Option, required. Path to the signature envelope JSON produced by sign.

--public-key

Option, required. Signer’s public key, as 64 lowercase hex characters.

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_review_package_payloads.ModeloReviewPackageVerifySignatureResult.

aeat app modelo support-matrix

Show the registry-wide per-modelo support matrix: calc-grade, completeness manifest, export formats, extractor coverage, declared casilla renames, deprecation decisions, and AEAT-portal cross-references.

Command path: aeat app modelo support-matrix

Registry key: modelo.support_matrix

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_support_matrix_payloads.ModeloSupportMatrixResult.

aeat app modelo verification-report list

List verification reports, optionally filtered to one calculation revision

Command path: aeat app modelo verification-report list

Registry key: modelo.verification_report.list

Parameters

--calculation-revision-id

Option, optional. Stable 64-character SHA-256 id of a calculation revision

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_payloads.VerificationReportListResult.

aeat app modelo verification-report view

Show one verification report by id

Command path: aeat app modelo verification-report view

Registry key: modelo.verification_report.view

Parameters

verification_report_id

Option, required. Stable 64-character SHA-256 identifier of a verification report

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_payloads.VerificationReportShowResult.

aeat app modelo work amend

Build a corrective amendment over an externally-filed return. Requires a filing record with imported AEAT-attested evidence

Command path: aeat app modelo work amend

Registry key: modelo.work.amend

Parameters

--from-filing-record

Option, optional. Stable id of the baseline filing record to amend. Must carry imported external evidence (justificante / CSV register / live capture)

--kind

Option, optional. Legal kind of the amendment (complementaria or sustitutiva)

--reason

Option, optional. Free-text reason for the amendment (operator audit trail)

--by

Option, optional. Actor responsible for the action (free-text label up to 64 chars)

--set

Option, optional. Corrected casilla value with CASILLA_ID=DECIMAL syntax (repeatable; at least one required)

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_payloads.WorkAmendResult.

aeat app modelo work amend-wizard

Walk an already-filed return’s amendment in plain language: which casillas changed, the corrected values, and the amendment kind, then file it

Command path: aeat app modelo work amend-wizard

Registry key: modelo.work.amend_wizard

Parameters

work_unit_id

Option, optional. Stable 64-character SHA-256 identifier of the work unit

--modelo

Option, optional. Tax form code (e.g. 303, 130, 100)

--year

Option, optional. Tax year of the work unit (e.g. 2026)

--period

Option, optional. Work-unit period token: 0A annual, 1T-4T quarters, 01-12 months; for censo modelos (036) use alta, modificacion, or baja.

--revision

Option, optional. Stable id of the targeted registry modelo revision; run aeat app modelo describe MODELO to see the available revision ids.

--bucket-id

Option, optional. Profile the work unit belongs to

--by

Option, optional. Actor responsible for the action (free-text label up to 64 chars)

--output-language

Option, optional. Output language for rendered messages.

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_amend_wizard_payloads.WorkAmendWizardResult.

aeat app modelo work calculate

Persist a new draft calculation revision for the work unit

Command path: aeat app modelo work calculate

Registry key: modelo.work.calculate

Parameters

work_unit_id

Option, optional. Stable 64-character SHA-256 identifier of the work unit

--modelo

Option, optional. Tax form code (e.g. 303, 130, 100)

--year

Option, optional. Tax year of the work unit (e.g. 2026)

--period

Option, optional. Work-unit period token: 0A annual, 1T-4T quarters, 01-12 months; for censo modelos (036) use alta, modificacion, or baja.

--revision

Option, optional. Stable id of the targeted registry modelo revision; run aeat app modelo describe MODELO to see the available revision ids.

--bucket-id

Option, optional. Profile the work unit belongs to

--casilla

Option, optional. Casilla value with CASILLA_ID=DECIMAL syntax (repeatable). CASILLA_ID must be the canonical casilla.id shown by aeat app modelo casillas.

--binding

Option, optional. Binding value with KEY=VALUE syntax (repeatable); run aeat app modelo bindings list –missing to see the bindings the calculation needs.

--borrador

Option, optional. Modelo 100 borrador snapshot id (full or unambiguous prefix). Snapshot binding values are used only for registry bindings marked aeat_prefilled; caller –binding overrides always take precedence.

--by

Option, optional. Actor responsible for the action (free-text label up to 64 chars)

--relation

Option, optional. Registry relation value as KEY=VALUE (repeatable). KEY is a registry relation id, not a binding id; use this for cross-period or cross-modelo relation inputs. Run aeat app modelo bindings list –missing for scoped relation guidance. For Modelo 200 M202 pagos fraccionados, use the mutually exclusive 40.3 casilla 34 and 40.2 casilla 03 relation channels, setting the unused modality to 0 when entering manual values.

--row

Option, optional. Typed detail row for multi-record informational modelos. Format: TYPE FIELD=value [FIELD=value …]. TYPE is ‘miembro’ (M184 attribution member), ‘vinculada’ (M232 related-party operation), ‘operador’ (M349 intracom operator), or ‘contraparte’ (M347 declared counterparty). Repeat to add multiple rows. Quote the whole row argument; quote spaced legal names inside it. M184 example: –row ‘miembro nif=12345678A porcentaje=40 importe=10000’. M349 example: –row ‘operador codigo_pais=DE nif_comunitario=DE123456789 razon_social=”DE Auto GmbH” clave_operacion=E importe=50000’.

--prestacion-inss-exenta

Option, optional. Gross amount of INSS maternity/paternity benefit exempt from IRPF (Art. 7.h LIRPF). Recorded in the revision-specific exempt casilla and subtracted from total computable income. Enter the gross amount received from Social Security for maternity or paternity leave. Do NOT include this in –casilla 0003 (Retribuciones dinerarias).

--meses-trabajo-con-hijo-menor-3

Option, optional. Months worked while the child under 3 was in the family unit (Art. 81 LIRPF maternity deduction). Format: HIJO_ID=MESES. Repeatable per child. HIJO_ID is a free label (e.g. 0, 1, ‘laia’). Computes sum(min(MESES × 100, 1200)) and injects into casilla 0611. Example: –meses-trabajo-con-hijo-menor-3 0=12 –meses-trabajo-con-hijo-menor-3 1=6 → 0611 = 1800.

--rescate-plan-pensiones-capital

Option, optional. Gross lump-sum pension-plan redemption amount (LIRPF transitional provision 12). Use it with –rescate-plan-pensiones-aportaciones-pre-2007 and –rescate-plan-pensiones-aportaciones-totales so the assistant calculates the 40% reduction and injects it into casilla 0011.

--rescate-plan-pensiones-aportaciones-pre-2007

Option, optional. Contributions made to the pension plan up to 31 Dec 2006 (LIRPF transitional provision 12 proration base). Required with –rescate-plan-pensiones-capital and –rescate-plan-pensiones-aportaciones-totales.

--rescate-plan-pensiones-aportaciones-totales

Option, optional. Total pension-plan contributions (denominator for the LIRPF transitional provision 12 proration). Required with –rescate-plan-pensiones-capital and –rescate-plan-pensiones-aportaciones-pre-2007.

--rescate-type

Option, optional. Pension-plan capital rescate type (LIRPF DT 12a): total (whole capital at once) or parcial (staged withdrawals). A classification and provenance signal, not an amount change: the 40% reduction applies to the pre-2007 share of whatever is received. For parcial, each withdrawal shares the same apartado-4 window.

--contingencia-year

Option, optional. Year the pension-plan contingency (retirement, disability, death) occurred. Determines the LIRPF DT 12a apartado-4 time window (Ley 26/2014): if the window is closed for the rescate year, the 40% reduction is withheld.

--rescate-year

Option, optional. Year the rescate benefit is received (defaults to the filing year). Compared against the LIRPF DT 12a apartado-4 window measured from –contingencia-year.

--sal-beneficio-neto

Option, optional. Net profit for the fiscal year of the worker-owned company (SAL/SLL, Law 44/2015 Art. 14). The assistant applies 10% to calculate the mandatory special reserve allocation, capped at the first euro cent above twice share capital. Use it with –sal-reserva-dotada and –sal-capital-social.

--sal-reserva-dotada

Option, optional. Special reserve accumulated in previous fiscal years (Law 44/2015 Art. 14). Used to check whether the reserve has reached the first euro cent above twice share capital. Required with –sal-beneficio-neto and –sal-capital-social.

--sal-capital-social

Option, optional. Share capital of the worker-owned company (Law 44/2015 Art. 14). Basis for the strict threshold: the allocation is zero once accumulated reserve reaches the first euro cent above twice share capital. Required with –sal-beneficio-neto and –sal-reserva-dotada.

--autoconsumo-promotor-base

Option, optional. Tax base for the real-estate developer self-supply (Art. 9.1.c + Art. 79.4 LISIVA): construction or renovation cost of properties converted to the rental estate. The assistant automatically applies 21% (Art. 90 LISIVA) to compute the IVA charge. Applicable to Modelo 303 only.

--output-language, --language

Option, optional. Output language for the response text (es, en, ca, hu).

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_payloads.WorkCalculateResult.

aeat app modelo work compare-taxation

Compare IRPF cuota under joint (conjunta, Art. 82-84 LIRPF) vs. individual filing for an existing Modelo 100 work unit. Runs the registry engine twice — once with declaration_type=2 (conjunta) and once with declaration_type=1 (individual) — over identical profile bindings, and outputs the cuota differential and a recommendation. Ephemeral: no revision is persisted.

Command path: aeat app modelo work compare-taxation

Registry key: modelo.work.compare_taxation

Parameters

work_unit_id

Option, optional. Stable 64-character SHA-256 identifier of the work unit

--modelo

Option, optional. Tax form code (e.g. 303, 130, 100)

--year

Option, optional. Tax year of the work unit (e.g. 2026)

--period

Option, optional. Work-unit period token: 0A annual, 1T-4T quarters, 01-12 months; for censo modelos (036) use alta, modificacion, or baja.

--revision

Option, optional. Stable id of the targeted registry modelo revision; run aeat app modelo describe MODELO to see the available revision ids.

--bucket-id

Option, optional. Profile the work unit belongs to

--output-language

Option, optional. Output language for rendered messages.

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._payloads_modelo_reconcile.WorkCompareTaxationResult.

aeat app modelo work create

Create or reuse a work unit for (modelo, year, period, revision)

Command path: aeat app modelo work create

Registry key: modelo.work.create

Parameters

--modelo

Option, required. Tax form code (e.g. 303, 130, 100)

--year

Option, required. Tax year of the work unit (e.g. 2026)

--period

Option, required. Work-unit period token: 0A annual, 1T-4T quarters, 01-12 months; for censo modelos (036) use alta, modificacion, or baja.

--revision

Option, optional. Stable id of the targeted registry modelo revision; run aeat app modelo describe MODELO to see the available revision ids.

--bucket-id

Option, optional. Profile the work unit belongs to

--name

Option, optional. Optional display name for the work unit

--by

Option, optional. Actor responsible for the action (free-text label up to 64 chars)

--allow-not-applicable

Option, optional. Create the work unit even when the modelo does not apply to the active profile’s taxpayer type.

--quiet

Option, optional. Skip human-readable confirmation output; the –format json envelope, notices, and exit code are unaffected.

--causante-ccaa

Option, optional. CCAA of habitual residence of the deceased (ISD Modelo 650/660) or CCAA where the transferred asset is located (ITPyAJD Modelo 600/620). Determines the competent Hacienda (Ley 22/2009 Art. 32). País Vasco and Navarra are foral regimes; consult the corresponding regional Hacienda.

--output-language, --language

Option, optional. Output language for the response text (es, en, ca, hu).

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_payloads.WorkCreateResult.

aeat app modelo work dependencies

Show cross-period filing-history dependencies and current clean-state blockers for a target filing

Command path: aeat app modelo work dependencies

Registry key: modelo.work.dependencies

Parameters

--year

Option, required. Tax year of the work unit (e.g. 2026)

--modelo

Option, optional. Tax form code (e.g. 303, 130, 100)

--period

Option, optional. Work-unit period token: 0A annual, 1T-4T quarters, 01-12 months; for censo modelos (036) use alta, modificacion, or baja.

--output-language, --language

Option, optional. Output language for the response text (es, en, ca, hu).

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_payloads.WorkDependenciesResult.

aeat app modelo work discard

Mark a work unit as discarded (auditable state transition)

Command path: aeat app modelo work discard

Registry key: modelo.work.discard

Parameters

work_unit_id

Option, optional. Stable 64-character SHA-256 identifier of the work unit

--modelo

Option, optional. Tax form code (e.g. 303, 130, 100)

--year

Option, optional. Tax year of the work unit (e.g. 2026)

--period

Option, optional. Work-unit period token: 0A annual, 1T-4T quarters, 01-12 months; for censo modelos (036) use alta, modificacion, or baja.

--revision

Option, optional. Stable id of the targeted registry modelo revision; run aeat app modelo describe MODELO to see the available revision ids.

--bucket-id

Option, optional. Profile the work unit belongs to

--by

Option, optional. Actor responsible for the action (free-text label up to 64 chars)

--reason

Option, optional. Optional free-text reason for the discard (up to 500 chars)

--yes

Option, optional. Explicitly confirm the discard operation

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_payloads.WorkDiscardResult.

aeat app modelo work file

Mark a verified revision as internally filed. Does NOT submit to AEAT

Command path: aeat app modelo work file

Registry key: modelo.work.file

Parameters

calculation_revision_id

Option, optional. Stable 64-character SHA-256 id of a calculation revision

--modelo

Option, optional. Tax form code (e.g. 303, 130, 100)

--year

Option, optional. Tax year of the work unit (e.g. 2026)

--period

Option, optional. Work-unit period token: 0A annual, 1T-4T quarters, 01-12 months; for censo modelos (036) use alta, modificacion, or baja.

--revision

Option, optional. Stable id of the targeted registry modelo revision; run aeat app modelo describe MODELO to see the available revision ids.

--work-unit-id

Option, optional. Stable 64-character SHA-256 identifier of the work unit

--select

Option, optional. Revision selector.

--bucket-id

Option, optional. Profile the work unit belongs to

--by

Option, optional. Actor responsible for the action (free-text label up to 64 chars)

--notes

Option, optional. Optional notes attached to the filing record

--disposition

Option, optional. Modelo 303 negative-result disposition: compensar (carry the credit forward, default) or devolver (request a refund; only in the year’s last filing period for a non-REDEME taxpayer).

--output-language, --language

Option, optional. Output language for the response text (es, en, ca, hu).

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_payloads.WorkFileResult.

aeat app modelo work history

Show every lifecycle event for one work unit

Command path: aeat app modelo work history

Registry key: modelo.work.history

Parameters

work_unit_id

Option, optional. Work unit id whose lifecycle you want to view

--modelo

Option, optional. Tax form code (e.g. 303, 130, 100)

--year

Option, optional. Tax year of the work unit (e.g. 2026)

--period

Option, optional. Work-unit period token: 0A annual, 1T-4T quarters, 01-12 months; for censo modelos (036) use alta, modificacion, or baja.

--revision

Option, optional. Stable id of the targeted registry modelo revision; run aeat app modelo describe MODELO to see the available revision ids.

--bucket-id

Option, optional. Profile the work unit belongs to

--output-language, --language

Option, optional. Output language for the response text (es, en, ca, hu).

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_aux_payloads.WorkHistoryResult.

aeat app modelo work list

List registered work units, optionally filtered by profile

Command path: aeat app modelo work list

Registry key: modelo.work.list

Parameters

--bucket-id

Option, optional. Profile the work unit belongs to

--include-discarded

Option, optional. Include discarded work units in the listing (excluded by default)

--output-language, --language

Option, optional. Output language for the response text (es, en, ca, hu).

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_payloads.WorkListResult.

aeat app modelo work observations

Show typed per-casilla calculation observations and provenance.

Command path: aeat app modelo work observations

Registry key: modelo.work.observations

Parameters

calculation_revision_id

Option, optional. Stable 64-character SHA-256 id of a calculation revision

--modelo

Option, optional. Tax form code (e.g. 303, 130, 100)

--year

Option, optional. Tax year of the work unit (e.g. 2026)

--period

Option, optional. Work-unit period token: 0A annual, 1T-4T quarters, 01-12 months; for censo modelos (036) use alta, modificacion, or baja.

--registry-revision

Option, optional. Stable id of the targeted registry modelo revision; run aeat app modelo describe MODELO to see the available revision ids.

--work-unit-id

Option, optional. Stable 64-character SHA-256 identifier of the work unit

--select

Option, optional. Revision selector.

--bucket-id

Option, optional. Profile the work unit belongs to

--output-language, --language

Option, optional. Output language for the response text (es, en, ca, hu).

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_work_revision_payloads.WorkObservationsResult.

aeat app modelo work preview-maritime-exemption

Preview the Art. 7.p) / REBECA maritime worker IRPF exemption resolved from the active profile’s maritime_worker facts. Emits typed CasillaObservation rows with legal_refs; surfaces the RETMAR mandatory-filing warning when retmar_registered=True; refuses with the DA 41 inactive code when the tuna-fleet selector resolves.

Command path: aeat app modelo work preview-maritime-exemption

Registry key: modelo.work.preview_maritime_exemption

Parameters

--annual-salary

Option, optional. Gross annual salary in EUR (Decimal). Required when the active profile triggers Art. 7.p) eligibility (vessel_flag=foreign or waters_type=international).

--qualifying-days

Option, optional. Calendar days worked outside Spanish territory in the tax year. Required alongside –annual-salary when Art. 7.p) applies.

--gross-navigation-income

Option, optional. Total gross employment income from navigation in EUR (Decimal). Required when the active profile triggers REBECA eligibility (vessel_registry in REBECA / rebeca_eu_eea / scheduled_canary_route).

--output-language, --language

Option, optional. Output language for the response text (es, en, ca, hu).

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_payloads.WorkPreviewMaritimeExemptionResult.

aeat app modelo work rename

Update the display name of a work unit

Command path: aeat app modelo work rename

Registry key: modelo.work.rename

Parameters

work_unit_id

Option, optional. Stable 64-character SHA-256 identifier of the work unit

--modelo

Option, optional. Tax form code (e.g. 303, 130, 100)

--year

Option, optional. Tax year of the work unit (e.g. 2026)

--period

Option, optional. Work-unit period token: 0A annual, 1T-4T quarters, 01-12 months; for censo modelos (036) use alta, modificacion, or baja.

--revision

Option, optional. Stable id of the targeted registry modelo revision; run aeat app modelo describe MODELO to see the available revision ids.

--bucket-id

Option, optional. Profile the work unit belongs to

--name

Option, optional. Optional display name for the work unit

--by

Option, optional. Actor responsible for the action (free-text label up to 64 chars)

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_payloads.WorkRenameResult.

aeat app modelo work resume

Validate whether you can retry an interrupted workflow run without contacting AEAT. Use –modelo –year –period for the normal path; exact ids remain advanced escape hatches.

Command path: aeat app modelo work resume

Registry key: modelo.work.resume

Parameters

target

Option, optional. Optional 16-character workflow run id or 64-character work-unit id. Prefer –modelo –year –period.

--modelo

Option, optional. Tax form code (e.g. 303, 130, 100)

--year

Option, optional. Tax year of the work unit (e.g. 2026)

--period

Option, optional. Work-unit period token: 0A annual, 1T-4T quarters, 01-12 months; for censo modelos (036) use alta, modificacion, or baja.

--revision

Option, optional. Stable id of the targeted registry modelo revision; run aeat app modelo describe MODELO to see the available revision ids.

--select

Option, optional. Revision selector.

--work-unit-id

Option, optional. Stable 64-character SHA-256 identifier of the work unit

--calculation-revision-id

Option, optional. Stable 64-character SHA-256 id of a calculation revision

--bucket-id

Option, optional. Profile the work unit belongs to

--output-language, --language

Option, optional. Output language for the response text (es, en, ca, hu).

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_payloads.WorkResumeResult.

aeat app modelo work revision

Show one stored calculation revision’s persisted casilla values (without recomputing)

Command path: aeat app modelo work revision

Registry key: modelo.work.revision

Parameters

calculation_revision_id

Option, optional. Stable 64-character SHA-256 id of a calculation revision

--modelo

Option, optional. Tax form code (e.g. 303, 130, 100)

--year

Option, optional. Tax year of the work unit (e.g. 2026)

--period

Option, optional. Work-unit period token: 0A annual, 1T-4T quarters, 01-12 months; for censo modelos (036) use alta, modificacion, or baja.

--registry-revision

Option, optional. Stable id of the targeted registry modelo revision; run aeat app modelo describe MODELO to see the available revision ids.

--work-unit-id

Option, optional. Stable 64-character SHA-256 identifier of the work unit

--select

Option, optional. Revision selector.

--bucket-id

Option, optional. Profile the work unit belongs to

--verbose

Option, optional. Expose the full per-casilla formula trace (op, formula_id, operand refs and values).

--output-language, --language

Option, optional. Output language for the response text (es, en, ca, hu).

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_work_revision_payloads.WorkRevisionResult.

aeat app modelo work revisions

List calculation revisions, optionally filtered to one work unit

Command path: aeat app modelo work revisions

Registry key: modelo.work.revisions

Parameters

work_unit_id

Option, optional. Stable 64-character SHA-256 identifier of the work unit

--modelo

Option, optional. Tax form code (e.g. 303, 130, 100)

--year

Option, optional. Tax year of the work unit (e.g. 2026)

--period

Option, optional. Work-unit period token: 0A annual, 1T-4T quarters, 01-12 months; for censo modelos (036) use alta, modificacion, or baja.

--revision

Option, optional. Stable id of the targeted registry modelo revision; run aeat app modelo describe MODELO to see the available revision ids.

--bucket-id

Option, optional. Profile the work unit belongs to

--output-language, --language

Option, optional. Output language for the response text (es, en, ca, hu).

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_payloads.WorkRevisionsResult.

aeat app modelo work runs

List persisted workflow runs with their run ids, newest first. Use a run id with aeat app modelo work resume. Local-only; never contacts AEAT.

Command path: aeat app modelo work runs

Registry key: modelo.work.runs

Parameters

--output-language, --language

Option, optional. Output language for the response text (es, en, ca, hu).

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_aux_payloads.WorkRunsResult.

aeat app modelo work status

Show the metadata of one work unit

Command path: aeat app modelo work status

Registry key: modelo.work.status

Parameters

work_unit_id

Option, optional. Stable 64-character SHA-256 identifier of the work unit

--modelo

Option, optional. Tax form code (e.g. 303, 130, 100)

--year

Option, optional. Tax year of the work unit (e.g. 2026)

--period

Option, optional. Work-unit period token: 0A annual, 1T-4T quarters, 01-12 months; for censo modelos (036) use alta, modificacion, or baja.

--revision

Option, optional. Stable id of the targeted registry modelo revision; run aeat app modelo describe MODELO to see the available revision ids.

--bucket-id

Option, optional. Profile the work unit belongs to

--output-language, --language

Option, optional. Output language for the response text (es, en, ca, hu).

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_payloads.WorkStatusResult.

aeat app modelo work verify

Verify a draft calculation revision against the verified-complete contract

Command path: aeat app modelo work verify

Registry key: modelo.work.verify

Parameters

calculation_revision_id

Option, optional. Stable 64-character SHA-256 id of a calculation revision

--modelo

Option, optional. Tax form code (e.g. 303, 130, 100)

--year

Option, optional. Tax year of the work unit (e.g. 2026)

--period

Option, optional. Work-unit period token: 0A annual, 1T-4T quarters, 01-12 months; for censo modelos (036) use alta, modificacion, or baja.

--revision

Option, optional. Stable id of the targeted registry modelo revision; run aeat app modelo describe MODELO to see the available revision ids.

--work-unit-id

Option, optional. Stable 64-character SHA-256 identifier of the work unit

--select

Option, optional. Draft revision selector (current, latest-draft, or explicit).

--bucket-id

Option, optional. Profile the work unit belongs to

--by

Option, optional. Actor responsible for the action (free-text label up to 64 chars)

--output-language, --language

Option, optional. Output language for the response text (es, en, ca, hu).

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_payloads.WorkVerifyResult.

aeat app modelo work wizard

Walk the work unit’s outstanding manual inputs one at a time, in plain language, then calculate

Command path: aeat app modelo work wizard

Registry key: modelo.work.wizard

Parameters

work_unit_id

Option, optional. Stable 64-character SHA-256 identifier of the work unit

--modelo

Option, optional. Tax form code (e.g. 303, 130, 100)

--year

Option, optional. Tax year of the work unit (e.g. 2026)

--period

Option, optional. Work-unit period token: 0A annual, 1T-4T quarters, 01-12 months; for censo modelos (036) use alta, modificacion, or baja.

--revision

Option, optional. Stable id of the targeted registry modelo revision; run aeat app modelo describe MODELO to see the available revision ids.

--bucket-id

Option, optional. Profile the work unit belongs to

--by

Option, optional. Actor responsible for the action (free-text label up to 64 chars)

--output-language

Option, optional. Output language for rendered messages.

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._modelo_work_wizard_payloads.WorkWizardResult.

aeat app overview agenda

Rank upcoming and past-due obligations around an as-of date. Surfaces a single next_due plus due-today / due-soon / overdue cohorts. Local-only; never contacts AEAT.

Command path: aeat app overview agenda

Registry key: overview.agenda

Parameters

--date

Option, optional. As-of date for the agenda (ISO YYYY-MM-DD); defaults to today.

--horizon

Option, optional. Forward window (days) the due_soon cohort honours.

--allow-incomplete

Option, optional. Render the agenda even when profile data is incomplete.

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._overview_payloads.OverviewAgendaResult.

aeat app overview backlog

List past-due obligations the operator has not yet filed. Sorted oldest first so the most-overdue items triage first. Local-only; never contacts AEAT.

Command path: aeat app overview backlog

Registry key: overview.backlog

Parameters

--from

Option, optional. Inclusive start date (ISO YYYY-MM-DD); defaults to 365 days before today.

--to

Option, optional. Inclusive end date (ISO YYYY-MM-DD); defaults to today.

--allow-incomplete

Option, optional. Render the backlog even when profile data is incomplete.

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._overview_payloads.OverviewBacklogResult.

aeat app overview calendar

Render the deadline calendar for the active profile across the supplied date window. Applies festivos and business-day shifts. Local-only; never contacts AEAT.

Command path: aeat app overview calendar

Registry key: overview.calendar

Parameters

--from

Option, required. Inclusive start date for the calendar window (ISO YYYY-MM-DD).

--to

Option, required. Inclusive end date for the calendar window (ISO YYYY-MM-DD).

--allow-incomplete

Option, optional. Render the calendar even when profile data is incomplete.

--show-suppressed

Option, optional. Include filtered (non-applicable) obligations in the output with their applicability verdict and reason.

--all-profiles

Option, optional. Render the calendar for every registered profile instead of the active one. Each block is prefixed with a profile header line.

--output-language, --language

Option, optional. Output language for the response text (es, en, ca, hu).

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._overview_payloads.OverviewCalendarResult.

aeat app overview explain

Decompose a modelo’s applicability against the active profile. Surfaces the binary applicable flag, the registry-backed rationale text, and the profile facts the decision depends on. Local-only; never contacts AEAT.

Command path: aeat app overview explain

Registry key: overview.explain

Parameters

modelo

Option, required. AEAT modelo identifier (e.g. 303, 130, 100).

--year

Option, optional. Fiscal year for the applicability evaluation; defaults to the current year.

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._overview_payloads.OverviewExplainResult.

aeat app overview pipeline

Show cross-domain pipeline health for one filing period in one table: ledger classification/review state, modelo readiness (calculated / verified / filed / blocked) for every work unit in the period, and outstanding verification findings. Read-only; safe to run repeatedly; never contacts AEAT.

Command path: aeat app overview pipeline

Registry key: overview.pipeline

Parameters

--year

Option, required. Filing year (e.g. 2026).

--period

Option, required. Filing period as an AEAT token: 1T-4T (quarters), 0A (annual), 01-12 (months). Combine with –year to choose the year.

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._overview_payloads.OverviewPipelineResult.

aeat app overview prepare

Walk through the data-preparation steps for one modelo/period in order: import transactions, classify them, attach purchase-invoice evidence, register business invoices, resolve ledger readiness gaps, then start or resume the modelo work unit. Shows each step’s current progress and the exact next command to run. Read-only; safe to run repeatedly; never contacts AEAT.

Command path: aeat app overview prepare

Registry key: overview.prepare

Parameters

--modelo

Option, required. AEAT modelo identifier to prepare data for (e.g. 130, 303, 100).

--year

Option, required. Filing year (e.g. 2026).

--period

Option, required. Filing period as an AEAT token: 1T-4T (quarters), 0A (annual), 01-12 (months). Combine with –year to choose the year.

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._overview_payloads.OverviewPrepareResult.

aeat app overview status

Show profile, ledger, and modelo readiness

Command path: aeat app overview status

Registry key: overview.status

Parameters

--period

Option, optional. Filing period as an AEAT token: 1T-4T (quarters), 0A (annual), 01-12 (months). Combine with –year to choose the year.

--year

Option, optional. Filing year for –period (e.g. 2024).

--verbose

Option, optional. Show details and next action when available

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._overview_payloads.OverviewStatusResult.

aeat app registry audit-oracles

Surface live-parity oracle binding mismatches at startup

Command path: aeat app registry audit-oracles

Registry key: registry.audit_oracles

Parameters

--registry-root

Option, optional. Path to the registry root directory

--environment

Option, optional. Live parity catalogue environment to audit against (production, test_environment, or both)

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._registry_payloads.RegistryAuditOraclesResult.

aeat app registry citations list

List the legal authorities codified in the legal corpus

Command path: aeat app registry citations list

Registry key: registry.citations.list

Parameters

--tag

Option, optional. Filter by tax-domain tag (e.g. ‘irpf’, ‘iva’)

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._registry_corpus_payloads.CitationListResult.

aeat app registry citations verify

Verify the legal-norm corpus integrity

Command path: aeat app registry citations verify

Registry key: registry.citations.verify

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._registry_corpus_payloads.CitationVerifyResult.

aeat app registry citations view

Show one legal authority and, optionally, one of its articles

Command path: aeat app registry citations view

Registry key: registry.citations.view

Parameters

legal_id

Option, required. Stable legal authority id (e.g. ley-37-1992)

--articulo

Option, optional. Specific article to show (e.g. 91.Uno.2.1º)

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._registry_corpus_payloads.CitationShowResult.

aeat app registry diff-revisions

Diff the registry revisions of one modelo across two filing years

Command path: aeat app registry diff-revisions

Registry key: registry.diff_revisions

Parameters

modelo

Option, required. Modelo identifier to diff

--from-year

Option, required. Earlier filing year whose covering revision is the diff baseline

--to-year

Option, required. Later filing year whose covering revision is compared against the baseline

--registry-root

Option, optional. Path to the registry root directory

--source-root

Option, optional. Path to the source directory to verify

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._registry_diff_payloads.RegistryDiffRevisionsResult.

aeat app registry inspect

Inspect registry status and references

Command path: aeat app registry inspect

Registry key: registry.inspect

Parameters

--registry-root

Option, optional. Path to the registry root directory

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._registry_payloads.RegistryInspectResult.

aeat app registry manuals list

List manual parts available locally

Command path: aeat app registry manuals list

Registry key: registry.manuals.list

Parameters

--manual

Option, optional. Manual identifier (renta, iva, sociedades)

--year

Option, optional. Tax year of the manual (e.g. 2024)

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._registry_corpus_payloads.ManualListResult.

aeat app registry manuals rules

List the rules codified in a manual

Command path: aeat app registry manuals rules

Registry key: registry.manuals.rules

Parameters

--manual

Option, required. Manual identifier (renta, iva, sociedades)

--year

Option, required. Tax year of the manual (e.g. 2024)

--part

Option, optional. Manual volume (single, part1, part2-deducciones-autonomicas, part3)

--kind

Option, optional. Filter by manual rule kind

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._registry_corpus_payloads.ManualRulesListResult.

aeat app registry manuals verify

Verify the manual integrity against its contract

Command path: aeat app registry manuals verify

Registry key: registry.manuals.verify

Parameters

--manual

Option, required. Manual identifier (renta, iva, sociedades)

--year

Option, required. Tax year of the manual (e.g. 2024)

--part

Option, optional. Manual volume (single, part1, part2-deducciones-autonomicas, part3)

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._registry_corpus_payloads.ManualVerifyResult.

aeat app registry manuals view

Show a manual structure and, optionally, one section

Command path: aeat app registry manuals view

Registry key: registry.manuals.view

Parameters

--manual

Option, required. Manual identifier (renta, iva, sociedades)

--year

Option, required. Tax year of the manual (e.g. 2024)

--part

Option, optional. Manual volume (single, part1, part2-deducciones-autonomicas, part3)

--section

Option, optional. Optional section identifier to show

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._registry_corpus_payloads.ManualShowResult.

aeat app registry parity replay

Replay an archived parity tape against the current registry runtime

Command path: aeat app registry parity replay

Registry key: registry.parity.replay

Parameters

--tape

Option, required. Path to a stored parity tape JSON file

--registry-root

Option, optional. Path to the registry root directory

--source-root

Option, optional. Path to the source directory to verify

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._registry_payloads.RegistryParityReplayResult.

aeat app registry parity run

Run a stored parity scenario and archive the resulting parity tape

Command path: aeat app registry parity run

Registry key: registry.parity.run

Parameters

--scenario

Option, required. Path to a parity scenario JSON file

--registry-root

Option, optional. Path to the registry root directory

--source-root

Option, optional. Path to the source directory to verify

--store-root

Option, optional. Root directory used to store generated parity tapes

--output

Option, optional. Destination JSON file for the generated parity tape

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._registry_payloads.RegistryParityRunResult.

aeat app registry verify

Verify the integrity of the local registry

Command path: aeat app registry verify

Registry key: registry.verify

Parameters

--registry-root

Option, optional. Path to the registry root directory

--source-root

Option, optional. Path to the source directory to verify

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._registry_payloads.RegistryVerifyResult.

aeat app registry verify-filed-state

Compare local registry calculation output against captured filed AEAT state

Command path: aeat app registry verify-filed-state

Registry key: registry.verify_filed_state

Parameters

--observation

Option, required. Encrypted filed-declaration observation manifest to verify

--source-observation

Option, optional. Encrypted source observation manifest required by previous-filing bindings or relations

--registry-root

Option, optional. Path to the registry root directory

--source-root

Option, optional. Path to the source directory to verify

--casilla

Option, optional. Casilla id to compare; repeat to override the default computed casillas

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._registry_payloads.RegistryVerifyFiledStateResult.

aeat app registry workbooks verify

Verify the integrity of the generated workbooks

Command path: aeat app registry workbooks verify

Registry key: registry.workbooks.verify

Parameters

--root

Option, optional. Root directory containing the workbooks definitions

--limit

Option, optional. Limit of workbooks to compile

--per-file-timeout

Option, optional. Maximum timeout (in seconds) for the compilation

--output

Option, optional. Output directory for the compiled workbooks

--resume-from

Option, optional. Resume workbooks compilation from the last point

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._registry_payloads.RegistryWorkbooksVerifyResult.

aeat app review queue

List items waiting for operator review

Command path: aeat app review queue

Registry key: review.queue

Parameters

--kind

Option, optional. Restrict the queue to one item kind

--source-kind

Option, optional. Restrict the queue to one source kind

--state

Option, optional. Restrict the queue to one review state

--modelo

Option, optional. Restrict the queue to one modelo

--confidence-below

Option, optional. Restrict the queue to classified transactions whose classification confidence is strictly below this threshold (a value between 0 and 1). Lowest-confidence rows surface first so they can be triaged.

--explain

Option, optional. Include the legal_refs that ground each finding in the text output. The JSON payload always carries them.

--output-language, --language

Option, optional. Output language for the response text (es, en, ca, hu).

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._review_payloads.ReviewQueueResult.

aeat app review view

Show review details for a single item

Command path: aeat app review view

Registry key: review.view

Parameters

item_id

Option, required. Item id from the review queue

--explain

Option, optional. Include the legal_refs that ground this finding in the text output. The JSON payload always carries them.

--output-language, --language

Option, optional. Output language for the response text (es, en, ca, hu).

Output schema

This command emits a SchemaEnvelope whose result field is validated against aeat.entrypoints.cli._review_payloads.ReviewViewResult.