Qué hacen y cómo
Alex Willen gestiona un fondo que compra marcas de comercio electrónico (alrededor de una docena, casi todas vendidas con Logística de Amazon, FBA, y al menos una también en Shopify) repartidas en tres sociedades. Todas las cuentas bancarias y tarjetas alimentan QuickBooks Online, donde las reglas bancarias clasifican la mayoría de los movimientos y mandan el resto a una categoría genérica, porque la API de QuickBooks no deja leer los movimientos que siguen pendientes de revisión. Una vez al mes, Claude Code, conectado por la API de QuickBooks, reclasifica esos movimientos, revisa la actividad de Amazon, Shopify, Meta, bancos y tarjetas y crea los asientos de las comisiones que Amazon descuenta antes de pagar. Otra skill lleva un libro en Google Sheets por marca con datos de Mercury (por API), de Amex (un CSV que Claude descarga en el navegador después de que él inicie sesión) y de Amazon, y le pregunta lo que no sabe asignar. Cada semana, una skill de inventario actualiza las previsiones de ventas y existencias que alimentan un panel de tesorería para él y sus inversores.
Resultado declarado
Según Alex Willen, los libros por marca pasaron de dos o tres horas al mes a «un par de minutos» respondiendo preguntas, y entre contabilidad, asientos de comisiones, libros y previsiones dice que se ahorra «decenas de horas al mes». Su skill de previsión de inventario acertó 5 de 5 en sus casos de prueba más difíciles cuando pasó a un modelo de Claude más reciente con el razonamiento al máximo, y el panel de tesorería le llevó medio día. Antes de enviar la cuenta de resultados y el balance a su CPA (contador público), los coteja con lo que sabe del negocio; no hay auditoría, tasa de error ni tiempo de cierre medido.
Cifras declaradas. Una persona u organización identificada declara que lo ha usado. Los resultados son declarados por la fuente; no los hemos auditado.
Qué se ha probado de verdad
El 25 de octubre de 2026 leímos las respuestas de Alex Willen en el hilo de JT Pells en X y las réplicas que recibieron, y cinco de sus artículos de Substack (de enero a agosto de 2026) sobre contabilidad, libros por marca, el panel de tesorería, las tareas programadas y cómo cede trabajo a los agentes. Contrastamos el límite de la API de QuickBooks con los movimientos bancarios con otro profesional y con una guía para desarrolladores, los campos del informe de liquidación de Amazon en la documentación de la Selling Partner API, los tipos de token de Mercury y la página de ayuda de las tareas programadas de Claude Cowork. No hemos visto sus skills, ni más prompts que el primero que publicó, ni su código ni sus libros. Los dos scripts de Python de «Cópialo y adáptalo» solo se han ejecutado con datos ficticios; el resto de archivos son plantillas sin probar.
Cómo replicarlo
Deja que las reglas bancarias de QuickBooks Online resuelvan los movimientos evidentes y aparca el resto en una única cuenta «pendiente de revisar» que la API sí puede leer. Crea una app de desarrollador de QuickBooks para tu propia empresa, da las claves a Claude Code y añade un archivo de contexto con tus sociedades, marcas, qué proveedor fabrica para qué marca y cómo se reparten los gastos comunes. Convierte cada tarea mensual en una skill con un orden fijo: empezar una semana antes del último movimiento registrado, traer todas las fuentes, quitar duplicados, asignar, enseñarte lo que no sabe colocar, escribir y pasar un control de integridad. Contabiliza las liquidaciones de Amazon en bruto, a partir del informe de liquidación y con una cuenta puente. Usa tokens bancarios de solo lectura, inicia tú la sesión en los portales de tarjetas y coteja la cuenta de resultados con cifras que conoces antes de que nada llegue a tu asesor.
En dos frases
Alex Willen dirige un pequeño fondo que compra marcas de comercio electrónico y ha sustituido a su contable de 10 dólares la hora por Claude Code trabajando a través de la API de QuickBooks Online: clasifica lo que no recogen las reglas bancarias, contabiliza las comisiones que Amazon descuenta de cada pago, lleva un libro aparte para cada marca y actualiza las previsiones de caja para él y sus inversores. Es un caso de primera mano con límites claros (un negocio sencillo, todo al contado, y un dueño que conoce sus números), y el reparto del trabajo entre reglas bancarias, skills, una clave de API y su propia revisión es fácil de copiar.
Por qué este caso, y por qué ahora
El 17 de octubre de 2026, el CPA estadounidense JT Pells preguntó en X: «Si has automatizado todo tu proceso contable con IA, me encantaría ver cómo lo has hecho». Superó las 21.000 visualizaciones y 79 respuestas, muchas breves. La de Willen fue la más concreta, y ya había contado la construcción en su Substack, The Automated Operator.
Los agentes generalistas entran en la contabilidad de las pymes por dos frentes: Claude Code y las tareas programadas de Claude Cowork, del lado del dueño, y la propia Intuit, cuyo conector de QuickBooks en Claude y cuyo plugin en ChatGPT ya crean y envían facturas, consultan nóminas y comparan préstamos. Willen enseña lo que un dueño hace hoy sin esperar a nadie: una clave de API, unas cuantas skills y la costumbre de revisar el resultado.
Quién lo hace
Willen gestiona un fondo que adquiere marcas de comercio electrónico. Dice que las compras son todas al contado y que sus finanzas son «muy sencillas»: entra dinero de Amazon (la mayoría de las marcas son puro FBA, Logística de Amazon) y de Shopify; sale dinero a proveedores, transporte, publicidad de Amazon, seguros y software; entra dinero de los inversores y sale hacia ellos como distribuciones, y hay pagos a cuentas de depósito en garantía (escrow) cuando compra una marca. Tiene alrededor de una docena de marcas en tres sociedades, porque California cobra una tasa anual de 800 dólares por sociedad, pero trata cada marca como un negocio propio porque a los inversores se les devuelve el dinero marca a marca.
Dos hechos condicionan el diseño: los libros solo tienen que servir a su CPA para los impuestos, y varias marcas comparten cuenta bancaria y tarjeta, así que la visión por marca hay que reconstruirla desde los movimientos.
Para un lector en España: el conector oficial de Intuit para Claude solo está disponible en EE. UU., pero el patrón (reglas, cuenta puente, un libro por línea de negocio y un control de integridad) sirve con cualquier programa contable con API.
Herramientas y arquitectura
Fase 1, ChatGPT como guía (octubre de 2025). Willen pidió primero a ChatGPT que le enseñara a llevar los libros él mismo (criterio de caja, plan de cuentas, capital de los inversores). Funcionó, salvo por la ubicación de los menús de QuickBooks, pero le convertía en la «marioneta» de la IA, que hacía clic donde le decían.
Fase 2, Claude Code con una clave de la API de QuickBooks (ya en enero de 2026). Claude Code le propuso actualizar QuickBooks él mismo. Para ello tuvo que crear una app en el portal de desarrolladores de Intuit y completar su cuestionario de seguridad, un engorro incluso para su propia empresa. Desde entonces le da a Claude el contexto que le daría a un contable; por ejemplo, al liberarse el depósito de una compra, Claude pregunta qué parte del precio era inventario y registra el asiento.
El truco de las reglas de QuickBooks. Todas las cuentas alimentan QuickBooks con reglas bancarias para los movimientos recurrentes. Lo demás va a una categoría genérica porque, en sus palabras, QuickBooks «no permite acceder por API a las transacciones sin categorizar». Otro CPA del mismo hilo, Timothy LeGendre, confirma que la API de QuickBooks no expone los movimientos del feed bancario y que la única forma de trabajarlos ahí es con un agente de navegador. La solución de Willen lo mantiene todo dentro de la API: en cuanto un movimiento está en la cuenta genérica, Claude puede leerlo y reclasificarlo.
Contabilidad mensual. Claude clasifica los movimientos genéricos, revisa todas las transacciones de Amazon, Shopify, Meta, bancos y tarjetas, «se asegura de que todo está registrado» y crea los asientos, incluidos los que recogen las comisiones que Amazon descuenta antes de ingresar el dinero.
Un libro por marca. Esta skill trae Mercury y Amazon por API, y Amex abriendo el navegador en la página de acceso para que Willen escriba sus credenciales antes de que Claude descargue el CSV. Escribe en Google Sheets con una cuenta de servicio de Google Cloud invitada a cada hoja.
Previsiones. Una skill /inventory proyecta 18 meses de ventas y fechas de pedido por marca, con subagentes que traen los datos de Amazon. Un panel hecho con Claude suma costes, condiciones de pago (a menudo 30 % de anticipo y 70 % al terminar) y comisiones de Amazon para decir cuánto puede repartir cada marca.
Paso a paso
- Empieza por las reglas. En QuickBooks, crea reglas bancarias para los movimientos recurrentes y una regla que mande todo lo demás a una cuenta «pendiente de revisar». Los movimientos de esa cuenta se pueden leer y editar por API.
- Consigue acceso a la API. Crea una app de desarrollador para tu propia empresa de QuickBooks y responde tú el cuestionario de Intuit. Guarda las claves fuera de la carpeta del proyecto.
- Escribe el contexto una vez. Sociedades, marcas, qué proveedor fabrica qué producto, cómo se reparten los gastos comunes (él divide a partes iguales entre marcas los gastos de todo el fondo, como QuickBooks o el seguro) y qué preguntas debe hacer Claude siempre.
- Convierte cada tarea en una skill. La de los libros empieza una semana antes del último movimiento registrado, descarta lo ya anotado, casa Amazon con el banco y la tarjeta por importe y fecha, asigna el resto con el contexto, pregunta lo que no sabe colocar y, tras escribir, repasa que cada movimiento de Mercury y Amex esté en algún libro.
- Contabiliza Amazon en bruto. El informe de liquidación detalla las ventas, comisiones, devoluciones y promociones que hay detrás de cada pago. Pasarlas por una cuenta puente permite que el ingreso del banco case con el neto y que la cuenta de resultados muestre lo que de verdad cuesta vender.
- Programa lo que no te necesita. Primero lanzaba los trabajos diarios desde ejecutores de GitHub que llamaban a
claude -p; cuando Anthropic cambió cómo se factura ese uso sin interfaz, Claude calculó que su coste pasaría de 100 a 3.000 dólares al mes, así que los movió a tareas programadas de Claude Cowork incluidas en su plan. - Revisa antes de que salga. Antes de mandar la cuenta de resultados y el balance a su CPA, los compara con los ingresos y pagos de Amazon, con el margen que espera y con el inventario que sabe que tiene.
Cópialo y adáptalo
Willen no publica sus skills ni su código; solo su primer prompt a ChatGPT, citado abajo en extracto. Todo lo demás es una plantilla de Agents Finance basada en su descripción, para una empresa con QuickBooks Online que vende en Amazon. Los dos scripts solo se han probado con datos ficticios. No pongas claves en estos archivos.
Requisitos previos
- QuickBooks Online con permisos de administrador y una app de desarrollador de Intuit para tu propia empresa.
- Claude Code con un plan de pago de Claude (las tareas programadas de Cowork están en todos los planes de pago).
- Acceso en Seller Central a los informes de liquidación (descarga o Selling Partner API).
- Exportaciones del banco y de la tarjeta en CSV; un token bancario de solo lectura si tu banco lo ofrece (Mercury tiene tokens de solo lectura, de lectura y escritura y personalizados; uno de lectura y escritura puede iniciar pagos sin aprobación de un administrador, así que no lo uses aquí). En la UE, la vía equivalente es el acceso a la información de cuentas de PSD2 a través de tu programa contable.
- Python 3.10 o superior (solo la biblioteca estándar).
Extracto de su primer prompt (en inglés): «I need your help with bookkeeping. My new fund is incredibly simple financially… my only bookkeeping need is to have something to give to my CPA come tax time». Escribe el tuyo igual: qué negocio es, para qué sirven los libros y qué no necesitas.
1. CLAUDE.md del proyecto de contabilidad (plantilla de Agents Finance)
# Proyecto de contabilidad: reglas para Claude
## Negocio
- Fondo con 3 sociedades (A, B, C). Marcas por sociedad: ver marcas.csv.
- Criterio de caja. Los libros son para el asesor fiscal; el seguimiento por marca está en las hojas.
## Fuentes
- QuickBooks Online por API (claves en variables de entorno QBO_*; no las muestres nunca).
- Banco: token de Mercury de solo lectura (variable MERCURY_TOKEN). Tarjeta: CSV que descargo yo, en /inbox.
- Amazon: informes de liquidación por cuenta de vendedor, una cuenta por marca.
- Proveedor -> marca: proveedores.csv. Gastos comunes: a partes iguales entre marcas.
## Reglas
- Reclasifica solo movimientos de la cuenta «Pendiente de revisar». No toques movimientos conciliados.
- Asientos: enséñame el asiento completo antes de contabilizarlo. Nunca en un periodo cerrado.
- Lo que no puedas asignar con los archivos anteriores: pregúntame, no adivines.
- Nunca muevas dinero, crees beneficiarios ni cambies reglas bancarias.
- Al terminar, enumera lo que contabilizaste, lo que te saltaste y por qué.
2. Skill de los libros por marca (plantilla de Agents Finance)
---
name: libros-por-marca
description: Actualiza un libro por marca con datos del banco, la tarjeta y Amazon, y comprueba que no falta nada. Úsala cuando diga «actualiza los libros».
---
1. Lee todos los libros de marca y busca la última fecha de cada uno. Fecha de inicio = la más antigua de esas menos 7 días.
2. Trae los movimientos del banco (API) y de la tarjeta (CSV en /inbox) desde esa fecha. Si falta el CSV de la tarjeta, abre la página de acceso y espera a que yo inicie sesión; no me pidas nunca la contraseña.
3. Trae los pagos de liquidación y las facturas de publicidad de Amazon por cuenta de vendedor para el mismo periodo.
4. Descarta lo que ya esté en un libro (misma fuente, fecha e importe).
5. Casa los pagos de Amazon con los abonos del banco y la publicidad con la tarjeta por importe exacto y fecha (+/- 5 días). Una cuenta de vendedor = una marca.
6. Asigna el resto con proveedores.csv; reparte los gastos comunes a partes iguales y márcalos con split_of = importe original.
7. Enséñame una tabla con todo lo que no hayas podido asignar y tu mejor propuesta. Espera.
8. Enséñame las líneas que vas a añadir por marca. Espera a que diga «adelante».
9. Escribe las líneas, mantén cada libro en orden de fecha y ejecuta check_brand_ledgers.py. Si dice STOP, enséñame la salida y no arregles nada por tu cuenta.
3. De la liquidación de Amazon al asiento (plantilla de Agents Finance, MIT-0)
Lee un informe de liquidación en el formato de texto plano V2 de la Selling Partner API (amount-type, amount-description, amount), asigna cada tipo de cargo a una cuenta, comprueba que las líneas suman el pago y que el pago está en el extracto del banco, y genera un CSV con el asiento para revisarlo. No contabiliza nada. El código y sus mensajes están en inglés; los nombres de las cuentas salen de tu mapping.csv.
#!/usr/bin/env python3
"""Agents Finance template (MIT-0). One Amazon settlement report
(GET_V2_SETTLEMENT_REPORT_DATA_FLAT_FILE_V2, tab-delimited) -> summary
journal entry for review + match of the payout to a bank export. Never posts.
Usage: python3 amazon_settlement_je.py settlement.tsv bank.csv mapping.csv BRAND
"""
import csv, sys
from collections import defaultdict
from datetime import datetime, timedelta
from decimal import Decimal
def money(s):
s = (s or "0").strip()
if "," in s and s.rfind(",") > s.rfind("."): # EU format: 1.234,56 or 95,00
s = s.replace(".", "").replace(",", ".")
return Decimal(s.replace(",", ""))
def day(s):
return datetime.strptime(s.strip()[:10], "%Y-%m-%d").date()
settlement_file, bank_file, mapping_file, brand = sys.argv[1:5]
# mapping.csv: transaction-type,amount-type,amount-description,account
# ("*" in transaction-type = any; specific rows such as Refund win)
with open(mapping_file, newline="") as f:
mapping = {(r["transaction-type"], r["amount-type"], r["amount-description"]): r["account"]
for r in csv.DictReader(f)}
rows = list(csv.DictReader(open(settlement_file, newline=""), delimiter="\t"))
header = rows[0] # first row carries the totals
settlement_id = header["settlement-id"]
total = money(header["total-amount"])
deposit_date = day(header["deposit-date"])
lines, unmapped = defaultdict(Decimal), []
for r in rows[1:]:
key = (r["transaction-type"], r["amount-type"], r["amount-description"])
account = mapping.get(key) or mapping.get(("*",) + key[1:])
if account is None:
unmapped.append(key)
account = "SUSPENSE - ask the owner"
lines[account] += money(r["amount"])
problems = []
if sum(lines.values()) != total:
problems.append(f"detail lines add up to {sum(lines.values())}, payout is {total}")
if unmapped:
problems.append(f"unmapped fee types: {sorted(set(unmapped))}")
match = None
for b in csv.DictReader(open(bank_file, newline="")): # date,amount,description
if money(b["amount"]) == total and abs(day(b["date"]) - deposit_date) <= timedelta(days=5):
match = b
break
if match is None:
problems.append(f"no bank credit of {total} within 5 days of {deposit_date}")
# Debit the clearing account with the payout (the bank-feed deposit is matched
# to it later); sales arrive positive -> credit; fees and refunds negative -> debit.
je = [("Amazon clearing", total, Decimal("0"))]
for account, amount in sorted(lines.items()):
je.append((account, -amount if amount < 0 else Decimal("0"),
amount if amount > 0 else Decimal("0")))
if sum(d for _, d, _ in je) != sum(c for _, _, c in je):
problems.append("entry does not balance")
out = f"je_{brand}_{settlement_id}.csv"
with open(out, "w", newline="") as f:
w = csv.writer(f)
w.writerow(["JournalNo", "JournalDate", "Account", "Debit", "Credit", "Memo", "Class"])
for account, d, c in je:
w.writerow([f"AMZ-{settlement_id}", deposit_date.isoformat(), account,
f"{d:.2f}" if d else "", f"{c:.2f}" if c else "",
f"Amazon settlement {settlement_id}", brand])
print(f"{brand} settlement {settlement_id}: payout {total} on {deposit_date}")
print("bank match:", f'{match["date"]} {match["description"]}' if match else "NONE")
for account, d, c in je:
print(f" {account:<34} {d:>10} {c:>10}")
print("STATUS:", "OK, ready for review" if not problems else "STOP")
for p in problems:
print(" -", p)
sys.exit(1 if problems else 0)
Ejemplo de mapping.csv (adáptalo a tu plan de cuentas):
transaction-type,amount-type,amount-description,account
Refund,ItemPrice,Principal,Amazon refunds
*,ItemPrice,Principal,Sales - Amazon
*,ItemPrice,Shipping,Sales - Amazon
*,ItemFees,Commission,Amazon referral fees
*,ItemFees,FBAPerUnitFulfillmentFee,Amazon FBA fulfillment fees
*,other-transaction,Storage Fee,Amazon storage fees
*,Promotion,Principal,Amazon promotions
4. Control de integridad de los libros (plantilla de Agents Finance, MIT-0)
Ejecútalo después de cada escritura. Solo lee exportaciones en CSV del banco, la tarjeta y cada libro.
#!/usr/bin/env python3
"""Agents Finance template (MIT-0). Every bank and card line since START is on
exactly one brand ledger (or split across several), nothing is on a ledger that
the bank does not show, and each ledger is in date order. Read-only.
Usage: python3 check_brand_ledgers.py START bank.csv card.csv ledgers/*.csv
bank/card: date,amount,description
ledger: date,amount,description,source,split_of
source = bank | card | manual; split_of = original amount of a shared charge
"""
import csv, sys
from collections import Counter
from decimal import Decimal
start, bank_file, card_file, *ledger_files = sys.argv[1:]
load = lambda p: list(csv.DictReader(open(p, newline="")))
key = lambda r, s: (s, r["date"][:10], Decimal(r["amount"]))
expected = Counter()
for source, path in (("bank", bank_file), ("card", card_file)):
for r in load(path):
if r["date"][:10] >= start:
expected[key(r, source)] += 1
found, splits, problems = Counter(), Counter(), []
for path in ledger_files:
rows = load(path)
dates = [r["date"][:10] for r in rows]
if dates != sorted(dates):
problems.append(f"{path}: not in date order")
for r in rows:
if r["date"][:10] < start or r.get("source") not in ("bank", "card"):
continue
if r.get("split_of"):
splits[(r["source"], r["date"][:10], Decimal(r["split_of"]))] += Decimal(r["amount"])
else:
found[key(r, r["source"])] += 1
for k, total in splits.items():
if total == k[2]:
found[k] += 1
else:
problems.append(f"split lines add up to {total}, original charge is {k[2]}: {k}")
for k, n in (expected - found).items():
problems.append(f"missing from every ledger ({n}x): {k}")
for k, n in (found - expected).items():
problems.append(f"on a ledger but not in the {k[0]} export, or duplicated ({n}x): {k}")
print("STATUS:", "OK" if not problems else "STOP, show these to the owner")
for p in problems:
print(" -", p)
sys.exit(1 if problems else 0)
5. Tarea programada mensual (plantilla de Agents Finance)
Pégala en una tarea programada de Claude Cowork o en una rutina de Claude Code. Las tareas programadas de Cowork se ejecutan ahora en la nube y solo llegan a los archivos locales mientras la aplicación de escritorio está abierta, así que guarda los datos de entrada en tu cuenta de Claude o en una carpeta conectada.
El día 3 de cada mes a las 08:00:
1. Ejecuta la skill libros-por-marca hasta el paso 7 y mándame la lista de
movimientos que no hayas podido asignar. No escribas nada hasta que responda.
2. Para cada liquidación de Amazon ingresada el mes pasado, ejecuta
amazon_settlement_je.py y mándame los asientos con su STATUS. Contabiliza
solo los que yo apruebe.
3. Enumera los movimientos de QuickBooks que sigan en «Pendiente de revisar»
con la cuenta que propones.
4. Termina con: cuenta de resultados por marca del mes pasado, pagos de Amazon
frente a ingresos en el banco y todo lo que haya variado más de un 20 %
respecto al mes anterior.
6. La revisión del dueño antes de enviar los libros (plantilla de Agents Finance)
- Los ingresos de Amazon de la cuenta de resultados coinciden con el total de Seller Central del año, por marca.
- Los pagos recibidos en el banco son los ingresos menos las comisiones y devoluciones de Amazon.
- El margen bruto de cada marca está en el rango que esperas.
- El inventario al cierre cuadra, a coste, con las unidades que tienes (Amazon, almacén logístico y en tránsito).
- Las aportaciones y distribuciones de los inversores están en patrimonio, no en ingresos ni gastos.
- La liberación del depósito en garantía de cada compra está repartida entre inventario y negocio, como dice el contrato de compraventa.
Un ejemplo concreto (ficticio)
La liquidación de septiembre de una marca de jardinería muestra 1.800,00 dólares de ventas, una devolución de 60,00, 261,00 de comisiones de venta netas, 198,60 de tarifas de FBA, 25,00 de promociones y 20,00 de almacenamiento. Amazon ingresa 1.235,40. El script encuentra el ingreso en el banco un día después, genera un asiento cuadrado (cuenta puente 1.235,40, comisiones y devoluciones al debe, ventas de 1.800,00 al haber) y dice OK. En octubre, Amazon añade una tarifa de colocación de inventario que no está en la tabla: el script la manda a una cuenta transitoria, imprime STOP y el asiento espera.
Resultados declarados por la fuente
Todas las cifras son de Alex Willen, sobre su propio negocio, y no están auditadas:
- Los libros por marca le llevaban dos o tres horas al mes; ahora son «un par de minutos dando a Claude información sobre movimientos». Dice que el paso de revisión antes de escribir lleva tanto tiempo acertando que ya no lo revisa.
- Entre contabilidad, asientos de comisiones de Amazon, libros y previsiones calcula que se ahorra «decenas de horas al mes».
- Su skill de previsión
/inventoryacertó 5 de 5 en sus casos de prueba más difíciles cuando usó un modelo de Claude más reciente con el razonamiento al máximo; el panel de tesorería le llevó medio día. - Cuando los trabajos sin interfaz con
claude -piban a facturarse aparte, Claude estimó su coste mensual en 3.000 dólares en lugar de 100; al pasarlos a tareas programadas siguieron dentro de su plan. - Su anterior contable cobraba 10 dólares la hora; los despachos le ofrecían más de 500 dólares al mes. Sigue con un CPA para los impuestos y usa ChatGPT para «comprobar» a Claude.
Limitaciones y riesgos
- Un negocio sencillo y un solo narrador. Compras al contado, pocos tipos de operación y un dueño que conoce sus cifras. Una respuesta en el mismo hilo advierte de que la contabilidad de un fondo y sus impuestos hay que hacerlos «con mucho cuidado»; su CPA no ha revisado nada de esto en público.
- La revisión que se relaja. Dejó de revisar la lista de líneas antes de escribirlas. Para una hoja de gestión puede valer; para asientos en QuickBooks, mantén la aprobación y el control de integridad aunque lleve meses sin fallar.
- Credenciales. Decidió no dar a Claude su contraseña de Amex e inicia sesión él. Usa tokens bancarios de solo lectura y nunca uno de lectura y escritura para un agente de contabilidad.
- Las cuentas comodín esconden trabajo. Lo que se aparca en «pendiente de revisar» queda fuera del casado del feed bancario; deja esa cuenta a cero cada mes.
- La vía del proveedor es solo para EE. UU., por ahora. Intuit dice que su conector para Claude solo está disponible para clientes de EE. UU.; fuera de allí, la vía que funciona es la API.
Errores frecuentes
- Registrar los pagos de Amazon como ingreso neto de comisiones, de modo que el margen y los cambios de tarifas no se ven.
- Compartir una tarjeta entre marcas sin regla de reparto y arreglarlo a mano cada mes.
- Pedir al agente que «lo clasifique todo» en lugar de solo lo que no recogieron las reglas.
- Corregir en silencio un control fallido en lugar de enseñar al dueño qué se rompió.
Conclusiones
El caso de Willen es útil precisamente porque es normal: QuickBooks Online, reglas bancarias, una clave de API y unas cuantas skills, en manos de un dueño que sabe cómo debería ser su cuenta de resultados. Lo que merece la pena copiar es la cuenta comodín que la API sí puede leer, los asientos de Amazon en bruto con una cuenta puente, un libro por marca con un control de integridad después de cada escritura y una firma humana antes de que nada llegue al asesor.
Fuentes
- Alex Willen en X — respuesta a JT Pells, CPA: «If you've automated your entire accounting process with AI, I'd love to see how you did it» (17 de octubre de 2026, en inglés) (se abre en otra pestaña) (principal)
- Alex Willen en X — «a thousand tasks that each take a little time… I end up saving tens of hours a month» (18 de octubre de 2026, en inglés) (se abre en otra pestaña)
- JT Pells, CPA, en X — el hilo que preguntaba cómo automatiza la gente su contabilidad (17 de octubre de 2026, en inglés) (se abre en otra pestaña)
- The Automated Operator (Alex Willen) — Can AI do my Bookkeeping? (22 de enero de 2026, en inglés) (se abre en otra pestaña)
- The Automated Operator — Updating Financial Ledgers with Claude Code (28 de mayo de 2026, en inglés) (se abre en otra pestaña)
- The Automated Operator — Building a Cashflow Projection Dashboard (14 de mayo de 2026, en inglés) (se abre en otra pestaña)
- The Automated Operator — The Claude-pocalypse, or how I learned to love scheduled tasks (21 de mayo de 2026, en inglés) (se abre en otra pestaña)
- The Automated Operator — Human out of the Loop: Preparing Systems for Autonomy (28 de agosto de 2026, en inglés) (se abre en otra pestaña)
- Timothy LeGendre, CPA, en X — «QBO API doesn't allow bank feed items» (18 de octubre de 2026, en inglés) (se abre en otra pestaña)
- Satva Solutions — Límites de la API de QuickBooks Online: los movimientos bancarios «For Review» no están disponibles por API (en inglés) (se abre en otra pestaña)
- Amazon Selling Partner API — Informes de liquidación (GET_V2_SETTLEMENT_REPORT_DATA_FLAT_FILE_V2) (en inglés) (se abre en otra pestaña)
- Documentación de la API de Mercury — Getting started (tokens de solo lectura, lectura y escritura y personalizados) (en inglés) (se abre en otra pestaña)
- Centro de ayuda de Claude — Schedule recurring tasks in Claude Cowork (en inglés) (se abre en otra pestaña)
- QuickBooks — QuickBooks expands connector in Claude and plugin in ChatGPT with new sales invoicing, payroll, and lending features (en inglés) (se abre en otra pestaña)
Hemos redactado esta ficha con nuestras palabras a partir de las fuentes anteriores y comprobamos que los enlaces funcionaban el 25 de octubre de 2026. ¿Algún dato es incorrecto? Avísanos.
Comparte esta entrada
Esta entrada forma parte de la guía: Agentes de IA para contabilidad