Payroll is confidential; the accounting journal is not. In a standard Odoo database, a salary payment is an account.payment record like any other, and every accounting user can read it. Payment Paie Privacy closes that gap with a boolean flag, a dedicated security group and a global record rule.
What Payroll Payment Privacy in Odoo does
The module adds a Paie (payroll) boolean field to account.payment. Payments carrying that flag become invisible to everyone except the members of a dedicated group, Accès paiements Paie.
The enforcement is done at the ORM level, not in the user interface. A global ir.rule on account.payment applies to all users: members of the authorised group see everything, and everyone else sees only records where the payroll flag is false. Because it is a record rule, the restriction holds for list views, reports, exports and the API alike — which is the only kind of restriction worth having.
Key features
A payroll flag on payments
A tracked Paie boolean on account.payment, so flagging a payment is part of the record's chatter history.
A dedicated security group
Accès paiements Paie, filed under the accounting application category, controls who may see payroll payments.
A global record rule
The rule applies to all users with read, write, create and unlink permissions evaluated through the same domain, so visibility is consistent across every operation.
Write protection on the flag
create() and write() are overridden to raise an AccessError if a user outside the authorised group tries to set or change the payroll flag — non-members cannot quietly unhide a payment.
Enforced beyond the UI
Because the restriction is a record rule, it applies equally to list views, reports, exports and external API access.
How to set it up
Configuration lives in Accounting > Payments. The full sequence is:
- Install the module; it depends on
accountandhr. - Open Settings > Users & Companies > Groups and add the authorised staff to Accès paiements Paie.
- Open a salary payment in Accounting > Payments and tick the Paie checkbox.
- Log in as an ordinary accounting user and confirm the payment is no longer listed.
- Confirm that the same user also cannot set the flag — the attempt raises an access error.
Good to know
- This module is currently maintained on the Odoo 15.0 series and is distributed under LGPL-3.
- It restricts visibility of payments. It does not encrypt data, and database administrators retain direct access to the underlying tables.
- Flag payments as they are created. Records already visible to users are only hidden once the flag is set.
Requirements and compatibility
| Odoo series | Odoo 15.0 |
|---|---|
| Depends on | account, hr |
| Licence | LGPL-3 |
| Edition | Works on Odoo Community |
Where to get it
This module is not listed in the shop. Contact us if you would like access or a build for another Odoo series.
Frequently asked questions
Does it hide payroll payments from all users?
From all users except members of the Accès paiements Paie group. The record rule is global and evaluates group membership in its domain.
Can a normal accounting user unhide a payment?
No. create() and write() raise an AccessError when a user outside the authorised group tries to set or modify the payroll flag.
Does the restriction apply to exports and the API?
Yes. It is implemented as an ir.rule record rule, so it is enforced by the ORM for list views, reports, exports and external API calls alike.
Is this a substitute for encryption?
No. It controls who can see payroll payments inside Odoo. It does not encrypt data, and anyone with direct database access is outside its scope.
Which Odoo version is it built for?
The module is currently maintained on the Odoo 15.0 series.