Classifica els moviments¶
Aquesta pàgina tracta la classificació dels moviments del ledger: decidir si una fila és de negoci, personal o mixta, afegir la categoria i els camps fiscals que necessita un càlcul, registrar les proporcions d’ús mixt, la classificació per lots i per regles, i la cua de revisió que llista tot allò que encara espera una decisió. Utilitza-la després que els moviments siguin al ledger del perfil actiu: les files importades tenen dates i imports, però encara no diuen com les ha de tractar el càlcul fiscal.
Classificar un moviment només canvia el registre del teu ordinador. No envia res a l’Agència Tributària d’Espanya (AEAT).
Abans de començar¶
Necessita:
Un perfil de contribuent actiu. Cada ordre següent treballa sobre el perfil actiu; si no n’hi ha cap, l’ordre es nega. Consulta Configura el teu perfil de contribuent.
Una contrasenya de clau mestra. L’eina te la demana el primer cop que obre el teu emmagatzematge xifrat en una sessió.
Un ledger amb moviments. Consulta Importa i gestiona els moviments per importar un extracte bancari o afegir files a mà.
L’ajuda i el text d’error de la CLI es mostren en castellà, encara que aquesta guia sigui en català. Quan un pas et remeti a --help, espera noms d’opcions en castellà.
Revisa primer la fila¶
Troba l’id del moviment i, tot seguit, inspecciona la fila abans de classificar-la. La seqüència importa el trimestre estàndard i inspecciona la despesa sense classificar:
aeat app ledger list --filter classification=NOT_YET_PROCESSEDaeat app ledger list --filter classification=NOT_YET_PROCESSEDACCOUNTING LEDGER TRANSACTIONS id full_id date amount description IVA category review_status 71a5db2b 71a5db2bb891df295bee72544c40497d24d5c8cfc7edab745ce7339dcf8d6518 2026-02-10 1210 Cobro factura F-2026-001 servicios de consultoria pending e3eeac5e e3eeac5e306efe4e82a72896e92e7c236245ec85348834b2c10b120c67fe087d 2026-02-11 605 Compra de material de oficina proveedor local pending
aeat --format json app ledger view e3eeac5eaeat --format json app ledger view e3eeac5e{ "active_profile": "docs-sequence-sandbox", "command": "ledger.view", "notices": [], "result": { "bucket_id": "<bucket-id>", "review_status": "pending", "transaction": { "amount": "605", "attachment_ids": [], "booked_date": "2026-02-11", "business_classification": "NOT_YET_PROCESSED", "business_pct": null, "category_id": null, "classification_confidence": null, "classification_reason": "", "classified_at": null, "classified_by": "auto", "counterparty": "", "counterparty_country": null, "counterparty_identification_state": null, "created_at": "2026-04-01T09:00:00+00:00", "currency": "EUR", "date": "2026-02-11", "description": "Compra de material de oficina proveedor local", "direction": "OUTGOING", "fx_rate": null, "invoice_id": null, "irpf_category": null, "iva_amount": null, "iva_category": null, "iva_rate": null, "lifecycle_state": "ACTIVE", "m210_income_classification": null, "modified_at": "2026-04-01T09:00:00+00:00", "notes": "", "prorrata_reference": null, "purchase_invoice_evidence_id": null, "source_jurisdiction": null, "taxable_base": null, "transaction_id": "e3eeac5e306efe4e82a72896e92e7c236245ec85348834b2c10b120c67fe087d", "usage_ratio_id": null, "value_date": "2026-02-11", "value_in_eur": null }, "transaction_id": "e3eeac5e306efe4e82a72896e92e7c236245ec85348834b2c10b120c67fe087d" }, "schema_version": "2", "status": "success" }
Confirm the row is still unclassified before you decide.
Utilitza la descripció, l’import, la contrapart, el document font i el context de negoci per decidir com classificar la fila.
Tria la classificació¶
Utilitza un dels estats de classificació del ledger que accepta l’ajuda de l’ordre:
BUSINESSper a un moviment totalment relacionat amb el negociPERSONALper a un moviment personal que no ha d’alimentar els càlculs fiscalsMIXEDper a un moviment que és en part de negoci i en part personal
Utilitza només aquests tres valors. Cadrumo estableix els altres automàticament.
Tria una categoria per a les despeses¶
Llista els ids de categoria admesos i, tot seguit, classifica una fila de despesa amb un. Les files de despesa normalment necessiten un id de categoria abans que un model pugui calcular a partir d’elles:
aeat app ledger categoriesaeat app ledger categoriesRECOGNISED LEDGER SPENDING CATEGORIES category-id (pass this exact value) family cuotas_colegiales social_security cuotas_autonomos_ss social_security mutualidad_alternativa social_security arrendamiento_local premises ibi_local_afecto premises suministros_local_afecto premises suministros_home_office_luz home_office_suministros suministros_home_office_agua home_office_suministros suministros_home_office_gas home_office_suministros suministros_home_office_internet home_office_suministros telefonia_fija home_office_suministros amortizacion_vivienda_afecto home_office_ownership ibi_vivienda_afecto home_office_ownership comunidad_vivienda_afecto home_office_ownership arrendamiento_vivienda_afecto home_office_ownership telefonia_movil telecoms material_oficina office software_suscripcion office hardware_amortizable office mobiliario_amortizable office reparaciones_conservacion office publicidad_marketing office formacion_profesional office vehiculo_combustible vehicle vehiculo_mantenimiento vehicle vehiculo_seguro vehicle vehiculo_peaje vehicle vehiculo_parking vehicle manutencion_dietas_nacional meals manutencion_dietas_extranjero meals asesoria_fiscal professional_services asesoria_juridica professional_services asesoria_contable professional_services viajes_transporte travel viajes_alojamiento travel seguros_responsabilidad_civil insurance seguros_salud_autonomo insurance gastos_bancarios financial gastos_financieros financial suministros_cliente_directos direct_costs subcontratacion direct_costs tributos_fiscalmente_deducibles taxes Pass the bare id, e.g. --category-id cuotas_colegiales (not a family-prefixed or compound key). Deductible expenses only. Income (INCOMING) transactions are classified by direction and need no --category-id; `ledger check` and `ledger preflight` do not flag income as missing_category. IRPF CATEGORIES FOR --irpf-category irpf-category (pass this exact value) use actividad_economica professional activity withholding (received or paid net) arrendamiento_local net-paid rent expense withholding arrendamiento_vivienda_afecto net-paid rent expense withholding trabajo employment income (not for net-paid invoices) Net-paid rent example: --category-id arrendamiento_local --irpf-category arrendamiento_local. Net-paid professional service: --category-id asesoria_fiscal --irpf-category actividad_economica.
aeat app ledger classify e3eeac5e --classification BUSINESS --category-id \
material_oficinaaeat app ledger classify e3eeac5e --classification BUSINESS --category-id `
material_oficinaID e3eeac5e306efe4e82a72896e92e7c236245ec85348834b2c10b120c67fe087d Date 2026-02-11 Amount 605 Description Compra de material de oficina proveedor local Review status reviewed
aeat --format json app ledger view e3eeac5eaeat --format json app ledger view e3eeac5e{ "active_profile": "docs-sequence-sandbox", "command": "ledger.view", "notices": [], "result": { "bucket_id": "<bucket-id>", "review_status": "reviewed", "transaction": { "amount": "605", "attachment_ids": [], "booked_date": "2026-02-11", "business_classification": "BUSINESS", "business_pct": null, "category_id": "material_oficina", "classification_confidence": "1", "classification_reason": "aeat app ledger classify", "classified_at": "2026-04-01T09:00:00+00:00", "classified_by": "manual", "counterparty": "", "counterparty_country": null, "counterparty_identification_state": null, "created_at": "2026-04-01T09:00:00+00:00", "currency": "EUR", "date": "2026-02-11", "description": "Compra de material de oficina proveedor local", "direction": "OUTGOING", "fx_rate": null, "invoice_id": null, "irpf_category": null, "iva_amount": null, "iva_category": null, "iva_rate": null, "lifecycle_state": "ACTIVE", "m210_income_classification": null, "modified_at": "2026-04-01T09:00:00+00:00", "notes": "", "prorrata_reference": null, "purchase_invoice_evidence_id": null, "source_jurisdiction": null, "taxable_base": null, "transaction_id": "e3eeac5e306efe4e82a72896e92e7c236245ec85348834b2c10b120c67fe087d", "usage_ratio_id": null, "value_date": "2026-02-11", "value_in_eur": null }, "transaction_id": "e3eeac5e306efe4e82a72896e92e7c236245ec85348834b2c10b120c67fe087d" }, "schema_version": "2", "status": "success" }
Confirm the expense is classified as business with a category.
Per als diners que has rebut (ingressos), Cadrumo normalment no necessita cap categoria. Calcula els totals d’ingressos automàticament.
Utilitza OUTGOING més una categoria de despesa per a compres a proveïdors i altres despeses deduïbles. Utilitza INCOMING per a factures emeses, pagaments de clients o serveis prestats a clients. Si també fas un seguiment dels registres de factures per separat, utilitzes aeat app ledger invoice amb --kind received per a factures de proveïdor i --kind issued per a factures de client.
Afegeix camps fiscals quan calgui¶
Si una fila necessita camps fiscals regulats, afegeixes només els camps que s’apliquin. La seqüència classifica la despesa amb la seva base imposable, tipus i import d’IVA:
aeat app ledger classify e3eeac5e --classification BUSINESS --category-id \
material_oficina --taxable-base 500.00 --iva-rate 0.21 --iva-amount 105.00aeat app ledger classify e3eeac5e --classification BUSINESS --category-id `
material_oficina --taxable-base 500.00 --iva-rate 0.21 --iva-amount 105.00ID e3eeac5e306efe4e82a72896e92e7c236245ec85348834b2c10b120c67fe087d Date 2026-02-11 Amount 605 Description Compra de material de oficina proveedor local Review status reviewed
aeat --format json app ledger view e3eeac5eaeat --format json app ledger view e3eeac5e{ "active_profile": "docs-sequence-sandbox", "command": "ledger.view", "notices": [], "result": { "bucket_id": "<bucket-id>", "review_status": "reviewed", "transaction": { "amount": "605", "attachment_ids": [], "booked_date": "2026-02-11", "business_classification": "BUSINESS", "business_pct": null, "category_id": "material_oficina", "classification_confidence": "1", "classification_reason": "aeat app ledger classify", "classified_at": "2026-04-01T09:00:00+00:00", "classified_by": "manual", "counterparty": "", "counterparty_country": null, "counterparty_identification_state": null, "created_at": "2026-04-01T09:00:00+00:00", "currency": "EUR", "date": "2026-02-11", "description": "Compra de material de oficina proveedor local", "direction": "OUTGOING", "fx_rate": null, "invoice_id": null, "irpf_category": null, "iva_amount": "105", "iva_category": null, "iva_rate": "0.21", "lifecycle_state": "ACTIVE", "m210_income_classification": null, "modified_at": "2026-04-01T09:00:00+00:00", "notes": "", "prorrata_reference": null, "purchase_invoice_evidence_id": null, "source_jurisdiction": null, "taxable_base": "500", "transaction_id": "e3eeac5e306efe4e82a72896e92e7c236245ec85348834b2c10b120c67fe087d", "usage_ratio_id": null, "value_date": "2026-02-11", "value_in_eur": null }, "transaction_id": "e3eeac5e306efe4e82a72896e92e7c236245ec85348834b2c10b120c67fe087d" }, "schema_version": "2", "status": "success" }
Confirm the taxable base and IVA fields were recorded on the row.
Els camps habituals inclouen base imposable, tipus d’IVA, import d’IVA, categoria d’IVA, categoria d’IRPF i estat membre de la UE de la contrapart per als casos d’IVA intracomunitari. Utilitza aeat app ledger classify --help per veure la llista exacta d’opcions actuals.
Per a l’IVA interior ordinari, utilitza la base imposable, el tipus i l’import que mostra la factura. Per exemple, una compra de 121,00 EUR amb un 21 per cent d’IVA sol tenir --taxable-base 100.00 --iva-rate 0.21 --iva-amount 21.00.
La majoria de compres al tipus general del 21% no necessiten cap --iva-category. Afegeix-la només per a casos especials: tipus reduït (aliments, llibres), operacions exemptes, compres a proveïdors de la UE o recargo de equivalencia. Executa aeat app ledger classify --help per veure els valors admesos.
Classifica els moviments d’ús mixt¶
Un moviment d’ús mixt és aquell que utilitzes en part per al negoci i en part personalment, com ara una factura de telèfon, un cost de cotxe o una despesa de despatx a casa. Registra la proporció de negoci perquè el càlcul comptabilitzi només la part deduïble. La proporció pot venir de tres llocs, en ordre creixent de fonamentació: un percentatge en un sol registre, una proporció per defecte desada per a tota una categoria, o una proporció calculada a partir de les teves dades registrades (per exemple, la superfície de despatx a casa registrada respecte a la mida de l’habitatge). Tots tres conserven només la part d’un cost que pertany realment al negoci.
Una fila MIXED necessita una referència de proporcionalitat abans que un model pugui calcular a partir d’ella. La referència és una proporció de categoria desada aplicada mitjançant --usage-ratio-id. Un simple --business-pct registra un percentatge però no deixa la fila a punt; el preflight continua informant de missing_proportionality_reference fins que la fila porti --usage-ratio-id.
Per a les ordres d’una sola fila, --usage-ratio-id viu al verb allocate (i a add), no a classify. El seu valor és l’id de la categoria de despesa, i la mateixa categoria ha de tenir ja una proporció desada. La seqüència comprova les categories elegibles, desa una proporció i assigna la part en una fila:
aeat app ledger ratios eligibleaeat app ledger ratios eligiblebucket <profile-id> count 15 amortizacion_vivienda_afecto usage_ratio_home_area default=- override=. arrendamiento_vivienda_afecto usage_ratio_home_area default=- override=. comunidad_vivienda_afecto usage_ratio_home_area default=- override=. ibi_vivienda_afecto usage_ratio_home_area default=- override=. suministros_home_office_agua usage_ratio_home_area default=- override=. suministros_home_office_gas usage_ratio_home_area default=- override=. suministros_home_office_internet usage_ratio_home_area default=- override=. suministros_home_office_luz usage_ratio_home_area default=- override=. telefonia_fija usage_ratio_home_area default=- override=. telefonia_movil usage_ratio_personal default=- override=. vehiculo_combustible usage_ratio_personal default=- override=. vehiculo_mantenimiento usage_ratio_personal default=- override=. vehiculo_parking usage_ratio_personal default=- override=. vehiculo_peaje usage_ratio_personal default=- override=. vehiculo_seguro usage_ratio_personal default=- override=.
aeat app ledger ratios set telefonia_movil 0.5aeat app ledger ratios set telefonia_movil 0.5bucket <profile-id> telefonia_movil 0.5
aeat app ledger allocate {transaction_id} --business-pct 0.5 --usage-ratio-id \
telefonia_movil --category-id telefonia_movilaeat app ledger allocate {transaction_id} --business-pct 0.5 --usage-ratio-id `
telefonia_movil --category-id telefonia_movilID 80f1bbebb9176b41674513c8a1c593f2ba8e6304d6fa0a9bfe104dd2f081a73e Date 2026-03-15 Amount 60.5 Description Factura movil Review status reviewed
aeat --format json app ledger view {transaction_id}aeat --format json app ledger view {transaction_id}{ "active_profile": "docs-sequence-sandbox", "command": "ledger.view", "notices": [], "result": { "bucket_id": "<bucket-id>", "review_status": "reviewed", "transaction": { "amount": "60.5", "attachment_ids": [], "booked_date": "2026-03-15", "business_classification": "MIXED", "business_pct": "0.5", "category_id": "telefonia_movil", "classification_confidence": "1", "classification_reason": "aeat app ledger allocate", "classified_at": "2026-04-01T09:00:00+00:00", "classified_by": "manual", "counterparty": "", "counterparty_country": null, "counterparty_identification_state": null, "created_at": "2026-04-01T09:00:00+00:00", "currency": "EUR", "date": "2026-03-15", "description": "Factura movil", "direction": "OUTGOING", "fx_rate": null, "invoice_id": null, "irpf_category": null, "iva_amount": null, "iva_category": null, "iva_rate": null, "lifecycle_state": "ACTIVE", "m210_income_classification": null, "modified_at": "2026-04-01T09:00:00+00:00", "notes": "", "prorrata_reference": null, "purchase_invoice_evidence_id": null, "source_jurisdiction": "ES", "taxable_base": null, "transaction_id": "80f1bbebb9176b41674513c8a1c593f2ba8e6304d6fa0a9bfe104dd2f081a73e", "usage_ratio_id": "telefonia_movil", "value_date": null, "value_in_eur": null }, "transaction_id": "80f1bbebb9176b41674513c8a1c593f2ba8e6304d6fa0a9bfe104dd2f081a73e" }, "schema_version": "2", "status": "success" }
Confirm the mixed-use row carries the allocated business share.
El --usage-ratio-id d’una fila ha d’anomenar una categoria elegible per a proporció (les que llista ratios eligible, com ara telefonia_movil o una categoria de suministros de despatx a casa), i la mateixa categoria es passa com a --category-id. El valor de --business-pct ha de coincidir amb la proporció desada per a aquella categoria. La classificació segueix la proporció automàticament: una assignació 0.5 esdevé MIXED, una assignació 1 esdevé BUSINESS i una assignació 0 esdevé PERSONAL.
Llista o comprova les proporcions desades en qualsevol moment. La seqüència desa una proporció, llista les proporcions desades i les valida:
aeat app ledger ratios set telefonia_movil 0.5aeat app ledger ratios set telefonia_movil 0.5bucket <profile-id> telefonia_movil 0.5
aeat app ledger ratios listaeat app ledger ratios listbucket <profile-id> count 1 telefonia_movil 0.5
aeat --format json app ledger ratios validateaeat --format json app ledger ratios validate{ "active_profile": "docs-sequence-sandbox", "command": "ledger.ratios.validate", "notices": [], "result": { "bucket_id": "<bucket-id>", "eligible_count": 15, "findings": [], "missing_overrides": [], "overrides_count": 1, "profile_present": true }, "schema_version": "2", "status": "success" }
Confirm the saved ratios validate cleanly.
Elimina una proporció de categoria que ja no vulguis amb aeat app ledger ratios unset <category-id>.
Per a les despeses de despatx a casa, desa una proporció per a la categoria de despatx a casa corresponent i assigna-la com s’ha indicat més amunt. Les proporcions de despatx a casa segueixen el flux de treball manual o de proporció desada; mantén primer correctes les dades censals del teu perfil: consulta Mantén les dades censals del Model 036 al teu perfil.
Classifica moltes files des d’un CSV¶
Per a la revisió massiva, classify --file llegeix un CSV amb les columnes transaction_id, classification i dades de classificació opcionals com ara category_id, business_pct, usage_ratio_id, columnes de base imposable i IVA, iva_category i irpf_category. Prepara un CSV reduït que contingui només les files que vols canviar, una fila per moviment:
transaction_id,classification,category_id,business_pct,usage_ratio_id
<business-expense-id>,BUSINESS,<category-id>,,
<mixed-expense-id>,MIXED,<category-id>,0.5,<category-id>
<private-row-id>,PERSONAL,,,
La seqüència següent importa el trimestre, llista les files que encara necessiten una decisió, exporta una instantània de revisió per treballar-hi, aplica un CSV preparat i confirma el resultat:
aeat app ledger list --filter period=1T --filter year=2026 --filter \
classification=NOT_YET_PROCESSEDaeat app ledger list --filter period=1T --filter year=2026 --filter `
classification=NOT_YET_PROCESSEDACCOUNTING LEDGER TRANSACTIONS id full_id date amount description IVA category review_status 71a5db2b 71a5db2bb891df295bee72544c40497d24d5c8cfc7edab745ce7339dcf8d6518 2026-02-10 1210 Cobro factura F-2026-001 servicios de consultoria pending e3eeac5e e3eeac5e306efe4e82a72896e92e7c236245ec85348834b2c10b120c67fe087d 2026-02-11 605 Compra de material de oficina proveedor local pending
aeat app ledger export --output ./ledger-2026-q1.csv --year 2026 --period 1Taeat app ledger export --output ./ledger-2026-q1.csv --year 2026 --period 1TBucket <profile-id> Export ID 5f0ddcff2e977990b1b5fd3fc6e107cf9b3cb3b5f7ac82e87d072c77fed11cf4 Rows 2 SHA-256 0becceaa2ef5f6edba6a89f5fee123b09f1a044d477005dd381cecb52f66213d Output ledger-2026-q1.csv
aeat app ledger classify --file fixtures/classifications-2026-1t.csvaeat app ledger classify --file fixtures/classifications-2026-1t.csvbulk classify: 2 rows, 2 applied, 0 skipped, 0 failed
aeat --format json app ledger view e3eeac5eaeat --format json app ledger view e3eeac5e{ "active_profile": "docs-sequence-sandbox", "command": "ledger.view", "notices": [], "result": { "bucket_id": "<bucket-id>", "review_status": "reviewed", "transaction": { "amount": "605", "attachment_ids": [], "booked_date": "2026-02-11", "business_classification": "BUSINESS", "business_pct": null, "category_id": "material_oficina", "classification_confidence": "1", "classification_reason": "aeat app ledger classify --file", "classified_at": "2026-04-01T09:00:00+00:00", "classified_by": "manual", "counterparty": "", "counterparty_country": null, "counterparty_identification_state": null, "created_at": "2026-04-01T09:00:00+00:00", "currency": "EUR", "date": "2026-02-11", "description": "Compra de material de oficina proveedor local", "direction": "OUTGOING", "fx_rate": null, "invoice_id": null, "irpf_category": null, "iva_amount": null, "iva_category": null, "iva_rate": null, "lifecycle_state": "ACTIVE", "m210_income_classification": null, "modified_at": "2026-04-01T09:00:00+00:00", "notes": "", "prorrata_reference": null, "purchase_invoice_evidence_id": null, "source_jurisdiction": null, "taxable_base": null, "transaction_id": "e3eeac5e306efe4e82a72896e92e7c236245ec85348834b2c10b120c67fe087d", "usage_ratio_id": null, "value_date": "2026-02-11", "value_in_eur": null }, "transaction_id": "e3eeac5e306efe4e82a72896e92e7c236245ec85348834b2c10b120c67fe087d" }, "schema_version": "2", "status": "success" }
Confirm the CSV batch classified the quarter's rows.
Utilitza la via del CSV quan la revisió filtrada mostri moltes files que pots classificar amb seguretat a partir de les seves descripcions, contraparts i documents font. Conserva una còpia del fitxer. Et dona un registre de com has classificat aquell període si més endavant se et demana justificar la declaració. Aquesta via no actualitza per lots imports, descripcions, valors d’IVA, notes, adjunts ni l’estat de divisió/fusió; utilitza el flux de treball de moviments per a aquestes edicions a nivell de fila.
Aplica regles desades automàticament¶
Les regles classifiquen automàticament els moviments la descripció dels quals conté una paraula o frase que especifiques. La coincidència ignora les diferències entre majúscules i minúscules. La seqüència afegeix una regla, llista les regles, en previsualitza l’efecte i, tot seguit, l’aplica:
aeat app ledger rule add --description-pattern material --classification BUSINESS \
--category-id material_oficinaaeat app ledger rule add --description-pattern material --classification BUSINESS `
--category-id material_oficinarule_id 16719284a6b5e971... pattern material classification BUSINESS priority 100
aeat app ledger rule listaeat app ledger rule listpriority classification pattern rule_id 100 BUSINESS material 16719284a6b5e971...
aeat app ledger rule apply --dry-runaeat app ledger rule apply --dry-rundry-run: 0 transaction(s) would be classified
aeat --format json app ledger rule applyaeat --format json app ledger rule apply{ "active_profile": "docs-sequence-sandbox", "command": "ledger.rule.apply", "notices": [], "result": { "applied": [], "count": null, "dry_run": null, "matched": 0, "no_match": 0, "rules_evaluated": 1, "skipped_already_classified": 0, "transactions_scanned": 0, "would_match": null }, "schema_version": "2", "status": "success" }
Confirm the stored rule is registered and applies cleanly.
Executa --dry-run primer. Afegeix --reaffirm només si vols que la regla sobreescrigui classificacions que ja has establert a mà.
Utilitza un suggeriment d’un LLM¶
Cadrumo pot utilitzar un model de llenguatge configurat per suggerir com classificar cada moviment. El suggeriment és un punt de partida. L’has de confirmar o corregir. No emplena imports fiscals com ara la base imposable, el tipus d’IVA o la categoria d’IRPF.
Utilitza Classifica els moviments amb un LLM per al flux complet de proveïdor, previsualització, aplicació i sobreescriptura.
Consulta tot allò que encara necessita una decisió¶
La cua de revisió és una única llista de tot l’àmbit del perfil de tot allò que encara vol la teva atenció abans d’una presentació: moviments sense classificació, registres de factures no conciliats o en disputa, i troballes de verificació sobre esborranys de models. Cada fila anomena l’ordre exacta que la resol, de manera que la cua és una llista de tasques que pots recórrer de dalt a baix. La cua és de només lectura; els elements desapareixen quan corregeixes el registre subjacent amb l’ordre que anomena la fila. La seqüència importa el trimestre i, tot seguit, llegeix la cua:
aeat --format json app review queueaeat --format json app review queue{ "active_profile": "docs-sequence-sandbox", "command": "review.queue", "notices": [], "result": { "operation": "review.queue", "rows": [ { "affected_object_id": "71a5db2bb891df295bee72544c40497d24d5c8cfc7edab745ce7339dcf8d6518", "blocking": false, "bucket_id": "<bucket-id>", "canonical_next_command": "aeat app ledger review 71a5db2bb891df295bee72544c40497d24d5c8cfc7edab745ce7339dcf8d6518", "current_owner_surface": "app ledger", "item_id": "71a5db2bb891df295bee72544c40497d24d5c8cfc7edab745ce7339dcf8d6518", "kind": "ledger_transaction", "legal_refs": [], "modelo": null, "period": "2026-02", "reason": "Transaction pending classification", "severity": "normal", "since": "2026-02-10T00:00:00+00:00", "source_kind": "ledger_transaction", "state": "pending", "summary": "Transaction pending classification" }, { "affected_object_id": "e3eeac5e306efe4e82a72896e92e7c236245ec85348834b2c10b120c67fe087d", "blocking": false, "bucket_id": "<bucket-id>", "canonical_next_command": "aeat app ledger review e3eeac5e306efe4e82a72896e92e7c236245ec85348834b2c10b120c67fe087d", "current_owner_surface": "app ledger", "item_id": "e3eeac5e306efe4e82a72896e92e7c236245ec85348834b2c10b120c67fe087d", "kind": "ledger_transaction", "legal_refs": [], "modelo": null, "period": "2026-02", "reason": "Transaction pending classification", "severity": "normal", "since": "2026-02-11T00:00:00+00:00", "source_kind": "ledger_transaction", "state": "pending", "summary": "Transaction pending classification" } ] }, "schema_version": "2", "status": "success" }
Confirm the review queue lists the pending work.
Cada fila mostra l’id de l’element, la seva mena, el registre afectat, el període, una severitat (critical, high, normal o info) i una columna final amb l’ordre a executar tot seguit. Acota la llista per mena, model o estat:
aeat app review queue --kind ledger_transactionaeat app review queue --kind ledger_transactionID Kind Source kind Object Period Severity Next 71a5db2bb891df295bee72544c40497d24d5c8cfc7edab745ce7339dcf8d6518 ledger_transaction ledger_transaction 71a5db2bb891df295bee72544c40497d24d5c8cfc7edab745ce7339dcf8d6518 2026-02 normal aeat app ledger review 71a5db2bb891df295bee72544c40497d24d5c8cfc7edab745ce7339dcf8d6518 e3eeac5e306efe4e82a72896e92e7c236245ec85348834b2c10b120c67fe087d ledger_transaction ledger_transaction e3eeac5e306efe4e82a72896e92e7c236245ec85348834b2c10b120c67fe087d 2026-02 normal aeat app ledger review e3eeac5e306efe4e82a72896e92e7c236245ec85348834b2c10b120c67fe087d
aeat app review queue --kind modelo_finding --modelo 303aeat app review queue --kind modelo_finding --modelo 303ID Kind Source kind Object Period Severity Next No items pending review.
aeat --format json app review queue --state allaeat --format json app review queue --state all{ "active_profile": "docs-sequence-sandbox", "command": "review.queue", "notices": [], "result": { "operation": "review.queue", "rows": [ { "affected_object_id": "71a5db2bb891df295bee72544c40497d24d5c8cfc7edab745ce7339dcf8d6518", "blocking": false, "bucket_id": "<bucket-id>", "canonical_next_command": "aeat app ledger review 71a5db2bb891df295bee72544c40497d24d5c8cfc7edab745ce7339dcf8d6518", "current_owner_surface": "app ledger", "item_id": "71a5db2bb891df295bee72544c40497d24d5c8cfc7edab745ce7339dcf8d6518", "kind": "ledger_transaction", "legal_refs": [], "modelo": null, "period": "2026-02", "reason": "Transaction pending classification", "severity": "normal", "since": "2026-02-10T00:00:00+00:00", "source_kind": "ledger_transaction", "state": "all", "summary": "Transaction pending classification" }, { "affected_object_id": "e3eeac5e306efe4e82a72896e92e7c236245ec85348834b2c10b120c67fe087d", "blocking": false, "bucket_id": "<bucket-id>", "canonical_next_command": "aeat app ledger review e3eeac5e306efe4e82a72896e92e7c236245ec85348834b2c10b120c67fe087d", "current_owner_surface": "app ledger", "item_id": "e3eeac5e306efe4e82a72896e92e7c236245ec85348834b2c10b120c67fe087d", "kind": "ledger_transaction", "legal_refs": [], "modelo": null, "period": "2026-02", "reason": "Transaction pending classification", "severity": "normal", "since": "2026-02-11T00:00:00+00:00", "source_kind": "ledger_transaction", "state": "all", "summary": "Transaction pending classification" } ] }, "schema_version": "2", "status": "success" }
Confirm the queue can be narrowed by kind.
Els tokens --kind admesos són ledger_transaction, purchase_invoice_evidence, payable_invoice, collectible_invoice i modelo_finding. L’estat per defecte és pending. Inspecciona un element complet, inclosa l’ordre següent suggerida, amb aeat app review view <item-id>. Les troballes de models es fonamenten en regles del registre; afegeix --explain per mostrar les referències legals, o utilitza l’indicador global --format json (abans de l’ordre) per obtenir un camp legal_refs a cada fila.
Els elements de moviment desapareixen quan classifiques la fila (aquesta pàgina). Els elements de factura desapareixen quan enllaces o actualitzes la factura: consulta Adjunta factures i rebuts. Les troballes de models desapareixen quan corregeixes els valors reportats i tornes a verificar: consulta Verifica una presentació.
Confirma la preparació¶
Executa el preflight després de la classificació. La seqüència importa i classifica el trimestre i, tot seguit, executa el preflight i llegeix l’estat del ledger:
aeat app ledger preflight --year 2026 --period 1Taeat app ledger preflight --year 2026 --period 1Tbucket <profile-id> period 2026 1T checked 2 issues 0 ready true
aeat --format json app ledger status --year 2026 --period 1Taeat --format json app ledger status --year 2026 --period 1T{ "active_profile": "docs-sequence-sandbox", "command": "ledger.status", "notices": [], "result": { "active_count": 2, "archived_count": 0, "bucket_id": "<bucket-id>", "business_expense_total": "605", "business_income_total": "1210", "business_net_total": "605", "checked_transaction_count": 2, "pending_review_count": 0, "period": { "code": "1T", "filing_year": 2026 }, "readiness_issue_count": 0, "readiness_issues": [], "ready": true, "reviewed_count": 2, "skipped_count": 0, "split_count": 0, "stale_filings": [], "stashed_count": 0, "total_count": 2, "unconverted_currency_count": 0 }, "schema_version": "2", "status": "success" }
Confirm preflight reports the classified quarter's readiness.
El preflight anomena les files que encara necessiten categoria, base imposable, import d’IVA, tipus d’IVA, moneda o referència de proporcionalitat.
Corregeix una classificació¶
Torna a executar classify sobre el mateix id de moviment. Una decisió manual substitueix la classificació anterior. La seqüència classifica una fila com a negoci i, tot seguit, la corregeix a personal:
aeat app ledger classify e3eeac5e --classification PERSONALaeat app ledger classify e3eeac5e --classification PERSONALID e3eeac5e306efe4e82a72896e92e7c236245ec85348834b2c10b120c67fe087d Date 2026-02-11 Amount 605 Description Compra de material de oficina proveedor local Review status reviewed
aeat --format json app ledger view e3eeac5eaeat --format json app ledger view e3eeac5e{ "active_profile": "docs-sequence-sandbox", "command": "ledger.view", "notices": [], "result": { "bucket_id": "<bucket-id>", "review_status": "reviewed", "transaction": { "amount": "605", "attachment_ids": [], "booked_date": "2026-02-11", "business_classification": "PERSONAL", "business_pct": null, "category_id": null, "classification_confidence": "1", "classification_reason": "aeat app ledger classify", "classified_at": "2026-04-01T09:00:00+00:00", "classified_by": "manual", "counterparty": "", "counterparty_country": null, "counterparty_identification_state": null, "created_at": "2026-04-01T09:00:00+00:00", "currency": "EUR", "date": "2026-02-11", "description": "Compra de material de oficina proveedor local", "direction": "OUTGOING", "fx_rate": null, "invoice_id": null, "irpf_category": null, "iva_amount": null, "iva_category": null, "iva_rate": null, "lifecycle_state": "ACTIVE", "m210_income_classification": null, "modified_at": "2026-04-01T09:00:00+00:00", "notes": "", "prorrata_reference": null, "purchase_invoice_evidence_id": null, "source_jurisdiction": null, "taxable_base": null, "transaction_id": "e3eeac5e306efe4e82a72896e92e7c236245ec85348834b2c10b120c67fe087d", "usage_ratio_id": null, "value_date": "2026-02-11", "value_in_eur": null }, "transaction_id": "e3eeac5e306efe4e82a72896e92e7c236245ec85348834b2c10b120c67fe087d" }, "schema_version": "2", "status": "success" }
Confirm the re-classification replaced the previous decision.
Inspecciona la fila de nou amb ledger view abans de calcular.