Skip to Content

Segregation of Duties in Odoo Accounting and Procurement

Learn how to implement Segregation of Duties in Odoo Accounting and Procurement with role-based access, maker-checker controls, approval workflows, emergency access and periodic reviews.
14 min read
September 7, 2026
Odoo Security & Compliance

Introduction

As companies grow, financial controls become increasingly important.

In a small business, one person may handle purchasing, receiving, vendor bills, and payments. As operations expand, this concentration of responsibilities can create control risks.

Consider the procurement process:

Purchase Request → Purchase Order → Receipt → Vendor Bill → Payment

If one user can control every step, errors or unauthorized transactions may go undetected.

This is where Segregation of Duties (SoD) becomes essential. SoD separates incompatible responsibilities across different users or roles to reduce risk.

In Odoo, responsibilities can be divided across activities such as:

  • Creating and approving purchase orders
  • Receiving goods
  • Creating vendor bills
  • Approving payments
  • Recording and reconciling accounting entries
  • Managing users and access rights

The goal is simple: no single user should have unnecessary control over an entire high-risk process.

Odoo provides access rights, user groups, approvals, and workflows to support these controls. However, effective SoD requires more than simply creating different user groups. Organizations must identify conflicting duties, establish appropriate controls, and regularly review their effectiveness.


What Is Segregation of Duties?

Segregation of Duties is a control framework designed to prevent one person from having excessive authority over a complete business transaction.

A basic SoD model separates responsibilities into four areas:

ResponsibilityTypical Purpose
InitiateStart a transaction or request
ApproveAuthorize the transaction
ExecutePerform the operational activity
RecordEnter or maintain the accounting record
ReviewIndependently verify the transaction

For example, in procurement:

Employee → Requests Purchase

Purchasing Officer → Creates Purchase Order

Manager → Approves Purchase Order

Warehouse User → Receives Goods

Accounting User → Records Vendor Bill

Finance Manager → Approves Payment

This structure creates multiple control points.

The exact separation depends on the organization's size, risk profile and operating model.

A small company may not be able to create five completely independent roles.

In that situation, compensating controls such as management review, exception reporting and periodic access reviews can help reduce the risk.


Why Does Segregation of Duties Matter in Odoo?

Odoo connects operational and financial processes in a single system:

Purchase Order → Receipt → Vendor Bill → Payment

Because these processes are connected, overly broad access can allow a user to create, approve, modify, and validate transactions across multiple stages.

This can increase the risk of:

  • Unauthorized purchases
  • Duplicate payments
  • Fraudulent vendor creation
  • Incorrect accounting entries
  • Unauthorized discounts
  • Vendor bill manipulation
  • Approval bypasses
  • Concealed errors

The purpose of Segregation of Duties is not to make Odoo difficult to use.

It is to ensure that:

Access matches responsibility, and critical activities have appropriate independent controls.

Common Segregation of Duties Risks in Odoo

Different organizations face different risks, but several SoD conflicts commonly occur in Accounting and Procurement.

1. Purchase Order Creation and Approval

Users who create purchase orders should not automatically approve their own purchases.

A basic maker-checker control separates the responsibilities:

Requester → Purchase Order → Approver

For example, a purchasing employee creates a $10,000 purchase order, while a manager independently reviews and approves it.

2. Vendor Creation and Payment

A high-risk combination is allowing one user to:

Create Vendor → Create Vendor Bill → Process Payment

A stronger approach separates these responsibilities:

  • Vendor Master User: Manages supplier information

  • Purchasing User: Creates purchase orders

  • Accounting User: Processes vendor bills

  • Payment Approver: Reviews and authorizes payments

This reduces the risk of unauthorized or fictitious suppliers being created and paid.

3. Vendor Bill Creation and Payment Approval

The person who creates a vendor bill should not independently approve its payment.

A typical workflow is:

Vendor Bill → Accounting Review → Payment Preparation → Payment Approval

