Revisa càlculs amb Google Sheets

Aquesta pàgina tracta la revisió en full de càlcul d’un càlcul de modelo: exportar-lo a Google Sheets, comprovar com s’arriba a cada total amb fórmules en directe i baixar les teves edicions revisades com a entrades de presentació tipades. La baixada retorna aquestes edicions sense fer-les persistents. Aquest flux de treball serveix per revisar valors calculats un cop el teu perfil i les teves transaccions estan a punt. No és una eina d’importació d’extractes bancaris ni d’edició massiva.

Google Sheets és la superfície de revisió. El codi també conté un serialitzador .xlsx fora de línia, però la superfície d’ordres d’operador actual no l’exposa. Fes servir Google Sheets quan vulguis revisar i ajustar.

Les ordres de configuració local d’aquesta pàgina (estat, vinculació de carpeta, tancament de sessió) i les comprovacions de preparació del ledger s’executen en directe en el moment de la generació. Les ordres que accedeixen a Google Drive i Sheets s’executen contra el teu propi compte autoritzat i no pas a l’entorn de proves de la documentació, de manera que es mostren com a marcs només il·lustratius.

Abans de començar

Necessites:

  • un perfil actiu; consulta Configura el teu perfil de contribuent

  • dades de transaccions classificades; consulta Importa i gestiona transaccions

  • un modelo i un període prou a punt per calcular

  • un fitxer de credencials de l’API de Google (un JSON de client OAuth d’escriptori de la Google Cloud Console)

  • l’ID d’una carpeta de Google Drive on Cadrumo hauria de crear els fulls de càlcul (copia l’ID de l’URL de la carpeta a Google Drive)

Cadrumo crea la seva carpeta cadrumo-vault/ dins d’aquella carpeta de Drive. No utilitza cap carpeta aeat-vault/ antiga; exporta un llibre de treball nou abans de baixar edicions cap a Cadrumo.

Configura l’accés a Google

Registra el client OAuth d’escriptori per al perfil actiu i executa el flux de consentiment. Tots dos accedeixen a Google, de manera que aquí són només il·lustratius:

1Register the Desktop OAuth client for the active profile.
aeat config google register --client-json ./client_secret.json
aeat config google register --client-json ./client_secret.json
2Run the Google consent flow.
aeat config google login
aeat config google login

Comprova l’estat de Google i estableix la carpeta de Drive on Cadrumo crearà els fulls de càlcul. Aquestes són ordres de configuració local, de manera que aquí s’executen. En un perfil no configurat, l’estat mostra no connectat, i la carpeta que estableixes es torna a mostrar literalment:

1Check the Google connection status for the active profile.
aeat --format json config google status
aeat --format json config google status
{
  "active_profile": "docs-sequence-sandbox",
  "command": "config.google.status",
  "notices": [],
  "result": {
    "account_email": null,
    "client_id": null,
    "client_registered": false,
    "granted_scopes": [],
    "issued_at": null,
    "last_refresh_at": null,
    "operation": "config.google.status",
    "profile": "<profile-id>",
    "reauth_required": null,
    "session_present": false
  },
  "schema_version": "2",
  "status": "success"
}
2Set the Drive folder where Cadrumo will create spreadsheets.
aeat config google folder set docs-folder-123
aeat config google folder set docs-folder-123
operation	config.google.folder.set
profile	<profile-id>
root_folder_id	docs-folder-123
3Confirm the folder binding.
aeat --format json config google folder view
aeat --format json config google folder view
{
  "active_profile": "docs-sequence-sandbox",
  "command": "config.google.folder.view",
  "notices": [],
  "result": {
    "configured": true,
    "operation": "config.google.folder.view",
    "profile": "<profile-id>",
    "root_folder_id": "docs-folder-123"
  },
  "schema_version": "2",
  "status": "success"
}

Confirm the Drive folder binding reads back the value you set.

Prova la connexió un cop el client OAuth està registrat. La prova accedeix a Google, de manera que aquí és només il·lustrativa:

1Probe the Google connection.
aeat config google probe
aeat config google probe

