Utilice JSON cuando necesite datos de transacciones en un script o proceso de datos conservando al mismo tiempo los metadatos de la cuenta del extracto. Nuestra descarga en JSON es un único objeto que contiene metadatos y una matriz de transacciones. No es una lista simple de filas ni un archivo JSON delimitado por líneas.
Descargar el extracto estructurado
- Abra la herramienta de PDF a JSON y suba un PDF legible y desbloqueado de hasta 25 MB.
- Seleccione Convertir mi extracto y espere a que se procese.
- Abra Más formatos y, a continuación, seleccione JSON en Spreadsheet+.
- Guarde el archivo y compare una muestra de sus fechas e importes con el PDF original.
Esta guía explica cómo leer un archivo descargado. Una exportación a JSON no establece por sí misma una integración de API pública ni un flujo de trabajo de subida automatizado.
Comprender la estructura del objeto
| Campo | Formato | Significado |
|---|---|---|
| bankName, accountHolder, accountNumber | Cadena de texto o null | Metadatos de la cuenta extraídos |
| currency | Cadena de texto o null | Moneda a nivel de extracto |
| statementPeriod | Objeto con from y to | Cadenas de fecha o null para cada límite |
| openingBalance, closingBalance | Número o null | Saldos del extracto extraídos |
| transactions | Matriz | Filas que contienen date, description, debit, credit, balance |
| pageCount | Número | Número de páginas del PDF registradas durante la conversión |
| validated | Booleano | Resultado de la comprobación de saldo de la aplicación |
| parserUsed | Cadena de texto | Identificador del proveedor de extracción |
Dentro de cada transacción, date y description son cadenas de texto; debit, credit y balance son números o null. Se solicita al analizador que use fechas ISO, pero su integración debe validarlas igualmente. Los números de cuenta son identificadores: manténgalos como cadenas de texto para conservar los ceros iniciales. En esta exportación no hay ningún campo de categoría ni de identificador de transacción original del banco.
Leer la matriz de transacciones en Python
Guarde su descarga como statement.json para este ejemplo. El módulo json de Python lee el objeto externo; seleccione su campo transactions para obtener las filas. El uso de Decimal para números fraccionarios evita añadir redondeos de punto flotante binario durante sus propios cálculos. Consulte la documentación de JSON en Python para json.load y parse_float.
python
import json
from decimal import Decimal
with open("statement.json", encoding="utf-8") as source:
statement = json.load(source, parse_float=Decimal)
rows = statement["transactions"]
if not isinstance(rows, list):
raise ValueError("Expected a transactions array")
print("Balance check:", statement["validated"])
for row in rows:
print(row["date"], row["description"], row["debit"], row["credit"])El ejemplo lee y muestra datos; no envía transacciones a ningún sitio. Si más adelante utiliza un dataframe, constrúyalo a partir de la matriz de transacciones y almacene los metadatos del extracto por separado. Leer todo el objeto como si fuera una tabla plana de transacciones mezcla campos con estructuras distintas.
Interpretar null y validated con atención
Null significa que un valor no estaba presente o no estaba disponible. No es intercambiable con cero. La ausencia de un débito es normal en una fila de crédito, pero la falta de un saldo inicial requiere una decisión diferente. Compruebe estos casos explícitamente antes de calcular totales o realizar importaciones.
El indicador validated comprueba que existan transacciones y ambos saldos del extracto, y después compara el saldo inicial más los créditos menos los débitos con el saldo final dentro de una tolerancia de 0,01. No verifica cada descripción, fecha, identificador de cuenta o saldo acumulado. Un valor false puede indicar saldos ausentes o un descuadre; un valor true no es una prueba de que cada fila sea correcta.
Preparar los datos para un flujo de trabajo reproducible
Compruebe las claves y tipos esperados, la validez de las fechas, la moneda del extracto y la cuenta antes de cargar las filas. Conserve una referencia del archivo de origen con los registros importados. La exportación no incluye identificadores de fila permanentes emitidos por el banco, por lo que debe diseñar su propia revisión de duplicados en lugar de asumir que el orden de las filas es único en todos los archivos.
Para obtener categorías, descargue por separado el libro de trabajo categorizado. Para un archivo plano más sencillo, siga la guía de CSV.