This provides an additional review before funds are released.

4. Bank Reconciliation and Payment Processing

Payment processing and bank reconciliation should be separated where practical.

Payment Processing → Independent Reconciliation

This provides a second layer of review and makes errors or unauthorized transactions easier to detect.

5. Accounting Entries and Period Closing

Allowing the same user to create or modify accounting entries and close accounting periods can create a control conflict.

A stronger model separates:

Journal Entry Management → Period Closing

Period closing should typically be assigned to an appropriately authorized finance manager or controller.


How to Design Segregation of Duties in Odoo

An effective SoD implementation should not begin by randomly creating user groups.

Start with the business process.

A practical approach is:

Map → Identify → Classify → Design → Configure → Test → Monitor

1. Map the Business Process

Document the complete workflow before changing permissions.

For procurement, this might be:

Purchase Request → RFQ → Purchase Order → Receipt → Vendor Bill → Payment

For accounting:

Invoice → Validation → Journal Entry → Reconciliation → Reporting → Period Close

For each step, identify:

  • Who performs the activity?

  • Who approves it?

  • Who can modify it?

  • Who can cancel it?

  • Who reviews it?

  • Who can access the underlying records?

This provides the foundation for the SoD design.

2. Identify Incompatible Duties

Not every combination of responsibilities is dangerous.

Focus on combinations that create meaningful financial or operational risk.

A simple risk matrix can help.

Duty ADuty BRisk
Create VendorApprove VendorHigh
Create Purchase OrderApprove Own Purchase OrderHigh
Create Vendor BillApprove PaymentHigh
Process PaymentReconcile BankHigh
Create Journal EntryClose PeriodMedium/High
Receive GoodsApprove Purchase OrderMedium
Create RFQReceive GoodsMedium
View ReportsCreate Purchase OrderLow

The exact classification should depend on the organization's risk assessment.


Odoo Access Rights vs Segregation of Duties

One important distinction is that Odoo access rights are not the same as an SoD framework.

Access Rights = What can this user do?

Segregation of Duties = Should this user perform these combinations of activities?

For example, a user may need to create Purchase Orders but should not automatically approve their own orders. Similarly, an accountant may need to create vendor bills without having unrestricted payment approval rights.

Effective SoD therefore requires organizations to consider both individual permissions and conflicting combinations of permissions.

Maker-Checker Controls in Odoo

Maker-checker controls are a practical way to implement SoD:

One person prepares → Another person reviews and approves

Common examples include:

  • Procurement: Buyer creates Purchase Order → Manager approves
  • Accounting: Accountant creates Vendor Bill → Finance Manager reviews payment
  • Vendor Master: User creates Supplier → Authorized Reviewer verifies details
  • Journal Entries: Accountant prepares Entry → Senior Accountant/Manager reviews

This approach creates accountability and reduces risk without requiring every employee to have access to every function.


Designing Odoo Roles for Segregation of Duties

Instead of assigning broad permissions based only on job titles, businesses should design roles around responsibilities.

A possible structure could look like this:

Odoo RoleTypical ResponsibilitiesSensitive Permissions
Purchase RequesterCreates purchase requestsCannot approve own requests
BuyerCreates RFQs and POsLimited approval
Purchase ApproverReviews and approves POsCannot create/modify own approvals
Warehouse UserReceives goodsNo financial approval
AccountantProcesses vendor billsNo payment approval
Finance ManagerReviews paymentsPayment approval
Vendor Master UserCreates supplier recordsNo payment processing
Auditor/ReviewerReviews transactionsRead/report access
System AdministratorTechnical administrationHighly restricted

The actual structure should be adapted to the company's organization.


Accounting Segregation of Duties in Odoo

Accounting requires strong SoD controls because these activities directly affect financial reporting.

A practical model can separate:

Invoice Processing

User creates or processes invoices.

Journal Management

