Concilia un modelo presentado con tu justificante

Esta página cubre el justificante, el resguardo en PDF firmado que la AEAT emite cuando presenta en el portal, y la conciliación: cómo descargar el resguardo de la AEAT y conservarlo como evidencia cifrada en tu perfil, y cómo compararlo con tu registro de presentación local para que un error de tecleo en el portal, un periodo equivocado o un valor local obsoleto afloren ahora en lugar de durante una revisión posterior.

Hay dos formas de aportar el justificante:

  • Descárgalo de la AEAT con reconcile pull: la herramienta obtiene el resguardo de la sede de la AEAT (solo lectura), guarda una copia cifrada en tu perfil y concilia en un solo paso.

  • Usa un PDF local con reconcile import --file: descargaste tú mismo el justificante; la comprobación es local y nunca contacta con la AEAT.

Antes de empezar

Necesita:

  • un perfil activo

  • una unidad de trabajo presentada localmente (has ejecutado aeat app modelo work file para esta presentación) que se presentó en el portal de la AEAT

  • para los comandos de descarga: una autenticación ante la AEAT que funcione; consulta Autentícate ante la AEAT

  • para reconcile import: el PDF del justificante en disco

Para crear un perfil, consulta Configura tu perfil de contribuyente. Para el flujo de presentación, consulta la guía rápida. Todo comando de esta página necesita tu frase de contraseña de la clave maestra; la herramienta la solicita.

Descarga y guarda el justificante

Conserva el resguardo con su documentación: es la evidencia oficial que hay tras cada periodo presentado. Obtén el justificante de un periodo presentado y guárdalo en tu perfil sin conciliar todavía. Esto lee de la sede de la AEAT, así que se muestra como marco ilustrativo:

1Fetch and store the justificante for one filed period (a live AEAT read).
aeat app live justificante pull --modelo 130 --year 2026 --period 1T
aeat app live justificante pull --modelo 130 --year 2026 --period 1T

pull es solo en vivo: lee de la AEAT (solo lectura) y necesita la sesión de autenticación configurada. --modelo, --year y --period son todos obligatorios. Cuando la autenticación no está configurada, la descarga se niega antes de contactar con la AEAT con un mensaje de identidad Cl@ve (La identidad de Cl@ve Móvil no coincide...); en una primera ejecución, la causa real suele ser que aún no hay ninguna sesión de la AEAT configurada.

La salida informa de la captura guardada: su id de instantánea, el expediente al que pertenece, el código de verificación CSV impreso en el resguardo, la huella de contenido del PDF y cuándo se capturó. Los bytes del PDF se guardan cifrados dentro de tu perfil, así que no necesita conservar una copia descargada aparte. Volver a descargar para el mismo modelo, año y periodo guarda una captura nueva y marca la anterior como sustituida, de modo que el resguardo más reciente es siempre el activo.

Lista todas las capturas guardadas en el perfil activo y luego inspecciona una (basta con un prefijo inequívoco del id de instantánea). Ambas leen de vuelta las capturas guardadas a través de la superficie de justificantes en vivo, así que se muestran como marcos ilustrativos:

1List the justificante captures stored in the active profile.
aeat app live justificante list
aeat app live justificante list
2Inspect one capture by an unambiguous prefix of its snapshot id.
aeat app live justificante view <snapshot-id>
aeat app live justificante view <snapshot-id>

La consulta informa del id del expediente, el código de verificación CSV, la huella del PDF, si la captura sigue activa o está sustituida, y cuándo se capturó.

Descarga el justificante de la AEAT y concilia

Obtén el resguardo de la presentación y concilia en un solo comando. La descarga lee de la AEAT, así que se muestra como marco ilustrativo:

1Pull the receipt and reconcile it against the local record in one step.
aeat app modelo reconcile pull --modelo 303 --year 2026 --period 1T
aeat app modelo reconcile pull --modelo 303 --year 2026 --period 1T

Sustituye 303, 2026 y 1T por el modelo, el año y el periodo de su presentación real. También puede nombrar la unidad de trabajo directamente como argumento posicional en lugar de los selectores --modelo --year --period.

La descarga es de solo lectura en la AEAT. El resguardo obtenido se guarda como una captura cifrada en tu perfil, así que la evidencia oficial sigue disponible después de que el comando termine. Para listar o inspeccionar las capturas guardadas más tarde, consulta Descarga y guarda el justificante más arriba.

