Створення та відстеження рахунків-фактур за допомогою Beancount
Простий текстовий шаблон, повторюваний робочий процес та один за пит для “Хто мені ще винен?”
Виставлення рахунків-фактур може здаватися рутиною, застряглою між виконаною роботою та очікуваним платежем. Але хороший процес виставлення рахунків-фактур є основою здорового грошового потоку. Він виконує подвійну функцію: чітко повідомляє вашим клієнтам, що і коли вони винні, та надає вашій системі бухгалтерського обліку беззаперечні факти, які їй потрібні.
Хоча спеціалізовані SaaS-додатки можуть надсилати стильні, автоматизовані PDF-файли, вони часто мають щомісячну плату та блокують ваші дані в власному сховищі. Легкий, текстовий підхід з використанням Beancount пропонує потужну альтернативу. Ви можете перетворити кожен рахунок-фактуру на чіткий набір бухгалтерських записів, отримуючи всі переваги контролю версій, потужних метаданих та миттєвих запитів — без необхідності підписки.
Мінімально життєздатний рахунок-фактура (поля, які ніколи не слід пропускати)
Перш ніж торкнутися вашої книги обліку, вам потрібен професійний рахунок-фактура. Формат може бути простим, але вміст має бути точним. Ці поля, запозичені з перевіреної часом практики малого бізнесу, є обов'язковими.
- Реквізити продавця: Назва вашої компанії та фізична адреса.
- Реквізити клієнта: Ім'я вашого клієнта та (в ідеалі) його адреса.
- Номер рахунку-фактури: Унікальний, послідовний ідентифікатор, який ніколи не повторюється.
INV-045
йде післяINV-044
. - Дати виставлення та оплати: Чітко вкажіть, коли було виставлено рахунок-фактуру та коли очікується оплата.
- Позиції рахунку: Чіткий опис послуг або товарів, а також кількість, ставка та загальна сума за позицією.
- Проміжний підсумок, податок та загальна сума: Покажіть розрахунок, щоб клієнт міг легко його зрозуміти.
- Додаткові примітки: Місце для подяки, інструкцій з переказу коштів або наданого клієнтом номера замовлення на покупку.
Щоб допомогти вам розпочати, ми створили набір готових до редагування шаблонів, які містять усі ці поля. Версії електронних таблиць навіть попередньо розраховують загальні суми для вас.
Завантажте наші шаблони тут: beancount.io/invoice‑templates (Доступні у форматах Google Docs, Word, Sheets, Excel та PDF)
Запис рахунку-фактури у вашій книзі обліку
Після того, як ви надіслали PDF-файл рахунку-фактури клієнту, ви повинні записати його в Beancount. Ц е важливий крок, який визнає дохід, коли він зароблений, а не лише коли він оплачений. Процес включає дві окремі транзакції.
1. Коли ви виставляєте рахунок-фактуру:
Ви створюєте транзакцію, яка переміщує загальну суму з вашого рахунку Income
на Assets:AccountsReceivable
. Це створює цифровий борг у ваших книгах.
; 2025‑07‑21 Рахунок-фактура № 045 Веб-дизайн спринт для Acme Corp.
2025-07-21 * "Acme Corp" "INV-045 Веб-дизайн спринт"
Assets:AccountsReceivable 3500.00 USD ; due:2025-08-04
Income:Design:Web
invoice_id: "INV-045"
contact_email: "ap@acme.example"
link: "docs/invoices/2025-07-21_Acme_INV-045.pdf"
Тут ви дебетуєте AccountsReceivable
та кредитуєте свій рахунок Income
. Зверніть увагу на багаті метадані: дата оплати, унікальний invoice_id
та навіть пряме link:
до PDF-файлу, який ви надіслали.
2. Коли клієнт платить:
Коли гроші надходять на ваш банківський рахунок, ви записуєте другу транзакцію, щоб "закрити" борг. Це переміщує баланс з AccountsReceivable
на ваш розрахунковий рахунок.
2025-08-01 * "Acme Corp" "Оплата INV-045"
Assets:Bank:Checking 3500.00 USD
Assets:AccountsReceivable
invoice_id: "INV-045"
Баланс для INV-045
в Assets:AccountsReceivable
тепер дорівнює нулю, а ваші книги ідеально збалансовані.
Додайте PDF-файл: Метадані
link:
особливо потужні при використанні з Fava, веб-інтерфейсом Beancount. Fava відобразить клікабельне посилання безпосередньо в поданні транзакції, тому вихідний документ завжди знаходиться на відстані одного кліку. Цей робочий процес був передбачений ще в 2016 році в запиті на функцію (GitHub).
Один запит для переліку всіх відкритих рахунків-фактур
Отже, хто вам ще винен гроші? З цією системою вам не потрібно шукати електронні листи чи електронні таблиці. Вам потрібен лише один простий запит.
Збережіть наступне як файл з назвою open-invoices.sql
:
SELECT
meta('invoice_id') AS id,
payee,
narration,
date,
number(balance) AS outstanding
WHERE
account = "Assets:AccountsReceivable"
AND balance != 0
ORDER BY
date;
Тепер запустіть його з командного рядка:
bean-query books.beancount open-invoices.sql
За лічені секунди ви отримаєте чіткий, актуальний звіт про всі неоплачені рахунки-ф актури, що показує ідентифікатор рахунку-фактури, клієнта, дату виставлення та суму заборгованості. Не потрібно додаткове програмне забезпечення.
Автоматизуйте рутинну роботу
Перевага простого тексту - це можливість написання скриптів. Ви можете автоматизувати нудні частини цього робочого процесу.
- Шаблон + Pandoc = PDF: Підтримуйте свій шаблон рахунку-фактури в Markdown. Невеликий скрипт Python може заповнити змінні (ім'я клієнта, позиції рахунку, номер рахунку-фактури), а інструмент командного рядка Pandoc може миттєво перетворити його на професійний PDF-файл.
- Git Pre-commit Hook: Якщо ви зберігаєте свою книгу обліку в Git, простий pre-commit hook може виконувати перевірки перед збереженням вашої роботи. Він може перевірити, чи кожен новий
invoice_id
є унікальним, чи транзакції збалансовані до нуля, та чи файл, на який посилаєтьсяlink:
метадані, дійсно існує. - Cron Job: Налаштуйте заплановане завдання (cron job) для запуску вашого запиту
open-invoices.sql
щоночі та надсилання вам зведення електронною поштою. Ви починатимете кожен день, точно знаючи, кому потрібно надіслати дружнє нагадування.
Реалістичне застереження
Beancount - це інструмент бухгалтерського обліку, а не сервіс виставлення рахунків-фактур. Він не буде автоматично надсилати нагадування про оплату вашим клієнтам або обробляти їх платежі за кредитними картками. Робочий процес такий: ви створюєте та надсилаєте рахунок-фактуру за допомогою обраного вами методу (наприклад, шаблонів вище), а потім записуєте бухгалтерські записи у своїй книзі обліку.
Для більшості фрілансерів та невеликих магазинів цей ручний крок - це невелика ціна за надійну, перевіряєму та безкоштовну систему бухгалтерського обліку, яку ви повністю володієте та контролюєте (beancount.io).
Наступні кроки
Готові взяти під контроль свої рахунки-фактури? Ось як почати.
- Завантажте шаблон та використовуйте його для створення свого наступного реального рахунку-фактури, переконавшись, що використовуєте послідовний номер рахунку-фактури.
- Зберігайте надіслані PDF-файли в окремій папці, наприклад
docs/invoices/
, та використовуйте ключ метаданихlink:
у своїй транзакції Beancount, щоб посилатися на них. - Збережіть запит
open-invoices.sql
та зробіть його запуск частиною вашого щотижневого фінансового огляду.
Бухгалтерський облік у простому тексті не означає відмову від точності чи контролю — це просто означає, що база даних може бути оброблена grep
. З простим шаблоном та наведеними вище фрагментами коду ви будете отримувати оплату швидше та підтримувати свої книги в бездоганному стані.