Saltar al contenido principal

¿Qué es una Cuenta por Pagar? Definición, Ejemplos y CxP vs CxC (2026)

Publicado Actualizado por última vez 19 min de lecturaMike ThriftMike Thrift
¿Qué es una Cuenta por Pagar? Definición, Ejemplos y CxP vs CxC (2026)
En esta página

Las cuentas por pagar (CxP) son el dinero que tu negocio debe a sus proveedores por bienes o servicios que ya has recibido pero aún no has pagado. En el mundo de la contabilidad, las CxP se clasifican como un pasivo corriente en tu balance general: un monto que normalmente vence dentro del próximo año y, a menudo, 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 dinero. Esta guía te mostrará cómo gestionar todo el flujo de trabajo de CxP de manera limpia y eficiente utilizando la herramienta de contabilidad de texto plano, Beancount.


Resumen Rápido

Antes de profundizar en los detalles, cubramos lo esencial:

  • Cuentas por Pagar (CxP) representan tus deudas a corto plazo con los proveedores. Las encontrarás en la sección Liabilities (Pasivos) de tu balance general.
  • Acumulación vs. Efectivo: Las CxP son un concepto que solo existe si llevas tus libros sobre una base de acumulación. Beancount es compatible con flujos de trabajo de acumulación, y su interfaz web, Fava, mostrará tus pasivos correctamente.
  • CxP vs. CxC: Es simple: Las cuentas por pagar son lo que debes, mientras que las cuentas por cobrar (CxC) son lo que otros te deben.

Dónde Viven las CxP en Beancount (y Fava)

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

Liabilities:AccountsPayable

Opcionalmente, puedes crear subcuentas para proveedores principales (por ejemplo, Liabilities:AccountsPayable:ForestPaintSupply).

En Fava, esta cuenta aparecerá en tu Balance General bajo Liabilities. Puedes hacer clic en ella para profundizar y ver los asientos que componen el saldo. Incluso puedes ver esto en acción en el libro mayor de ejemplo público de Fava, que incluye una cuenta Liabilities:AccountsPayable.

Convención de signos: Beancount almacena los saldos de pasivos como créditos (números negativos). Un saldo de -500.00 USD en Liabilities:AccountsPayable significa que debes $500. El informe de partidas abiertas que se muestra a continuación invierte el signo con -SUM(number) para que cada factura impaga muestre un monto pendiente positivo. Una factura totalmente liquidada suma cero y se excluye con HAVING.


Componentes de Beancount que Usarás

Un flujo de trabajo sólido de CxP en Beancount se basa en algunas características principales:

  1. Cuentas: Usarás principalmente tu cuenta Liabilities:AccountsPayable, una cuenta de efectivo como Assets:Bank:Checking, y tus diversas cuentas de gastos (por ejemplo, Expenses:Supplies).
  2. Metadatos: Puedes adjuntar datos clave-valor a cualquier transacción. Para CxP, usarás metadatos como invoice: (factura), due: (vencimiento), terms: (términos) y document: (documento). Establece option "documents" a una carpeta para que Beancount pueda descubrir archivos allí; en Fava, soltar un archivo sobre una fila del diario inserta una entrada de metadatos document:, y habilitar plugin "fava.plugins.link_documents" vincula esas entradas a las directivas de Documento descubiertas.
  3. Etiquetas y Enlaces: Usa #tags (como #ap) para filtrar fácilmente y ^links (como ^INV-10455) para vincular programáticamente una factura y su pago posterior. Esto crea un rastro claro y auditable en el diario — pero los enlaces por sí solos no son suficientes para la consulta de facturas abiertas a continuación.
  4. Consultas (BQL): El lenguaje de consulta 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 "Consulta" de Fava.

Identidad de la factura (requerida para consultas de facturas abiertas): Cada factura y cada pago que la liquida — completo, parcial o con descuento por pronto pago — deben llevar los mismos metadatos de transacción invoice: y due:, además del mismo ^link. La consulta agrupa por payee (beneficiario), any_meta('invoice') y any_meta('due'). Si un pago omite esas claves, su asiento de CxP cae en un grupo separado (payee, null, null) y una factura liquidada aún parece abierta. Mantén (payee, invoice) único entre proveedores. Campos opcionales solo de factura como terms: y document: no necesitan repetirse en los pagos.


Flujo de Trabajo Central de CxP en Beancount

