Skip to content
Auboros

Odoo Purchase Order Approvals: The Minimum Amount Setting, Who Can Approve and When You Need the Approvals App

Odoo purchase approval is one setting: orders at or above the Minimum Amount (5,000 by default, GST inclusive) wait for a Purchase Administrator to approve.

By Josh Craig, Managing Director, Auboros ·

Odoo purchase order approvals come from one setting. Turn on Purchase Order Approval, set a Minimum Amount (default 5,000, tested against the GST-inclusive total), and any order at or above it stops at To Approve until a Purchase Administrator confirms it. That group bypasses the check on its own orders. Tiered or multi-person sign-off needs the Approvals app or Studio rules, both Enterprise. Verified in the Odoo 20 source.

At a glance

  • Who it is for: Australian businesses on Odoo 17 to 20 whose purchasing is done by more than one person and who need a spend control that holds up in an audit
  • Problem it solves: purchase orders confirmed and sent to suppliers before anyone with budget authority has seen them
  • Platforms: Odoo Community and Enterprise for the Minimum Amount setting; Odoo Enterprise for the Approvals app and Studio approval rules
  • Typical cost: the setting is free with the Purchase app; the Approvals app ships with any Enterprise plan and Studio with the Custom plan at A$80 per user per month at list (A$64 in the first year), yearly billing, ex GST, as at 5 October 2026 on odoo.com/pricing; configuration is a few hours inside the Odoo implementation cost in Australia packages
  • Typical timeline: the Minimum Amount setting takes minutes; an Approvals or Studio design with two or three steps is usually a half-day of configuration plus testing
  • Last verified: 20 October 2026 against the Odoo 20.0 Purchase source (res_company.py and purchase_order.py), the Odoo 20 Enterprise Approvals modules and the Odoo 20 Studio approval rules documentation

We wrote the MYOB Acumatica side of this story last week, and the two platforms could not be more different. MYOB Acumatica has approval maps with steps, rules and four approver types. Odoo has a checkbox, a dollar figure and a security group, and that’s a feature, not a gap, as long as you know exactly what the checkbox does and what it doesn’t. This post is the Odoo half.

How does purchase order approval work in Odoo?

Odoo’s Purchase app has two confirmation modes, stored on the company record as po_double_validation: “Confirm purchase orders in one step” or “Get 2 levels of approvals to confirm a purchase order”. In Purchase, Configuration, Settings, the second mode appears as the Purchase Order Approval checkbox with a Minimum Amount field beside it. The amount defaults to 5,000 in your company currency and the help text calls it the minimum amount for which a double validation is required.

With the setting on, clicking Confirm Order runs a single test in the code, _approval_allowed. If the order passes, it becomes a confirmed purchase order and the approval date is stamped. If it fails, the order moves to a To Approve state and waits. An Approve Order button then appears on the form for users in the Purchase Administrator group only. Nothing is emailed to a manager automatically; the chatter logs the state change to followers, and the To Approve orders show in the Purchase Orders list with a warning colour and in the Late filter once their order date passes.

The three settings and what each one does

  • Purchase Order Approval. Switches the company from one-step to two-step confirmation. Off by default.
  • Minimum Amount. The threshold. An order whose total is below it confirms immediately; an order at or above it waits. The comparison is strict, so an order of exactly 5,000 needs approval.
  • Lock Confirmed Orders. A separate setting. When on, every order is locked the moment it’s approved, and a locked order can’t be cancelled until someone unlocks it. It stops a confirmed PO being quietly edited after the supplier has it, which is the half of spend control most businesses forget.

Who can approve a purchase order in Odoo?

Only users in the Purchase Administrator group, the higher of the two access levels the Purchase app defines (User and Administrator). There is no approver field on the order, no amount band per person and no second approver. If three people hold Purchase Administrator, any one of them can approve any order of any size.

The same group is also exempt from the check on their own orders. The test in the source passes an order if the company is in one-step mode, or if the total is under the Minimum Amount, or if the current user has the Purchase Administrator group. So a Purchase Administrator who raises a A$40,000 order confirms it themselves on the spot. If the person who buys is also the person who approves, the setting controls nothing. The fix is a staffing one, not a configuration one: buyers get Purchase User, approvers get Purchase Administrator, and nobody has both roles while also raising orders.

The first thing we check on an Odoo purchase audit is who holds Purchase Administrator. Every site has one more name on that list than the finance manager thinks, and that person’s orders have never been approved by anyone.

