Saltar al contenido principal

Una publicación con la etiqueta "accounts payable"

Ver todas las etiquetas

¿Qué es Cuentas por Pagar? Una Guía Amigable con Beancount para Rastrear Facturas de Proveedores en Texto Plano

· Lectura de 9 minutos
Mike Thrift
Mike Thrift
Marketing Manager

Las cuentas por pagar (AP) son el dinero que tu negocio debe a sus proveedores por bienes o servicios que ya has recibido pero que aún no has pagado. En contabilidad, AP se clasifica como un pasivo corriente en tu balance: una cantidad que normalmente se debe pagar dentro del próximo año, y con frecuencia dentro de 30 a 60 días.

Este concepto es central en la contabilidad de acumulación, donde registras el gasto y el pasivo correspondiente en el momento en que llega la factura, no cuando realmente envías el efectivo. Esta guía te mostrará cómo gestionar todo el flujo de trabajo de AP de forma limpia y eficiente usando la herramienta de contabilidad en texto plano, Beancount.

2025-08-20-what-is-accounts-payable


Resumen rápido

Antes de entrar en detalles, cubramos lo esencial:

  • Cuentas por pagar (AP) representa tus deudas a corto plazo con los proveedores. La encontrarás bajo la sección Liabilities de tu balance.
  • Acumulación vs. Efectivo: AP solo existe si llevas tus libros bajo una base de acumulación. Beancount soporta totalmente los flujos de trabajo de acumulación, y su interfaz web, Fava, mostrará tus pasivos correctamente.
  • AP vs. AR: Es simple: las cuentas por pagar son lo que debes, mientras que las cuentas por cobrar (AR) son lo que otros te deben.

Dónde vive AP en Beancount (y Fava)

Para comenzar a rastrear AP, primero debes declarar una cuenta para ello en tu libro mayor. Una convención estándar es:

Liabilities:AccountsPayable

Opcionalmente puedes crear subcuentas para proveedores principales (p. ej., Liabilities:AccountsPayable:ForestPaintSupply).

En Fava, esta cuenta aparecerá en tu Balance bajo Liabilities. Puedes hacer clic para profundizar y ver una lista de todos los ítems abiertos y pagados, dándote una visión clara de tus obligaciones. Incluso puedes ver esto en acción en el libro mayor de ejemplo público de Fava, que incluye una cuenta Liabilities:AccountsPayable.


Bloques de construcción de Beancount que usarás

Un flujo de trabajo robusto de AP en Beancount se apoya en algunas funciones clave:

  1. Cuentas: Usarás principalmente tu cuenta Liabilities:AccountsPayable, una cuenta de efectivo como Assets:Bank:Checking, y tus diversas cuentas de gasto (p. ej., Expenses:Supplies).
  2. Metadatos: Puedes adjuntar pares clave‑valor a cualquier transacción. Para AP usarás metadatos como invoice:, due:, terms: y document:. Fava reconoce la clave document: y creará automáticamente un enlace clicable al archivo adjunto si configuras una carpeta de documentos.
  3. Etiquetas y enlaces: Usa #tags (como #ap) para filtrar fácilmente y ^links (como ^INV-10455) para vincular programáticamente una factura con su pago posterior. Esto crea una pista clara y auditable.
  4. Consultas (BQL): El lenguaje de consultas similar a SQL de Beancount (BQL) te permite ejecutar informes potentes, como listar todas las cuentas por pagar abiertas ordenadas por fecha de vencimiento, directamente desde la línea de comandos con bean-query o en la página “Query” de Fava.

Flujo de trabajo central de AP en Beancount

Gestionar AP en tu libro mayor implica dos o tres pasos clave: registrar la factura, pagarla y, a veces, manejar pagos parciales o descuentos.

1) Registrar la factura del proveedor (crea el pasivo)

Primero, registras el gasto y creas la cuenta por pagar cuando llega la factura.

; Opcionalmente define tu carpeta de documentos en el archivo principal de Beancount:
option "documents" "documents"