Gestionar las CxP 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 (Esto Crea el Pasivo)

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

; Optionally set your documents folder in your main Beancount file:
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) — una vez. No vuelvas a registrar el gasto en el pago.
  2. Acredita las CxP por $500 (-500.00 USD), registrando que debes esa cantidad a Forest Paint Supply.

El enlace ^INV-10455 junto con los metadatos invoice: / due: forman la identidad de la factura. Cada pago posterior de esta factura debe reutilizar los tres.

2) Pagar la Factura (Esto Liquida el Pasivo)

Cuando pagas la factura, creas una transacción que mueve dinero desde tu cuenta bancaria para liquidar el pasivo. Copia invoice: y due: de la factura al pago para que ambos asientos compartan un grupo de consulta.

a) Pago Estándar (Sin Descuento):

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

Esta entrada reduce tu saldo de CxP en $500 y el saldo de tu cuenta corriente en la misma cantidad. El pasivo de esta factura ahora está liquidado (la suma de CxP del grupo es cero). El gasto permanece en la factura de agosto — el pago no toca Expenses:.

b) Descuento por Pronto Pago (por ejemplo, "2/10, n/30") — elige exactamente un método:

Si los términos son "2/10, n/30", puedes obtener un descuento del 2% si pagas dentro de los 10 días. Para nuestra factura de $500, eso es un descuento de $10. El bloque a continuación muestra dos alternativas mutuamente excluyentes: La Opción 1 está activa; la Opción 2 está completamente comentada para que un pegado no registre ambas. Para usar la Opción 2 en su lugar, comenta la Opción 1 y descomenta la Opción 2. Nunca dejes ambas activas — eso liquida las CxP dos veces e inventa un segundo beneficio de $10. Qué cuenta de ingresos vs. gastos uses es una decisión de política contable para tus libros; Beancount no exige una sobre la otra.

; Pick EXACTLY ONE of the two transactions below for a given invoice.
; Do not paste both into the same ledger — that clears AP twice.
 
; Option 1: Record the discount as other income
2025-08-12 * "Forest Paint Supply" "Early payment discount INV-10455" ^INV-10455
  invoice: "INV-10455"
  due: "2025-09-04"
  Liabilities:AccountsPayable     500.00 USD
  Assets:Bank:Checking           -490.00 USD
  Income:Discounts:Payables       -10.00 USD
 
; Option 2: Reduce the original expense directly
; 2025-08-12 * "Forest Paint Supply" "Early payment discount INV-10455" ^INV-10455
;   invoice: "INV-10455"
;   due: "2025-09-04"
;   Liabilities:AccountsPayable     500.00 USD
;   Assets:Bank:Checking           -490.00 USD
;   Expenses:Supplies:Paint         -10.00 USD

En cualquiera de las alternativas por sí sola, liquidas el pasivo completo de $500, reduces el saldo bancario por los $490 que realmente pagaste y contabilizas el beneficio de $10. Reemplaza la transacción de pago completo estándar con la alternativa elegida — no apiles un pago con descuento sobre el pago en efectivo de $500, y no combines este bloque con la sección 2a para la misma factura.

3) Manejo de Pagos Parciales

Reutiliza la misma identidad invoice: / due: / ^link en cada pago a plazos para que cada pago reduzca el mismo grupo de factura abierta.

; Invoice for $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
 
; First payment of $400
2025-08-20 * "Acme Parts" "Payment INV-9001 (1/3)" ^INV-9001
  invoice: "INV-9001"
  due: "2025-09-09"
  Liabilities:AccountsPayable     400.00 USD
  Assets:Bank:Checking           -400.00 USD
 
; Final payment of $800
2025-09-05 * "Acme Parts" "Payment INV-9001 (final)" ^INV-9001
  invoice: "INV-9001"
  due: "2025-09-09"
  Liabilities:AccountsPayable     800.00 USD
  Assets:Bank:Checking           -800.00 USD

Después del primer pago, la suma de CxP del grupo de factura es -800.00 USD (aún debes $800). Después del pago final, es cero. Filtrar el diario por ^INV-9001 aún muestra el historial completo.


Consultas Útiles (BQL)

Puedes ejecutar estas consultas en la pestaña "Consulta" de Fava o desde la línea de comandos con bean-query (referencia BQL). Verificadas a continuación con Beancount 3.2.3 y beanquery 0.2.0.

Consejo: La función any_meta() busca una clave de metadatos primero en el asiento y luego recurre a la transacción — por lo que los valores invoice: / due: a nivel de transacción aparecen en el conjunto de resultados.

CxP Abiertas por Proveedor (Vista de Saldo):

Esta consulta suma el inventario de pasivos por proveedor. Un total de crédito (negativo) es lo que aún debes a ese proveedor.

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

Facturas abiertas en una fecha fija (informe de partidas abiertas):

Un informe de partidas abiertas responde "¿qué queda sin pagar?". Debe (1) cortar en una fecha de referencia explícita para que los pagos posteriores no puedan liquidar silenciosamente una instantánea anterior, (2) agrupar por la identidad compartida de la factura (payee + invoice: + due:), (3) excluir grupos liquidados (cero) y (4) mostrar un monto pendiente positivo — no un crédito de CxP firmado crudo.

Fecha de referencia utilizada en todo lo siguiente: 2025-09-04.

Libro mayor inicial de CxP descargable

Descarga accounts-payable-starter.bean — un libro mayor autocontenido generado a partir del bloque completo a continuación (aperturas de cuentas, efectivo inicial ficticio, facturas liquidadas / parciales / impagas, con fecha de referencia 2025-09-04). Cada nombre y monto son datos de muestra ficticios. No se requiere ningún PDF de factura, carpeta de documentos u otro archivo para validarlo o consultarlo.

Primera ejecución desde un directorio temporal limpio (fijado en Beancount 3.2.3 / beanquery 0.2.0):

# Save the download as accounts-payable-starter.bean in this directory, then:
uvx --from beancount==3.2.3 bean-check accounts-payable-starter.bean
 
uvx --from beanquery==0.2.0 --with beancount==3.2.3 bean-query accounts-payable-starter.bean \
  "SELECT payee, any_meta('invoice') AS invoice, any_meta('due') AS due, -SUM(number) AS outstanding WHERE account ~ '^Liabilities:AccountsPayable' AND date <= 2025-09-04 GROUP BY payee, invoice, due HAVING SUM(number) < 0 ORDER BY due, payee"

bean-check sale con código 0 y sin salida. La consulta devuelve las cinco filas abiertas en la tabla esperada a continuación (Forest ausente; Acme pendiente 800.00; suma del pendiente positivo = 1500.00). Regenera la descarga confirmada con yarn generate:ap-starter después de editar el bloque; yarn generate:ap-starter --check falla si el artefacto está desactualizado.

Pega este fixture completo (aperturas + efectivo inicial + las tres formas de factura, más filas de vencidas hoy / vencidas / casos límite para el envejecimiento). Las alternativas de descuento por pronto pago para INV-10455 permanecen completamente comentadas — activa exactamente una solo si reemplazas el pago estándar de Forest; nunca dejes ambas opciones de descuento activas junto con ese pago.

; accounts-payable-starter — complete runnable AP workflow
option "operating_currency" "USD"
 
2025-01-01 open Assets:Bank:Checking USD
2025-01-01 open Equity:Opening-Balances USD
2025-01-01 open Liabilities:AccountsPayable USD
2025-01-01 open Expenses:Supplies:Paint USD
2025-01-01 open Expenses:Parts USD
2025-01-01 open Expenses:Office USD
2025-01-01 open Income:Discounts:Payables USD
 
; Fictional opening cash — enough to cover every payment in this ledger
2025-01-01 * "Opening balance"
  Assets:Bank:Checking           5000.00 USD
  Equity:Opening-Balances       -5000.00 USD
 
; Settled before as-of — must disappear from the open report
2025-08-05 * "Forest Paint Supply" "Paint order INV-10455" ^INV-10455 #ap
  invoice: "INV-10455"
  due: "2025-09-04"
  Expenses:Supplies:Paint         500.00 USD
  Liabilities:AccountsPayable    -500.00 USD
 
2025-09-01 * "Forest Paint Supply" "Payment INV-10455" ^INV-10455
  invoice: "INV-10455"
  due: "2025-09-04"
  Liabilities:AccountsPayable     500.00 USD
  Assets:Bank:Checking           -500.00 USD
 
; Early-payment discount alternatives for INV-10455 — mutually exclusive with
; the standard payment above AND with each other. To take 2/10 instead: delete
; (or comment out) the 2025-09-01 payment, then uncomment EXACTLY ONE option.
; Never leave both options active — that clears AP twice.
;
; Option 1: Record the discount as other income
; 2025-08-12 * "Forest Paint Supply" "Early payment discount INV-10455" ^INV-10455
;   invoice: "INV-10455"
;   due: "2025-09-04"
;   Liabilities:AccountsPayable     500.00 USD
;   Assets:Bank:Checking           -490.00 USD
;   Income:Discounts:Payables       -10.00 USD
;
; Option 2: Reduce the original expense directly
; 2025-08-12 * "Forest Paint Supply" "Early payment discount INV-10455" ^INV-10455
;   invoice: "INV-10455"
;   due: "2025-09-04"
;   Liabilities:AccountsPayable     500.00 USD
;   Assets:Bank:Checking           -490.00 USD
;   Expenses:Supplies:Paint         -10.00 USD
 
; Partial before as-of; final $800 payment is AFTER 2025-09-04
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
 
2025-08-20 * "Acme Parts" "Payment INV-9001 (1/3)" ^INV-9001
  invoice: "INV-9001"
  due: "2025-09-09"
  Liabilities:AccountsPayable     400.00 USD
  Assets:Bank:Checking           -400.00 USD
 
2025-09-05 * "Acme Parts" "Payment INV-9001 (final)" ^INV-9001
  invoice: "INV-9001"
  due: "2025-09-09"
  Liabilities:AccountsPayable     800.00 USD
  Assets:Bank:Checking           -800.00 USD
 
; Unpaid — not yet due as of 2025-09-04
2025-08-15 * "Bright Office Co" "INV-220" ^INV-220
  invoice: "INV-220"
  due: "2025-09-14"
  Expenses:Office                 300.00 USD
  Liabilities:AccountsPayable    -300.00 USD
 
; Unpaid — due today (as-of == due)
2025-08-20 * "Helix Industries" "INV-440" ^INV-440
  invoice: "INV-440"
  due: "2025-09-04"
  Expenses:Parts                  200.00 USD
  Liabilities:AccountsPayable    -200.00 USD
 
; Unpaid — 30 days overdue as of 2025-09-04
2025-07-06 * "Metro Hardware" "INV-77" ^INV-77
  invoice: "INV-77"
  due: "2025-08-05"
  Expenses:Parts                  150.00 USD
  Liabilities:AccountsPayable    -150.00 USD
 
; Overpayment — credit balance (not an amount due; see edge cases)
2025-08-01 * "Credit Vendor" "INV-C1" ^INV-C1
  invoice: "INV-C1"
  due: "2025-08-20"
  Expenses:Parts                  100.00 USD
  Liabilities:AccountsPayable    -100.00 USD
 
2025-08-18 * "Credit Vendor" "Overpay INV-C1" ^INV-C1
  invoice: "INV-C1"
  due: "2025-08-20"
  Liabilities:AccountsPayable     150.00 USD
  Assets:Bank:Checking           -150.00 USD
 
; Missing due metadata — still open; age into a separate bucket, do not drop
2025-08-12 * "No Due Co" "INV-ND" ^INV-ND
  invoice: "INV-ND"
  Expenses:Office                  50.00 USD
  Liabilities:AccountsPayable     -50.00 USD

Consulta de partidas abiertas (beanquery 0.2.0 admite HAVING SUM(number) < 0; no admite comparar un inventory con 0 usando COST(SUM(position)) != 0):

SELECT payee,
       any_meta('invoice') AS invoice,
       any_meta('due')     AS due,
       -SUM(number)        AS outstanding
WHERE account ~ "^Liabilities:AccountsPayable"
  AND date <= 2025-09-04
GROUP BY payee, invoice, due
HAVING SUM(number) < 0
ORDER BY due, payee;

Filas esperadas al 2025-09-04 (derivadas independientemente de las transacciones: factura − pagos con fecha ≤ referencia; Forest suma a 0 y está ausente):

payeeinvoicedueoutstanding
No Due CoINV-ND(vacío)50.00
Metro HardwareINV-772025-08-05150.00
Helix IndustriesINV-4402025-09-04200.00
Acme PartsINV-90012025-09-09800.00
Bright Office CoINV-2202025-09-14300.00