Josh Craig, Director, Auboros

Is the Minimum Amount GST inclusive?

Yes. The code compares the order’s amount_total, which is the untaxed amount plus tax, against the threshold converted into the order’s currency at the order date. For an Australian company that means the Minimum Amount is tested against the GST-inclusive total. A threshold of 5,000 catches any order over about A$4,545 ex GST on standard 10% GST lines, and an order made up of GST-free lines (basic food for a grocery wholesaler, say) is tested on a lower total than an otherwise identical taxable order.

Two practical consequences. If your delegation of authority is written ex GST, as most Australian ones are, set the Odoo threshold at the ex GST limit times 1.1, so a A$10,000 ex GST limit becomes 11,000 in Odoo. And for foreign-currency orders, Odoo converts the threshold into the order currency at the rate on the order date, so a USD order is tested at that day’s rate, not at the rate when the goods arrive. Our multi-currency guide covers where those rates come from.

What the one-step approval cannot do

Be clear about the limits before you promise the board a workflow. The built-in setting cannot:

  • Tier by amount. One threshold, one group. There is no “under 10,000 the manager, over 50,000 the director”.
  • Route by category or department. A A$6,000 IT order and a A$6,000 raw materials order go to the same group.
  • Require two signatures. One Purchase Administrator approves. There is no second step.
  • Notify the approver. A To Approve order waits in a list. If nobody opens the list, it waits for good.
  • Stop RFQs being sent. The check runs on Confirm Order. A buyer can still send an RFQ to a supplier for any amount; only the confirmation is held.

If any of those matter, the Minimum Amount setting is still worth leaving on as the backstop, and you add one of the two Enterprise routes on top.

Do you need the Approvals app or Studio for multi-level approvals?

For anything beyond one threshold and one group, yes. Odoo Enterprise gives you two different tools, and they sit at different points in the purchase.

The Approvals app: a request before the RFQ

The Approvals app adds an approval request that lives before the purchase order. A request type with the Create RFQ’s option (the Approvals - Purchase module installs it automatically when both apps are present) requires a product and a quantity on each line, and when the request is approved a Create RFQ’s button generates a draft RFQ per vendor from the product’s vendor pricelist, merging lines into an existing draft RFQ for the same vendor and currency if one is open. The request name lands in the RFQ’s source document field, so the audit trail runs from request to order to bill.

The request type carries the controls the Purchase setting lacks: a list of approvers, a Minimum Approval count, individual approvers marked as required, an option to require the requester’s manager from their employee record, and an option to require an attached document. One refusal refuses the request. An Approval Officer can force approval. What it does not do, and the Odoo 20 source says so in a comment, is sequence the approvers: every approver is asked at the same time and there is no order between them. Cancelling an approved request removes its lines from any RFQ still in draft and logs a note on the chatter for orders that have already been confirmed, which you then unwind by hand.

Note that the RFQ the Approvals app creates still passes through the Purchase Order Approval threshold when someone confirms it. That’s a reasonable design (the request approved a need; the PO approval checks the price) but it means a request approved at A$8,000 and an RFQ that comes back from the supplier at A$9,500 both get a human look.

Studio approval rules: steps on the Confirm button

Studio approval rules attach to a button, not to a document type. Put one on Confirm Order and you can add several approval steps, each with named approvers or an approver group, an optional filter condition (amount over 20,000, a particular product category, a company), an Approval Order so step 2 follows step 1, Exclusive Approval so one person can’t clear two steps, users to notify by internal note, and delegation of approval rights until a date. An unauthorised click raises an error and creates an activity for the approvers, which solves the notification gap above. Approvals are tracked in the chatter and in a Studio Approval Entries log under technical settings.

Studio is a Custom plan feature, which is the main cost of this route. The other is that Studio rules are configuration living in your database, not a standard module, so document them, because the next consultant will not find them by reading the Purchase settings page.

Table: three ways to approve purchase orders in Odoo 20 (verified 20 October 2026 in the 20.0 source and documentation)
Purchase Order Approval settingApprovals appStudio approval rules
EditionCommunity and EnterpriseEnterprise (any plan)Enterprise Custom plan
Where it actsConfirm Order on the POA request raised before the RFQ existsAny button, usually Confirm Order
ApproversPurchase Administrator groupNamed users, required flags, employee’s manager, minimum countNamed users or a group per step
Amount tiersOne Minimum Amount, GST inclusiveNone on the request itselfFilter conditions per step
SequenceSingle stepAll approvers at once, no orderOrdered steps, exclusive approval
NotificationNone; To Approve list onlyActivity per approverActivity per approver on an unauthorised click
Audit trailChatter state change, approval dateRequest chatter, RFQ source documentChatter plus Studio Approval Entries
Watch-outAdministrators bypass it on their own ordersApproved request does not skip the PO thresholdLives in the database, not in a module; document it