Concilia contra un PDF local

Si ya descargó el justificante del portal, compara tu registro de presentación local con ese fichero. Esta comprobación es local y nunca contacta con la AEAT, pero necesita el PDF real del resguardo en disco, así que se muestra como marco ilustrativo:

1Reconcile the local filing record against a downloaded justificante PDF.
aeat app modelo reconcile import --modelo 303 --year 2026 --period 1T --file \
  ./justificante.pdf
aeat app modelo reconcile import --modelo 303 --year 2026 --period 1T --file `
  ./justificante.pdf

Esta comprobación es local. Lee el PDF que aportas y nunca contacta con la AEAT.

Lee el resultado

Ambos transportes informan de uno de tres veredictos:

  • matches: el justificante coincide con el registro de presentación local.

  • mismatches: uno o más campos difieren. El informe nombra cada campo y muestra el valor local junto al valor encontrado en el PDF.

  • evidence_invalid: no se pudo leer el PDF. Comprueba que el fichero es el justificante de la AEAT y no un documento distinto.

La conciliación compara solo cuatro campos de cabecera: el código de modelo, el ejercicio de presentación, el periodo y el identificador del contribuyente (NIF, CIF, DNI o NIE). No compara los valores de las casillas. Un veredicto de mismatches siempre nombra uno de esos cuatro campos, nunca una casilla.

Gestiona una discrepancia

Un veredicto de mismatches nombra el campo de cabecera que difiere y muestra su valor local junto al valor del justificante.

  1. Confirma que el justificante es el correcto para esta presentación, no de un periodo o contribuyente distinto. Un resguardo equivocado es la causa más frecuente.

  2. Si el modelo, el año o el periodo difieren, o bien conciliaste contra la presentación equivocada o bien presentaste el periodo equivocado en el portal. Vuelve a ejecutar la conciliación con los selectores correctos, o comprueba qué presentaste.

  3. Si el identificador del contribuyente difiere, confirma que el perfil activo coincide con el contribuyente al que se emitió el justificante.

  4. Si el propio justificante parece incorrecto, contacta con su asesor o con la AEAT directamente.

Si un valor de casilla parece incorrecto

La conciliación no compara los valores de las casillas, así que no puede indicarte que un total calculado difiere de lo que presentaste. Para corregir un valor de casilla, usa el flujo de rectificación en lugar de la conciliación. Vuelve a comprobar las entradas y recalcula. Si el periodo ya se presentó, presenta una complementaria. Consulta Revisa y aporta las entradas de cálculo.

Qué conservar como evidencia

El justificante es su prueba de lo que la AEAT recibió. Esto es lo que guarda cada vía:

  • reconcile pull guarda el justificante obtenido como una copia cifrada en tu perfil.

  • reconcile import lee un PDF que aportas, pero no lo guarda. Si concilias contra un PDF descargado, descarga también el resguardo para conservar una copia cifrada en tu perfil. Consulta Descarga y guarda el justificante.

  • El historial de conciliaciones es una lectura que puede regenerar a partir del justificante, así que no necesita una copia de seguridad aparte.

Revisa conciliaciones pasadas

Cada conciliación se registra en el historial de eventos del perfil. Lista las conciliaciones pasadas registradas para el perfil activo:

1List the reconciliations recorded for the active profile.
aeat --format json app modelo reconcile list
aeat --format json app modelo reconcile list
{
  "active_profile": "docs-sequence-sandbox",
  "command": "modelo.reconcile.list",
  "notices": [],
  "result": {
    "bucket_id": "<bucket-id>",
    "operation": "modelo.reconcile.list",
    "reconciliation_count": 0,
    "reconciliations": [],
    "work_unit_id": null
  },
  "schema_version": "2",
  "status": "success"
}

Confirm the recorded reconciliations read back cleanly.

En un perfil recién creado, la lista está vacía; después de conciliar una presentación aparece una fila por cada ejecución.

Añade --work-unit-id <id> para acotar la lista a una sola unidad de trabajo. Cada fila muestra cuándo se ejecutó la conciliación, la unidad de trabajo, la fuente de la evidencia, el veredicto y cuántos campos difirieron. La conciliación es repetible bajo demanda a partir del justificante, así que esto es una lectura de conveniencia y no un registro guardado aparte.

Pasos siguientes