Suma del pendiente positivo = 1,500.00. La factura de $500 de Forest desapareció. Acme aún muestra $800 ($1,200 − $400); el pago de $800 del 2025-09-05 es después de la fecha de referencia, por lo que no puede cerrar esta instantánea.

Concilia con el pasivo de CxP en el mismo corte:

SELECT COST(SUM(position)) AS ap_balance
WHERE account ~ "^Liabilities:AccountsPayable"
  AND date <= 2025-09-04;

Esperado: ap_balance = (-1450.00 USD). Independientemente: pendiente abierto $1,500 menos el crédito de proveedor de $50 (abajo) = $1,450 adeudados → inventario de pasivo -1450.00 USD.

Mueve la fecha de referencia un día después (date <= 2025-09-05) y vuelve a ejecutar la consulta de partidas abiertas: la fila de Acme desaparece (pago final incluido), y ap_balance se convierte en (-650.00 USD). Un pago después de la fecha del informe nunca reescribe el informe anterior.

Créditos de proveedor / sobre pagos: HAVING SUM(number) < 0 mantiene solo los montos que aún debes. Un sobre pago invierte la suma de CxP del grupo a positivo. Lístalos por separado — no trates un saldo de CxP positivo como "monto adeudado":

SELECT payee,
       any_meta('invoice') AS invoice,
       any_meta('due')     AS due,
       SUM(number)         AS credit
WHERE account ~ "^Liabilities:AccountsPayable"
  AND date <= 2025-09-04
GROUP BY payee, invoice, due
HAVING SUM(number) > 0
ORDER BY payee;

Esperado: una fila — Credit Vendor / INV-C1 / 2025-08-20 / credit = 50.00 (pagaste de más $50).

due: faltante: INV-ND aún aparece en el informe abierto con un vencimiento vacío. Clasifícalo por antigüedad en un segmento dedicado missing-due (a continuación); nunca lo omitas silenciosamente.

Listar Facturas con PDFs Adjuntos:

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

Dónde Ver las CxP en Fava

  • Balance General: Navega a Balance SheetLiabilitiesAccountsPayable para ver el saldo total y profundizar en los detalles de la transacción.
  • Diario: Filtra el diario por account:Liabilities:AccountsPayable o un enlace específico como ^INV-xxxx para ver el ciclo de vida completo de una factura.
  • Documentos: Con option "documents" establecido, Beancount descubre archivos bajo ese árbol. Las vistas de Documentos de Fava y el plugin link_documents (ver arriba) conectan esos archivos con transacciones que llevan metadatos document:.

Envejecimiento de CxP, Rotación y Conciencia de Flujo de Efectivo

Programa de envejecimiento (exportación reproducible + segmentos): beanquery 0.2.0 puede emitir las filas de partidas abiertas anteriores, pero no proporciona una expresión integrada de segmentos de envejecimiento sobre los metadatos due. Exporta el informe abierto y luego clasifica en segmentos de manera determinista contra la misma fecha de referencia.

bean-query -f csv -o open-ap.csv accounts-payable-starter.bean \
  "SELECT payee, any_meta('invoice') AS invoice, any_meta('due') AS due, -SUM(number) AS outstanding WHERE account ~ '^Liabilities:AccountsPayable' AND date <= 2025-09-04 GROUP BY payee, invoice, due HAVING SUM(number) < 0 ORDER BY due, payee"

Columnas CSV: payee, invoice, due, outstanding.

Regla de segmento para la fecha de referencia D = 2025-09-04 y el due de cada fila (ISO YYYY-MM-DD):

CondiciónSegmento
due vacíomissing-due
due > Dnot-yet-due
due == Ddue-today
1 ≤ (D − due) ≤ 301-30-overdue
31 ≤ (D − due) ≤ 6031-60-overdue
(D − due) ≥ 6161+-overdue

Python compacto (solo stdlib) que implementa esa tabla:

from datetime import date
 
AS_OF = date(2025, 9, 4)
# Apply bucket() to each CSV row's due column (ISO YYYY-MM-DD or empty).
 
def bucket(due: str | None) -> str:
    if not due:
        return "missing-due"
    days = (AS_OF - date.fromisoformat(due)).days
    if days < 0:
        return "not-yet-due"
    if days == 0:
        return "due-today"
    if days <= 30:
        return "1-30-overdue"
    if days <= 60:
        return "31-60-overdue"
    return "61+-overdue"

