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 %:

1Record the invoice file and its details as encrypted evidence.
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, March
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, 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"
}
2Confirm the stored record carries the details you typed, with the invoice number shown as a short digest.
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:

1Attach the evidence record to the transaction it supports.
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
2Confirm the transaction now carries the purchase-invoice evidence.
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:

1Pull the Drive document straight into encrypted evidence storage.
aeat app ledger evidence pull <transaction-id> --source GOOGLE_DRIVE --reference \
  <drive-file-id> --note Supplier invoice
aeat app ledger evidence pull <transaction-id> --source GOOGLE_DRIVE --reference `
  <drive-file-id> --note Supplier invoice

El 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:

1Fetch every PDF and image invoice in one Drive folder at once.
aeat app ledger evidence pull-all --folder <drive-folder-id-or-url> --note \
  Q1 supplier invoices
aeat app ledger evidence pull-all --folder <drive-folder-id-or-url> --note `
  Q1 supplier invoices

El 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:

1List every stored evidence record.
aeat app ledger evidence list
aeat app ledger evidence list
evidence_id	media_kind	supplier	invoice_number	invoice_date	taxable_base	notes
4fbeef4e52f5c0a8	pdf	Papelería Sol SL	sha256:d3693bea	2026-03-10	100.00	-
2View one evidence record in full.
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
3Update a detail on the record - the same optional flags as add.
aeat app ledger evidence update {evidence_id} --supplier Papelería Central SL
aeat app ledger evidence update {evidence_id} --supplier Papelería Central SL
evidence_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
4Confirm the supplier now reads the updated value.
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:

1Remove an evidence record by id, confirming with --yes.
aeat app ledger evidence remove {evidence_id} --yes
aeat app ledger evidence remove {evidence_id} --yes
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
bucket_event_ids	e0cd1c6d0c07c20521672f7d19db3f8a22429bba593e3b33876e52d429a53c13
2Confirm the removed evidence id is no longer addressable, regardless of other evidence already recorded on this page.
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