Перейти до основного вмісту

Що таке кредиторська заборгованість? Визначення, приклади та AP проти AR (2026)

Опубліковано Останнє оновлення 18 хв. читанняMike ThriftMike Thrift
Що таке кредиторська заборгованість? Визначення, приклади та AP проти AR (2026)
Зміст цієї сторінки

Кредиторська заборгованість (AP) — це гроші, які ваш бізнес винен своїм постачальникам за товари чи послуги, які ви вже отримали, але ще не оплатили. У світі бухгалтерії AP класифікується як поточне зобов’язання у вашому балансі — сума, яка зазвичай підлягає сплаті протягом наступного року, а часто протягом 30–60 днів.

Це поняття є центральним для методу нарахування в бухгалтерському обліку, де ви фіксуєте витрати та відповідне зобов’язання в момент отримання рахунку, а не коли фактично надсилаєте гроші. Цей посібник покаже вам, як керувати всім процесом кредиторської заборгованості чисто та ефективно за допомогою інструменту текстового обліку Beancount.


Короткий підсумок

Перш ніж заглибитися в деталі, розглянемо основне:

  • Кредиторська заборгованість (AP) представляє ваші короткострокові борги перед постачальниками. Ви знайдете її в розділі Зобов'язання вашого балансу.
  • Метод нарахування vs. касовий метод: AP — це поняття, яке існує лише якщо ви ведете облік за методом нарахування. Beancount повністю підтримує робочі процеси за методом нарахування, а його веб-інтерфейс Fava коректно відображатиме ваші зобов'язання.
  • AP vs. AR: Все просто: Кредиторська заборгованість — це те, що ви винні, тоді як дебіторська заборгованість (AR) — це те, що інші винні вам.

Де AP живе в Beancount (і Fava)

Щоб почати відстежувати кредиторську заборгованість (AP), спочатку потрібно оголосити для неї рахунок у вашій книзі. Стандартна конвенція:

Liabilities:AccountsPayable

За бажанням ви можете створити субрахунки для основних постачальників (наприклад, Liabilities:AccountsPayable:ForestPaintSupply).

У Fava цей рахунок з'явиться у вашому балансі під розділом Liabilities. Ви можете натиснути на нього, щоб заглибитися та побачити проводки, що складають баланс. Ви навіть можете побачити це в дії у публічному прикладовому журналі Fava, який містить рахунок Liabilities:AccountsPayable.

Конвенція знаків: Beancount зберігає залишки зобов'язань як кредити (від'ємні числа). Залишок -500.00 USD на Liabilities:AccountsPayable означає, що ви винні $500. Звіт про відкриті позиції нижче змінює знак за допомогою -SUM(number), щоб кожен несплачений рахунок показував позитивну суму до сплати. Повністю погашений рахунок дає суму нуль і виключається за допомогою HAVING.


Будівельні блоки Beancount, які ви використовуватимете

Надійний робочий процес кредиторської заборгованості (AP) у Beancount спирається на кілька основних функцій:

  1. Рахунки: Ви переважно використовуватимете свій рахунок Liabilities:AccountsPayable, грошовий рахунок, наприклад Assets:Bank:Checking, та різні рахунки витрат (наприклад, Expenses:Supplies).
  2. Метадані: Ви можете прикріпити дані у форматі ключ-значення до будь-якої транзакції. Для AP ви будете використовувати метадані, такі як invoice:, due:, terms: та document:. Встановіть option "documents" на папку, щоб Beancount міг виявляти файли там; у Fava, перетягування файлу на рядок журналу вставляє запис метаданих document:, а ввімкнення plugin "fava.plugins.link_documents" пов'язує ці записи з виявленими директивами Document.
  3. Теги та посилання: Використовуйте #теги (наприклад, #ap) для легкого фільтрування та ^посилання (наприклад, ^INV-10455), щоб програмно пов'язати рахунок та його подальшу оплату разом. Це створює чіткий, зручний для аудиту слід у журналі — але лише посилань недостатньо для запиту відкритих рахунків нижче.
  4. Запити (BQL): Мова запитів Beancount у стилі SQL (BQL) дозволяє виконувати потужні звіти, наприклад, перелік усіх відкритих кредиторських заборгованостей, відсортованих за датою сплати, безпосередньо з командного рядка за допомогою bean-query або на сторінці "Query" у Fava.