Authorized accounting users manage journal entries.

Payment Processing

Finance users prepare payments.

Payment Approval

A separate authorized user approves payments.

Bank Reconciliation

An independent user performs reconciliation and review.

Period Closing

A senior finance role controls period closure.

This creates multiple independent checkpoints:

Vendor Bill → Accounting Review → Payment Preparation → Payment Approval → Bank Reconciliation

Each stage provides an opportunity to identify errors, unauthorized activity, or inconsistencies before they affect financial records.


Procurement Segregation of Duties in Odoo

Procurement controls can follow a similar structure.

A typical process is:

Purchase Request → RFQ → Purchase Order → Approval → Receipt → Vendor Bill → Payment

Each stage can have different responsibilities.

For example:

ProcessPrimary RoleIndependent Control
Purchase RequestRequesterManager review
RFQBuyerPurchasing policy
Purchase OrderBuyerApproval
ReceiptWarehousePO comparison
Vendor BillAccountantThree-way verification
PaymentFinancePayment approval
ReconciliationFinance ReviewerIndependent review

This helps create a controlled procure-to-pay process.


Three-Way Matching as a Procurement Control

SoD becomes stronger when combined with transaction-level controls such as three-way matching.

The organization compares:

Purchase Order → Receipt → Vendor Bill

The goal is to confirm that billed goods or services were actually ordered and received.

For example:

PO: 100 units

Receipt: 100 units

Vendor Bill: 100 units

The transaction is consistent. If the vendor bill shows 120 units, the discrepancy should be identified before payment.

Three-way matching does not replace SoD. It complements SoD by adding another control to the procurement process.


Common SoD Implementation Mistakes in Odoo

1. Giving Everyone Administrator Access

Broad administrator access can undermine the entire access-control framework.

Users should receive business-specific permissions rather than administrator access for convenience.

2. Creating Permissions Without Mapping Processes

Creating groups such as Purchase User, Purchase Manager, and Accountant is not enough.

Organizations should first identify which responsibilities conflict and then design permissions accordingly.

3. Relying Only on Job Titles

SoD should be based on actual responsibilities, not just job titles.

Employees with the same title may have different duties, while one employee may perform multiple functions.

4. Ignoring Temporary Access

Temporary elevated permissions can easily become permanent.

Any temporary access should have:

Owner → Expiration → Review

5. Focusing Only on Accounting

SoD risks can exist across Procurement, Inventory, Vendor Master Data, Sales, Payments, and System Administration, not just Accounting.

6. Not Testing the Controls

A control may exist in policy but fail in practice.

For example, a policy may prohibit buyers from approving their own purchase orders, while Odoo permissions still allow them to do so.

Therefore, SoD controls should be tested using real user scenarios to confirm that the intended restrictions actually work.



How to Test Segregation of Duties in Odoo

A practical testing process can include:

Test 1: Purchase Order Approval

Can a buyer approve their own purchase order?

Test 2: Vendor Creation

Can a payment processor create a new supplier?

Test 3: Vendor Payment

Can the person creating a vendor bill independently approve payment?

Test 4: Accounting Entries

Can a regular accounting user modify restricted accounting records?

Test 5: Bank Reconciliation

Can the payment processor independently reconcile the same transaction?

Test 6: Administrator Access

Which users have highly privileged system access?

Test 7: Multi-Company Access

Can a user access financial information belonging to companies they should not manage?

Testing should be documented and repeated after significant configuration or role changes.


Segregation of Duties Governance Checklist

A practical Odoo SoD review can use the following checklist:

Control AreaReview Question
User AccessDoes each user have only required permissions?
Purchase OrdersCan users approve their own purchases?
Vendor MasterWho can create or modify suppliers?
Vendor BillsWho can create and validate vendor bills?
PaymentsWho can prepare and approve payments?
Bank ReconciliationIs reconciliation independently reviewed?
Journal EntriesWho can create and modify entries?
Period ClosingWho controls accounting-period closure?
Administrator AccessWho has elevated technical permissions?
Emergency AccessAre temporary privileges documented and removed?
Access ReviewsAre permissions reviewed periodically?
EvidenceCan the organization demonstrate that controls operated?