Where AI-drafted purchase orders fit

If you let an agent draft purchase orders, which is what the AI replenishment agent pattern does from reordering rules and supplier lead times, the agent should only ever create RFQs, and the approval setting above is the human gate it drafts into. Set the Minimum Amount to zero on a database where agents create RFQs and every agent-drafted order waits for a Purchase Administrator, with the agent’s name in the chatter. That is the drafts-first rule we apply across AI agents for ERP in Australia: the agent proposes, the person with budget authority confirms, and Odoo’s own state machine enforces it. Odoo 20’s MCP server makes the read-only part easy; the Confirm Order button stays with a person.

Five mistakes we see in Australian Odoo purchase approvals

  • The approver is also a buyer. Covered above. Purchase Administrator exempts its own orders, so split the roles.
  • An ex GST threshold typed as is. The delegation says A$10,000 ex GST, Odoo is set to 10,000, and a A$9,500 ex GST order (A$10,450 inc) is held while nobody can explain why. Multiply by 1.1.
  • Lock Confirmed Orders left off. Approved orders get edited after the supplier has them and the three-way match on the bill, which Odoo 20 does through the Should Be Paid field and bill control policy, is checking against a moving target.
  • Nobody owns the To Approve list. With the built-in setting there is no notification. Give one person the Purchase Orders list filtered to To Approve as a daily task, or use Studio to create the activity.
  • Replenishment orders assumed to be approved. RFQs created by reordering rules are drafts like any other and go through the same threshold on confirmation. That’s correct behaviour; just make sure the person confirming the weekly replenishment batch holds the right group.

If you’re setting this up for the first time, the Odoo purchasing guide covers the RFQ, blanket order and three-way-matching side, and the setting in this post is the control layer on top. We configure it as part of every Purchase rollout as an Odoo partner in Brisbane.

Goes well with

Purchase approvals that match your delegation of authority

We set up Odoo purchase approvals for wholesalers, manufacturers and project businesses across Brisbane and Queensland, from the single Minimum Amount setting to a Studio design with tiered steps. If you’d like us to check who can approve what in your database, book a free consultation. It takes about half an hour and usually turns up at least one name that shouldn’t be on the Administrator list.

FAQ

Frequently asked questions

How do I turn on purchase order approval in Odoo?

Go to Purchase, Configuration, Settings and tick Purchase Order Approval, then set the Minimum Amount. Orders whose total is at or above that amount move to a To Approve state when confirmed and wait for a user in the Purchase Administrator group to click Approve Order. The setting is available in Odoo Community and Enterprise.

Is the Odoo purchase approval Minimum Amount GST inclusive?

Yes. Odoo compares the order's amount_total, which includes tax, against the threshold. If your delegation of authority is written ex GST, multiply it by 1.1 before entering it, so a A$10,000 ex GST limit becomes 11,000 in Odoo. Foreign-currency orders are tested at the exchange rate on the order date.

Who can approve a purchase order in Odoo?

Any user in the Purchase Administrator group. There is no per-user limit or second approver in the standard setting, and Purchase Administrators are exempt from the check on orders they raise themselves. Buyers should hold Purchase User only, and approvers should not also be raising orders.

Can Odoo do multi-level purchase approvals?

Not with the standard setting, which has one threshold and one group. Odoo Enterprise adds two options: the Approvals app, which puts a request with multiple approvers, a minimum approval count and a required manager before the RFQ is created, and Studio approval rules, which add ordered steps with filter conditions to the Confirm Order button. Studio needs the Custom plan.

Does Odoo notify the approver when a purchase order needs approval?

Not with the built-in Purchase Order Approval setting. The order sits in the Purchase Orders list in the To Approve state and the chatter logs the change for followers, but no activity or email is created. Studio approval rules create an activity for the approvers, and the Approvals app creates one per approver on each request.

Want help with your own implementation?

We're a Brisbane-based Odoo Silver Partner and MYOB Acumatica Partner. Book a free consultation and get a straight answer.