Ви постачаєте товар військовій частині, ДОТ чи Міноборони — а гроші з бюджету приходять через місяць-два. За загальним правилом ПДВ довелося б нарахувати вже на відвантаженні й сплатити з власних обігових, не дочекавшись оплати. Стаття 187.7 ПКУ дозволяє інакше: для постачань за бюджетні кошти податкове зобов’язання виникає на дату надходження грошей. Тут ви налаштуєте Odoo так, щоб ПДВ за такими постачаннями «чекав» на рахунку до платежу, а ПН складалася саме датою оплати — без касового розриву й без ризику нарахувати податок зарано.
Результат
Для постачань військовій частині А-XXXX, ДОТ і Міноборони з оплатою за бюджетними коштами момент виникнення ПЗ зміщений на дату надходження грошей. Сума ПДВ «висить» на рах. 643 від відвантаження до платежу, ПН складається з датою платежу і реєструється в ЄРПН у межах 15 днів. Декларація відображає ПЗ у періоді надходження коштів, без касового розриву на власні обігові.
Передумови
- Підприємство — платник ПДВ на загальній системі.
- Контрагент — бюджетна установа: військова частина, ДОТ, Міноборони, СБУ, МВС, інші силові за переліком ПКУ ст. 187.7.
- Джерело оплати — кошти держбюджету (підтверджується у договорі або в КЕКВ платіжки).
- У плані рахунків є 6442 (ПЗ відкладений) і 6443 (ПК відкладений) — або еквіваленти за вашою обліковою політикою.
- Кастомізація
l10n_uaз підтримкою wizard «Скласти ПН на дату платежу» та fiscal positions. - Прочитали Cash Basis Tax — касовий метод ПДВ у Odoo.
Як це зробити
Крок 1 — Створіть транзитний рахунок (якщо немає)
Спершу потрібне місце, де ПДВ «висітиме» від відвантаження до платежу. Це окремий рахунок плану — на ньому сума чекатиме, поки зобов’язання не стане реальним.
Налаштування → Бухгалтерія → План рахунків → Створити:
- Код:
6442 - Назва: «ПДВ — податкове зобов’язання відкладене (касовий 187.7)»
- Тип: Поточні зобов’язання
- Звіряння: Дозволено
Тип — current liabilities, бо це наш борг перед бюджетом, який ще не визнаний.
Крок 2 — Створіть cash basis tax
Налаштування → Бухгалтерія → Податки → Створити:
- Назва:
ПДВ 20% — касовий 187.7 (продаж) - Тип податку:
Продажі - Сума:
20% - Вкладка Advanced Options:
- Tax Exigibility:
Based on Payment(цеtax_exigibility='on_payment'). - Cash Basis Transition Account:
6442. - Cash Basis Journal: окремий журнал «ПДВ касовий» (створіть, якщо немає).
- Tax Exigibility:
- Розподіл за рахунками (Distribution for Invoices):
100% до 6442. - Розподіл при платежі (Distribution for Refunds — це назва Odoo для cash basis adjustment):
100% до 6415.
Збережіть. Тепер є податок, який при підтвердженні інвойсу кладе ПДВ на 6442, а при платежі — переносить з 6442 на 6415.
Крок 3 — Створіть fiscal position для бюджетників
Налаштування → Бухгалтерія → Fiscal Positions → Створити:
- Назва:
Бюджетні установи — ст. 187.7 ПКУ - Tax Mapping:
ПДВ 20% (звичайний продаж)→ПДВ 20% — касовий 187.7 (продаж)ПДВ 7% (звичайний продаж)→ПДВ 7% — касовий 187.7 (продаж)(якщо постачаєте ліки/медтехніку)
- Account Mapping: залишити порожнім — рахунки доходів не змінюються.
- Auto-Apply: не використовуйте — вмикайте вручну на партнері. На бюджетників не вийде налаштувати за регіоном чи групою партнерів, бо це треба підтверджувати документально.
Крок 4 — Прив’яжіть fiscal position до контрагента
Відкрийте картку партнера, наприклад «Військова частина А-1234»:
- Вкладка Sales & Purchase → Fiscal Position:
Бюджетні установи — ст. 187.7 ПКУ. - Account Receivable: залишити 361.
- У полі Notes запишіть: «КЕКВ 2210, бюджетне фінансування, ст. 187.7 ПКУ — касовий метод» — це сліди для аудитора.
Крок 5 — Створіть SO для постачання
- Sales → New → партнер «Військова частина А-1234». Fiscal position підтягнеться автоматично.
- Додайте товари. У рядку SO у колонці Tax уже стоїть
ПДВ 20% — касовий 187.7 (продаж)замість звичайного 20%. Перевірте. - Confirm. Створюються
stock.picking(incoming → outgoing) і чернетка інвойсу.
Крок 6 — Відвантажте товар і підтвердьте інвойс
- На
stock.pickingвалідуйте відвантаження. На складі:DR 901 / CR 26, на дебіторці:DR 361 / CR 701(на суму без ПДВ) іDR 361 / CR 6442(на 20% ПДВ — відкладено). - Підтвердьте інвойс (
account.move→ Post). Стан —posted, алеtax_amountу декларацію не йде. - ПН ще не складайте. За касовим методом дата ПН = дата платежу.
Крок 7 — Дочекайтеся платежу від бюджету
Платіж надходить через 30–90 днів — це нормальний цикл для МО/ДОТ. Коли бачите його в банківській виписці:
- Accounting → Bank → Reconcile — реконсиліюйте платіж з інвойсом.
- Створюється
account.payment. Одночасно Odoo автоматично формує cash basis adjustment у журналі «ПДВ касовий»:DR 6442 / CR 6415на суму ПДВ. Тепер ПЗ — реальне. - На картці інвойсу натисніть Скласти ПН (wizard).
- У wizard:
- Дата складання: дата платежу з банку (не дата інвойсу).
- Тип причини:
14 — постачання за касовим методом. - Номер: наступний за нумерацією поточного року.
- Накладіть КЕП директора, відправте в ЄРПН. У межах 15 днів від дати складання.
Крок 8 — Перевірте декларацію за період платежу
У місяці платежу:
- Рядок 1.1 Декларації — обсяги постачань зі ставкою 20% + сума ПЗ — містить цю операцію.
- Додаток Д5 — рядок з ПН, тип причини 14.
- СЕА: ΣНаклВид зросла на суму ПЗ; ΣНакл відповідно зменшилася.
Перевірка
- Сальдо рах. 6442 на кінець місяця = сума ПДВ за відвантаженими, але неоплаченими постачаннями бюджетникам.
- Для кожного
account.paymentвід бюджетного партнера є парна ПН типу причини 14 у статусі Зареєстровано. - У звіті Партнер леджер для партнера-бюджетника видно три типи рядків: відвантаження (361 ↔ 701/6442), платіж (311 ↔ 361), cash basis adjustment (6442 ↔ 6415).
- ΣНакл у кабінеті ДПС зменшилася на суму ПЗ — операція пройшла повний цикл.
- Журнал «ПДВ касовий» має запис на cash basis adjustment з датою платежу.
Якщо щось пішло не так
| Симптом | Причина | Виправлення |
|---|---|---|
| При підтвердженні SO підставився звичайний ПДВ 20%, не касовий | Fiscal position не прив’язана до партнера або порожня | Відкрийте картку партнера → Sales & Purchase → перевірте поле Fiscal Position; відкрийте SO → перевірте fiscal_position_id, перерахуйте податок через Refresh |
| Cash basis adjustment не створився при платежі | Порожнє cash_basis_transition_account_id на податку або cash_basis_journal_id | Налаштування → Податки → відкрийте ПДВ 20% — касовий 187.7, заповніть обидва поля, після цього зробіть Reset to Draft на платежі і реконсиліюйте знову |
| ПДВ застряг на 6442 назавжди, у декларацію не йде | Так і має бути до моменту платежу; якщо платіж уже був — adjustment не пройшов | Перевірте, що платіж реконсилийований саме з цим інвойсом, а не записаний на «Suspense»; повторіть реконсиляцію |
| ПН складена з датою інвойсу, а не платежу | Wizard заповнив invoice_date замість payment_date | Відкличте чернетку ПН (l10n_ua_pn_status='draft'), переоберіть платіж у wizard, дата підставиться правильна; якщо ПН уже в ЄРПН — РК на сторно і нова з правильною датою |
| Тип причини стоїть порожньо замість 14 | Wizard не передав параметр reason_type | Виправте на картці ПН до натискання Зареєструвати; якщо вже зареєстровано — обнуляючий РК + нова ПН (див. Помилкова ПН) |
| Платіж надійшов частково (50%) | Касовий метод працює пропорційно | Cash basis adjustment робить пропорційну суму (50% від ПДВ); ПН складається теж на пропорційну суму; решта залишається на 6442 до наступного платежу |
| Бюджет повернув гроші (reverse payment) | Cash basis adjustment сторнується автоматично | Якщо ПН уже зареєстрована — складіть РК зменшуючий на суму повернення; реєструє покупець (бюджетна установа); процес довгий, готуйтеся до листування |
| Платіж не з бюджету (партнер заплатив із власних коштів) | КЕКВ платежу — не бюджетна; ст. 187.7 не застосовується | Технічно ПЗ виникає на дату першої події (загальне правило 187.1); виправляйте: cash basis adjustment вручну на дату першої події, ПН — на ту саму дату; це окремий процес з ризиком штрафу за пізню реєстрацію |
| Контрагент — комерційне підприємство, не бюджетник | Fiscal position помилково проставлена | Зніміть fiscal position на партнері; на новий SO підставиться звичайний ПДВ 20%; на старих інвойсах розбирайтеся індивідуально — якщо ПЗ не задеклароване в правильному періоді, потрібен уточнюючий розрахунок |
Дотичне
- Cash Basis Tax — касовий метод ПДВ у Odoo — технічна основа
tax_exigibility='on_payment'. - Fiscal Position в Odoo — як підміна ставок працює для партнера.
- Касовий метод ПДВ — для кого, як, переваги і ризики — нормативна база ст. 187.7 і 187.10 ПКУ з прикладами.
- ПН і РК в Odoo для ЄРПН — складання ПН з типом причини 14.