This checklist can become part of a broader internal-control or ERP governance program.


How to Build an Odoo SoD Framework

A practical implementation can follow these steps:

1. Identify Critical Processes

Start with:

  • Procure-to-Pay

  • Order-to-Cash

  • Record-to-Report

  • Vendor Management

  • Payments

  • Bank Reconciliation

2. Map Responsibilities

Document who:

Requests → Creates → Approves → Executes → Records → Reviews

3. Identify Conflicting Duties

Highlight combinations that could allow unauthorized activity or concealment of errors.

4. Define Risk Levels

Classify conflicts as:

Low → Medium → High → Critical

5. Design User Roles

Create roles around business responsibilities rather than giving broad permissions.

6. Configure Odoo

Apply appropriate access rights, groups, approval mechanisms and workflow controls.

7. Test Scenarios

Attempt both permitted and prohibited actions using representative users.

8. Document Exceptions

Record situations where complete separation is not practical.

9. Add Compensating Controls

Use independent reviews, approval thresholds and exception monitoring where necessary.

10. Review Periodically

Repeat access and SoD reviews after organizational, process or system changes.


SoD: Configuration vs Architecture vs Governance

An important distinction is that Segregation of Duties is not purely a configuration task.

It has three layers.

Configuration

Who can access which Odoo functions?

Architecture

How are business workflows, approval processes, companies, systems and integrations structured?

Governance

Who reviews access, approves exceptions and verifies that controls continue to operate?

A technically correct Odoo configuration can still fail if governance is weak.

For example:

Good Permissions + Poor Governance = Control Risk

Similarly:

Good Governance + Excessive Permissions = Control Risk

Effective SoD requires both.

Evidence and Auditability

An effective control should not only exist.

The organization should also be able to demonstrate that it operated.

Useful evidence can include:

  • Approval records

  • Access review documentation

  • User-role matrices

  • Exception approvals

  • Payment approvals

  • Vendor master reviews

  • Reconciliation reviews

  • Emergency-access records

  • Periodic SoD assessments

This is particularly important for organizations subject to internal audit, external audit or regulatory requirements.

The objective is to move from:

“We believe our controls are working.”

to:

“We can demonstrate that our controls are designed, implemented and reviewed.”


Odoo Segregation of Duties: Practical Example

Consider a company with the following roles:

  • Purchasing Officer: Creates RFQs and Purchase Orders
  • Purchasing Manager: Approves purchases above defined thresholds
  • Warehouse Officer: Receives goods
  • Accountant: Processes vendor bills
  • Finance Manager: Approves payments
  • System Administrator: Manages technical access without participating in daily purchasing or payment operations

The resulting workflow is:

Purchasing Officer → Purchase Order → Manager Approval → Warehouse Receipt → Accountant Vendor Bill → Finance Manager Payment Approval → Bank Reconciliation

This separation provides stronger control than allowing one user to manage the entire process.

Organizations should also periodically review user responsibilities and access to ensure they remain appropriate as roles and business processes change.


Odoo SoD Implementation: What Should Be Reviewed First?

Organizations do not necessarily need to redesign every permission immediately.

Start with the highest-risk combinations.

A practical priority order is:

Priority 1: Payment Controls

Review who can:

  • Create payments

  • Approve payments

  • Modify payment-related information

  • Reconcile transactions

Priority 2: Vendor Master Controls

Review who can:

  • Create suppliers

  • Modify supplier bank information

  • Change supplier details

Priority 3: Procurement Approvals

Review who can:

  • Create purchase orders

  • Approve purchase orders

  • Approve their own purchases