La integració de Google està limitada al perfil. Si canvies de perfil, torna a comprovar l’estat de Google i la vinculació de carpeta.

Exporta un llibre de treball de càlcul

Exporta la superfície de càlcul del registre per a un modelo, un any i un període. L’exportació crea un llibre de treball de Google Sheets dins de l’àrea cadrumo-vault/ configurada a Drive:

1Export the calculation surface for one modelo, year, and period.
aeat app modelo spreadsheet push --modelo 303 --year 2026 --period 1T
aeat app modelo spreadsheet push --modelo 303 --year 2026 --period 1T

És una superfície de revisió de càlcul, no una exportació d’extracte bancari. Fes servir aeat app ledger export quan necessitis una instantània CSV, JSONL o XLSX de les files del ledger.

Fes servir --prefill-relations només quan vulguis que el full de càlcul inclogui valors arrossegats de presentacions relacionades, com ara resums anuals o arrossegaments de trimestres anteriors.

Baixa les teves edicions

Després de revisar o editar el llibre de treball, baixa les edicions tipades del full. Afegeix --assemble-observations quan vulguis que la sortida de l’ordre inclogui les dades editades a nivell de fila assemblades com a observacions estructurades. L’ordre no fa persistents aquestes observacions:

1Pull typed edits back from the reviewed spreadsheet.
aeat app modelo spreadsheet pull --modelo 303 --year 2026 --period 1T --spreadsheet-id \
  <spreadsheet-id>
aeat app modelo spreadsheet pull --modelo 303 --year 2026 --period 1T --spreadsheet-id `
  <spreadsheet-id>

L’ordre de baixada comprova que el full de càlcul pertany al perfil actual i que coincideix amb el període de presentació esperat. Si es nega, torna a exportar i torna a provar-ho des del full de càlcul nou.

Calcula els valors de casilla a partir del full

Executa compute quan vulguis que Cadrumo calculi els valors de casilla a partir de les edicions del full. Baixa les cel·les editades per l’operador, hi executa el motor de càlcul i mostra el resultat. No fa res persistent:

1Compute casilla values from the operator-edited cells.
aeat app modelo spreadsheet calculate --modelo 303 --year 2026 --period 1T \
  --spreadsheet-id <spreadsheet-id>
aeat app modelo spreadsheet calculate --modelo 303 --year 2026 --period 1T `
  --spreadsheet-id <spreadsheet-id>

L’ordre compute comprova que el full de càlcul coincideix amb el període de presentació esperat. Si es nega, torna a exportar i torna a provar-ho des del full de càlcul nou.

Comprova el càlcul del full de càlcul

Executa l’ordre de verificació de calc-sheets per al mateix modelo, any i període. Si tens un JSON d’escenari amb entrades d’operador i sortides esperades de l’Agencia Estatal de Administración Tributaria (AEAT), passa’l explícitament amb --scenario:

1Verify the spreadsheet calculation for the modelo, year, and period.
aeat app modelo spreadsheet verify --modelo 303 --year 2026 --period 1T
aeat app modelo spreadsheet verify --modelo 303 --year 2026 --period 1T
2Verify against an explicit scenario JSON of inputs and expected outputs.
aeat app modelo spreadsheet verify --modelo 303 --year 2026 --period 1T --scenario \
  ./scenario.json