2025-08-05 * "Forest Paint Supply" "Paint order INV-10455" ^INV-10455 #ap
invoice: "INV-10455"
due: "2025-09-04"
terms: "2/10, n/30"
document: "invoices/2025-08-05-forest-paint-INV-10455.pdf"
Expenses:Supplies:Paint 500.00 USD
Liabilities:AccountsPayable -500.00 USD

Esta única entrada logra dos cosas críticas:

  1. Reconoce inmediatamente el gasto de $500 en el período correcto (agosto).
  2. Crea un pasivo correspondiente de $500, mostrando que le debes dinero a Forest Paint Supply.

El enlace ^INV-10455 es un identificador único que te permite adjuntar el mismo enlace al pago más tarde, manteniendo la factura y el pago lógicamente conectados.

2) Pagar la factura (elimina el pasivo)

Cuando pagas la factura, creas una transacción que mueve dinero de tu cuenta bancaria para liquidar el pasivo.

a) Pago estándar (sin descuento):

2025-09-01 * "Forest Paint Supply" "Payment INV-10455" ^INV-10455
Liabilities:AccountsPayable 500.00 USD
Assets:Bank:Checking -500.00 USD

Esta entrada reduce tu saldo de AP en $500 y el saldo de tu cuenta corriente en la misma cantidad. El pasivo queda liquidado.

b) Descuento por pronto pago (p. ej., “2/10, n/30”):

Si los términos son “2/10, n/30”, puedes obtener un 2 % de descuento si pagas dentro de 10 días. Para nuestra factura de 500,esoequivalea500, eso equivale a 10 de descuento. Aquí tienes dos formas aceptables de registrarlo—elige una y sé consistente.

; Opción 1: Registrar el descuento como otro ingreso (efecto contra‑gasto)
2025-08-12 * "Forest Paint Supply" "Early payment discount INV-10455" ^INV-10455
Liabilities:AccountsPayable 500.00 USD
Assets:Bank:Checking -490.00 USD
Income:Discounts:Payables -10.00 USD

; Opción 2: Reducir directamente el gasto original
2025-08-12 * "Forest Paint Supply" "Early payment discount INV-10455" ^INV-10455
Liabilities:AccountsPayable 500.00 USD
Assets:Bank:Checking -490.00 USD
Expenses:Supplies:Paint -10.00 USD

En ambos casos, eliminas el pasivo completo de 500,reducestusaldobancarioen500, reduces tu saldo bancario en 490 (lo que realmente pagaste) y contabilizas el beneficio de $10.

3) Manejar pagos parciales

La función de enlaces de Beancount hace que rastrear pagos parciales sea sencillo y limpio.

; Factura de $1,200
2025-08-10 * "Acme Parts" "INV-9001" ^INV-9001
invoice: "INV-9001"
due: "2025-09-09"
Expenses:Parts 1200.00 USD
Liabilities:AccountsPayable -1200.00 USD

; Primer pago de $400
2025-08-20 * "Acme Parts" "Payment INV-9001 (1/3)" ^INV-9001
Liabilities:AccountsPayable 400.00 USD
Assets:Bank:Checking -400.00 USD

; Pago final de $800
2025-09-05 * "Acme Parts" "Payment INV-9001 (final)" ^INV-9001
Liabilities:AccountsPayable 800.00 USD
Assets:Bank:Checking -800.00 USD

Al usar el enlace ^INV-9001 en las tres transacciones, puedes filtrar fácilmente tu diario para ver el historial completo de esta factura específica y sus pagos asociados.


Consultas útiles (BQL)

Puedes ejecutar estas consultas en la pestaña “Query” de Fava o desde la línea de comandos con bean-query.

Consejo: La función any_meta() es extremadamente útil para extraer campos de metadatos como invoice: y document: en los resultados de tus consultas.

AP abierto por proveedor (vista de saldo):

Esta consulta suma el saldo pendiente actual que le debes a cada proveedor.

