DFF Payroll — Accounting Bridge
Salary accruals and controlled payment registration
Connects DFF Payroll Core Engine to Odoo Accounting through
free dff_payroll_account (LGPL-3 redistribution of OCA Payroll
Accounting). When a payslip is Done, accrual journal entries follow debit/credit
accounts on salary rules. Payroll Accountant users work from
Salary Payments menus (payslips / batches still due), may mark
slips Done, then register bank or cash disbursements (separate from
Approve / Refuse), optionally clear payroll payable by auto-reconcile, and track paid
amounts.
Controls-oriented design — Approve Payslip (core Payroll groups) and Register Payment (Payroll Accountant) are separate roles by design (separation of duties / internal control). Accrual postings always follow salary-rule debit and credit accounts (configure on Salary Rules) — Settings does not duplicate those account fields.
Not tax or accounting advice — This module does not certify Circular 99/2025 (TT99) compliance. Account mapping and posting policy remain your company accountant's responsibility before go-live.
Install order (required dependencies)
dff_hr_payroll(DFF Payroll Core Engine)dff_payroll_account(free LGPL-3; OCA payroll accounting redistributed for Apps)- This module (Accounting Bridge)
What You Gain
- Payslip to ledger — Accrual entries via OCA when payslips are finalized (rule debit/credit).
- Controlled disbursement — Register Payment wizard for bank/cash with partial payments, overpayment guards, and optional payable auto-reconcile.
- Clear roles — Payroll Accountant (Salary Payments queue, Done, Register Payment) separate from HR Approve / Refuse by default.
Core Features
Accrual via OCA Payroll Accounting
Uses free dff_payroll_account (OCA payroll accounting) so Done
payslips create journal entries from salary-rule debit and credit accounts.
Batch salary journal can override the contract journal when a payslip belongs
to a batch.
Register Payment Wizard
On payslips and batches: choose bank/cash journal, payable account, date, and payment percentage. Supports partial payments, batch lines, overpayment guards, and optional auto-reconcile of open payroll payable lines (for example account 334).
Payroll Accountant (payment SoD)
Adds Payroll Accountant with Salary Payments menus (payslips / batches to pay). They may finalize (Done) and Register Payment without payslip edit rights. Approve / Refuse stay on the configured approve group. Payroll Access Rights stay Officer / Manager only.
Why Choose This Module
- Odoo Community has no Enterprise
hr_payroll_account; this bridge uses freedff_payroll_account(OCA) plus Vietnam-oriented payment controls. - Fixed payment SoD: only Payroll Accountant may Register Payment; Approve / Refuse stay on the approve group (Manager by default).
- Settings configures Salary Journal and payment auto-reconcile only — accrual accounts live on Salary Rules (no duplicate Settings account fields).
Scope of Delivery
Included
- Salary Payments menus (payslips / batches still due)
- Done finalize for Payroll Accountant (plus Register Payment wizard)
- Optional auto-reconcile of payroll payable after payment
- Payroll Accountant group (payment SoD)
- Settings: Salary Journal and auto-reconcile toggle
- Vietnamese UI translation (
vi_VN)
Explicit Limitations
- Does not map debit/credit on salary rules (configure on Salary Rules)
- Does not create CoA accounts (target codes must exist on your chart)
- Does not certify TT99; mapping lives on Salary Rules only
- Does not replace company accounting policy or statutory audit
- Not tax advice and not a certified Circular 99/2025 attestation
How It Works
1. Configure roles and journal
Open Payroll → Configuration → Settings. Set the Salary Journal. Map debit/credit on Salary Rules. Assign users to Payroll Accountant for salary payments (fixed SoD).
2. Approve, then finalize
Ensure salary rules have debit/credit accounts. After approval, a Manager or
Payroll Accountant marks slips Done so
dff_payroll_account creates accrual journal entries.
3. Pay from Salary Payments
As a Payroll Accountant, open Payroll → Salary Payments (payslips / batches to pay), then Register Payment. Review the posted payment journal entry and paid amounts.
Screenshots
Salary Journal and auto-reconcile
Payroll Settings: set the default Salary Journal and toggle auto-reconcile for salary payments. Accrual accounts are configured on Salary Rules (not duplicated here).
Register Payment wizard
From Salary Payments (or a Done payslip / batch), Payroll Accountants open Register Payment: choose bank or cash journal, payable account, payment percentage, and post the disbursement journal entry.
FAQ
Does this module make my books Circular 99 / TT99 compliant?
No. It provides payment controls and mapping validation. Compliance depends on
your Chart of Accounts, salary-rule mapping, and accountant review.
Where do I set debit/credit accounts?
On each Salary Rule. This module does not seed those
accounts. Settings does not store a second copy of them.
Where does the accountant work day to day?
Payroll → Salary Payments (payslips / batches still due).
They do not use the full Officer Payslips / Batches menus.
Why is Register Payment hidden for my accountant?
The user must be in Payroll Accountant.
Payslip/batch must be in a payment-eligible status (typically approved
or Done, and not fully paid).
Bank journal has no default account?
Configure the journal liquidity / outstanding account first. The wizard blocks
posting until it is set. For auto-reconcile, the payroll payable account must
allow reconciliation.
Technical Details
Platform
- Odoo 18.0 Community Edition (primary) with free
dff_payroll_account - Requires Odoo Accounting (
accountvia dependency) - Salary Payments menus for Payroll Accountant (payslips/batches to pay)
Required Apps
dff_hr_payroll— DFF Payroll Core Enginedff_payroll_account— free LGPL-3 (OCA payroll accounting)- No external API or subscription service
Where It Fits
- Extends Payslips and Payslip Batches with payment actions and paid tracking
- Adds Payroll Settings for Salary Journal and auto-reconcile
License and Publisher
- License: OPL-1
- Publisher: devluoicode
- Website: www.devforfuture.com
- Support: ngocphat.business@gmail.com
Support and Maintenance
Installation Support
Help with dff_payroll_account setup, module install,
Payroll Accountant assignment, and first salary payment journal
configuration.
Bug Resolution
Priority support for functional errors, access rights issues, and bug fixes related to this module.
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Invoicing (account)
• Discuss (mail) • Employee Contracts (hr_contract) • Time Off (hr_holidays) • Employees (hr) • Calendar (calendar) |
| Community Apps Dependencies | Show |
| Lines of code | 11165 |
| Technical Name |
dff_hr_payroll_account |
| License | OPL-1 |
| Website | https://www.devforfuture.com |
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module