Adjunta facturas y recibos a los movimientos del ledger¶
Guarda un registro de evidencia por cada factura o recibo y vincúlalo al movimiento que respalda. Así, las comprobaciones, las exportaciones y las revisiones de fin de año pueden apuntar al documento que hay detrás de cada cifra. La evidencia guardada permanece bajo custodia local cifrada. Los comandos de descarga desde Google Drive acceden a tu cuenta autorizada antes de guardar localmente los bytes descargados.
Antes de empezar¶
Necesita:
Un perfil de contribuyente activo. La evidencia se guarda bajo el perfil activo; si no hay ninguno definido, el comando se niega a continuar. Consulta Configura tu perfil de contribuyente.
Una frase de contraseña de la clave maestra. La herramienta la solicita la primera vez que abre su almacenamiento cifrado en una sesión.
Movimientos en tu ledger. Si tu ledger está vacío, consulta primero Importa y gestiona los movimientos.
La factura o el recibo como fichero PDF o de imagen. Cadrumo copia los bytes del fichero al almacenamiento cifrado junto con los datos que escribes, más una huella de contenido y la ubicación original como procedencia. Su fichero original ya no vuelve a necesitarse después de
add.
Añade un registro de evidencia¶
Registra el fichero de la factura y sus detalles, y consulta después el registro guardado. La ruta del fichero es la única parte obligatoria; todas las opciones de metadatos son opcionales. --iva-rate 21 significa 21 %:
aeat --format json app ledger evidence add fixtures/factura-material-oficina.pdf \
--supplier Papelería Sol SL --invoice-number 2026-0142 --invoice-date 2026-03-10 \
--taxable-base 100.00 --iva-rate 21 --iva-amount 21.00 --notes Office supplies, Marchaeat --format json app ledger evidence add fixtures/factura-material-oficina.pdf `
--supplier Papelería Sol SL --invoice-number 2026-0142 --invoice-date 2026-03-10 `
--taxable-base 100.00 --iva-rate 21 --iva-amount 21.00 --notes Office supplies, March{ "active_profile": "docs-sequence-sandbox", "command": "ledger.evidence.add", "notices": [], "result": { "attachment_id": "725afbe3c64d4e96faaed8b63b83ed2e7df161334681d98d8b877bd7cddbfc16", "bucket_event_ids": [ "55fe6f63d8763568849f8ca8f05b45fc7a714987593755df7695f448a4b48b92" ], "bucket_id": "<bucket-id>", "created_at": "2026-04-01T09:00:00Z", "evidence_id": "ee678fa9b328d79d", "invoice_date": "2026-03-10", "invoice_number": "sha256:d3693bea", "iva_amount": "21.00", "iva_rate": "21", "media_kind": "pdf", "notes": "Office supplies, March", "source_path": "fixtures/factura-material-oficina.pdf", "source_sha256": "725afbe3c64d4e96faaed8b63b83ed2e7df161334681d98d8b877bd7cddbfc16", "supplier": "Papelería Sol SL", "taxable_base": "100.00", "updated_at": "2026-04-01T09:00:00Z" }, "schema_version": "2", "status": "success" }
aeat --format json app ledger evidence view {evidence_id}aeat --format json app ledger evidence view {evidence_id}{ "active_profile": "docs-sequence-sandbox", "command": "ledger.evidence.view", "notices": [], "result": { "attachment_id": "725afbe3c64d4e96faaed8b63b83ed2e7df161334681d98d8b877bd7cddbfc16", "bucket_event_ids": [], "bucket_id": "<bucket-id>", "created_at": "2026-04-01T09:00:00Z", "evidence_id": "ee678fa9b328d79d", "invoice_date": "2026-03-10", "invoice_number": "sha256:d3693bea", "iva_amount": "21.00", "iva_rate": "21", "media_kind": "pdf", "notes": "Office supplies, March", "source_path": "fixtures/factura-material-oficina.pdf", "source_sha256": "725afbe3c64d4e96faaed8b63b83ed2e7df161334681d98d8b877bd7cddbfc16", "supplier": "Papelería Sol SL", "taxable_base": "100.00", "updated_at": "2026-04-01T09:00:00Z" }, "schema_version": "2", "status": "success" }
Confirm the evidence record stored the supplier and invoice details.
El comando imprime el ID de la evidencia. Anota el ID completo: los comandos posteriores lo necesitan. Añade lo que sepa ahora; completa el resto más tarde.
El registro almacenado conserva el número de factura que escribiste, pero evidence add, view, list, update y remove solo muestran un resumen breve de él (sha256: seguido de ocho caracteres hexadecimales), no el número en sí.
Vincula un registro de evidencia a un movimiento¶
Adjunta el registro de evidencia al movimiento que respalda. La secuencia registra un fichero de evidencia y un gasto, y luego adjunta uno al otro:
aeat app ledger attach {transaction_id} --purchase-invoice-evidence-id {evidence_id}aeat app ledger attach {transaction_id} --purchase-invoice-evidence-id {evidence_id}ID 0cd656fe8ae4c7387bef5c335a4fcec3e8ffe314d34269147920f60a72052eec Date 2026-03-10 Amount 121 Description Material de oficina Review status pending
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": "pending", "transaction": { "amount": "121", "attachment_ids": [], "booked_date": "2026-03-10", "business_classification": "NOT_YET_PROCESSED", "business_pct": null, "category_id": "material_oficina", "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-03-10", "description": "Material de oficina", "direction": "OUTGOING", "fx_rate": null, "invoice_id": null, "irpf_category": null, "iva_amount": "21", "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": "4fbeef4e52f5c0a8", "source_jurisdiction": "ES", "taxable_base": "100", "transaction_id": "0cd656fe8ae4c7387bef5c335a4fcec3e8ffe314d34269147920f60a72052eec", "usage_ratio_id": null, "value_date": null, "value_in_eur": null }, "transaction_id": "0cd656fe8ae4c7387bef5c335a4fcec3e8ffe314d34269147920f60a72052eec" }, "schema_version": "2", "status": "success" }
Confirm the purchase-invoice evidence attached to the transaction.
Un movimiento admite como máximo un registro de evidencia de factura de compra. El comando rechaza un segundo, y rechaza volver a adjuntar el mismo.
No uses aeat app ledger link aquí. attach y link son operaciones distintas sobre la misma transacción: attach incorpora el documento de evidencia, mientras que link vincula la transacción a una factura y requiere --invoice-id. Ese identificador procede de una factura importada, conciliada o añadida manualmente; el identificador que imprime aeat app ledger invoice add es exactamente el que debes pasar.
Para la mayoría de recibos y facturas, --purchase-invoice-evidence-id de arriba es la vía a usar; el id de evidencia procede directamente de evidence add.
El comando attach también dispone de una opción --attachment-id (repetible) para un adjunto seguro genérico que no tiene el papel de factura de compra. Espera el identificador de contenido de 64 caracteres de un blob que ya esté en el almacenamiento cifrado de adjuntos, y rechaza cualquier identificador que no tenga un blob guardado (attachment_ids must reference existing secure attachment manifests and blobs). Actualmente ningún comando del operador imprime ese identificador de 64 caracteres: el evidence_id de evidence add es un identificador distinto y más corto, que aquí no se acepta. Hasta que un comando muestre el identificador del adjunto, usa --purchase-invoice-evidence-id o evidence pull.
Descarga un documento desde Google Drive¶
Cuando el documento reside en Google Drive, descárgalo directamente al almacenamiento cifrado de evidencia. Este comando accede a Google Drive, por lo que se ejecuta contra tu propia cuenta autorizada en lugar de en el entorno de pruebas de la documentación:
aeat app ledger evidence pull <transaction-id> --source GOOGLE_DRIVE --reference \
<drive-file-id> --note Supplier invoiceaeat app ledger evidence pull <transaction-id> --source GOOGLE_DRIVE --reference `
<drive-file-id> --note Supplier invoiceEl comando descarga el fichero de Drive, guarda sus bytes cifrados junto con el movimiento y conserva el enlace original como procedencia. La evidencia siempre lleva el documento en sí, nunca un simple enlace: los enlaces de Gmail, las URL arbitrarias y los ficheros de Drive fuera del ámbito concedido se rechazan. Ante una fuente rechazada, descarga tú mismo el documento y adjúntalo con aeat app ledger evidence add o aeat app ledger attach --attachment-id.
Descarga en bloque todas las facturas de una carpeta de Drive¶
Descarga de una vez todas las facturas en PDF y en imagen de una carpeta de Drive, en lugar de documento a documento. Al igual que evidence pull, este comando accede a Google Drive y se ejecuta con tu propia cuenta autorizada:
aeat app ledger evidence pull-all --folder <drive-folder-id-or-url> --note \
Q1 supplier invoicesaeat app ledger evidence pull-all --folder <drive-folder-id-or-url> --note `
Q1 supplier invoicesEl comando lista el contenido de la carpeta, descarga cada PDF o imagen y guarda cada fichero como evidencia cifrada. Los ficheros descargados aún no quedan vinculados a un movimiento; vincula cada uno después con aeat app ledger attach --attachment-id <attachment-id>.
Vuelve a ejecutar el mismo comando cuando quieras. Un fichero ya descargado se reconoce por su contenido y no se guarda dos veces. Un fichero fuera del ámbito concedido de Drive se rechaza individualmente y no detiene el resto del barrido; descárgalo tú mismo y adjúntalo con aeat app ledger attach --attachment-id.
La descarga en bloque desde Gmail aún no está disponible.
Los registros de factura son una funcionalidad aparte¶
Un registro de factura (quién debe a quién, por qué importe) no es un documento guardado. Gestiona las facturas de tu negocio es donde se llevan los registros de factura: registrar las facturas emitidas y recibidas, el catálogo de conciliación y la vinculación de una factura del catálogo con el movimiento que la salda. Esta página trata de los documentos (PDF e imágenes) que guardas como evidencia y vincula a los movimientos.
Lista, consulta, actualiza y elimina registros de evidencia¶
Lista todos los registros guardados, consulta uno en detalle, actualiza tus datos y elimina el que ya no necesites. La secuencia registra un fichero de evidencia, lo lista e inspecciona, cambia el proveedor y confirma el cambio:
aeat app ledger evidence listaeat app ledger evidence listevidence_id media_kind supplier invoice_number invoice_date taxable_base notes 4fbeef4e52f5c0a8 pdf Papelería Sol SL sha256:d3693bea 2026-03-10 100.00 -
aeat app ledger evidence view {evidence_id}aeat app ledger evidence view {evidence_id}evidence_id 4fbeef4e52f5c0a8 bucket_id <bucket-id> source_path fixtures/factura-material-oficina.pdf source_sha256 725afbe3c64d4e96faaed8b63b83ed2e7df161334681d98d8b877bd7cddbfc16 media_kind pdf supplier Papelería Sol SL invoice_number sha256:d3693bea invoice_date 2026-03-10 taxable_base 100.00 iva_rate 21 iva_amount 21.00 notes - created_at 2026-04-01T09:00:00Z updated_at 2026-04-01T09:00:00Z
aeat app ledger evidence update {evidence_id} --supplier Papelería Central SLaeat app ledger evidence update {evidence_id} --supplier Papelería Central SLevidence_id 4fbeef4e52f5c0a8 bucket_id <bucket-id> source_path fixtures/factura-material-oficina.pdf source_sha256 725afbe3c64d4e96faaed8b63b83ed2e7df161334681d98d8b877bd7cddbfc16 media_kind pdf supplier Papelería Central SL invoice_number sha256:d3693bea invoice_date 2026-03-10 taxable_base 100.00 iva_rate 21 iva_amount 21.00 notes - created_at 2026-04-01T09:00:00Z updated_at 2026-04-01T09:00:00Z bucket_event_ids 8f439cce2a9b8972cff6a94ed9e944438548dcd2af320e2f2f4039d9b1c2d99f
aeat --format json app ledger evidence view {evidence_id}aeat --format json app ledger evidence view {evidence_id}{ "active_profile": "docs-sequence-sandbox", "command": "ledger.evidence.view", "notices": [], "result": { "attachment_id": "725afbe3c64d4e96faaed8b63b83ed2e7df161334681d98d8b877bd7cddbfc16", "bucket_event_ids": [], "bucket_id": "<bucket-id>", "created_at": "2026-04-01T09:00:00Z", "evidence_id": "4fbeef4e52f5c0a8", "invoice_date": "2026-03-10", "invoice_number": "sha256:d3693bea", "iva_amount": "21.00", "iva_rate": "21", "media_kind": "pdf", "notes": "", "source_path": "fixtures/factura-material-oficina.pdf", "source_sha256": "725afbe3c64d4e96faaed8b63b83ed2e7df161334681d98d8b877bd7cddbfc16", "supplier": "Papelería Central SL", "taxable_base": "100.00", "updated_at": "2026-04-01T09:00:00Z" }, "schema_version": "2", "status": "success" }
Confirm the evidence record's supplier was updated.
Elimina un registro de evidencia que ya no necesites, indicándolo por su id:
aeat app ledger evidence remove {evidence_id} --yesaeat app ledger evidence remove {evidence_id} --yesevidence_id 4fbeef4e52f5c0a8 bucket_id <bucket-id> source_path fixtures/factura-material-oficina.pdf source_sha256 725afbe3c64d4e96faaed8b63b83ed2e7df161334681d98d8b877bd7cddbfc16 media_kind pdf supplier Papelería Sol SL invoice_number sha256:d3693bea invoice_date 2026-03-10 taxable_base 100.00 iva_rate 21 iva_amount 21.00 notes - created_at 2026-04-01T09:00:00Z updated_at 2026-04-01T09:00:00Z bucket_event_ids e0cd1c6d0c07c20521672f7d19db3f8a22429bba593e3b33876e52d429a53c13
aeat --format json app ledger evidence view {evidence_id}aeat --format json app ledger evidence view {evidence_id}{ "active_profile": "docs-sequence-sandbox", "command": "ledger.evidence.view", "error": { "action": { "action": null, "argument_bindings": [], "conditionality": "not_applicable", "evidence": [ { "condition_id": "ledger.evidence.reference_resolves", "evidence_id": "ledger.evidence.reference_resolves.observation", "provenance": "application_state", "values": { "evidence_record_present": false } } ], "failed_condition_id": "ledger.evidence.reference_resolves", "missing_argument_names": [], "no_recovery_outcome": "operator_decision" }, "category": "REFUSED", "code": "REFUSED_LEDGER_EVIDENCE_NOT_FOUND", "context": null, "message": "No purchase-invoice evidence exists with the identifier provided.", "retryable": false, "runbook_id": null, "trace_id": null }, "notices": [], "schema_version": "2", "status": "error" }
Confirm the evidence record no longer appears in the catalogue.
La eliminación se aplica a los registros de evidencia, no a los movimientos. Para corregir una fila de movimiento en sí, consulta Corrige errores en tu ledger.
Después de corregir una fila¶
Si fusiona o divide movimientos, revisa las filas nuevas y vuelve a adjuntar la evidencia donde sea necesario. Corrige errores en tu ledger trata los cambios de fila.
Dónde aparece la evidencia¶
Las exportaciones del ledger incluyen el enlace a la evidencia con cada movimiento. Los cálculos derivados del ledger arrastran el rastro de la evidencia hasta los artefactos de presentación.
Lee Importación, exportación y evidencia para conocer la diferencia entre la evidencia del ledger vinculada, un fichero de subida a la AEAT, la prueba oficial de presentación y un paquete de auditoría.
Dónde obtener ayuda¶
Si un comando falla o se niega a continuar, consulta Resolución de problemas.
Si algún término le resulta desconocido, consulta el Glosario.
Antes de compartir la salida de un comando con nadie, elimina los identificadores fiscales como su NIF, CIF, DNI, NIE o NII.
Pasos siguientes¶
Importación, exportación y evidencia: comprenda cómo participa la evidencia en el cálculo, la presentación y la auditoría.
Importa y gestiona los movimientos: incorpora más movimientos al ledger.
Corrige errores en tu ledger: corrige errores en las filas de movimiento.
Clasifica los movimientos: asigna categorías fiscales a tus movimientos.
Referencia de la CLI: la superficie completa de comandos.