SELECT payee, COST(SUM(position)) AS amount
WHERE account "^Liabilities:AccountsPayable"
GROUP BY payee
ORDER BY payee;

AP abierto por factura + fecha de vencimiento:

Obtén una lista ordenada de cada factura abierta, ordenada por su fecha de vencimiento, para ayudarte a priorizar pagos.

SELECT payee,
any_meta('invoice') AS invoice,
any_meta('due') AS due,
COST(SUM(position)) AS amount
WHERE account "^Liabilities:AccountsPayable"
GROUP BY payee, invoice, due
ORDER BY due, payee;

Listar facturas con PDFs adjuntos:

Esta consulta encuentra todas tus facturas y muestra la ruta al documento enlazado.

SELECT date, payee, any_meta('invoice') AS invoice, any_meta('document') AS file
WHERE account "^Liabilities:AccountsPayable"
ORDER BY date DESC;

Dónde ver AP en Fava

  • Balance: Navega a Balance SheetLiabilitiesAccountsPayable para ver el saldo total y profundizar en los detalles de cada transacción.
  • Diario: Filtra el diario con account:Liabilities:AccountsPayable o con un enlace específico como ^INV-xxxx para ver el ciclo de vida completo de una factura.
  • Barra lateral de documentos: Si usas el metadato document: y configuras la directiva option "documents", verás una lista de documentos enlazados en la barra lateral.

Envejecimiento de AP, Rotación y Conciencia de Flujo de Caja

  • Calendario de envejecimiento: Este informe agrupa tus facturas abiertas por tiempo de vencimiento (p. ej., 1‑30 días, 31‑60 días, más de 60 días). En Beancount, el enfoque más práctico es ejecutar la consulta “AP abierto por factura + fecha de vencimiento” anterior, exportar los resultados a CSV y agruparlos en una hoja de cálculo o con un pequeño script Python.
  • Ratio de rotación de AP: Es una medida rápida de cuán rápido pagas a tus proveedores. La fórmula es Compras totales a proveedores ÷ Promedio de AP. Una métrica relacionada, Días de Cuentas por Pagar (DPO), se calcula aproximadamente como 365 ÷ Ratio de rotación.
  • Si no puedes pagar a tiempo: AP está pensado para deudas a corto plazo. Si un proveedor acepta un plazo de pago más largo y formal, deberías reclasificar la deuda fuera de AP y moverla a una nota por pagar.
2025-10-01 * "Helix Industries" "Convert overdue AP to 12-month note" ^INV-1110
Liabilities:AccountsPayable 2000.00 USD
Liabilities:NotesPayable -2000.00 USD

Mejores prácticas para AP en un libro mayor de texto plano

  • Sin papel: Guarda los PDFs de facturas en tu carpeta documents y enlázalos con la clave de metadato document:.
  • Usa enlaces de forma consistente: Pon el número de factura único en un ^link tanto en la factura como en todas las entradas de pago asociadas.
  • Mantén los metadatos ordenados: Usar consistentemente invoice:, due: y terms: mejora la búsqueda, las consultas y las revisiones financieras.
  • Acumulación total: Si deseas informes útiles de AP, comprométete a llevar tus libros bajo una base de acumulación. Beancount y Fava manejan esto de forma excelente.

Copia‑pega de inicio: Factura de proveedor + Pago

; ---- Factura ----
2025-08-05 * "Forest Paint Supply" "Paint order INV-10455" ^INV-10455 #ap
invoice: "INV-10455"
due: "2025-09-04"
document: "invoices/2025-08-05-forest-paint-INV-10455.pdf"
Expenses:Supplies:Paint 500.00 USD
Liabilities:AccountsPayable -500.00 USD

; ---- Pago (sin descuento) ----
2025-09-01 * "Forest Paint Supply" "Payment INV-10455" ^INV-10455
Liabilities:AccountsPayable 500.00 USD
Assets:Bank:Checking -500.00 USD

Esta guía es con fines educativos y no constituye asesoramiento fiscal, legal o financiero.

Referencias y lecturas adicionales: