Els comptes a pagar (AP) són els diners que la teva empresa deu als seus proveïdors per béns o serveis que ja has rebut però que encara no has pagat. En el món de la comptabilitat, l'AP es classifica com un passiu corrent al teu balanç de situació—un import que normalment venç dins del proper any, i sovint entre 30 i 60 dies.
Aquest concepte és central per a la comptabilitat de meritació, on registres la despesa i el passiu corresponent en el moment que arriba la factura, no quan realment envies els diners. Aquesta guia et mostrarà com gestionar tot el flux de treball d'AP de manera neta i eficient utilitzant l'eina de comptabilitat en text pla, Beancount.
Resum Ràpid
Abans de submergir-nos en els detalls, cobrim els aspectes essencials:
- Comptes a Pagar (AP) representen els teus deutes a curt termini amb els proveïdors. Els trobaràs a la secció
Liabilitiesdel teu balanç de situació. - Meritació vs. Caixa: L'AP és un concepte que només existeix si portes els teus llibres sobre una base de meritació. Beancount suporta completament els fluxos de treball de meritació, i la seva interfície web, Fava, mostrarà els teus passius correctament.
- AP vs. AR: És senzill: Els comptes a pagar són el que deus, mentre que els comptes a cobrar (AR) són el que altres et deuen a tu.
On Viu l'AP a Beancount (i Fava)
Per començar a fer el seguiment de l'AP, primer has de declarar un compte per a això al teu llibre major. Una convenció estàndard és:
Liabilities:AccountsPayable
Opcionalment, pots crear subcomptes per a proveïdors principals (per exemple, Liabilities:AccountsPayable:ForestPaintSupply).
A Fava, aquest compte apareixerà al teu Balanç de Situació sota Liabilities. Pots fer-hi clic per aprofundir i veure els assentaments que componen el saldo. Fins i tot pots veure-ho en acció al llibret d'exemple públic de Fava, que inclou un compte Liabilities:AccountsPayable.
Convenció de signe: Beancount emmagatzema els saldos de passius com a crèdits (nombres negatius). Un saldo de -500.00 USD a Liabilities:AccountsPayable significa que deus $500. L'informe d'articles oberts a continuació inverteix el signe amb -SUM(number) perquè cada factura impagada mostri un import pendent positiu. Una factura totalment liquidada suma zero i s'exclou amb HAVING.
Blocs de Construcció de Beancount que Utilitzaràs
Un flux de treball d'AP robust a Beancount es basa en unes quantes característiques clau:
- Comptes: Principalment utilitzaràs el teu compte
Liabilities:AccountsPayable, un compte de caixa comAssets:Bank:Checking, i els teus diversos comptes de despeses (per exemple,Expenses:Supplies). - Metadades: Pots adjuntar dades clau-valor a qualsevol transacció. Per a l'AP, utilitzaràs metadades com
invoice:,due:,terms:, idocument:. Estableixoption "documents"a una carpeta perquè Beancount pugui descobrir fitxers allà; a Fava, deixar anar un fitxer sobre una fila del diari insereix una entrada de metadadadocument:, i activarplugin "fava.plugins.link_documents"enllaça aquestes entrades amb directives de Document descobertes. - Etiquetes i Enllaços: Utilitza
#tags(com#ap) per a un filtratge fàcil i^links(com^INV-10455) per lligar programàticament una factura i el seu pagament posterior. Això crea un rastre clar i auditable al diari—però els enllaços sols no són suficients per a la consulta de factures obertes a continuació. - Consultes (BQL): El llenguatge de consulta semblant a SQL de Beancount (BQL) et permet executar informes potents, com llistar tots els comptes a pagar oberts ordenats per data de venciment, directament des de la línia d'ordres amb
bean-queryo a la pàgina "Query" de Fava.
Identitat de la factura (requerida per a consultes de factures obertes): Cada factura i cada pagament que la liquida—complet, parcial o amb descompte per pagament anticipat—ha de portar la mateixa metadada de transacció invoice: i due:, més el mateix ^link. La consulta agrupa per payee, any_meta('invoice'), i any_meta('due'). Si un pagament omet aquestes claus, el seu assentament d'AP cau en un grup separat (payee, null, null) i una factura liquidada encara sembla oberta. Mantingues (payee, invoice) únic entre proveïdors. Els camps opcionals només de factura com terms: i document: no cal que es repeteixin als pagaments.
Flux de Treball Central d'AP a Beancount
Gestionar l'AP al teu llibre major implica dos o tres passos clau: registrar la factura, pagar-la, i de vegades gestionar pagaments parcials o descomptes.
1) Registra la Factura del Proveïdor (Això Crea el Passiu)
Primer, comptabilitzes la despesa i crees el compte a pagar quan arriba 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 USDAquesta única entrada aconsegueix dues coses crítiques:
- Reconeix immediatament la despesa de $500 en el període correcte (agost)—una vegada. No tornis a registrar la despesa en el pagament.
- Abona l'AP amb $500 (
-500.00 USD), registrant que deus aquest import a Forest Paint Supply.
L'enllaç ^INV-10455 més les metadades invoice: / due: formen la identitat de la factura. Cada pagament posterior d'aquesta factura ha de reutilitzar els tres.
2) Paga la Factura (Això Cancela el Passiu)
Quan pagues la factura, crees una transacció que mou diners del teu compte bancari per cancel·lar el passiu. Copia invoice: i due: de la factura al pagament perquè tots dos assentaments comparteixin un grup de consulta.
a) Pagament Estàndard (Sense Descompte):
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 USDAquesta entrada redueix el teu saldo d'AP en $500 i el saldo del teu compte corrent en la mateixa quantitat. El passiu per aquesta factura ara està cancel·lat (la suma d'AP del grup és zero). La despesa roman a la factura d'agost—el pagament no toca Expenses:.
b) Descompte per Pagament Anticipat (per exemple, "2/10, n/30")—tria exactament un mètode:
Si els termes són "2/10, n/30", pots obtenir un descompte del 2% si pagues dins de 10 dies. Per a la nostra factura de $500, això és un descompte de $10. La tanca a continuació mostra dues alternatives mútuament excloents: L'Opció 1 està activa; l'Opció 2 està completament comentada perquè un enganxament no pugui comptabilitzar ambdues. Per utilitzar l'Opció 2, comenta l'Opció 1 i descomenta l'Opció 2. Mai deixis ambdues actives—això cancel·la l'AP dues vegades i inventa un segon benefici de $10. Quin compte d'ingressos vs. despeses utilitzis és una elecció de política comptable per als teus llibres; Beancount no requereix una sobre l'altra.
; 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 USDEn qualsevol de les alternatives per si sola, cancel·les el passiu complet de $500, redueixes el saldo bancari pels $490 que realment vas pagar, i comptabilitzes el benefici de $10. Substitueix la transacció de pagament complet estàndard per l'alternativa triada—no apilis un pagament amb descompte a sobre del pagament en efectiu de $500, i no combinis aquesta tanca amb la secció 2a per a la mateixa factura.
3) Gestió de Pagaments Parcials
Reutilitza la mateixa identitat invoice: / due: / ^link en cada termini perquè cada pagament redueixi el mateix grup de factura oberta.
; 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 USDDesprés del primer pagament, la suma d'AP del grup de factura és -800.00 USD (encara deus $800). Després del pagament final és zero. Filtrar el diari per ^INV-9001 encara mostra l'historial complet.
Consultes Útils (BQL)
Pots executar aquestes consultes a la pestanya "Query" de Fava o des de la línia d'ordres amb bean-query (referència BQL). Verificat a continuació amb Beancount 3.2.3 i beanquery 0.2.0.
Consell: La funció
any_meta()busca una clau de metadada primer a l'assentament, després recorre a la transacció—així que els valorsinvoice:/due:a nivell de transacció apareixen al conjunt de resultats.
AP obert per Proveïdor (Vista de Saldo):
Aquesta consulta suma l'inventari de passius per proveïdor. Un total deutor (negatiu) és el que encara deus a aquest proveïdor.
SELECT payee, COST(SUM(position)) AS amount
WHERE account ~ "^Liabilities:AccountsPayable"
GROUP BY payee
ORDER BY payee;Factures obertes a una data fixa (informe d'articles oberts):
Un informe d'articles oberts respon "què queda per pagar?" Ha de (1) tallar a una data explícita de referència perquè pagaments posteriors no puguin cancel·lar silenciosament una instantània anterior, (2) agrupar per la identitat compartida de factura (payee + invoice: + due:), (3) excloure grups liquidats (zero), i (4) mostrar un import pendent positiu—no un crèdit d'AP signat en brut.
Data de referència utilitzada a tot arreu a continuació: 2025-09-04.
Llibre major inicial d'AP descarregable
Descarrega accounts-payable-starter.bean—un llibre major autònom generat a partir de la tanca completa a continuació (obertures de comptes, caixa inicial fictícia, factures liquidades / parcials / impagades, a data de 2025-09-04). Cada nom i import són dades de mostra fictícies. No es requereix cap PDF de factura, carpeta de documents o altre fitxer per validar-lo o consultar-lo.
Primera execució des d'un directori temporal net (amb Beancount 3.2.3 / beanquery 0.2.0 fixats):
# 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 surt amb 0 i sense sortida. La consulta retorna les cinc files obertes a la taula esperada a continuació (Forest absent; Acme pendent 800.00; suma de pendents positius = 1500.00). Regenera la descàrrega compromesa amb yarn generate:ap-starter després d'editar la tanca; yarn generate:ap-starter --check falla si l'artefacte està desactualitzat.
Enganxa aquesta fixa completa (obertures + caixa inicial + les tres formes de factura, més files de venciment avui / vençudes / casos límit per a l'antiguitat). Les alternatives de descompte per pagament anticipat per a INV-10455 romanen completament comentades—activa exactament una només si substitueixes el pagament estàndard de Forest; mai deixis ambdues opcions de descompte actives juntament amb aquest pagament.
; 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 USDConsulta d'articles oberts (beanquery 0.2.0 suporta HAVING SUM(number) < 0; no suporta comparar un inventory amb 0 amb 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;Files esperades a data de 2025-09-04 (derivades independentment de les transaccions: factura − pagaments datats ≤ data de referència; Forest suma 0 i és absent):
| payee | invoice | due | outstanding |
|---|---|---|---|
| No Due Co | INV-ND | (buit) | 50.00 |
| Metro Hardware | INV-77 | 2025-08-05 | 150.00 |
| Helix Industries | INV-440 | 2025-09-04 | 200.00 |
| Acme Parts | INV-9001 | 2025-09-09 | 800.00 |
| Bright Office Co | INV-220 | 2025-09-14 | 300.00 |
Suma de pendents positius = 1,500.00. La factura de $500 de Forest ha desaparegut. Acme encara mostra $800 ($1,200 − $400); el pagament de $800 del 2025-09-05 és després de la data de referència, així que no pot tancar aquesta instantània.
Concilia amb el passiu d'AP al mateix tall:
SELECT COST(SUM(position)) AS ap_balance
WHERE account ~ "^Liabilities:AccountsPayable"
AND date <= 2025-09-04;Esperat: ap_balance = (-1450.00 USD). Independentment: pendent obert $1,500 menys el crèdit de proveïdor de $50 (a continuació) = $1,450 degut → inventari de passius -1450.00 USD.
Mou la data de referència un dia més tard (date <= 2025-09-05) i torna a executar la consulta d'articles oberts: la fila d'Acme desapareix (pagament final inclòs), i ap_balance esdevé (-650.00 USD). Un pagament després de la data de l'informe mai reescriu l'informe anterior.
Crèdits de proveïdor / sobre-pagaments: HAVING SUM(number) < 0 manté només els imports que encara deus. Un sobre-pagament inverteix la suma d'AP del grup a positiva. Llista aquests per separat—no tractis un saldo d'AP positiu com a "import degut":
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;Esperat: una fila—Credit Vendor / INV-C1 / 2025-08-20 / credit = 50.00 (vas sobre-pagar per $50).
due: absent: INV-ND encara apareix a l'informe obert amb un venciment buit. Envelleix-lo en un cub dedicat missing-due (a continuació); mai l'ometis silenciosament.
Llista de Factures amb PDFs Adjunts:
SELECT date, payee, any_meta('invoice') AS invoice, any_meta('document') AS file
WHERE account ~ "^Liabilities:AccountsPayable"
ORDER BY date DESC;On Veure l'AP a Fava
- Balanç de Situació: Navega a
Balance Sheet→Liabilities→AccountsPayableper veure el saldo total i aprofundir en els detalls de la transacció. - Diari: Filtra el diari per
account:Liabilities:AccountsPayableo un enllaç específic com^INV-xxxxper veure el cicle de vida complet d'una factura. - Documents: Amb
option "documents"establert, Beancount descobreix fitxers sota aquest arbre. Les vistes de Documents de Fava i el connectorlink_documents(vegeu més amunt) connecten aquests fitxers amb transaccions que porten metadadadocument:.
Antiguitat d'AP, Rotació i Consciència de Flux de Caixa
Calendari d'antiguitat (exportació reproduïble + cubs): beanquery 0.2.0 pot emetre les files d'articles oberts anteriors, però no proporciona una expressió integrada de cubs d'antiguitat sobre la metadada due. Exporta l'informe obert, després agrupa en cubs de manera determinista contra la mateixa data de referència.
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"Columnes CSV: payee, invoice, due, outstanding.
Regla de cubs per a la data de referència D = 2025-09-04 i el due de cada fila (ISO YYYY-MM-DD):
| Condició | Cub |
|---|---|
due buit | missing-due |
due > D | not-yet-due |
due == D | due-today |
1 ≤ (D − due) ≤ 30 | 1-30-overdue |
31 ≤ (D − due) ≤ 60 | 31-60-overdue |
(D − due) ≥ 61 | 61+-overdue |
Python compacte (només stdlib) que implementa aquesta taula:
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"Antiguitat esperada per a les files obertes a data de 2025-09-04:
| invoice | due | dies vençuda | cub | outstanding |
|---|---|---|---|---|
| INV-ND | (buit) | — | missing-due | 50.00 |
| INV-77 | 2025-08-05 | 30 | 1-30-overdue | 150.00 |
| INV-440 | 2025-09-04 | 0 | due-today | 200.00 |
| INV-9001 | 2025-09-09 | −5 | not-yet-due | 800.00 |
| INV-220 | 2025-09-14 | −10 | not-yet-due | 300.00 |
Vençuda avui no es plega dins de "corrent": due == data de referència és el seu propi cub. No vençuda requereix due > data de referència.
- Ràtio de Rotació d'AP:
Compres Totals a Proveïdors ÷ AP Mitjà. Una mètrica relacionada, Dies de Pagament Pendents (DPO), és aproximadament365 ÷ Ràtio de Rotació. - Si No Pots Pagar a Temps: L'AP està pensat per a deute a curt termini. Si un proveïdor accepta un reemborsament formal a llarg termini, reclasifica fora d'AP a un pagaré—mantingues la mateixa identitat de factura en la conversió perquè el grup d'AP es cancel·li.
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 USDBones Pràctiques per a l'AP en un Llibre Major de Text Pla
- Ves Sense Paper: Emmagatzema els PDFs de factures sota el teu arbre de documents i adjunta'ls amb la clau de metadada
document:(i la pujada de Fava /link_documentsquan utilitzis Fava). - Reutilitza la Identitat de Factura en els Pagaments: Posa el mateix
invoice:,due:, i^linka la factura i a cada pagament que la liquida. - Informa Contra una Data de Referència: Talla les consultes d'articles oberts i d'antiguitat amb
date <= YYYY-MM-DDperquè un pagament posterior no pugui reescriure una instantània anterior; envelleix amb la mateixaD. - Mantingues les Metadades Ordenades: Utilitzar consistentment
invoice:,due:, iterms:millora la cerca, les consultes i les revisions financeres. - Meritació Fins al Final: Si vols informes d'AP útils, compromet-te a portar els teus llibres sobre una base de meritació. Beancount i Fava gestionen els saldos de meritació al Balanç de Situació sense connectors especials.
Inici Ràpid de Copiar i Enganxar: Factura de Proveïdor + Pagament
Per al flux de treball complet d'articles oberts (liquidada + parcial + impagada, data de referència, antiguitat), prefereix l'iniciador d'AP descarregable anterior. El parell mínim de factura+pagament a continuació encara mostra la identitat en ambdues potes—obre els comptes primer (o inclou aquestes obertures al teu llibre major principal). La metadada opcional document: s'omet aquí perquè no es requereix res fora del llibre major.
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 USDAmb Beancount 3.2.3 i beanquery 0.2.0, carregar aquest iniciador no produeix errors, el compte d'AP suma zero, i la consulta d'invoice+due retorna un únic grup (Forest Paint Supply, INV-10455, 2025-09-04) l'import del qual és buit (liquidat)—no una fila facturada més una fila de pagament òrfena (…, null, null).
Aquesta guia té finalitats educatives i no constitueix assessorament fiscal, legal o financer.
Referències i Lectura Addicional:
- Sintaxi del llenguatge Beancount — comptes, metadades, etiquetes, enllaços i documents (verificat 2026-09-11)
- Referència del Llenguatge de Consulta Beancount (BQL) (verificat 2026-09-11)
- Característiques de Fava — pujada de documents i
link_documents(verificat 2026-09-11) any_meta()per consultar metadades de transacció/assentament (Martin Blais, llista de correu de Beancount; verificat 2026-09-11)