aeat app modelo spreadsheet verify --modelo 303 --year 2026 --period 1T --scenario `
  ./scenario.json

La verificació compara les superfícies de càlcul implementades per l’aplicació. No presenta cap declaració a l’AEAT.

Fes una còpia de seguretat dels teus registres xifrats a Drive

Conserva una còpia fora de la màquina dels teus registres xifrats reflectint-los a la carpeta de Drive configurada. Previsualitza primer amb --dry-run; informa de què es pujaria per àrea d’emmagatzematge sense canviar res. Limita una pujada gran amb --namespace o --limit:

1Preview the encrypted backup to Drive without uploading.
aeat config profile archive push --dry-run
aeat config profile archive push --dry-run
2Mirror the encrypted records to the Drive folder.
aeat config profile archive push
aeat config profile archive push

Només es puja text xifrat. Els teus registres surten de la màquina exactament tal com estan xifrats al disc, i la clau mestra mai no surt del teu ordinador, de manera que la còpia de Drive és il·legible sense ella. El mirall és unidireccional: Cadrumo escriu la còpia i mai no torna a llegir Drive com a font de veritat dels teus registres.

Tanca la sessió de Google

Esborra la sessió de Google per al perfil actiu. El tancament de sessió és una ordre local, de manera que aquí s’executa. Elimina el testimoni de sessió desat i les seves metadades. El client OAuth registrat es conserva a propòsit, de manera que un aeat config google login posterior pot tornar a iniciar sessió sense tornar a importar el JSON de la Cloud Console:

1Clear the Google session for the active profile.
aeat --format json config google logout
aeat --format json config google logout
{
  "active_profile": "docs-sequence-sandbox",
  "command": "config.google.logout",
  "notices": [],
  "result": {
    "client_preserved": true,
    "metadata_removed": false,
    "operation": "config.google.logout",
    "profile": "<profile-id>",
    "token_removed": false
  },
  "schema_version": "2",
  "status": "success"
}

Confirm the Google session clears for the active profile.

On encaixa això

Fes servir això després de la revisió i la classificació de transaccions. Confirma que el període està a punt abans de refiar-te del llibre de treball de càlcul:

1Run the period preflight.
aeat app ledger preflight --year 2026 --period 1T
aeat app ledger preflight --year 2026 --period 1T
bucket	<profile-id>
period	2026 1T
checked	2
issues	2
ready	false
issue	71a5db2bb891df295bee72544c40497d24d5c8cfc7edab745ce7339dcf8d6518	missing_business_classification	business classification 'NOT_YET_PROCESSED' is not ready for modelo calculation
issue	e3eeac5e306efe4e82a72896e92e7c236245ec85348834b2c10b120c67fe087d	missing_business_classification	business classification 'NOT_YET_PROCESSED' is not ready for modelo calculation
2Read the overall ledger state for the period.
aeat --format json app ledger status --year 2026 --period 1T
aeat --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": "0",
    "business_income_total": "0",
    "business_net_total": "0",
    "checked_transaction_count": 2,
    "pending_review_count": 2,
    "period": {
      "code": "1T",
      "filing_year": 2026
    },
    "readiness_issue_count": 2,
    "readiness_issues": [
      {
        "business_classification": "NOT_YET_PROCESSED",
        "category_id": null,
        "detail": "business classification 'NOT_YET_PROCESSED' is not ready for modelo calculation",
        "iva_amount": null,
        "iva_rate": null,
        "reason": "missing_business_classification",
        "taxable_base": null,
        "transaction_id": "71a5db2bb891df295bee72544c40497d24d5c8cfc7edab745ce7339dcf8d6518",
        "transaction_present": true
      },
      {
        "business_classification": "NOT_YET_PROCESSED",
        "category_id": null,
        "detail": "business classification 'NOT_YET_PROCESSED' is not ready for modelo calculation",
        "iva_amount": null,
        "iva_rate": null,
        "reason": "missing_business_classification",
        "taxable_base": null,
        "transaction_id": "e3eeac5e306efe4e82a72896e92e7c236245ec85348834b2c10b120c67fe087d",
        "transaction_present": true
      }
    ],
    "ready": false,
    "reviewed_count": 0,
    "skipped_count": 0,
    "split_count": 0,
    "stale_filings": [],
    "stashed_count": 0,
    "total_count": 2,
    "unconverted_currency_count": 0
  },
  "schema_version": "2",
  "status": "success"
}

Confirm the period's readiness before relying on the workbook.

Si al ledger encara li falten categories, camps d’IVA, divisa o referències de proporcionalitat, acaba-les a Classifica transaccions abans de refiar-te del llibre de treball de càlcul.

Per a les entrades manuals a nivell de casilla, els bindings, els desplaçaments i les revisions, fes servir Revisa i aporta entrades de càlcul.

Passos següents