Skip to content
TAQNIX
Odoo ModulesWordPress PluginsWordPress ThemesShopify ThemesApp TemplatesScripts & UtilitiesBlogSell on TAQNIX
ModuleOdooNew

Three-Way Match for Odoo 19 Community – Vendor Bills vs Purchase Orders and Receipts, Tolerances and Approval

Pay only what you ordered and received in Odoo Community: every vendor bill line is matched with the purchase order and the receipts, the differences are shown in money and a bill that does not match is blocked until an approver accepts it with a reason.

No reviews yet0 salesby TAQNIXUpdated Oct 24, 2026

Description

Pay what you ordered and received.

Three-Way Match compares every vendor bill line with the purchase order and the goods received, and stops the bills that do not match.

Vendor bill in Odoo compared with the purchase order and the quantity received

On every bill line

  • Ordered, received and billed to date, with the order price next to the bill price
  • A badge: Matches, More than received, Price above the order or Qty and price
  • The amount at risk: the extra quantity at the bill price, plus the price difference
Bills to review in Odoo with the amount at risk

Tolerances

A percentage of quantity and a percentage of price that a bill may exceed without being flagged (2% on the price by default).

Accepting a vendor bill difference with a reason in Odoo

Blocked until accepted

  • A bill that needs a review cannot be posted; the message lists the lines and why
  • An approver accepts the difference with a reason, kept on the bill
  • The approval is void if a quantity or a price changes
Order, receive, bill: three-way match in Odoo

And

  • Posted bills of the same order line count; credit notes lower the billed quantity
  • Vendors that must always bill against an order
  • A list of the bills to review and the differences by vendor
Three-way match features: per line, amount at risk, tolerance, block, approval

Tested

35 automated tests: quantities, prices, discounts, tolerances, services, several bills, credit notes, the approval and its voiding, the rights and the settings.

Documented

Illustrated guide in English and Arabic and an Arabic translation of the module.

What's included

  • taqnix_three_way_match.zip: the Odoo 19 module (with Arabic translation)
  • Illustrated documentation in English and Arabic (HTML and PDF)
  • Automated tests, licence file (OPL-1) and changelog

Requirements

Odoo 19.0 Community.

What's in the download

The files in the archive you can download after you buy.

  • Full source code
  • Documentation
  • Installation guide
  • Automated tests
  • Licence file
  • Changelog

Customer reviews

Write a review

No reviews yet. Bought this item? Be the first to review it.

Usage

Install and use it in a few lines.

bill = env['account.move'].browse(42)
bill.tx_match_state            # 'ok', 'review', 'approved' or 'na'
bill.tx_match_excess           # the amount at risk, in the currency of the bill
for line in bill.invoice_line_ids:
    print(line.product_id.name, line.tx_match_ordered, line.tx_match_received, line.tx_match_billed, line.tx_match_status)
bill.with_context(taqnix_skip_match=True).action_post()   # post without the check (an integration, for instance)

Documentation

Setup, settings and troubleshooting, written by the author.

Open the documentation

Changelog

Every release, newest first.

v1.0.0

1.0.0 – Initial release

  • Match of each vendor bill line with the purchase order and the quantity received
  • Amount at risk; tolerances in percent per company
  • Posting of a bill that does not match is blocked until an approver accepts it
  • Approval with a reason, void when the bill changes; withdraw the approval
  • Posted bills and credit notes of the same order line; vendors that must match; services
  • Bills to review and differences lists; Arabic translation, automated tests

Frequently asked questions

What does three-way match mean?

The purchase order (what you asked for), the receipt (what came) and the vendor bill (what you are charged) must agree before you pay. This module compares them line by line.

What is flagged?

A bill line that bills more than was received (beyond the quantity tolerance) or at a price above the order (beyond the price tolerance). The amount at risk is shown in money.

Can I still post a bill that does not match?

Yes: an approver accepts the difference and writes the reason. Or you can untick Block the bills that do not match in the settings and keep only the flags.

What happens if the bill is changed after the approval?

The approval is void as soon as a quantity or a price of the bill changes; the bill goes back to To review.

What about services?

A service is matched with the quantity ordered, because nothing is received.

Does it work with several bills for one order?

Yes. The posted bills of the same order line count in the quantity billed to date, and credit notes lower it.

Are bills without a purchase order blocked?

No, unless you tick Bills must match an order on the vendor. Rent or utilities are not flagged.

Does it work in Arabic?

Yes. The module is translated and works right to left, and the documentation is in Arabic too.

More from TAQNIX

  • PluginNew

    AI Alt Text Generator for WordPress – Image SEO & Accessibility in Bulk

    Write alt text, titles and captions for your images with AI: on upload, in bulk or one by one, in your language, with a review step and a coverage report.

    by TAQNIX
    No reviews yet
    Sales:0$29.00
  • ModuleNew

    Interview Scorecards for Odoo 19 Community – Weighted Criteria, Independent Scores and Candidate Comparison

    Interview every candidate the same way in Odoo Community: a scorecard with weighted criteria, each interviewer scores on his own, a weighted result and a recommendation, and a comparison of the candidates by criterion.

    by TAQNIX
    No reviews yet
    Sales:0$49.00
  • ModuleNew

    Visitor Management for Odoo 19 Community – Reception Board, Badges with QR, Invitations and Blacklist

    Welcome visitors in Odoo Community: pre-register visits, send the invitation, check in and out at the reception, print a badge with a QR code, tell the host, refuse blacklisted visitors and keep the log.

    by TAQNIX
    No reviews yet
    Sales:0$59.00
  • ModuleNew

    Meeting Room Booking for Odoo 19 Community – Calendar, No Clashes, Recurring Meetings and Approval

    Book meeting rooms in Odoo Community: a calendar of the rooms, no clashes, seats, equipment and opening hours, recurring meetings, an optional approval and a search for a free room.

    by TAQNIX
    No reviews yet
    Sales:0$49.00

Similar items

  • ModuleNew

    Reorder Suggestions for Odoo 19 Community – What to Buy, How Much and When, with One-Click RFQs

    Know what to order and how much in Odoo Community: from your sales, stock on hand and on order and vendor lead times, get days of stock left, urgency and the quantity to order, then create the RFQs by vendor in one click.

    by TAQNIX
    No reviews yet
    Sales:0$79.00
  • ModuleNew

    Purchase Requests for Odoo 19 – Internal Requests, Approval and RFQs per Vendor

    Let everyone ask for what they need: purchase requests with approval, one RFQ per vendor created from the approved lines, and what was ordered and received followed on the request.

    by TAQNIX
    No reviews yet
    Sales:0$59.00
  • ModuleNew

    Purchase Order Approval Workflow for Odoo 19 – Multi-Level RFQ and PO Approval by Amount or Discount

    Stop big purchase orders and big discounts from being confirmed without a manager's OK. Levels by amount or discount, approvers in sequence, reasons for rejection, tasks and a full history.

    by TAQNIX
    No reviews yet
    Sales:0$39.00
  • ModuleNew

    Interview Scorecards for Odoo 19 Community – Weighted Criteria, Independent Scores and Candidate Comparison

    Interview every candidate the same way in Odoo Community: a scorecard with weighted criteria, each interviewer scores on his own, a weighted result and a recommendation, and a comparison of the candidates by criterion.

    by TAQNIX
    No reviews yet
    Sales:0$49.00