Ідентифікація рахунку (обов'язкова для запитів відкритих рахунків): Кожен рахунок та кожна оплата, що його погашає — повна, часткова або з достроковою знижкою — мають містити ті самі метадані транзакції invoice: та due:, а також те саме ^посилання. Запит групує за payee, any_meta('invoice') та any_meta('due'). Якщо оплата пропускає ці ключі, її запис AP потрапляє в окрему групу (payee, null, null), і погашений рахунок все одно виглядає відкритим. Зберігайте унікальність (payee, invoice) серед постачальників. Додаткові поля, які стосуються лише рахунків, такі як terms: та document:, не обов'язково повторювати на оплатах.


Core AP Workflow у Beancount

Управління кредиторською заборгованістю (AP) у вашій книзі обліку складається з двох або трьох ключових кроків: фіксація рахунку, його оплата, а іноді й обробка часткових платежів або знижок.

1) Фіксація рахунку постачальника (Це створює зобов'язання)

Спочатку ви відображаєте витрати та створюєте кредиторську заборгованість, коли надходить рахунок.

; 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

Цей єдиний запис виконує дві критично важливі дії:

  1. Він одразу визнає витрати в розмірі $500 у правильному періоді (серпні) — один раз. Не повторюйте відображення витрат під час оплати.
  2. Він кредитує AP на $500 (-500.00 USD), фіксуючи, що ви винні цю суму компанії Forest Paint Supply.

Посилання ^INV-10455 разом з метаданими invoice: / due: формують ідентичність рахунку. Кожна наступна оплата цього рахунку повинна використовувати всі три елементи.

2) Оплата рахунку (Це погашає зобов'язання)

Коли ви оплачуєте рахунок, ви створюєте транзакцію, яка переміщує гроші з вашого банківського рахунку для погашення зобов'язання. Скопіюйте invoice: та due: з рахунку на платіж, щоб обидві проводки належали до однієї групи запитів.

a) Стандартна оплата (без знижки):

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

Цей запис зменшує ваш баланс AP на $500 і баланс вашого поточного рахунку на ту саму суму. Зобов'язання за цим рахунком тепер погашено (сума AP у групі дорівнює нулю). Витрати залишаються на рахунку за серпень — оплата не впливає на Expenses:.

b) Знижка за дострокову оплату (наприклад, "2/10, n/30") — оберіть лише один метод:

Якщо умови "2/10, n/30", ви можете отримати знижку 2% за оплату протягом 10 днів. Для нашого рахунку на $500 це знижка в розмірі $10. Рамка нижче показує два взаємовиключні варіанти: Варіант 1 є активним; Варіант 2 повністю закоментований, щоб вставка не заблокувала обидва. Щоб використати Варіант 2, закоментуйте Варіант 1 і розкоментуйте Варіант 2. Ніколи не залишайте обидва активними — це двічі погасить AP та створить другу вигоду в $10. Який рахунок доходів чи витрат використовувати — це вибір облікової політики для ваших книг; Beancount не вимагає одного над іншим.

; 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

У будь-якому окремому варіанті ви погашаєте повне зобов'язання на $500, зменшуєте баланс банку на фактично сплачені $490 та враховуєте вигоду в $10. Замініть стандартну транзакцію повної оплати обраним варіантом — не додавайте платіж зі знижкою поверх грошового платежу на $500 і не поєднуйте цю рамку з розділом 2a для того самого рахунку.

3) Обробка часткових платежів

Використовуйте ту саму ідентичність invoice: / due: / ^link для кожного платежу частинами, щоб кожен платіж зменшував ту саму групу відкритих рахунків.

; 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

Після першого платежу сума AP у групі рахунку становить -800.00 USD (ви все ще винні $800). Після остаточного платежу вона дорівнює нулю. Фільтрація журналу за ^INV-9001 все ще показує повну історію.


Корисні запити (BQL)

Ці запити можна виконати у вкладці «Query» Fava або з командного рядка за допомогою bean-query (довідник BQL). Перевірено нижче з Beancount 3.2.3 та beanquery 0.2.0.

Порада: функція any_meta() спочатку шукає ключ метаданих у проводці, а потім повертається до транзакції — тому значення invoice: / due: на рівні транзакції з'являються в наборі результатів.

Відкрита кредиторська заборгованість за постачальником (балансовий вигляд):

Цей запит підсумовує інвентаризацію зобов'язань за кожним постачальником. Кредит (від'ємний) підсумок — це те, що ви ще винні цьому постачальнику.

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

Відкриті рахунки на фіксовану дату (звіт за відкритими позиціями):

Звіт за відкритими позиціями відповідає на питання «що залишилося неоплаченим?». Він повинен (1) обрізати на явній даті звітності, щоб пізніші платежі не могли мовчки закрити попередній знімок, (2) групувати за спільною ідентичністю рахунку (payee + invoice: + due:), (3) виключати закриті (нульові) групи та (4) показувати позитивну непогашену суму — а не сирий підписаний кредит кредиторської заборгованості.

Дата звітності, що використовується скрізь нижче: 2025-09-04.