Envejecimiento esperado para las filas abiertas al 2025-09-04:

invoiceduedías vencidossegmentooutstanding
INV-ND(vacío)missing-due50.00
INV-772025-08-05301-30-overdue150.00
INV-4402025-09-040due-today200.00
INV-90012025-09-09−5not-yet-due800.00
INV-2202025-09-14−10not-yet-due300.00

El vencido hoy no se pliega en "corriente": due == as-of es su propio segmento. No vencido aún requiere due > as-of.

  • Ratio de Rotación de CxP: Compras Totales a Proveedores ÷ CxP Promedio. Una métrica relacionada, Días de Pago Pendientes (DPO), es aproximadamente 365 ÷ Ratio de Rotación.
  • Si No Puedes Pagar a Tiempo: Las CxP están destinadas a deuda a corto plazo. Si un proveedor acepta un reembolso formal a más largo plazo, reclasifica fuera de CxP a un pagaré — mantén la misma identidad de factura en la conversión para que el grupo de CxP se liquide.
2025-10-01 * "Helix Industries" "Convert overdue AP to 12-month note" ^INV-1110
  invoice: "INV-1110"
  due: "2025-09-15"
  Liabilities:AccountsPayable    2000.00 USD
  Liabilities:NotesPayable      -2000.00 USD

Mejores Prácticas para CxP en un Libro Mayor de Texto Plano

  • Ve sin Papel: Almacena los PDF de facturas bajo tu árbol de documentos y adjúntalos con la clave de metadatos document: (y la carga de Fava / link_documents cuando uses Fava).
  • Reutiliza la Identidad de Factura en los Pagos: Pon los mismos invoice:, due: y ^link en la factura y en cada pago que la liquide.
  • Informa Contra una Fecha de Referencia: Corta las consultas de partidas abiertas y de antigüedad con date <= AAAA-MM-DD para que un pago posterior no pueda reescribir una instantánea anterior; envejece con la misma D.
  • Mantén los Metadatos Ordenados: Usar consistentemente invoice:, due: y terms: mejora la búsqueda, las consultas y las revisiones financieras.
  • Acumulación en Todo Momento: Si quieres informes útiles de CxP, comprométete a llevar tus libros sobre una base de acumulación. Beancount y Fava manejan los saldos de acumulación en el Balance General sin plugins especiales.

Inicio Rápido para Copiar y Pegar: Factura de Proveedor + Pago

Para el flujo de trabajo completo de partidas abiertas (liquidada + parcial + impaga, fecha de referencia, antigüedad), prefiere el inicio de CxP descargable anterior. El par mínimo de factura + pago a continuación aún muestra la identidad en ambas partes: abre las cuentas primero (o incluye estas aperturas en tu libro mayor principal). Los metadatos opcionales document: se omiten aquí para que nada fuera del libro mayor sea necesario.

option "operating_currency" "USD"
 
2025-01-01 open Assets:Bank:Checking USD
2025-01-01 open Liabilities:AccountsPayable USD
2025-01-01 open Expenses:Supplies:Paint USD
 
; ---- Bill ----
2025-08-05 * "Forest Paint Supply" "Paint order INV-10455" ^INV-10455 #ap
  invoice: "INV-10455"
  due: "2025-09-04"
  Expenses:Supplies:Paint         500.00 USD
  Liabilities:AccountsPayable    -500.00 USD
 
; ---- Payment (no discount) ----
2025-09-01 * "Forest Paint Supply" "Payment INV-10455" ^INV-10455
  invoice: "INV-10455"
  due: "2025-09-04"
  Liabilities:AccountsPayable     500.00 USD
  Assets:Bank:Checking           -500.00 USD

Con Beancount 3.2.3 y beanquery 0.2.0, cargar este inicio no produce errores, la cuenta de CxP suma a cero y la consulta de factura + vencimiento devuelve un solo grupo (Forest Paint Supply, INV-10455, 2025-09-04) cuyo monto está vacío (liquidada) — no una fila facturada más una fila de pago huérfana (…, null, null).


Este guía tiene fines educativos y no constituye asesoramiento fiscal, legal o financiero.

Referencias y Lecturas Adicionales:

Comparte este artículo

Fuente: https://beancount.io/es/blog/2025/08/20/what-is-accounts-payable

Publicado: 20 de agosto de 2025

Actualizado por última vez: 15 de septiembre de 2026