Extrae datos de facturas y registra automáticamente

Última actualización: 2/21/2026Tiempo de lectura: 2 min
#Parseo de documentos#Procesamiento de facturas#OCR#Extracción JSON#Operaciones financieras#Google Sheets#Telegram

Usa LlamaParse para convertir PDFs en texto, y luego GPT-4o para generar JSON estricto de factura. Registra en Google Sheets, archiva en Google Drive y notifica por Telegram.

¿Para quién es esto?

Operaciones financierasOperadores de startupsContabilidadSales ops (facturación)PMs de compras

¿Qué problema resuelve?

Desafío

  • Capturar facturas a mano tarda ~12 min/documento y cuesta ~$10.00 a $50/h.

  • Errores de copia/pega causan ~1-3% de discrepancias (IVA/total/proveedor) y retrabajo.

  • El OCR crudo produce 20,000-60,000 tokens de texto ruidoso en PDFs de varias páginas.

Solución

  • Parsear + extraer en ~45 s/documento reduce el costo laboral a ~$0.63 (94% menos).

  • JSON validado por esquema baja discrepancias a ~0.2% con checks automáticos.

  • Parsing estructurado + prompts dirigidos suele quedar en ~2,000-6,000 tokens (70-95% menos).

Lo que lograrás con este kit de herramientas

Convierte facturas y PDFs en un libro mayor listo para Sheets, con archivo auditable y revisión humana rápida.

Estandariza facturas en un único contrato JSON

La validación por esquema detecta totales faltantes, fechas inválidas y moneda incorrecta antes del registro.

Haz finanzas auditables (sin adjuntos perdidos)

Cada fila JSON enlaza al archivo original guardado: auditorías en 30 s en vez de 30 min buscando.

Descripción del flujo de trabajo

1Documento entrante (Email/Subida)
2Parseo con LlamaParse
3Extracción JSON con GPT-4o (validada por esquema)
4Registro en Sheets + Archivo en Drive
5Aviso por Telegram
1

Step 1: Recopilar documento fuente

Recibe el PDF de factura por adjunto de email (ideal para proveedores) o por carpeta de subida manual y registra metadatos mínimos de entrada.

Prompt / Código accionable:

System: You are an operations assistant. Capture invoice intake metadata.
Return ONLY JSON: {"source":"email|upload","received_at":"ISO-8601","sender":"string","filename":"string","notes":"string"}.
If unknown, use null.

Consejo pro: Guarda el archivo original primero para mantener trazabilidad aunque falle la extracción.

Recepción y guardado de un PDF de factura

Por qué esta herramienta:

Elegido por su ingestión de adjuntos por hilo de correo, preservando remitente y hora para una entrada auditable.

Gmail

Gmail

4.8FreemiumEN

Centro de comunicación con IA y automatización de flujos de trabajo

2

Step 2: Parsear el documento a texto limpio

Envía el PDF guardado a LlamaParse y pide salida fiel al layout (markdown/text) para mantener legibles líneas y totales.

Prompt / Código accionable:

import os
from llama_parse import LlamaParse

parser = LlamaParse(
    api_key=os.environ.get("LLAMA_CLOUD_API_KEY"),
    result_type="markdown",
    verbose=False,
)

# file_path = "/path/to/invoice.pdf"
# documents = parser.load_data(file_path)
# parsed_markdown = "

".join([d.text for d in documents])

Consejo pro: Conserva separadores de página para rastrear campos al origen durante la revisión.

Texto parseado de factura con layout preservado

Por qué esta herramienta:

Elegido por su parsing consciente del layout, manteniendo tablas y líneas legibles para reducir confusiones del LLM y retrabajo.

3

Step 3: Extraer campos de factura a JSON válido

Entrega el texto parseado a GPT-4o y exige salida estricta por esquema para normalizar totales, impuestos y líneas.

Prompt / Código accionable:

System: You are a finance data extraction engine.
Return ONLY valid JSON matching the schema exactly. No markdown, no commentary.

Normalization rules:
- Dates: ISO-8601 (YYYY-MM-DD).
- Amounts: numbers only (no symbols).
- Currency: ISO 4217 when possible (USD, JPY, EUR).
- Line items: include quantity/unit_price when present; else null.

JSON Schema (strict):
{
  "invoice_number": "string|null",
  "invoice_date": "string|null",
  "vendor_name": "string|null",
  "vendor_tax_id": "string|null",
  "bill_to": "string|null",
  "currency": "string|null",
  "subtotal": "number|null",
  "tax": "number|null",
  "total": "number|null",
  "due_date": "string|null",
  "payment_terms": "string|null",
  "line_items": [
    {"description":"string|null","quantity":"number|null","unit_price":"number|null","amount":"number|null"}
  ]
}

Consejo pro: Rechaza si subtotal + impuestos difiere del total por más de 0.5% para detectar drift temprano.

Campos de factura extraídos a JSON

Por qué esta herramienta:

Elegido por su razonamiento fiable en texto semi-estructurado, llenando el esquema y normalizando sin reglas frágiles de regex.

GPT-4o

GPT-4o

4.9FreemiumEN

Inteligencia omnicanal para texto, audio y visión en tiempo real

4

Step 4: Registrar en libro mayor y archivar original

Añade el JSON a Google Sheets como una fila (una factura por fila) y guarda el PDF original en Google Drive, dejando la URL del archivo en la hoja.

Prompt / Código accionable:

// Pseudo-code (cualquier SDK de Sheets/Drive)
const row = [
  data.invoice_number,
  data.invoice_date,
  data.vendor_name,
  data.currency,
  data.subtotal,
  data.tax,
  data.total,
  data.due_date,
  drive_file_url
];
// sheets.appendRow("Invoices", row)

Consejo pro: Usa una clave idempotente como vendor_name + invoice_number + total para evitar duplicados.

Fila en hoja de cálculo con enlace al archivo

Por qué esta herramienta:

Elegido por sus filas tipo base de datos que permiten filtrar, pivotar y auditar sin crear una app.

Google Sheets

Google Sheets

4.8FreemiumEN

Hojas de cálculo colaborativas e inteligentes con el poder de Gemini AI

Por qué esta herramienta:

Elegido por su almacenamiento duradero y URLs compartibles, conectando cada fila con el PDF original para auditoría.

Google Drive

Google Drive

4.8FreemiumEN

SO en la nube con IA para flujos de trabajo automatizados y almacenamiento inteligente

5

Step 5: Enviar notificación de revisión al aprobador

Envía un mensaje breve por Telegram con proveedor, total, vencimiento y enlace de Drive para que un humano apruebe en ~10 s.

Prompt / Código accionable:

Message template:
New invoice ready for review
- Vendor: {vendor_name}
- Total: {currency} {total}
- Due: {due_date}
- Link: {drive_file_url}
Reply with: APPROVE or REJECT:{reason}

Consejo pro: Añade una columna de estado (Pending/Approved/Rejected) en la hoja para reconciliación determinista.

Notificación de revisión con resumen de factura

Por qué esta herramienta:

Elegido por aprobaciones rápidas y sin fricción, manteniendo a humanos en el loop sin un sistema pesado de tickets.

Telegram

Telegram

4.9FreemiumEN

El SO abierto para bots de IA, mini apps y comunidades automatizadas

Flujos de trabajo similares

¿Buscas herramientas diferentes? Explora estos flujos de trabajo alternativos.

Preguntas frecuentes

Funciona mejor con facturas, recibos y estados de proveedor, especialmente PDFs con tablas y columnas; también aplica a reportes/contratos/escaneos, pero la precisión depende del escaneo (objetivo 300 DPI).

Como base realista: ~$0.01-$0.05 por factura en parsing + extracción LLM (pequeña escala) y almacenamiento casi cero; el gran ahorro es bajar mano de obra de ~$10.00 (12 min a $50/h) a ~$0.63 (45 s).

El OCR crudo de un paquete de 5-15 páginas suele ser ~20,000-60,000 tokens, mientras parsing con layout + extracción dirigida suele quedar en ~2,000-6,000 tokens; normalmente 70-95% menos, reduciendo gasto y latencia.

Facturas manuscritas y escaneos de baja resolución bajan la precisión; y formatos inconsistentes de líneas por proveedor suelen requerir un esquema más estricto y reglas de normalización.

Sí: sube el PDF, parsea, ejecuta el prompt, pega el JSON en una fila y envía el mensaje de revisión; la automatización solo elimina copy-paste y mejora consistencia a escala.

Sustituye la notificación por email o Slack y el libro por Airtable o una tabla en BD; mantén el contrato: parsear → JSON por esquema → registrar → enlazar al original.