Завантажуваний стартовий реєстр кредиторської заборгованості

Завантажте accounts-payable-starter.bean — один самодостатній реєстр, згенерований із повного огородження нижче (відкриття рахунків, вигадані початкові грошові кошти, закриті / часткові / неоплачені рахунки, станом на 2025-09-04). Кожне ім'я та сума — вигадані приклади даних. Не потрібен жоден PDF-рахунок, папка з документами чи інший файл для перевірки або запиту.

Перший запуск із чистого тимчасового каталогу (зафіксовані 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 завершується з кодом 0 без виводу. Запит повертає п'ять відкритих рядків в очікуваній таблиці нижче (Forest відсутній; Acme непогашена 800.00; сума позитивних непогашених = 1500.00). Перегенеруйте завантажений артефакт за допомогою yarn generate:ap-starter після редагування огородження; yarn generate:ap-starter --check завершується помилкою, якщо артефакт застарілий.

Вставте цей повний макет (відкриття + початкові грошові кошти + три форми рахунків, плюс рядки для оплати сьогодні / прострочених / крайових випадків для старіння). Альтернативи ранньої знижки для INV-10455 залишаються повністю закоментованими — активуйте рівно одну, лише якщо ви замінюєте стандартний платіж Forest; ніколи не залишайте обидва варіанти знижки активними разом із цим платежем.

; 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

Запит відкритих позицій (beanquery 0.2.0 підтримує HAVING SUM(number) < 0; він не підтримує порівняння inventory з 0 за допомогою 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;

Очікувані рядки станом на 2025-09-04 (виведені незалежно з транзакцій: рахунок − платежі з датою ≤ даті звітності; Forest зводиться до 0 і відсутній):

payeeinvoicedueoutstanding
No Due CoINV-ND(порожньо)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

Сума позитивних непогашених = 1,500.00. Рахунок Forest на $500 зник. Acme все ще показує $800 ($1,200 − $400); платіж на $800 від 2025-09-05 є після дати звітності, тому він не може закрити цей знімок.

Звірте з зобов'язанням кредиторської заборгованості на той самий момент:

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

Очікувано: ap_balance = (-1450.00 USD). Незалежно: відкрита непогашена сума $1,500 мінус кредит постачальника на $50 (нижче) = $1,450 заборгованості → інвентаризація зобов'язань -1450.00 USD.

Перенесіть дату на один день пізніше (date <= 2025-09-05) і повторно виконайте запит відкритих позицій: рядок Acme зникає (включено фінальний платіж), а ap_balance стає (-650.00 USD). Платіж після дати звітності ніколи не переписує раніший звіт.

Кредити постачальників / переплати: HAVING SUM(number) < 0 залишає лише суми, які ви ще винні. Переплата перевертає суму кредиторської заборгованості групи в позитивну. Перелічіть їх окремо — не розглядайте позитивний баланс кредиторської заборгованості як «суму до сплати»:

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;

Очікувано: один рядок — Credit Vendor / INV-C1 / 2025-08-20 / credit = 50.00 (ви переплатили $50).

Відсутній due:: INV-ND все ще з'являється у відкритому звіті з порожнім due. Класифікуйте його за віком у виділений сегмент missing-due (нижче); ніколи не пропускайте його мовчки.

Перелік рахунків із прикріпленими PDF:

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

Де переглянути AP у Fava

  • Балансовий звіт: Перейдіть до Балансовий звітЗобов'язанняРахунки до сплати, щоб побачити загальний баланс і перейти до деталей транзакцій.

:Журнал Відфільтруйте журнал за account:Liabilities:AccountsPayable або за конкретним посиланням, як-от ^INV-xxxx, щоб побачити повний життєвий цикл рахунку-фактури. . * *Документи: З налаштованою опцією option "documents" Beancount виявляє файли під цим деревом каталогів. Перегляд документів у Fava та плагін link_documents (див. вище) пов'язують ці файли з транзакціями, які мають метадані document:.

.


Старіння кредиторської заборгованості, оборотність та усвідомлення грошових потоків

Графік старіння (відтворюваний експорт + сегменти): beanquery 0.2.0 може видавати рядки відкритих позицій, зазначені вище, але не надає вбудованого виразу для сегментів старіння на основі метаданих due. Експортуйте звіт про відкриті позиції, а потім визначте сегменти детерміновано відносно тієї ж дати звіту.

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"

Колонки CSV: payee, invoice, due, outstanding.

Правило сегментації для дати звіту D = 2025-09-04 та due кожного рядка (ISO YYYY-MM-DD):

УмоваСегмент
due порожнєmissing-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 (лише стандартна бібліотека), що реалізує цю таблицю:

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"

Очікуване старіння для відкритих рядків станом на 2025-09-04:

invoicedueднів простроченнясегментoutstanding
INV-ND(порожньо)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

Сегмент "due-today" не включається до "поточних": due == дата_звіту є окремим сегментом. Для "not-yet-due" потрібно, щоб due > дата_звіту.

  • Коефіцієнт оборотності кредиторської заборгованості: Загальні закупівлі у постачальників ÷ Середня кредиторська заборгованість. Пов'язаний показник, період погашення кредиторської заборгованості (DPO), приблизно дорівнює 365 ÷ Коефіцієнт оборотності.
  • Якщо ви не можете оплатити вчасно: Кредиторська заборгованість призначена для короткострокового боргу. Якщо постачальник погоджується на формальне, довгострокове погашення, перекласифікуйте цю суму з кредиторської заборгованості у векселі до сплати — збережіть ту саму ідентичність рахунку-фактури під час конвертації, щоб група кредиторської заборгованості очистилася.
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

Найкращі практики для кредиторської заборгованості у текстовій бухгалтерській книзі

  • Переходьте на безпаперовий облік: Зберігайте PDF-файли рахунків у дереві ваших документів і прикріплюйте їх за допомогою ключа метаданих document: (а також завантаження у Fava / link_documents, якщо ви користуєтеся Fava).
  • Використовуйте ідентичність рахунку для платежів: Вказуйте ті самі invoice:, due: та ^link на рахунку та на кожному платежі, який його погашає.
  • Звітуйте на основі дати: Обмежуйте запити щодо відкритих позицій та старіння за допомогою date <= YYYY-MM-DD, щоб пізніший платіж не міг переписати раніший знімок; використовуйте ту саму дату для розрахунку старіння.
  • Тримайте метадані в порядку: Послідовне використання invoice:, due: та terms: покращує пошук, запити та фінансові перевірки.
  • Нарахування завжди: Якщо ви хочете отримувати корисні звіти про кредиторську заборгованість, зобов'яжіться вести облік за методом нарахування. Beancount і Fava обробляють нараховані залишки в балансовому звіті без спеціальних плагінів.

Копіювання-вставка для старту: рахунок постачальника + оплата

Для повного робочого процесу з відкритими позиціями (погашено + частково + неоплачено, станом на дату, старіння) віддайте перевагу завантажуваному стартовому файлу для кредиторської заборгованості вище. Мінімальна пара «рахунок + оплата» нижче також показує ідентичність обох сторін проводки — спочатку відкрийте рахунки (або включіть ці відкриття у свій головний реєстр). Необов’язкові метадані document: тут опущено, щоб нічого поза реєстром не вимагалося.

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

З Beancount 3.2.3 та beanquery 0.2.0 завантаження цього стартового файлу не викликає помилок, рахунок кредиторської заборгованості зводиться до нуля, а запит «рахунок + заборгованість» повертає одну групу (Forest Paint Supply, INV-10455, 2025-09-04), сума якої порожня (погашено) — а не рядок із виставленим рахунком плюс окремий рядок оплати (…, null, null).


Цей посібник призначений для освітніх цілей і не є податковою, юридичною чи фінансовою консультацією.

Посилання та додаткове читання:

Поділитися цією статтею

Джерело: https://beancount.io/uk/blog/2025/08/20/what-is-accounts-payable

Опубліковано: 20 серпня 2025 р.

Останнє оновлення: 15 вересня 2026 р.

13 хв. читання

Закриття рахунків наприкінці року: як обнулити рахунки доходів і витрат та перевести прибуток у нерозподілений прибуток

Закрийте рахунки доходів, витрат та дивідендів через Зведення доходів до…

accounting
accounting-basics
14 хв. читання

Звітність Meta за Q2 2026: Дохід зріс на 28%, але прибуток впав уперше в епоху ШІ

Дохід Meta Platforms за Q2 2026 зріс на 28% до $60,8 млрд, але чистий прибуток…

financial-reporting
financial-management
14 хв. читання

Звітність Robinhood за Q2 2026: рекордний квартал, перший борг в історії та одноразовий прибуток, що ховається на видноті

Дохід Robinhood у Q2 2026 зріс на 32% до рекордних $1,31 млрд, а чистий…

financial-reporting
financial-management
13 хв. читання

Звітність Meta за перший квартал 2026 року: усі показники перевершили очікування, але акції впали на 7%

Дохід Meta Platforms за перший квартал 2026 року зріс на 33% до $56,3 млрд, а…

financial-reporting
financial-management
13 хв. читання

Звіт Robinhood за 1 квартал 2026: Ринки прогнозів обігнали криптовалюти, але акції все одно впали

Дохід Robinhood за 1 квартал 2026 року зріс на 15% до $1,07 млрд, не виконавши…

financial-reporting
financial-management