Priority 4: Accounting Controls

Review:

  • Journal-entry permissions

  • Posting permissions

  • Period closing

  • Reconciliation responsibilities

Priority 5: Technical Administration

Review:

  • Administrator accounts

  • Elevated permissions

  • Temporary access

  • Inactive users

This risk-based approach is generally more practical than attempting to redesign the entire security model at once.


Frequently Asked Questions


1. What is Segregation of Duties in Odoo?

Segregation of Duties in Odoo is the practice of separating incompatible responsibilities between users so that one person does not have excessive control over an entire business or financial process.

For example, the user who creates a purchase order may be different from the user who approves it.

2. Why is Segregation of Duties important in Odoo Accounting?

Accounting transactions directly affect financial records.

Separating responsibilities for activities such as journal entries, payments, reconciliations and period closing can reduce the risk of unauthorized transactions and undetected errors.

3. How can Odoo support Segregation of Duties?

Odoo provides user groups, access rights, workflow configurations and approval mechanisms that can be used as components of an SoD framework.

However, effective SoD also requires business-process design, testing and ongoing governance.

4. Should the person who creates a purchase order approve it?

For higher-risk transactions, organizations should generally consider an independent approval process rather than allowing users to approve their own transactions.

The exact control should depend on the company's risk assessment and approval policy.

5. Should vendor creation and payment approval be separated?

Yes, separating vendor-master responsibilities from payment approval can reduce the risk of unauthorized or fictitious suppliers being created and paid without independent review.

6. What if a small company cannot fully separate duties?

Small organizations may use compensating controls such as management reviews, payment reports, exception monitoring and periodic transaction reviews when complete SoD is impractical.

7. How often should Odoo user access be reviewed?

Organizations should establish a recurring review schedule based on their risk profile.

Quarterly or semi-annual reviews are common starting points, with additional reviews after employee role changes, organizational changes or major system updates.

8. Is giving users Odoo Administrator access a good way to manage SoD?

No.

Broad administrator access can bypass carefully designed business permissions and should therefore be highly restricted.

9. Does Segregation of Duties prevent fraud completely?

No control framework can guarantee that fraud or errors will never occur.

SoD reduces opportunities for unauthorized activity and creates independent checkpoints that can improve the likelihood of detection.

10. Is Segregation of Duties only relevant to Accounting and Procurement?

No.

SoD can also apply to Sales, Inventory, HR, Manufacturing, system administration, vendor management and other processes where incompatible responsibilities create risk.


Conclusion

Segregation of Duties is not simply about assigning different Odoo permissions to different employees. It is about ensuring that responsibility, authority, and accountability are properly separated.

For Accounting and Procurement, review the full process:

Purchase → Approval → Receipt → Vendor Bill → Payment → Reconciliation

Ask:

  • Who initiates the transaction?
  • Who approves it?
  • Who executes it?
  • Who records it?
  • Who independently reviews it?

Odoo can support these controls through access rights, user roles, approval workflows, and configuration options. However, technology alone is not enough.

An effective SoD framework requires:

Process Design → Access Architecture → Configuration → Testing → Exception Management → Periodic Review → Evidence

SoD should therefore be treated as an ongoing governance process, not a one-time Odoo configuration task.

The goal is not to unnecessarily restrict employees, but to:

Give users enough access to perform their jobs — but not enough access to bypass critical controls.

A well-designed Odoo SoD framework can strengthen financial controls, reduce access-related risks, and improve accountability across Accounting and Procurement.

Need help reviewing your Odoo access controls, approval workflows, or finance and procurement security model?

Request an Odoo risk and performance review

Segregation of Duties in Odoo Accounting and Procurement
Khubi Gadani Odoo Developer

About the Author

I am an Odoo Developer with expertise in custom module development, ERP implementation, and workflow automation. My work focuses on delivering scalable and efficient solutions tailored to business needs.
Book a Consultation

Share this post