{"id":73249,"date":"2025-06-23T07:18:48","date_gmt":"2025-06-23T07:18:48","guid":{"rendered":"https:\/\/www.hashmicro.com\/blog\/?p=73249"},"modified":"2025-06-23T07:20:08","modified_gmt":"2025-06-23T07:20:08","slug":"three-way-matching","status":"publish","type":"post","link":"https:\/\/www.hashmicro.com\/blog\/three-way-matching\/","title":{"rendered":"What is the Importance of 3 Way Matching for Your Business"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">Are you finding it difficult to ensure the accuracy of your accounts payable transactions? Managing financial records manually often leads to errors, which can result in payment discrepancies and strain relationships with suppliers.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Mistakes and delays in accounts payable pose a challenge to Singapore businesses. The <\/span><a href=\"https:\/\/sbr.com.sg\/financial-services\/news\/singapore-firms-tighten-credit-terms-delays-persist-in-2024-report\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">Coface Asia Corporate Payment Survey<\/span><\/a><span style=\"font-weight: 400;\"> 2025 reveals that 60% of firms reported overdue payments in 2024, indicating ongoing delays despite stricter credit terms. These delays disrupt cash flow and harm supplier trust, making efficient accounts payable processes crucial.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Luckily, there is a solution: 3-way matching. This process ensures that your purchase order, receiving report, and invoice are aligned before payment is made, helping prevent errors and making the accounts payable process more efficient.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Businesses that automate 3-way matching report faster payments, fewer errors, and improved supplier trust. In this article, we\u2019ll explain how 3-way matching works, its benefits, and how automation can enhance your accounts payable process.<\/span><\/p>\n<table style=\"border-collapse: collapse; background-color: #fffacd; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); border-radius: 25px 25px 25px 25px;\" width=\"100%\">\n<tbody>\n<tr>\n<td style=\"padding: 15px; border: none;\">\n<h3 style=\"margin-bottom: 10px;\"><span style=\"background-color: #990000; color: #ffffff; padding: 5px;\"><b>Key Takeaways<\/b><\/span><\/h3>\n<ul>\n<li><b><a href=\"#1\">3-way matching <\/a><\/b>is a critical accounts payable process<span style=\"font-weight: 400;\"> that verifies an invoice by cross-checking it against a purchase order and delivery receipt, ensuring accurate and authorized payments.<\/span><\/li>\n<li><b><a href=\"#2\">The 3-way matching process<\/a><\/b> involves verifying a purchase order, delivery receipt, and invoice<span style=\"font-weight: 400;\"> to ensure consistency before authorizing payment.\u00a0<\/span><\/li>\n<li>The process <b><a href=\"#3\">helps prevent fraud and errors<\/a><\/b><span style=\"font-weight: 400;\"> by catching discrepancies before payments are processed, reducing the risk of financial losses.<\/span><\/li>\n<li><a href=\"https:\/\/www.hashmicro.com\/accounting\"><b>HashMicro\u2019s accounting system<\/b><\/a> <span style=\"font-weight: 400;\">offers a comprehensive solution, integrating three-way matching with your current financial workflow, improving accuracy and efficiency in your accounts payable process. (H2: Automating the Three Way Matching Process)<\/span><span style=\"font-weight: 400;\"><style>\r\n.button-cta-custom {\r\n    background-color: #8a0e19;\r\n    color: #fff !important;\r\n    -webkit-transition: all .3s ease;\r\n    transition: all .3s ease;\r\n    padding: 8px 24px;\r\n    display: inline-block;\r\n    border-radius: 8px;\r\n    font-size: 16px;\r\n    font-weight: bold;\r\n}\r\n.button-cta-custom:hover{\r\n\tbackground-color:#991b26\t\t\r\n}\r\n<\/style>\r\n<a class=\"button-cta-custom\" href=\"https:\/\/www.hashmicro.com\/free-product-tour\/?medium=cta-button\" target=\"_blank\">Book a Demo Now!<\/a><\/span><\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span style=\"font-weight: 400;\"><!-- <div id=\"toc_group_article\" style=''>\r\n\t<p style='font-size:25px;font-weight:bold; margin-bottom:0px'>\r\n\t\tTable of Content:\r\n\t<\/p>\r\n\t<ul id=\"list_toc\" class='list_toc'><\/ul>\r\n<\/div> -->\r\n\r\n<!-- <div class=\"dropdown-fixed-top\" id=\"dropdown-fixed-top\">\r\n\t<div class=\"row\">\r\n\t\t<p id=\"pilihDaftarIsi\">Table of Content<\/p>\r\n\t\t<p><i class=\"td-icon-menu-down\"><\/i><\/p>\r\n\t<\/div>\r\n\t\r\n\t<div>\r\n\t\t<ul id=\"list_toc_top\" class='list_toc'><\/ul>\r\n\t<\/div>\r\n<\/div> -->\r\n\r\n<div id=\"placeholder-toc\"><\/div>\r\n<div id=\"toc\">\r\n    <div class=\"header\">\r\n\t<span class=\"toc-title\" id=\"toc-title\">Table of Content<\/span>\t\r\n\t <i class=\"toc-icon\">\r\n        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"30\" height=\"30\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#000\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"header-icon\">\r\n          <path d=\"m6 9 6 6 6-6\" \/>\r\n        <\/svg>\r\n      <\/i>\r\n\t<\/div>\r\n    <div class=\"list\">\r\n      <ul id=\"toc-list\"><\/ul>\r\n    <\/div>\r\n <\/div>\r\n\r\n<style>\r\n\t@media (max-width: 992px) {\r\n\t\t#toc_group_article {\r\n\t\t\tpadding-top: 24px;\r\n\t\t}\r\n\t}\r\n\t\r\n\t#list_toc_float {\r\n\t\tmax-height: calc(100vh - 250px);\r\n\t\toverflow-y: auto;\r\n\t}\r\n\t\r\n\t#list_toc_top {\r\n\t\tdisplay: none;\r\n\t\tbackground: #fff;\r\n\t\tmargin-bottom: 4px;\r\n\t}\r\n\t\r\n\t#list_toc_top li {\r\n\t\tdisplay: block;\r\n\t\tmargin-left: 0;\r\n\t\tlist-style: none;\r\n\t}\r\n\t\r\n\t#list_toc_top a {\r\n\t\tpadding: 5px;\r\n\t\tdisplay: block;\r\n\t}\r\n\t\r\n\t#list_toc_top.show {\r\n\t\tdisplay: block;\r\n\t}\r\n\r\n\t#list_toc_top a {\r\n\t\tcolor: #434343;\r\n\t\tborder-bottom: 1px solid #bbb;\r\n\t}\r\n\t\r\n\t.dropdown-fixed-top {\r\n\t\tposition: fixed;\r\n\t\ttop: 59px;\r\n\t\twidth: 100%;\r\n\t\tz-index: 99;\r\n\t\tborder-bottom: 2px solid #9c171e;\r\n\t\tpadding: 12px;\r\n\t\tbackground: #fff;\r\n\t\twidth: 100%;\r\n\t\tcursor: pointer;\r\n\t\tdisplay: none;\r\n\t\tleft: 0;\r\n\t\tbox-shadow: 0 -2px 7px 6px rgba(0, 0, 0, 0.17);\r\n\t}\r\n\t\r\n\t#dropdown-fixed-top.show {\r\n\t\tanimation: showAnim 0.5s ease;\r\n\t\tdisplay: block;\r\n\t\topacity: 1;\r\n\t}\r\n\t\r\n\t@keyframes showAnim {\r\n\t\tfrom {\r\n\t\t\tdisplay: none;\r\n\t\t\topacity: 0;\r\n\t\t}\r\n\t\tto {\r\n\t\t\tdisplay: block;\r\n\t\t\topacity: 1;\r\n\t\t}\r\n\t}\r\n\t\r\n\t.dropdown-fixed-top #list_toc_top {\r\n\t\tmax-height: calc(50vh - 110px);\r\n\t\toverflow-y: scroll;\r\n\t}\r\n\t\r\n\t.dropdown-fixed-top .row {\r\n\t\tdisplay: flex;\r\n\t\tjustify-content: space-between\r\n\t}\r\n\t\r\n\t.dropdown-fixed-top .row p {\r\n\t\tmargin-bottom: 0;\r\n\t}\r\n\t\r\n\t#pilihDaftarIsi {\r\n\t\tmax-width: 100%;\r\n\t\toverflow: hidden;\r\n\t\twhite-space: nowrap;\r\n\t}\r\n\t\r\n\t@media (min-width: 1018px) {\r\n\t\t.dropdown-fixed-top {\r\n\t\t\tdisplay: none;\r\n\t\t}\r\n\t}\r\n\t\r\n\t#list_toc li {margin-bottom: 0;margin-top: 5px;}\r\n\t#list_toc > li > ul {padding-left: 20px;margin-bottom: 0;}\r\n\t#list_toc{height:max-content;transition:ease-in-out}\r\n\t#list_toc li {margin-bottom: 0;margin-top: 5px;}\r\n\t#list_toc_float li.active > a {color:#b1252d;background: #ffe1e3;}\r\n\t#list_toc_top li.active > a {color:#b1252d;background: #ffe1e3;}\r\n\t#list_toc_float li a {padding:3px 7px}\r\n\t#list_toc_float li a {\r\n\t\tdisplay: block;\r\n\t\tcolor: #000;\r\n\t\tmargin-bottom: 6px;\r\n\t\tpadding-top: 2px;\r\n\t\tpadding-bottom: 2px;\r\n\t\ttransition: all 0.2s ease-in-out;\r\n\t\tfont-size: 15px;\r\n\t\tline-height: 18px;\r\n\t}\r\n\t#list_toc_float li{list-style:none;list-style-position:inside; margin-left:0;}\r\n\t#list_toc_float a:hover{color:#b1252d;}\r\n\t\r\n\t#toc_group_float{\r\n\t\tline-height: 24px;\r\n\t\tmax-height: calc(100vh - 100px);\r\n\t\toverflow: auto;\r\n\t\tz-index: 99;\r\n\t\tdisplay:none!important;\r\n\t\tbackground:#fff;\r\n\t\ttransition:all 0.5s linear\r\n\t}\r\n\t\r\n\t@media (min-width:1019px){\r\n\t\t#toc_group_float {\r\n\t\t\tdisplay:block!important;\r\n\t\t\t}\r\n\t\t\t\t#toc_group_article {\r\n\t\t\tdisplay:none;\r\n\t\t}\r\n\t}\r\n\r\n<\/style>\r\n\r\n<!-- ToC styling  -->\r\n<style>\r\n\t\/* Simple styling for the TOC *\/\r\n\t\r\n\t#toc ul li:last-child {\r\n    padding-bottom: 16px; \/* Adjust the value as needed *\/\r\n}\r\n\r\n.td-fix-index {\r\n\t transform: unset !important;\r\n     -webkit-transform: unset !important; \r\n}\r\n.footer-contact .td-fix-index {\r\n\t transform: translateZ(0) !important;\r\n     -webkit-transform: translateZ(0) !important; \r\n}\r\n\t.tdb_single_content .tdb-block-inner.td-fix-index{\r\n\t\tposition: static;\r\n\t}\r\n\t\r\n\r\n\t\r\n#toc {\r\n  background-color: #FFF;\r\n\tpadding: 17px 24px 0px 24px !important;\r\n  margin-bottom: 20px;\r\n\/*   border: 1px solid #9C171E; *\/\r\n  border-radius: 6px;\r\n\tdisplay: none;\r\n  max-width: 100%;\r\n  transition: .4s ease height;\r\n\tmargin-left: 0;\r\n\toverflow: hidden;\r\n}\r\n\r\n#toc .header{\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: space-between;\r\n\tbackground-color: transparent;\r\n}\r\n\t\r\n\t#toc.sticky .header{\r\n\t\tpadding: 4px 0;\r\n\t}\r\n\t\r\n.header p{\r\n  font-size: 18px !important;\r\n  font-weight: 600 !important;\r\n  color: #393939;\r\n   margin-bottom: 0;\r\n  \/* margin-top: 20px; *\/\r\n}\r\n\r\n.toc-icon{\r\n  float: right;\r\n\/*   visibility: hidden; *\/\r\n}\r\n\r\n\t.toc-title{\r\n\t\tmargin-right: auto;\r\n\/* \t\tpadding-left: 20px; *\/\r\n\t\tfont-weight: 600;\r\n\t\talign-self: center;\t}\t\r\n\r\n#toc ul {\r\n  list-style-type: none;\r\n  padding-left: 0;\r\n}\r\n\t\r\n#toc.sticky ul{\r\n\toverflow-y: auto;\r\n\tmax-height: 250px;\r\n\tmargin-top: 0px;\r\n\tpadding-top: 20px;\r\n\/* \tborder-top: 1px solid #d3d3d3; *\/\r\n}\r\n\t\r\n#toc ul li {\r\n\/*   margin-bottom: 10px; *\/\r\n  margin-bottom: 10px;\r\n\tmargin-left: 0;\r\n\ttransition: .2s ease;\r\n\tcursor: pointer;\r\n}\r\n\t\r\n\t#toc.sticky ul li {\r\n\t  margin-right: 10px;\r\n\t}\r\n\t\r\n.td-post-content #toc-list li a:hover, .td-post-content #toc-list a.active{\r\n\tbackground-color: #FFF;\r\n\/* \tpadding: 8px 16px 8px 16px; *\/\r\n\tpadding: 4px 16px 4px 16px;\r\n\tborder-radius: 6px;\r\n\tcolor: #9c171e !important;\r\n\tfont-weight: 600 !important;\r\n}\r\n\t\r\n\t.td-post-content #toc-list li:hover a, .td-post-content #toc-list a.active{\r\n\t\tcolor: #9C171E !important;\r\n\t\tfont-weight: 600 !important;\r\n\t}\r\n\t\r\n.td-post-content #toc-list a.active{\r\n\tfont-weight: bold !important;\r\n\tcolor: #9C171E !important;\r\n}\r\n\t\r\n#toc a, .td-post-content #toc-list a {\r\n  text-decoration: none;\r\n  color: #ea1717 !important;\r\n  transition: .2s ease;\r\n\tfont-weight: 400 !important;\r\n\tdisplay: block;\r\n\t\r\n\tpadding: 4px 16px 4px 0;\r\n}\r\n\r\n#toc.sticky {\r\n  position: fixed;\r\n\/*   top: 73px; *\/\r\n\tbottom: 0;\r\n  z-index: 100; \r\n  box-shadow: 0 2px 5px rgba(0,0,0,0.1); \r\n\twidth: 100%; \r\n\tbackground-color: #FFF;\r\n\/* \tbackground-color: #FFF1F1; *\/\r\n\tborder-bottom: 1px solid #ea1717;\r\n\/*   border: 1px solid #393939; *\/\r\n  box-shadow: 0px 0px 14px 0px #00000040;\r\n  cursor: pointer;\r\n\tanimation: fadein .3s ease;\r\n\tpadding: 12px 16px !important;\r\n}\r\n\t\r\n\t.fadein{\r\n\t\tanimation: fadein .3s ease;\r\n\t}\r\n\t\r\n\t.fadeout{\r\n\t\tanimation: fadeout .3s ease;\r\n\t}\r\n\t\r\n\t\r\n\t@keyframes fadein{\r\n\t\t0% {\r\n\t\t\topacity: 0;\r\n\t\t}\r\n\t\t100%{\r\n\t\t\topacity: 1;\r\n\t\t}\r\n\t}\r\n\t\r\n\t@keyframes fadeout{\r\n\t\t0% {\r\n\t\t\topacity: 1;\r\n\t\t}\r\n\t\t100%{\r\n\t\t\topacity: 0;\r\n\t\t}\r\n\t}\r\n\r\n\t\r\n#toc.sticky .header p{\r\n\tmargin-bottom: 10px;\r\n\tmargin-top: 10px;\r\n}\r\n\r\n#toc.sticky .toc-icon{\r\n  visibility: visible;\r\n\/* \ttransition: 0.4s ease; *\/\r\n}\r\n\t\r\n\t.toc-icon{\r\n\t\talign-items: center;\r\n    \tdisplay: flex;\r\n\t}\r\n\t\r\n\tsvg.header-icon{\r\n\/* \t\tbackground-color: #9c171e; *\/\r\n\t\tbackground-color: #FFF;\r\n\t\tborder-radius: 30px;\r\n\t\tpadding: 5px;\r\n\t}\r\n\r\n#toc.sticky .list{\r\n\/*   max-height: 0; *\/\r\n  transition: height 0.4s ease;\r\n}\r\n\t\r\n\t#toc .list{\r\n\/*   max-height: 0; *\/\r\n  transition: height 0.4s ease;\r\n}\r\n\r\n#toc .header.active .toc-icon{\r\n\ttransform: rotate(0deg); \r\n\topacity: 1;\r\n}\r\n\r\n\t#toc .header.active + .list {\r\n\t  max-height: 200px; \/* Adjust this value as needed *\/\r\n\t  opacity: 1;\r\n\t}\r\n\t\r\n\t#placeholder-toc{\r\n\/* \t\tdisplay: none; *\/\r\n\t}\r\n\t\r\n\t@media (min-width: 768px) and (max-width: 991px){\r\n\t\t#toc.sticky{\r\n\/* \t\t\ttop: 104px; *\/\r\n\t\t\tbottom: 0px;\r\n\t\t}\r\n\t\t\r\n\t\t#toc{\r\n\t\t\twidth: unset !important;\r\n\t\t}\r\n\t}\r\n\t\r\n\t@media (max-width: 767px){\r\n\t\t#toc{\r\n\t\t\twidth: 100% !important;\r\n\t\t\tdisplay: inline-block;\r\n\t\t}\r\n\t\t\r\n\t\t#toc.sticky{\r\n\t\t\twidth: 90% !important;\r\n\/* \t\t\ttop: 81px; *\/\r\n\t\t\tbottom: 60px;\r\n\t\t\tmargin-left: auto;\r\n\t\t\tmargin-right: auto;\r\n\t\t\tpadding: 0 16px;\r\n\t\t\tright: 5%;\r\n\t\t}\r\n\t}\r\n\t\r\n\t<\/style>\r\n\r\n<!-- ToC List for mobile -->\r\n<script>\r\n \/\/ Generate TOC based on headings\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n  \/\/ Get the element that will contain the TOC\r\n  const tocList = document.getElementById('toc-list');\r\n\r\n  \/\/ Get the element with the ID 'article-left'\r\n  const article = document.querySelector('.td-post-content');\r\n\r\n  \/\/ Find all h2 elements within 'myarticle'\r\n  const headers = article.getElementsByTagName('h2');\r\n\r\n  \/\/ Loop through the h2 elements and create a list item for each one\r\n  for (let i = 0; i < headers.length; i++) {\r\n    const header = headers[i];\r\n    const headerText = header.textContent;\r\n\/\/     const headerId = 'header-' + i;\r\n    const headerId = headerText\r\n    .toLowerCase()\r\n    .trim()\r\n    .replace(\/[^\\w\\s-]\/g, '')  \/\/ hapus tanda baca\r\n    .replace(\/\\s+\/g, '-'); \/\/ ganti spasi jadi \"-\"\r\n\r\n    \/\/ Set an ID for the header if it doesn't have one\r\n    header.setAttribute('id', headerId);\r\n\r\n    \/\/ Create a list item for the TOC\r\n    const listItem = document.createElement('li');\r\n\r\n    \/\/ Create a link for the list item\r\n    const link = document.createElement('a');\r\n    link.setAttribute('href', '#' + headerId);\r\n    link.textContent = headerText;\r\n\r\n    \/\/ Append the link to the list item\r\n    listItem.appendChild(link);\r\n\r\n    \/\/ Append the list item to the TOC list\r\n    tocList.appendChild(listItem);\r\n  }\r\n});\r\n\r\n\/\/ Keep height and placement of content using placeholder in place of TOC\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n  const toc = document.querySelector('#toc');\r\n  const placeholderToc = document.querySelector('#placeholder-toc');\r\n\r\n  function setPlaceholderHeight() {\r\n    placeholderToc.style.height = `${toc.offsetHeight}px`;\r\n  }\r\n\r\n  \/\/ Set the initial height of the placeholder\r\n  setPlaceholderHeight();\r\n\r\n  \/\/ Update the height on window resize\r\n  window.addEventListener('resize', setPlaceholderHeight);\r\n});\r\n  const tocTitle = document.querySelector('#toc-title'); \/\/ Assuming header-faq is the element for TOC title\r\n\r\n\/\/ Sticky TOC and update heading\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n  const toc = document.querySelector('#toc');\r\n  const footer = document.querySelector('.td-footer-template-wrap');\r\n  const tocParent = toc.parentElement;\r\n  const divTop = tocParent.getBoundingClientRect().top + window.pageYOffset;\r\n  const tocHeight = toc.offsetHeight;\r\n  const triggerPoint = divTop + tocHeight + 700;\r\n  const footerHeight = footer.offsetHeight;\r\n  const triggerFooterPoint = footer.getBoundingClientRect().top + window.pageYOffset - footerHeight - footerHeight - footerHeight;\r\n  const phtoc = document.querySelector('#placeholder-toc');\r\n  const headers = document.querySelectorAll('.td-post-content h2');\r\n  const navLinks = document.querySelectorAll('#toc-list a');\r\n\t\r\n\tconst panel2 = document.querySelector(\"#toc .list\");\r\n\tvar icon = document.querySelector(\".toc-icon\");\r\n\r\n  let activeLink = null; \/\/ Declare activeLink outside the loop\r\n\t\r\n  \/\/ Function to handle scroll and add\/remove .sticky class\r\n  function handleScroll() {\r\n    const windowTop = window.pageYOffset || document.documentElement.scrollTop;\r\n    let currentHeader = '';\r\n\r\n    \/\/ Highlight user progress as the heading comes\r\n    headers.forEach(header => {\r\n\t\tconst headerTop = header.offsetTop;\r\n\t\tconst headerHeight = header.clientHeight;\r\n\t\tif (window.scrollY >= (headerTop - headerHeight + 700)) {\r\n\t\t\tconst currentHeaderId = header.getAttribute('id');\r\n\t\t\tconst currentHeaderText = document.getElementById(currentHeaderId).textContent;\r\n\/\/ \t\t\tconsole.log(\"current header text:\", currentHeaderText);\r\n\t\t\ttocTitle.textContent = currentHeaderText;\r\n\t\t\tcurrentHeader = currentHeaderId;\r\n\t\t\t\r\n\t\t\tif(window.innerWidth < 767){\r\n\t\t\t\ttocTitle.textContent = 'Table of Content';\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n    navLinks.forEach(link => {\r\n      link.classList.remove('active');\r\n      if(currentHeader != '') {\r\n\t\t  if (link.getAttribute('href').includes(currentHeader)) {\r\n\t\t\t  link.classList.add('active');\r\n\t\t  }\r\n\t  }\r\n    });\r\n\/\/     if (windowTop < triggerFooterPoint) {\r\n\/\/         toc.style.display = 'block';\r\n\/\/ \t}else{\r\n\/\/         toc.style.display = 'none';\r\n\/\/ \t}\r\n    \/\/ Update TOC title if sticky\r\n    if (windowTop > triggerPoint) {\r\n      if (!toc.classList.contains('sticky')) {\r\n        phtoc.style.display = \"block\";\r\n        toc.classList.add('sticky');\r\n        toc.style.width = `${tocParent.offsetWidth}px`; \/\/ Set width to match the parent element\r\n        toc.setAttribute('style', 'width: ' + tocParent.offsetWidth + 'px !important;');\r\n        toc.style.backgroundColor = \"#FFF\";\r\n\t\tpanel2.style.height = '0px';\r\n\t\t  icon.style.transform = \"rotate(180deg)\";\r\n\t\t  if(window.innerWidth < 767){\r\n\/\/ \t\t\t  const tocs = document.querySelector('#toc.sticky');\r\n\t\t\t  tocTitle.textContent = 'Table of Content'; \/\/ Reset title\r\n       \t\t  toc.style.width = '150px'; \/\/ Set width to match the parent element\r\n\t\t  }\r\n      }\r\n      if (currentHeader) {\r\n\/\/         console.log(\"activeLink:\", activeLink);\r\n        if (activeLink) {\r\n\/\/           tocTitle.textContent = activeLink.textContent; \/\/ Update TOC title\r\n          tocTitle.textContent = activeLink ? activeLink.textContent : \"\"; \/\/ Update title only if activeLink exists\r\n        }\r\n      }\r\n    } else {\r\n      toc.classList.remove('sticky');\r\n      phtoc.style.display = \"none\";\r\n      toc.style.width = 'unset'; \/\/ Reset to original width\r\n      toc.style.backgroundColor = \"#FFF\";\r\n      tocTitle.textContent = 'Table of Content'; \/\/ Reset title\r\n\t\tpanel2.style.height = panel2.scrollHeight + \"px\";\r\n\t\ticon.style.transform = \"rotate(180deg)\";\r\n    }\r\n  }\r\n\r\n    \/\/ Attach the scroll event listener to the window\r\n    window.addEventListener('scroll', handleScroll);\r\n\r\n    \/\/ Initial call to handleScroll to set the correct state on load\r\n    handleScroll();\r\n});\r\n\t\r\n\t\/\/ Open toggle TOC\r\n\t  document.addEventListener(\"DOMContentLoaded\", function() {\r\n\t\tvar tocHeader = document.querySelector(\"#toc .header\");\r\n\t\tvar toc = document.querySelector(\"#toc\");\r\n\t\tvar icon = document.querySelector(\".toc-icon\");\r\n\t\tconst tocTitle = document.querySelector('#toc-title');\r\n\t\tconst tocs = document.querySelector('#toc.sticky');\r\n \t\tconst tocParent = toc.parentElement;\t\t  \r\n\r\n\t\t  tocHeader.addEventListener(\"click\", function() {\r\n\t\t\tvar panel = this.nextElementSibling;\r\n\t\t\tif (panel.style.height !== '0px') { \/\/ Check if height is not 0px\r\n\t\t\t  panel.style.height = '0px'; \/\/ Set height to 0 for full collapse\r\n\t\t\t  icon.style.transform = \"rotate(180deg)\";\r\n\/\/ \t\t\t\ttoc.style.paddingBottom = '6px'; \r\n\t\t\t\tif(window.innerWidth > 768){\r\n\t\t\t\t\tif(!toc.classList.contains('sticky')){\r\n\t\t\t\t\t\ttoc.style.width = \"unset\";\r\n\/\/ \t\t\t\t\t\ttoc.setAttribute('style', 'width: ' + tocParent.offsetWidth + 'px !important;');\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (toc.classList.contains('sticky')){\r\n\t\t\t\t\t\ttoc.style.width = '${tocParent.offsetWidth}px';\r\n\t\t\t\t\t\ttoc.setAttribute('style', 'width: ' + tocParent.offsetWidth + 'px !important;');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif(window.innerWidth < 767){\r\n\t\t\t\t\ttoc.style.width = \"unset\"; \/\/ Reset width\r\n\t\t\t\t}\r\n\t\t\t\ttoc.style.backgroundColor = \"#FFF1F1\";\r\n\t\t\t} else {\r\n\t\t\t  panel.style.height = panel.scrollHeight + \"px\";\r\n\t\t\t  icon.style.transform = \"rotate(0deg)\";\r\n\t\t\t  toc.style.backgroundColor = \"#FFF\";\r\n\t\t\t  tocTitle.textContent = 'Table of Content'; \/\/ Reset title\r\n\t\t\t\ttoc.style.paddingBottom = '24px';\r\n\t\t\t \tif(window.innerWidth < 767){\r\n\t\t\t\t\ttoc.style.width = `${tocParent.offsetWidth}px`; \/\/ Set width to match the parent element\r\n\t\t\t\t\ttoc.setAttribute('style', 'width: ' + tocParent.offsetWidth + 'px !important;');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t  });\r\n\r\n\t\t  \/\/ Close TOC when a link inside it is clicked\r\n\t\t  var tocLinks = document.querySelectorAll(\"#toc .list a\");\r\n\t\t  tocLinks.forEach(function(link) {\r\n\t\t\tlink.addEventListener(\"click\", function() {\r\n\t\t\t  var panel = document.querySelector(\"#toc .list\");\r\n\t\t\t  panel.style.height = '0px'; \/\/ Set height to 0 for full collapse\r\n\t\t\t  icon.style.transform = \"rotate(180deg)\";\r\n\t\t\t  toc.style.backgroundColor = \"#FFF\";\r\n\t\t\t});\r\n\t\t  });\r\n\t\t});\r\n\r\n\r\n\r\n\t\r\n\/\/ \tmake the heading at the center of the viewport\r\n\/\/ \tdocument.addEventListener('DOMContentLoaded', function() {\r\n\/\/     \/\/ Add click event listener to all links in the TOC list\r\n\/\/     document.querySelectorAll('#toc-list a').forEach(anchor => {\r\n\/\/         anchor.addEventListener('click', function (e) {\r\n\/\/             e.preventDefault(); \/\/ Prevent the default behavior of jumping to the anchor\r\n\/\/ \/\/ \t\t\tconsole.log(\"prevent default\");\r\n\/\/             const targetId = this.getAttribute('href').substring(1); \/\/ Get the ID of the target element\r\n\/\/             const targetElement = document.getElementById(targetId); \/\/ Get the target element\r\n\r\n\/\/             if (targetElement) {\r\n\/\/                 const headerHeight = document.querySelector('#toc .header').offsetHeight; \/\/ Get the height of the fixed header\r\n\/\/                 const windowHeight = window.innerHeight; \/\/ Get the height of the viewport\r\n\/\/                 const targetOffset = targetElement.offsetTop; \/\/ Get the top offset of the target element\r\n\/\/                 const scrollTo = targetOffset + (windowHeight \/ 2) + (headerHeight); \/\/ Calculate the scroll position to center the target element\r\n\r\n\/\/                 \/\/ Scroll to the calculated position smoothly\r\n\/\/                 window.scrollTo({\r\n\/\/                     top: scrollTo,\r\n\/\/                     behavior: 'smooth'\r\n\/\/                 });\r\n\/\/             }\r\n\/\/         });\r\n\/\/     });\r\n\/\/ });\r\n<\/script>\r\n\r\n<!-- START script lama -->\r\n<!-- <script>\r\n\/\/ \tvar pilihDaftarIsi = document.getElementById('pilihDaftarIsi');\r\n\t\r\n\/\/ \tdocument.addEventListener('DOMContentLoaded', function() {\r\n\/\/ \t\tvar dropdownFixedTop = document.querySelector('.dropdown-fixed-top');\r\n\r\n\/\/ \t\tdropdownFixedTop.addEventListener('click', function() {\r\n\/\/ \t\t\tvar dropdownContent = this.querySelector('.list_toc');\r\n\/\/ \t\t\tdropdownContent.classList.toggle('show');\r\n\/\/ \t\t});\r\n\r\n\/\/ \t\twindow.addEventListener('click', function(event) {\r\n\/\/ \t\t\tvar listTocTop = document.getElementById('list_toc_top');\r\n\r\n\/\/ \t\t\tif (!dropdownFixedTop.contains(event.target)) {\r\n\/\/ \t\t\t\tlistTocTop.classList.remove('show');\r\n\/\/ \t\t\t}\r\n\/\/ \t\t});\r\n\/\/ \t});\r\n\t\r\n\/\/ \tvar daftarIsiContainer = document.getElementById('toc_group_article');\r\n\/\/ \tvar dropdownFixedTop = document.getElementById('dropdown-fixed-top');\r\n\/\/     var triggered = false; \/\/ Flag to keep track of whether the function has been triggered\r\n\r\n\/\/     window.addEventListener('scroll', function() {\r\n\/\/         if (!triggered && isCompletelyScrolledPast(daftarIsiContainer)) {\r\n\/\/             showSectionDropdownFixedTop(false);\r\n\/\/             triggered = true;\r\n\/\/         } else if (triggered && !isCompletelyScrolledPast(daftarIsiContainer)) {\r\n\/\/             showSectionDropdownFixedTop(true);\r\n\/\/             triggered = false;\r\n\/\/         }\r\n\/\/     });\r\n\r\n\/\/     function isCompletelyScrolledPast(element) {\r\n\/\/         var elementTop = element.getBoundingClientRect().top;\r\n\/\/         var elementBottom = element.getBoundingClientRect().bottom;\r\n\/\/         return elementTop < 0 && elementBottom < 0;\r\n\/\/     }\r\n\r\n\/\/     function showSectionDropdownFixedTop(show) {\r\n\/\/ \t\tif (show) {\r\n\/\/ \t\t\tdropdownFixedTop.classList.remove(\"show\");\r\n\/\/ \t\t} else {\r\n\/\/ \t\t\tdropdownFixedTop.classList.add(\"show\");\r\n\/\/ \t\t}\r\n\/\/     }\r\n<\/script> -->\r\n<!-- <script>\r\n    \/\/ Scrollspy function to highlight the active TOC item based on the scroll position\r\n  function scrollSpy(tocClass) {\r\n    const scrollPosition = window.scrollY;\r\n\r\n    \/\/ Find the active h2 and h3 headings based on their position in the corresponding TOC\r\n    let activeH2 = null;\r\n    let activeH3 = null;\r\n\r\n    const tocItems = document.querySelectorAll(`.${tocClass} li`);\r\n    tocItems.forEach(item => {\r\n      const a = item.querySelector('a');\r\n      if (!a) return;\r\n      const href = a.getAttribute('href');\r\n      const targetId = href.substring(1); \/\/ Remove the '#' from the href to get the target ID\r\n      const targetElement = document.getElementById(targetId);\r\n      if (!targetElement) return;\r\n\r\n      const targetTop = targetElement.getBoundingClientRect().top + scrollPosition;\r\n      const nextItem = item.nextElementSibling;\r\n      const nextTop = nextItem ? nextItem.getBoundingClientRect().top + scrollPosition : Infinity;\r\n\r\n      if (targetTop <= scrollPosition + 150) {\r\n        if (a.parentElement.parentElement === tocItems) {\r\n          \/\/ The h2 heading is at the root level of the TOC\r\n          activeH2 = { id: targetId, level: 'h2' };\r\n        } else {\r\n          \/\/ The h3 heading is nested under an h2 heading\r\n          const parentH2 = a.parentElement.parentElement.previousElementSibling;\r\n          if (parentH2) {\r\n            const h2Link = parentH2.querySelector('a');\r\n            if (h2Link) {\r\n              const h2Href = h2Link.getAttribute('href');\r\n              const h2Id = h2Href.substring(1);\r\n              activeH2 = { id: h2Id, level: 'h2' };\r\n            }\r\n          }\r\n          activeH3 = { id: targetId, level: 'h3' };\r\n        }\r\n      }\r\n\r\n      if (targetTop > scrollPosition + 150 && nextTop > scrollPosition + 150 && !activeH3) {\r\n        \/\/ Reset the activeH2 when there are no more active h3 headings\r\n        activeH2 = null;\r\n      }\r\n    });\r\n\r\n    \/\/ Update the active state for the TOC items\r\n    tocItems.forEach(item => {\r\n      item.classList.remove('active');\r\n      const a = item.querySelector('a');\r\n      if (a) {\r\n        const href = a.getAttribute('href');\r\n        const targetId = href.substring(1);\r\n        if ((activeH2 && activeH2.id === targetId) || (activeH3 && activeH3.id === targetId)) {\r\n          item.classList.add('active');\r\n\t\t  pilihDaftarIsi.innerHTML = a.textContent;\r\n        }\r\n      }\r\n    });\r\n  }\r\n\r\n  \/\/ Call scrollSpy for each TOC on window scroll\r\n  const tocClasses = ['list_toc', 'list_toc_float', 'list_toc_top']; \/\/ Add other TOC class names here if you have more than two instances\r\n  tocClasses.forEach(tocClass => {\r\n    window.addEventListener('scroll', () => scrollSpy(tocClass));\r\n  });\r\n<\/script> -->\r\n<!-- END script lama -->\r\n\t\r\n<script>\r\n    \/\/ Scrollspy function to highlight the active TOC item based on the scroll position\r\n  function scrollSpy(tocClass) {\r\n    const scrollPosition = window.scrollY;\r\n\r\n    \/\/ Find the active h2 and h3 headings based on their position in the corresponding TOC\r\n    let activeH2 = null;\r\n    let activeH3 = null;\r\n\r\n    const tocItems = document.querySelectorAll(`.${tocClass} li`);\r\n    tocItems.forEach(item => {\r\n      const a = item.querySelector('a');\r\n      if (!a) return;\r\n      const href = a.getAttribute('href');\r\n      const targetId = href.substring(1); \/\/ Remove the '#' from the href to get the target ID\r\n      const targetElement = document.getElementById(targetId);\r\n      if (!targetElement) return;\r\n\r\n      const targetTop = targetElement.getBoundingClientRect().top + scrollPosition;\r\n      const nextItem = item.nextElementSibling;\r\n      const nextTop = nextItem ? nextItem.getBoundingClientRect().top + scrollPosition : Infinity;\r\n\r\n      if (targetTop <= scrollPosition + 150) {\r\n        if (a.parentElement.parentElement === tocItems) {\r\n          \/\/ The h2 heading is at the root level of the TOC\r\n          activeH2 = { id: targetId, level: 'h2' };\r\n        } else {\r\n          \/\/ The h3 heading is nested under an h2 heading\r\n          const parentH2 = a.parentElement.parentElement.previousElementSibling;\r\n          if (parentH2) {\r\n            const h2Link = parentH2.querySelector('a');\r\n            if (h2Link) {\r\n              const h2Href = h2Link.getAttribute('href');\r\n              const h2Id = h2Href.substring(1);\r\n              activeH2 = { id: h2Id, level: 'h2' };\r\n            }\r\n          }\r\n          activeH3 = { id: targetId, level: 'h3' };\r\n        }\r\n      }\r\n\r\n      if (targetTop > scrollPosition + 150 && nextTop > scrollPosition + 150 && !activeH3) {\r\n        \/\/ Reset the activeH2 when there are no more active h3 headings\r\n        activeH2 = null;\r\n      }\r\n    });\r\n\r\n    \/\/ Update the active state for the TOC items\r\n    tocItems.forEach(item => {\r\n      item.classList.remove('active');\r\n      const a = item.querySelector('a');\r\n      if (a) {\r\n        const href = a.getAttribute('href');\r\n        const targetId = href.substring(1);\r\n        if ((activeH2 && activeH2.id === targetId) || (activeH3 && activeH3.id === targetId)) {\r\n          item.classList.add('active');\r\n        }\r\n      }\r\n    });\r\n  }\r\n\r\n  \/\/ Call scrollSpy for each TOC on window scroll\r\n  const tocClasses = ['list_toc', 'list_toc_float']; \/\/ Add other TOC class names here if you have more than two instances\r\n  tocClasses.forEach(tocClass => {\r\n    window.addEventListener('scroll', () => scrollSpy(tocClass));\r\n  });\r\n<\/script>\r\n\t\r\n\r\n<!-- ToC List for desktop side bar, diganti jadi inject by php, di code snippet \"Sidebar Accordion\" -->\r\n<!--  <script>\r\n\tdocument.addEventListener(\"DOMContentLoaded\", function() {\r\nToC List for desktop side bar, diganti jadi inject by php, di code snippet \"Sidebar Accordion\"\r\n        Fungsi untuk mengubah teks menjadi format id\r\n        function formatId(text) {\r\n            return text.trim().replace(\/[^\\w\\d]+\/g, '_');\r\n        }\r\n\r\n        \/\/ Fungsi untuk membuat nested list\r\n        function createNestedList(parentNode, children) {\r\n            if (children.length === 0) return;\r\n\r\n            const nestedUl = document.createElement('ul');\r\n            children.forEach(child => {\r\n                const nestedLi = document.createElement('li');\r\n                const nestedA = document.createElement('a');\r\n                nestedA.textContent = child.title;\r\n                nestedA.href = `#${child.id}`;\r\n                nestedLi.appendChild(nestedA);\r\n                nestedUl.appendChild(nestedLi);\r\n\r\n                if (child.children.length > 0) {\r\n                    createNestedList(nestedLi, child.children);\r\n                }\r\n            });\r\n\r\n            parentNode.appendChild(nestedUl);\r\n        }\r\n\r\n        \/\/ Membuat objek untuk menyimpan daftar h2 dan h3 beserta judulnya\r\n        const headings = [];\r\n\r\n           \/\/ Mengambil semua elemen h2 dan h3\r\n        const elements = document.querySelectorAll('.td-post-content h2');\r\n\t\t\t\/\/, .td-post-content h3\r\n\r\n        elements.forEach(element => {\r\n            if (element.tagName === 'H2') {\r\n                const id = formatId(element.textContent);\r\n                element.id = id;\r\n\t\t\t\tif (element.textContent.toLowerCase() === \"key takeaways\") {return;} \/\/ Kalau Key Takeaways, jangan dimasukin\r\n                headings.push({ level: 'h2', id: id, title: element.textContent, children: [] });\r\n            } else if (element.tagName === 'H3') {\r\n                const id = formatId(element.textContent);\r\n                element.id = id;\r\n                if (headings.length > 0) {\r\n                    headings[headings.length - 1].children.push({ level: 'h3', id: id, title: element.textContent, children: [] });\r\n                }\r\n            }\r\n        });\r\n\r\n        \/\/ Membuat list HTML dari objek headings\r\n        const ul = document.getElementById('list_toc');\r\n        let currentUl = ul;\r\n        headings.forEach(heading => {\r\n            const li = document.createElement('li');\r\n            const a = document.createElement('a');\r\n            a.textContent = heading.title;\r\n            a.href = `#${heading.id}`;\r\n            li.appendChild(a);\r\n\r\n            if (heading.level === 'h2') {\r\n                \/\/ Menyimpan ul saat ini untuk menambahkan nested ul\r\n                currentUl = li;\r\n                ul.appendChild(li);\r\n            } else if (heading.level === 'h3') {\r\n                if (!currentUl.lastElementChild || currentUl.lastElementChild.tagName !== 'UL') {\r\n                    \/\/ Jika belum ada nested ul, buat satu\r\n                    const nestedUl = document.createElement('ul');\r\n                    currentUl.appendChild(nestedUl);\r\n                    currentUl = nestedUl;\r\n                }\r\n                currentUl.appendChild(li);\r\n            }\r\n\r\n            createNestedList(li, heading.children);\r\n        });\r\n\t\tDapatkan elemen ul dengan id 'list_toc_float'\r\nconst ulFloat = document.getElementById('list_toc');\r\nconst ulJourney = document.getElementById('list_journey');\r\n\r\nDapatkan isi (child elements) dari ul dengan id 'list_toc_float'\r\n\tif (ulFloat !== null) {\r\n\t\tconst clonedChildren = ulFloat.cloneNode(true).children;\r\n\t\tconst ulToc = document.getElementById('list_toc_float');\r\n\t\tconst ulTocTop = document.getElementById('list_toc_top');\r\n\t\tif ((ulToc !== null || ulToc !== undefined) && window.innerWidth > 1018){\r\n\t\t\tulToc.append(...clonedChildren);\r\n\t\t} else {\r\n\t\t\tulTocTop.append(...clonedChildren);\r\n\t\t}\r\n\t} \r\n\r\n\tif (ulJourney !== null) {\r\n\t\tconst clonedChildrenJourney = ulJourney.cloneNode(true).children;\r\n\t\tconst ulTocJourney = document.getElementById('list_toc_journey');\r\n\t\tulTocJourney.append(...clonedChildrenJourney);\r\n\t} \r\n\t\r\n        Fungsi untuk mengambil tinggi navbar\r\n        function getNavbarHeight() {\r\n            const navbar = document.getElementById('tdi_34');\r\n            return navbar ? navbar.offsetHeight : 0;\r\n        }\r\n\r\n        \/\/ Fungsi untuk menambahkan offset posisi scroll\r\n        function scrollToElementWithOffset(elementId) {\r\n            const element = document.getElementById(elementId);\r\n            if (element) {\r\n                const offset = getNavbarHeight();\r\n                const elementPosition = element.getBoundingClientRect().top;\r\n                const offsetPosition = elementPosition - offset-40;\r\n\r\n                window.scrollBy({\r\n                    top: offsetPosition,\r\n                    behavior: 'smooth'\r\n                });\r\n            }\r\n        }\r\n\r\n        \/\/ Fungsi untuk menangani klik pada tautan judul\r\n        function handleTitleClick(event) {\r\n            event.preventDefault();\r\n            const href = event.target.getAttribute('href').substr(1);\r\n            scrollToElementWithOffset(href);\r\n        }\r\n\r\n        \/\/ Tambahkan event listener untuk semua tautan judul\r\n        const titleLinks = document.querySelectorAll('a[href^=\"#\"]');\r\n        titleLinks.forEach(link => {\r\n            link.addEventListener('click', handleTitleClick);\r\n        });\r\n\t});\r\n    <\/script> -->\r\n<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><a href=\"https:\/\/www.hashmicro.com\/free-product-tour\/?medium=free-product-tour\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" width=\"712\" src=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/11\/Free-Product-Tour-resized.webp\" alt=\"Free Demo\"><\/a><span id=\"1\"><\/span><\/span><\/p>\n<h2><b>What is 3-way Matching?<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">3-way matching is a vital <\/span><a href=\"https:\/\/www.hashmicro.com\/blog\/what-is-account-payable\/\"><span style=\"font-weight: 400;\">accounts payable<\/span><\/a><span style=\"font-weight: 400;\"> process that validates invoices before payment. It compares the invoice with the relevant purchase order (PO) and delivery receipt for alignment. This method is crucial for preventing invoice fraud and significant financial losses from discrepancies.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">When the details from the purchase order, delivery receipt, and invoice match, businesses can easily identify any discrepancies or unauthorized transactions. This extra step provides a safeguard, helping companies approve only verified invoices and preventing unnecessary financial risks.<\/span><\/p>\n<h3><b>2-way vs. 3-way matching\u00a0<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Two-way matching compares only the invoice and PO, while 3-way matching includes the delivery receipt. The additional step makes 3-way matching more accurate, ensuring the ordered items were delivered and match the agreed-upon terms.<\/span><\/p>\n<table>\n<tbody>\n<tr>\n<td><b>Documents<\/b><\/td>\n<td><b>Purpose<\/b><\/td>\n<td><b>2-Way<\/b><\/td>\n<td><b>3-Way<\/b><\/td>\n<\/tr>\n<tr>\n<td><b>Purchase Order<\/b><\/td>\n<td><span style=\"font-weight: 400;\">Confirms the purchase was authorized<\/span><\/td>\n<td><span style=\"font-weight: 400;\">\u2713<\/span><\/td>\n<td><span style=\"font-weight: 400;\">\u2713<\/span><\/td>\n<\/tr>\n<tr>\n<td><b>Goods Received Note\/Order Receipt<\/b><\/td>\n<td><span style=\"font-weight: 400;\">Proves the purchase was delivered<\/span><\/td>\n<td><span style=\"font-weight: 400;\">\u2014<\/span><\/td>\n<td><span style=\"font-weight: 400;\">\u2713<\/span><\/td>\n<\/tr>\n<tr>\n<td><b>Supplier&#8217;s Invoice<\/b><\/td>\n<td><span style=\"font-weight: 400;\">Verifies amount owed and payment terms<\/span><\/td>\n<td><span style=\"font-weight: 400;\">\u2713<\/span><\/td>\n<td><span style=\"font-weight: 400;\">\u2713<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span style=\"font-weight: 400;\">The key difference between 2-way and 3-way matching is the additional step of checking the goods receipt in 3-way matching. This makes the process more thorough by confirming that the goods have actually been delivered and match the order.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">In accounts payable, the 3-way match ensures that the purchase order, supplier\u2019s invoice, and goods receipt note all align before payment is approved. This process prevents errors and fraud, and if there is a mismatch, it places a hold on the invoice until the discrepancies are resolved.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">By using a 3-way matching process, businesses can ensure that their financial records are accurate and that payments are only made for legitimate orders, which is essential for maintaining financial control and preventing fraud.<\/span><\/p>\n<h2><b>Components of 3-Way Matching\u00a0<\/b><\/h2>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-73254\" src=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/06\/Components-of-Three-Way-Matching.webp\" alt=\"Three Way Matching \" width=\"1200\" height=\"675\" srcset=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/06\/Components-of-Three-Way-Matching.webp 1200w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/06\/Components-of-Three-Way-Matching-300x169.webp 300w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/06\/Components-of-Three-Way-Matching-1024x576.webp 1024w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/06\/Components-of-Three-Way-Matching-768x432.webp 768w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/06\/Components-of-Three-Way-Matching-747x420.webp 747w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/06\/Components-of-Three-Way-Matching-150x84.webp 150w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/06\/Components-of-Three-Way-Matching-696x392.webp 696w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/06\/Components-of-Three-Way-Matching-1068x601.webp 1068w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">3-way matching requires verifying three key documents to ensure accuracy in the accounts payable process:<\/span><\/p>\n<h3><b>Purchase Order (PO)<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">The 3-way matching process starts with the purchase order authorising goods or services. It specifies items, quantities, and prices, aligning both parties. The PO includes a unique reference number to track the purchase in the <\/span><a href=\"https:\/\/www.hashmicro.com\/blog\/accounting-system\/\"><span style=\"font-weight: 400;\">accounting system<\/span><\/a><span style=\"font-weight: 400;\">, ensuring accurate financial records.<\/span><\/p>\n<h3><b>Receiving report (Delivery Receipt)<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">The receiving report, or delivery receipt, confirms the delivery of goods or services as outlined in the purchase order. This document verifies that the quantity and condition of the items match what was ordered, providing an essential cross-check in the 3-way matching process to ensure that no discrepancies exist.<\/span><\/p>\n<h3><b>Supplier&#8217;s invoice<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">The supplier&#8217;s invoice outlines the total amount owed, including payment terms and due dates. This invoice is checked against the purchase order and delivery receipt in the 3-way matching process to confirm the accuracy of the order and payment, ensuring the company only pays for what was correctly delivered.<span id=\"2\"><\/span><\/span><\/p>\n<h2><b>How Does the 3-Way Matching Process Work?<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">3-way matching verifies a supplier invoice by comparing it with a purchase order (PO) and delivery receipt. It ensures payments are made only for correctly matched purchases. Discrepancies trigger further checks to resolve issues.<\/span><\/p>\n<h3><b>Step-by-step breakdown<\/b><\/h3>\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>PO Verification<\/b><span style=\"font-weight: 400;\">: The first step is to ensure the purchase order is complete, including the correct amount, vendor details, and necessary general ledger (G\/L) codes.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Delivery Information<\/b><span style=\"font-weight: 400;\">: Next, the AP clerk checks whether the delivered quantity matches the order on the purchase order, as reported by the receiving department.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Invoice Verification<\/b><span style=\"font-weight: 400;\">: Finally, the invoice is verified against the purchase order (PO) and delivery receipt. If there&#8217;s any discrepancy in quantity or price, the AP department flags the invoice for further review.<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">For instance, consider a company that builds homes and issues a purchase order (PO) for 12,000 square feet of siding. When the siding arrives, the company verifies the invoice against the PO and delivery receipt. If only part of the order is received, they may hold the payment until the full delivery is made.<\/span><\/p>\n<h3><b>Common issues in manual matching<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Manual invoice matching can be a significant burden for companies, often resulting in several challenges. Among the most common issues are cost, time consumption, late payments, and human error.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Costly<\/b><span style=\"font-weight: 400;\">: Manual processes lead to significant expenses for large volumes. In contrast, a more efficient accounting system can minimize these costs by automating the matching process.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Time-Consuming<\/b><span style=\"font-weight: 400;\">: With a backlog of invoices, manually matching them can be a considerable time-consuming task. This delays payments and disrupts workflows, making it difficult to maintain smooth operations within the <\/span><a href=\"https:\/\/www.hashmicro.com\/blog\/managerial-accounting\/\"><span style=\"font-weight: 400;\">managerial accounting<\/span><\/a><span style=\"font-weight: 400;\"> structure.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Late Payments<\/b><span style=\"font-weight: 400;\">: Missed or delayed invoices can tarnish a company&#8217;s reputation, potentially harming future business relationships with suppliers.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Human Error<\/b><span style=\"font-weight: 400;\">: Manual matching is prone to mistakes. Physical records are susceptible to loss or damage, and manual data entry can lead to errors that delay the matching process.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">These inefficiencies make it evident why many companies are opting for automated solutions to streamline the 3-way matching process. Moving away from manual methods can improve the speed, accuracy, and overall efficiency of the process, avoiding the issues outlined above.<span id=\"3\"><\/span><\/span><\/p>\n<h2><b>Benefits of 3-Way Matching for Businesses\u00a0<\/b><\/h2>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-73256\" src=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/06\/Benefits-of-Three-Way-Matching-for-Businesses.webp\" alt=\"Three Way Matching\" width=\"1200\" height=\"675\" srcset=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/06\/Benefits-of-Three-Way-Matching-for-Businesses.webp 1200w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/06\/Benefits-of-Three-Way-Matching-for-Businesses-300x169.webp 300w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/06\/Benefits-of-Three-Way-Matching-for-Businesses-1024x576.webp 1024w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/06\/Benefits-of-Three-Way-Matching-for-Businesses-768x432.webp 768w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/06\/Benefits-of-Three-Way-Matching-for-Businesses-747x420.webp 747w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/06\/Benefits-of-Three-Way-Matching-for-Businesses-150x84.webp 150w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/06\/Benefits-of-Three-Way-Matching-for-Businesses-696x392.webp 696w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/06\/Benefits-of-Three-Way-Matching-for-Businesses-1068x601.webp 1068w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">3-way matching provides key advantages for businesses by ensuring accurate, timely, and secure financial processes. Below, we explore the benefits that make it essential for companies, particularly in error reduction, financial accuracy, and operational efficiency.<\/span><\/p>\n<h3><b>Reduces errors and fraud<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">3-way matching helps businesses prevent fraud by cross-checking the purchase order, invoice, and delivery receipt. This comparison ensures that payments are only made for valid purchases. 3-way matching in accounts payable significantly reduces errors and protects against fraudulent activities.<\/span><\/p>\n<h3><b>Improves financial accuracy<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">By verifying all aspects of a purchase, 3-way matching ensures that businesses pay only for the correct quantity and price. This process boosts financial accuracy in accounts payable, preventing discrepancies between the PO, invoice, and delivery receipt.<\/span><\/p>\n<h3><b>Streamlines payments and operations<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Automation of the 3-way matching process helps speed up payment cycles, making it easier to process invoices. With 3-way matching automation, businesses can reduce manual errors, prevent delays, and improve workflow efficiency in the accounts payable department.<\/span><\/p>\n<h2><b>Automating the 3- Way Matching Process<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Manual matching is often a labor-intensive and time-consuming process that can impede your business\u2019s growth. As your operations scale, maintaining manual accounts payable (AP) processes can hinder efficiency. By automating the 3-way matching process, you can easily manage an increased workload without missing a beat.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Sifting through paper documents to match purchase orders (POs) with invoices and delivery receipts is frustrating. Finding the correct documentation can be daunting, and errors waste time. However, 3-way matching automation eliminates these inefficiencies, ensuring accuracy without hassle.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">When everything is digitized, businesses can rest assured that their AP workflow is seamless. The automated process keeps all documents in a centralized, accessible location, reducing errors and preparing businesses for audits without the added stress. This process paves the way for growth, enabling your business to scale efficiently.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Automating 3-way matching allows your business to streamline financial operations and save both time and money. If you&#8217;re ready to modernize your accounts payable process,<\/span><b> HashMicro\u2019s accounting software<\/b><span style=\"font-weight: 400;\"> can help. Plus, you may qualify for the CTC grant, making this transition even easier.<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><style>\r\n.cta-in-article-image .desktop-banner{\r\n    display: none;\r\n    text-align: center;\r\n}\r\n.cta-in-article-image .desktop-mobile{\r\n    display: block;\r\n    text-align: center;\r\n    width: 100%;\r\n}\r\n@media (min-width: 650px) {\r\n    .cta-in-article-image .desktop-banner {\r\n        display: block!important;\r\n    }\r\n}\r\n@media (min-width: 650px) {\r\n   .cta-in-article-image .desktop-mobile {\r\n        display: none!important;\r\n    }\r\n}\r\n<\/style>\r\n<div class=\"cta-in-article-image\">\r\n\t<a href=\"https:\/\/www.hashmicro.com\/grants?utm_source=blog&medium=banner-article\" target=\"_blank\" rel=\"noopener\">\r\n\t\t<div id=\"desktop-banner-container\">\r\n\t\t\t<div class=\"desktop-banner\">\r\n<!-- \tnew CTC Grants Banner\t\t -->\r\n\t\t\t\t<img decoding=\"async\" width='696' height='189' src=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/07\/CTC-Grants-scaled.webp\" alt=\"download skema harga software erp\">\r\n\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t\t<div id=\"mobile-banner-container\">\r\n\t\t\t<div class=\"desktop-mobile\">\r\n\t\t\t\t<img decoding=\"async\" width='450' height='497' src=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2023\/11\/EDG-Banner-Mobile.png.webp\" alt=\"download skema harga software erp\">\r\n\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t<\/a>\r\n<\/div>\r\n\r\n\r\n<\/span><\/p>\n<h2><b>Optimize Your Accounting Processes with HashMicro&#8217;s Accounting Software<\/b><\/h2>\n<h2><a href=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/04\/Simplify-Your-Corporate-Accounting-with-HashMicros-Accounting-Software.webp\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-71266 size-full\" src=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/04\/Simplify-Your-Corporate-Accounting-with-HashMicros-Accounting-Software.webp\" alt=\"accounting hashmicro\" width=\"1470\" height=\"900\" srcset=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/04\/Simplify-Your-Corporate-Accounting-with-HashMicros-Accounting-Software.webp 1470w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/04\/Simplify-Your-Corporate-Accounting-with-HashMicros-Accounting-Software-300x184.webp 300w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/04\/Simplify-Your-Corporate-Accounting-with-HashMicros-Accounting-Software-1024x627.webp 1024w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/04\/Simplify-Your-Corporate-Accounting-with-HashMicros-Accounting-Software-768x470.webp 768w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/04\/Simplify-Your-Corporate-Accounting-with-HashMicros-Accounting-Software-686x420.webp 686w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/04\/Simplify-Your-Corporate-Accounting-with-HashMicros-Accounting-Software-150x92.webp 150w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/04\/Simplify-Your-Corporate-Accounting-with-HashMicros-Accounting-Software-696x426.webp 696w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/04\/Simplify-Your-Corporate-Accounting-with-HashMicros-Accounting-Software-1068x654.webp 1068w\" sizes=\"auto, (max-width: 1470px) 100vw, 1470px\" \/><\/a><\/h2>\n<p><span style=\"font-weight: 400;\">For businesses looking to streamline their financial processes, <\/span><a href=\"https:\/\/www.hashmicro.com\/accounting\"><b>HashMicro Accounting<\/b> <\/a><span style=\"font-weight: 400;\">offers a comprehensive solution tailored for efficient managerial accounting. It eliminates the need for manual processes, reducing the risk of errors and delays while improving overall decision-making accuracy.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">HashMicro Accounting helps managers make strategic decisions by automating data collection, providing real-time reporting, and customizable dashboards. It simplifies budget forecasting, cash flow tracking, and visualizing financial health with S-curves and budget comparisons for actionable insights.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Integrating HashMicro Accounting into your workflow means reducing inefficiencies, gaining clearer insights, and ultimately making smarter, more informed business decisions.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Enhanced budgeting and forecasting<\/b><b><br \/>\n<\/b><span style=\"font-weight: 400;\">Leverage historical financial data and future projections to create strategic resource allocations and make more informed budgeting decisions.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Financial statement with budget comparison<\/b><b><br \/>\n<\/b><span style=\"font-weight: 400;\">Compare actual financial results to budgeted expectations, helping businesses identify variances and assess financial health more effectively.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Budget S curve visualization<\/b><b><br \/>\n<\/b><span style=\"font-weight: 400;\">Track budget consumption over time with an intuitive S-curve chart, making it easier to visualize spending trends and how they compare to the original budget.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Comprehensive cash flow reports<\/b><b><br \/>\n<\/b><span style=\"font-weight: 400;\">Gain a detailed overview of cash inflows and outflows, improving liquidity management and supporting more informed financial decisions.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Automated currency updates<\/b><b><br \/>\n<\/b><span style=\"font-weight: 400;\">Automatically refresh foreign exchange rates from trusted sources, ensuring accuracy in international transactions without manual adjustments.<\/span><\/li>\n<\/ul>\n<h2><b>Conclusion<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">In summary, the 3-way matching process is essential for verifying invoices. It ensures that payments are made only when all three related documents (purchase order, delivery receipt, and supplier\u2019s invoice) are properly aligned. This process reduces errors and fraud while improving financial accuracy and streamlining operations.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Automating the 3-way matching process boosts accuracy, reduces errors, and improves financial efficiency. With <\/span><a href=\"https:\/\/www.hashmicro.com\/accounting\"><b>HashMicro&#8217;s accounting system<\/b><\/a><span style=\"font-weight: 400;\">, businesses can integrate this smoothly, benefiting from real-time updates, enhanced precision, and optimized financial tracking to streamline operations.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">To experience the full benefits of automated 3-way matching and see how it can enhance your financial processes, <\/span><a href=\"https:\/\/www.hashmicro.com\/free-product-tour\/\"><b>book a free demo<\/b><\/a><span style=\"font-weight: 400;\"> with HashMicro today. Our solution can optimize your workflows and provide a smoother, more efficient experience for your business.<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><a href=\"https:\/\/www.hashmicro.com\/accounting?medium=moneysite-banner\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" width=\"712\" src=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/06\/Accounting.webp\" alt=\"Accounting\"><\/a><\/span><\/p>\n<h3><strong>FAQ About 3-Way Matching<br \/><\/strong><\/h3>\n<ul class=\"bottom_faq\">\n<li>\n<details>\n<summary><strong>What is an example of a three-way match?<br \/>\n<\/strong><\/summary>\n<p>A three-way match ensures accurate purchases. If a company orders 100 chairs, the purchase order lists the details, the delivery receipt confirms the quantity received, and the invoice requests payment. All must match before payment is authorized.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Who is responsible for a 3-way match?<br \/>\n<\/strong><\/summary>\n<p>The AP department is responsible for performing a 3-way match, ensuring that the purchase order, delivery receipt, and supplier invoice align before approving payment.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>What is a 3-way match in internal control?<br \/>\n<\/strong><\/summary>\n<p>A 3-way match in internal control prevents fraud and ensures accurate financial transactions by verifying that purchase orders, receipts, and supplier invoices align before payments. This control measure helps avoid overpayments and unauthorized transactions.<\/p>\n<\/details>\n<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Are you finding it difficult to ensure the accuracy of your accounts payable transactions? Managing financial records manually often leads to errors, which can result in payment discrepancies and strain relationships with suppliers. Mistakes and delays in accounts payable pose a challenge to Singapore businesses. The Coface Asia Corporate Payment Survey 2025 reveals that 60% [&hellip;]<\/p>\n","protected":false},"author":199,"featured_media":73255,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[153],"tags":[],"class_list":{"0":"post-73249","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-accounting"},"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.6 (Yoast SEO v26.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>What is the Importance of 3 Way Matching for Your Business<\/title>\n<meta name=\"description\" content=\"Three-way matching verifies invoices by comparing them with the purchase order (PO) and delivery receipt before payment.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.hashmicro.com\/blog\/three-way-matching\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"What is the Importance of 3 Way Matching for Your Business\" \/>\n<meta property=\"og:description\" content=\"Three-way matching verifies invoices by comparing them with the purchase order (PO) and delivery receipt before payment.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hashmicro.com\/blog\/three-way-matching\/\" \/>\n<meta property=\"og:site_name\" content=\"BusinessTech\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/web.facebook.com\/hashmicro\/\" \/>\n<meta property=\"article:published_time\" content=\"2025-06-23T07:18:48+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-23T07:20:08+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/06\/Three-Way-Matching.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"675\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Lucas\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@hashmicro\" \/>\n<meta name=\"twitter:site\" content=\"@hashmicro\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Lucas\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.hashmicro.com\/blog\/three-way-matching\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/three-way-matching\/\"},\"author\":{\"name\":\"Lucas\",\"@id\":\"https:\/\/www.hashmicro.com\/blog\/#\/schema\/person\/1d507d1ae58f14604279ad39f6076838\"},\"headline\":\"What is the Importance of 3 Way Matching for Your Business\",\"datePublished\":\"2025-06-23T07:18:48+00:00\",\"dateModified\":\"2025-06-23T07:20:08+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/three-way-matching\/\"},\"wordCount\":1896,\"publisher\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/three-way-matching\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/06\/Three-Way-Matching.webp\",\"articleSection\":[\"Accounting\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.hashmicro.com\/blog\/three-way-matching\/\",\"url\":\"https:\/\/www.hashmicro.com\/blog\/three-way-matching\/\",\"name\":\"What is the Importance of 3 Way Matching for Your Business\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/three-way-matching\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/three-way-matching\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/06\/Three-Way-Matching.webp\",\"datePublished\":\"2025-06-23T07:18:48+00:00\",\"dateModified\":\"2025-06-23T07:20:08+00:00\",\"description\":\"Three-way matching verifies invoices by comparing them with the purchase order (PO) and delivery receipt before payment.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/three-way-matching\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.hashmicro.com\/blog\/three-way-matching\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.hashmicro.com\/blog\/three-way-matching\/#primaryimage\",\"url\":\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/06\/Three-Way-Matching.webp\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/06\/Three-Way-Matching.webp\",\"width\":1200,\"height\":675,\"caption\":\"Three Way Matching\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.hashmicro.com\/blog\/three-way-matching\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.hashmicro.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"What is the Importance of 3 Way Matching for Your Business\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.hashmicro.com\/blog\/#website\",\"url\":\"https:\/\/www.hashmicro.com\/blog\/\",\"name\":\"BusinessTech\",\"description\":\"Business Management Blog\",\"publisher\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.hashmicro.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.hashmicro.com\/blog\/#organization\",\"name\":\"HashMicro\",\"url\":\"https:\/\/www.hashmicro.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.hashmicro.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2016\/02\/bt_logo-1.png\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2016\/02\/bt_logo-1.png\",\"width\":334,\"height\":51,\"caption\":\"HashMicro\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/web.facebook.com\/hashmicro\/\",\"https:\/\/x.com\/hashmicro\",\"https:\/\/www.linkedin.com\/company\/hashmicro\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.hashmicro.com\/blog\/#\/schema\/person\/1d507d1ae58f14604279ad39f6076838\",\"name\":\"Lucas\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.hashmicro.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/01\/cropped-expertise-blog-2-96x96.png\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/01\/cropped-expertise-blog-2-96x96.png\",\"caption\":\"Lucas\"},\"description\":\"Lucas Yeo creates in-depth articles on accounting topics tailored to the challenges and questions faced by finance professionals. His articles are SEO-friendly and designed to attract readers seeking accounting solutions.\",\"url\":\"https:\/\/www.hashmicro.com\/blog\/author\/lucas-yeo\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"What is the Importance of 3 Way Matching for Your Business","description":"Three-way matching verifies invoices by comparing them with the purchase order (PO) and delivery receipt before payment.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.hashmicro.com\/blog\/three-way-matching\/","og_locale":"en_US","og_type":"article","og_title":"What is the Importance of 3 Way Matching for Your Business","og_description":"Three-way matching verifies invoices by comparing them with the purchase order (PO) and delivery receipt before payment.","og_url":"https:\/\/www.hashmicro.com\/blog\/three-way-matching\/","og_site_name":"BusinessTech","article_publisher":"https:\/\/web.facebook.com\/hashmicro\/","article_published_time":"2025-06-23T07:18:48+00:00","article_modified_time":"2025-06-23T07:20:08+00:00","og_image":[{"width":1200,"height":675,"url":"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/06\/Three-Way-Matching.webp","type":"image\/webp"}],"author":"Lucas","twitter_card":"summary_large_image","twitter_creator":"@hashmicro","twitter_site":"@hashmicro","twitter_misc":{"Written by":"Lucas","Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.hashmicro.com\/blog\/three-way-matching\/#article","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/blog\/three-way-matching\/"},"author":{"name":"Lucas","@id":"https:\/\/www.hashmicro.com\/blog\/#\/schema\/person\/1d507d1ae58f14604279ad39f6076838"},"headline":"What is the Importance of 3 Way Matching for Your Business","datePublished":"2025-06-23T07:18:48+00:00","dateModified":"2025-06-23T07:20:08+00:00","mainEntityOfPage":{"@id":"https:\/\/www.hashmicro.com\/blog\/three-way-matching\/"},"wordCount":1896,"publisher":{"@id":"https:\/\/www.hashmicro.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.hashmicro.com\/blog\/three-way-matching\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/06\/Three-Way-Matching.webp","articleSection":["Accounting"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.hashmicro.com\/blog\/three-way-matching\/","url":"https:\/\/www.hashmicro.com\/blog\/three-way-matching\/","name":"What is the Importance of 3 Way Matching for Your Business","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.hashmicro.com\/blog\/three-way-matching\/#primaryimage"},"image":{"@id":"https:\/\/www.hashmicro.com\/blog\/three-way-matching\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/06\/Three-Way-Matching.webp","datePublished":"2025-06-23T07:18:48+00:00","dateModified":"2025-06-23T07:20:08+00:00","description":"Three-way matching verifies invoices by comparing them with the purchase order (PO) and delivery receipt before payment.","breadcrumb":{"@id":"https:\/\/www.hashmicro.com\/blog\/three-way-matching\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hashmicro.com\/blog\/three-way-matching\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hashmicro.com\/blog\/three-way-matching\/#primaryimage","url":"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/06\/Three-Way-Matching.webp","contentUrl":"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/06\/Three-Way-Matching.webp","width":1200,"height":675,"caption":"Three Way Matching"},{"@type":"BreadcrumbList","@id":"https:\/\/www.hashmicro.com\/blog\/three-way-matching\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.hashmicro.com\/blog\/"},{"@type":"ListItem","position":2,"name":"What is the Importance of 3 Way Matching for Your Business"}]},{"@type":"WebSite","@id":"https:\/\/www.hashmicro.com\/blog\/#website","url":"https:\/\/www.hashmicro.com\/blog\/","name":"BusinessTech","description":"Business Management Blog","publisher":{"@id":"https:\/\/www.hashmicro.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.hashmicro.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.hashmicro.com\/blog\/#organization","name":"HashMicro","url":"https:\/\/www.hashmicro.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hashmicro.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2016\/02\/bt_logo-1.png","contentUrl":"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2016\/02\/bt_logo-1.png","width":334,"height":51,"caption":"HashMicro"},"image":{"@id":"https:\/\/www.hashmicro.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/web.facebook.com\/hashmicro\/","https:\/\/x.com\/hashmicro","https:\/\/www.linkedin.com\/company\/hashmicro"]},{"@type":"Person","@id":"https:\/\/www.hashmicro.com\/blog\/#\/schema\/person\/1d507d1ae58f14604279ad39f6076838","name":"Lucas","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hashmicro.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/01\/cropped-expertise-blog-2-96x96.png","contentUrl":"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/01\/cropped-expertise-blog-2-96x96.png","caption":"Lucas"},"description":"Lucas Yeo creates in-depth articles on accounting topics tailored to the challenges and questions faced by finance professionals. His articles are SEO-friendly and designed to attract readers seeking accounting solutions.","url":"https:\/\/www.hashmicro.com\/blog\/author\/lucas-yeo\/"}]}},"order_j":"","_links":{"self":[{"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/posts\/73249","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/users\/199"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/comments?post=73249"}],"version-history":[{"count":3,"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/posts\/73249\/revisions"}],"predecessor-version":[{"id":73264,"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/posts\/73249\/revisions\/73264"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/media\/73255"}],"wp:attachment":[{"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/media?parent=73249"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/categories?post=73249"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/tags?post=73249"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}