Tus estados de cuenta, listos para la IA. Sin tus datos personales.
mxbank lee estados de cuenta de bancos mexicanos en PDF en tu computadora, extrae saldos y movimientos, elimina todo lo que te identifica y entrega un JSON que ya puedes compartir con cualquier asistente.
$ mxbank extract tarjeta_sep.pdf { "document": { "bank": "bbva", "product": "credit" }, "account": { "account_ref": "ACC_92d5" }, "credit": { "payment_due_date": "2026-10-08", "no_interest_payment": "1965.00" }, "transactions": [ { "date": "2026-08-18", "description": "AMAZON", "type": "card_purchase", "amount": "-1200.00" }, { "date": "2026-08-20", "description": "NETFLIX", "original_currency": "USD", "amount": "-299.00" } ], "validation": { "reconciled": true, "difference": "0.00" }, "privacy": { "residual_scan": "passed" } }
Subir el PDF expone mucho más que tus gastos
Un estado de cuenta trae tu identidad completa y datos de otras personas. Para entender tus finanzas, una IA solo necesita los movimientos.
Lo que trae el PDF y mxbank elimina
Lo que recibe la IA
Cómo funciona
Todo ocurre en memoria, en tu equipo. Si cualquier paso tiene dudas, no se emite nada.
Lee el PDF
Extrae el texto con sus coordenadas. Sin red y sin archivos temporales.
Detecta el banco
Reconoce el formato por sus huellas; si no lo conoce, lo rechaza.
Extrae
Saldos, movimientos, meses sin intereses y datos de la tarjeta.
Concilia
Verifica que todo cuadre con los saldos y totales del propio banco.
Redacta
Construye la salida campo por campo y quita o seudonimiza cada dato personal.
Escaneo final
Revisa el JSON completo; ante cualquier sospecha sale con código 40.
Pensado para finanzas personales con IA
Una herramienta de línea de comandos predecible, que un agente puede usar sin ver nunca el documento original.
100 % local
Sin red, sin telemetría y sin archivos temporales. El PDF nunca sale de tu máquina.
Falla cerrado
Un escáner final revisa el JSON; si detecta algo sospechoso, no entrega nada.
Cifras verificadas
Cada estado se concilia contra sus saldos y contra los totales que reporta el banco.
Hecho para agentes
JSON en stdout, errores en JSON, códigos de salida estables y JSON Schema publicado.
Tarjetas de crédito
Pago mínimo, pago para no generar intereses, CAT, meses sin intereses y compras en dólares.
Seudónimos estables
La misma cuenta o contraparte recibe el mismo alias cada mes, sin revelar quién es.
Bancos soportados
Cada formato se valida con estados de cuenta reales antes de publicarse. Si un PDF no corresponde a un formato conocido, mxbank lo rechaza en lugar de adivinar.
| Banco | Producto | Validación |
|---|---|---|
| BBVA México | Cuenta de débito | 4 estados reales · conciliación, totales y saldo por día exactos |
| BBVA México | Tarjeta de crédito | 4 estados reales · conciliación y totales exactos |
| BanCoppel | Cuenta de débito digital | 1 estado real · conciliación, totales y saldo por movimiento exactos |
¿Quieres otro banco? La guía para agregar uno explica cómo estudiar el formato sin exponer datos.
Qué pasa con cada dato
La salida se construye a partir de una lista cerrada de campos: el encabezado del estado de cuenta no tiene a dónde ir.
| Dato | Tratamiento |
|---|---|
| Nombre, domicilio, RFC, CURP, número de cliente, sucursal | Se elimina |
| Tarjeta completa, CLABE, «Tarjeta Digital ***1234» | Se elimina |
| Claves de rastreo y referencias | Se elimina |
| Número de cuenta propia | Seudónimo + últimos 4 dígitos (se omiten en modo estricto) |
| Personas y cuentas a las que transfieres | Seudónimo nunca el nombre ni la cuenta |
| Conceptos libres de transferencias | Se omiten o se incluyen redactados con --include-concepts |
| Comercio, monto y fecha de cada movimiento | Se conserva |
Si tu nombre o tu colonia aparecen dentro de un movimiento (por ejemplo en el nombre de una sucursal), se reemplazan por [DATO]. Y si después de todo el escáner final sospecha de algo, mxbank no emite el JSON y te dice qué campo revisar, nunca el valor.
Para agentes de IA
El agente invoca mxbank como herramienta, lee el JSON y razona sobre tus movimientos sin ver nunca el PDF.
- Resultado en stdout, diagnósticos en stderr.
- Códigos de salida documentados: 0 éxito, 11 contraseña, 20 banco no soportado, 40 PII detectada.
mxbank schemapublica el JSON Schema completo.- Reglas listas para copiar en AGENT.md.
Usuario: ¿en qué gasté más este mes? Agente: mxbank extract tarjeta_sep.pdf # exit 0 agrupa los movimientos con amount < 0, excluye pagos a la tarjeta, responde con las 5 categorías principales.
¿Usas Claude Code? Instala el skill mxbank
Claude Code lo carga solo cuando le pides revisar, resumir o graficar un estado de cuenta. Así la sesión sabe usar mxbank en lugar de abrir el PDF, qué movimientos no son gasto (pagos a la tarjeta, traslados a meses), cómo detectar cargos recurrentes y cómo verificar las sumas contra el banco. Dentro de un clon del repositorio ya está disponible; para tenerlo en todas tus sesiones:
mkdir -p ~/.claude/skills/mxbank && curl -fsSL https://raw.githubusercontent.com/howware/mx-bank-statement-reader/main/.claude/skills/mxbank/SKILL.md -o ~/.claude/skills/mxbank/SKILL.md
New-Item -ItemType Directory -Force "$HOME\.claude\skills\mxbank" | Out-Null; Invoke-WebRequest https://raw.githubusercontent.com/howware/mx-bank-statement-reader/main/.claude/skills/mxbank/SKILL.md -OutFile "$HOME\.claude\skills\mxbank\SKILL.md"
Reinicia Claude Code y pide, por ejemplo: «analiza mis gastos del estado de cuenta tarjeta_sep.pdf». Para actualizarlo, vuelve a ejecutar el mismo comando. Ver el skill
Instalación
Requiere Python 3.12 o superior y uv.
git clone https://github.com/howware/mx-bank-statement-reader.git cd mx-bank-statement-reader uv tool install .
mxbank banks
Uso
Los secretos se pasan por variable de entorno, nunca como argumento.
mxbank extract estado.pdf --pretty
mxbank extract carpeta/ --ndjson > movimientos.jsonl
mxbank extract estado.pdf --password-env MXBANK_PDF_PASSWORD --pseudonym-key-env MXBANK_KEY