{"id":4187,"date":"2026-05-29T20:07:39","date_gmt":"2026-05-29T10:07:39","guid":{"rendered":"https:\/\/www.hashmicro.com\/au\/blog\/?p=4187"},"modified":"2026-05-29T20:07:39","modified_gmt":"2026-05-29T10:07:39","slug":"purchase-requisition","status":"publish","type":"post","link":"https:\/\/www.hashmicro.com\/au\/blog\/purchase-requisition\/","title":{"rendered":"Purchase Requisition: Definition, Process, and Best Practices"},"content":{"rendered":"<p data-start=\"19\" data-end=\"254\">Businesses often need a structured way to manage purchasing requests before operational spending occurs. Without proper approval workflows, procurement activities can become difficult to track, control, and validate across departments.<\/p>\n<p data-start=\"256\" data-end=\"492\">Purchase requisitions help businesses standardise purchasing requests through approval, budget validation, and procurement review processes. This improves spending visibility while reducing procurement errors and unauthorised purchases.<\/p>\n<p class=\"_aupe copyable-text x15bjb6t x1n2onr6\"><span class=\"_aupe copyable-text xkrh14z\"><!-- <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 class=\"_aupe copyable-text x15bjb6t x1n2onr6\"><style>\r\n\t.takeaways-container {\r\n\t\tmargin: 20px 0;\r\n\t\tfont-family: sans-serif;\r\n\t}\r\n\t.box-content {\r\n\t\tbackground-color: #fffacd;\r\n\t\tbox-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);\r\n\t\tborder-radius: 25px;\r\n\t\tpadding: 25px;\r\n\t}\r\n\t.title {\r\n\t\tmargin-bottom: 20px;\r\n\t}\r\n\t.title p {\r\n\t\tdisplay: inline-block;\r\n\t\tbackground-color: #8A0E19;\r\n\t\tcolor: #ffffff;\r\n\t\tpadding: 8px 15px;\r\n\t\tborder-radius: 8px;\r\n\t\tfont-size: 22px;\r\n\t\tfont-weight: bold;\r\n\t\tmargin: 0;\r\n\t}\r\n\t.item {\r\n\t\tdisplay: flex;\r\n\t\talign-items: flex-start;\r\n\t\tmargin-bottom: 12px;\r\n\t}\r\n\t.item .circle {\r\n\t\twidth: 8px;\r\n\t\theight: 8px;\r\n\t\tbackground-color: #000000;\r\n\t\tborder-radius: 50%;\r\n\t\tmargin-right: 12px;\r\n\t\tflex-shrink: 0;\r\n\t\tmargin-top: 8px;\r\n\t}\r\n\t.item p {\r\n\t\tmargin: 0;\r\n\t\tfont-size: 16px;\r\n\t\tline-height: 1.6;\r\n\t}\r\n\t.item p a {\r\n\t\tcolor: #8A0E19;\r\n\t\tfont-weight: normal;\r\n\t\ttext-decoration: none;\r\n\t}\r\n\t.item p a:hover {\r\n\t\ttext-decoration: underline;\r\n\t}\r\n\t.button-wrapper {\r\n\t\tmargin-top: 25px;\r\n\t}\r\n\t.submit-button {\r\n\t\tbackground-color: #8a0e19;\r\n\t\tcolor: #fff !important;\r\n\t\ttransition: all .3s ease;\r\n\t\tpadding: 12px 28px;\r\n\t\tdisplay: inline-block;\r\n\t\tborder-radius: 12px;\r\n\t\tfont-size: 16px;\r\n\t\tfont-weight: bold;\r\n\t\ttext-decoration: none;\r\n\t}\r\n\t.submit-button:hover {\r\n\t\tbackground-color: #991b26;\r\n\t}\r\n\t@media (max-width: 767px) {\r\n\t\t.takeaways-container {\r\n\t\t\theight: auto;\r\n\t\t\tpadding: 0;\r\n\t\t}\r\n\t\t.box-content {\r\n\t\t\tpadding: 24px;\r\n\t\t}\r\n\t\t.content,\r\n\t\t.main-content,\r\n\t\t.list-item {\r\n\t\t\twidth: 100%;\r\n\t\t}\r\n\t}\r\n<\/style>\r\n\r\n<div class=\"takeaways-container\">\r\n\t<div class=\"box-content\">\r\n\t\t<div class=\"content\">\r\n\t\t\t<div class=\"title\">\r\n\t\t\t\t<p>Key Takeaways<\/p>\r\n\t\t\t<\/div>\r\n\t\t\t<div class=\"main-content\">\r\n\t\t\t\t<div class=\"list-item\">\r\n\t\t\t\t\t<div class=\"item\">    <div class=\"circle\"><\/div>    <p><a href=\"#what-is-a-purchase-requisition\">Understand how purchase requisitions support<\/a> procurement control, approval workflows, and purchasing visibility across business operations.<\/p><\/div><div class=\"item\">    <div class=\"circle\"><\/div>    <p><a href=\"#purchase-requisition-vs-purchase-order\">Learn the operational differences between<\/a> purchase requisitions and purchase orders within the procurement process.<\/p><\/div><div class=\"item\">    <div class=\"circle\"><\/div>    <p><a href=\"#purchase-requisition-process-step-by-step\">Explore the complete workflow for<\/a> creating, approving, validating, and processing purchase requisitions more efficiently.<\/p><\/div><div class=\"item\">    <div class=\"circle\"><\/div>    <p><a href=\"#how-software-improves-purchase-requisition-management\">Discover how procurement software improves<\/a> approval routing, budget tracking, procurement visibility, and purchasing coordination.<\/p><\/div>\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t<\/div>\r\n<\/div> \r\n    <div class=\"adjustable-banner-wrap\">\r\n        <a href=\"https:\/\/www.hashmicro.com\/au\/erp-system?medium=moneysite-banner\" target=\"_blank\">\r\n            <img decoding=\"async\" loading=\"lazy\"\r\n                 src=\"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/03\/erp_desktop_2.webp\"\r\n                 data-desktop-src=\"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/03\/erp_desktop_2.webp\"\r\n                 data-mobile-src=\"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/03\/erp_mobile_2.webp\"\r\n                 alt=\"ERP2\"\r\n                 class=\"responsive-image-banner\">\r\n\r\n            \r\n            <div class=\"adjustable-banner-overlay\" style=\"width: 45%\">\r\n                <p class=\"adjustable-banner-text\"><span class=\"adjustable-highlight\">Need an<\/span> expert to <span class=\"adjustable-highlight\">automate procurement workflows<\/span>?<\/p>\r\n                <div class=\"adjustable-banner-btn\">Consult Now<\/div>\r\n            <\/div>\r\n\r\n        <\/a>\r\n    <\/div>\r\n<script>\r\n    \/\/ check which image to use based on screensize\r\n    document.addEventListener(\"DOMContentLoaded\", function() {\r\n        function updateImageSource() {\r\n            var images = document.querySelectorAll('.responsive-image-banner');\r\n            var screenWidth = window.innerWidth;\r\n\r\n            images.forEach(function(img) {\r\n                var mobileSrc = img.getAttribute('data-mobile-src');\r\n                var desktopSrc = img.getAttribute('data-desktop-src');\r\n\r\n                if (screenWidth < 576 && mobileSrc) {\r\n                    img.setAttribute('src', mobileSrc);\r\n                } else {\r\n                    img.setAttribute('src', desktopSrc);\r\n                }\r\n            });\r\n        }\r\n\r\n        \/\/ Initial check\r\n        updateImageSource();\r\n\r\n        \/\/ Update on resize\r\n        window.addEventListener('resize', updateImageSource);\r\n    });\r\n<\/script><\/p>\n<h2 data-section-id=\"8gosm7\" data-start=\"0\" data-end=\"37\"><strong>What Is a Purchase Requisition?<\/strong><\/h2>\n<p data-start=\"39\" data-end=\"286\">A purchase requisition is an internal document used by employees or departments to request the purchase of goods, services, or materials for business operations. It acts as the starting point of the procurement process before any purchase is made.<\/p>\n<p data-start=\"288\" data-end=\"520\">The document helps businesses review spending requests through approval workflows before converting them into purchase orders. This improves procurement control, budget visibility, and policy compliance across purchasing activities.<\/p>\n<h2 data-section-id=\"11hw5ht\" data-start=\"527\" data-end=\"571\"><strong>Purchase Requisition vs Purchase Order<\/strong><\/h2>\n<p data-start=\"49\" data-end=\"267\">Purchase requisitions and purchase orders serve different functions in the procurement process. A purchase requisition is used internally for approval, while a purchase order is sent to suppliers to confirm a purchase.<\/p>\n<p data-start=\"269\" data-end=\"367\">Understanding the difference helps businesses improve procurement control and purchasing accuracy.<\/p>\n<h3 data-section-id=\"ar650p\" data-start=\"722\" data-end=\"759\">1. Key differences between PR and PO<\/h3>\n<p data-start=\"1101\" data-end=\"1310\">A purchase requisition is an internal request document created before a purchase is approved. It helps businesses validate operational needs, budgets, and approval requirements before committing company funds.<\/p>\n<p data-start=\"1312\" data-end=\"1503\">A purchase order is generated after the requisition approval process is completed. The document is sent to suppliers to confirm pricing, quantities, delivery terms, and purchasing agreements.<\/p>\n<h3 data-section-id=\"14uorvp\" data-start=\"761\" data-end=\"795\">2. Internal vs external documents<\/h3>\n<p data-start=\"1548\" data-end=\"1783\">Purchase requisitions are internal procurement documents used between employees, department managers, finance teams, and procurement departments. They are designed to support approval workflows and spending control within the business.<\/p>\n<p data-start=\"1785\" data-end=\"1981\">Purchase orders are external purchasing documents sent directly to vendors or suppliers. Once accepted by the supplier, the purchase order may also serve as a legally binding commercial agreement.<\/p>\n<h3 data-section-id=\"jjdpy8\" data-start=\"797\" data-end=\"818\">3. When each is used<\/h3>\n<p>Purchase requisitions and purchase orders are used at different stages of the procurement process.<\/p>\n<ul data-start=\"2013\" data-end=\"2435\">\n<li data-section-id=\"gpafdo\" data-start=\"2013\" data-end=\"2120\">A purchase requisition is used when employees or departments need approval to purchase goods or services.<\/li>\n<li data-section-id=\"8q3g8u\" data-start=\"2121\" data-end=\"2238\">A purchase requisition is reviewed through approval workflows, budget checks, and procurement validation processes.<\/li>\n<li data-section-id=\"u6qli5\" data-start=\"2239\" data-end=\"2338\">A purchase order is created after the requisition receives approval from authorised stakeholders.<\/li>\n<li data-section-id=\"67yorx\" data-start=\"2339\" data-end=\"2435\">A purchase order is then sent to the selected supplier to officially initiate the transaction.<\/li>\n<\/ul>\n<h2 data-section-id=\"9pfeok\" data-start=\"2442\" data-end=\"2487\"><strong>Why Purchase Requisitions Are Important<\/strong><\/h2>\n<p data-start=\"424\" data-end=\"637\">Purchase requisitions help businesses improve purchasing control, approval visibility, and budget management before spending occurs. Structured workflows also support procurement accountability across departments.<\/p>\n<p data-start=\"639\" data-end=\"792\">As businesses scale, formal requisition processes become increasingly important for reducing unauthorised purchases and improving procurement compliance.<\/p>\n<h3 data-section-id=\"6wlwj4\" data-start=\"2894\" data-end=\"2929\">1. Prevent unauthorised spending<\/h3>\n<p data-start=\"656\" data-end=\"852\">Purchase requisitions help businesses review purchasing requests before company funds are committed. Approval workflows also reduce purchases made outside approved procurement policies or budgets.<\/p>\n<p data-start=\"854\" data-end=\"996\">This process also helps procurement and finance teams maintain better oversight of operational spending across departments and business units.<\/p>\n<h3 data-section-id=\"ugtd8y\" data-start=\"3315\" data-end=\"3358\">2. Improve budget control and visibility<\/h3>\n<p data-start=\"1048\" data-end=\"1249\">Purchase requisitions give businesses better visibility into operational spending before purchases are finalised. This helps finance teams monitor budgets more accurately and reduce unplanned expenses.<\/p>\n<p data-start=\"1251\" data-end=\"1393\">Centralised approval records also improve financial tracking, reporting accuracy, and purchasing accountability across procurement activities.<\/p>\n<h3 data-section-id=\"1sfm7pk\" data-start=\"3750\" data-end=\"3793\">3. Reduce errors and duplicate purchases<\/h3>\n<p data-start=\"1445\" data-end=\"1674\">Structured requisition workflows help businesses reduce procurement errors and standardise purchasing requests. Employees can submit clearer specifications, quantities, and budget information before procurement processing begins.<\/p>\n<p data-start=\"1676\" data-end=\"1830\">Centralised procurement visibility also helps businesses avoid duplicate purchases, inconsistent ordering processes, and unnecessary operational spending.<\/p>\n<h2 data-section-id=\"29peow\" data-start=\"257\" data-end=\"306\"><span role=\"text\"><strong data-start=\"259\" data-end=\"306\">Purchase Requisition Process\u00a0<\/strong><\/span><\/h2>\n<p data-start=\"308\" data-end=\"521\">Purchase requisitions follow a structured approval process before purchases are officially made. This helps businesses maintain procurement control, budget visibility, and purchasing compliance across departments.<\/p>\n<h3 data-section-id=\"1275736\" data-start=\"523\" data-end=\"553\">1. Identify business needs<\/h3>\n<p data-start=\"555\" data-end=\"786\">The process starts when employees or departments identify a need for goods, services, or operational materials. This may include inventory replenishment, equipment requests, software purchases, or project-related procurement needs.<\/p>\n<h3 data-section-id=\"1ui16kp\" data-start=\"788\" data-end=\"822\">2. Create purchase requisition<\/h3>\n<p data-start=\"824\" data-end=\"1040\">Employees submit a purchase requisition form containing item descriptions, quantities, estimated costs, supplier details, and business justification. The request is then routed into the procurement approval workflow.<\/p>\n<h3 data-section-id=\"167qfgv\" data-start=\"1042\" data-end=\"1066\">3. Approval workflow<\/h3>\n<p data-start=\"1068\" data-end=\"1282\">Managers, procurement teams, or finance departments review the requisition before approving the purchase request. Approval requirements often depend on purchasing value, department policies, or operational budgets.<\/p>\n<h3 data-section-id=\"1cwyi3j\" data-start=\"1284\" data-end=\"1318\">4. Budget check and validation<\/h3>\n<p data-start=\"1320\" data-end=\"1535\">The requisition is reviewed against available budgets and procurement policies before purchasing approval is finalised. This helps businesses reduce overspending and maintain financial visibility across departments.<\/p>\n<h3 data-section-id=\"10k9sb8\" data-start=\"1537\" data-end=\"1569\">5. Convert to purchase order<\/h3>\n<p>Once approved,\u00a0<a href=\"https:\/\/www.hashmicro.com\/au\/blog\/purchase-order\/\">converting requests into orders<\/a> is completed by generating a purchase order sent to the selected supplier. The procurement process then moves into purchasing, delivery, and invoice management stages.<\/p>\n<h2 data-section-id=\"giqvt8\" data-start=\"1780\" data-end=\"1832\"><span role=\"text\"><strong data-start=\"1782\" data-end=\"1832\">What to Include in a Purchase Requisition Form<\/strong><\/span><\/h2>\n<p data-start=\"1834\" data-end=\"2090\">Purchase requisition forms should contain complete operational and financial information before entering approval workflows. Accurate documentation helps businesses improve procurement visibility, reduce processing delays, and maintain purchasing accuracy.<\/p>\n<h3 data-section-id=\"ck7xm5\" data-start=\"2092\" data-end=\"2128\">1. Requester and department details<\/h3>\n<ul data-start=\"2130\" data-end=\"2253\">\n<li data-section-id=\"8bblg6\" data-start=\"2130\" data-end=\"2160\">Employee or requester name<\/li>\n<li data-section-id=\"tn4apd\" data-start=\"2161\" data-end=\"2192\">Department or business unit<\/li>\n<li data-section-id=\"17w11ok\" data-start=\"2193\" data-end=\"2216\">Contact information<\/li>\n<li data-section-id=\"mfyjhn\" data-start=\"2217\" data-end=\"2253\">Project or cost centre reference<\/li>\n<\/ul>\n<h3 data-section-id=\"1ydd2h6\" data-start=\"2255\" data-end=\"2291\">2. Description of goods or services<\/h3>\n<ul data-start=\"2293\" data-end=\"2436\">\n<li data-section-id=\"70iat7\" data-start=\"2293\" data-end=\"2324\">Item or service description<\/li>\n<li data-section-id=\"12tuqzg\" data-start=\"2325\" data-end=\"2367\">Product specifications or requirements<\/li>\n<li data-section-id=\"107lwna\" data-start=\"2368\" data-end=\"2398\">Required delivery timeline<\/li>\n<li data-section-id=\"1tlb9nx\" data-start=\"2399\" data-end=\"2436\">Business purpose or justification<\/li>\n<\/ul>\n<h3 data-section-id=\"1cg6t5g\" data-start=\"2438\" data-end=\"2480\">3. Quantity, cost, and budget information<\/h3>\n<ul data-start=\"2482\" data-end=\"2585\">\n<li data-section-id=\"17flvgj\" data-start=\"2482\" data-end=\"2504\">Requested quantity<\/li>\n<li data-section-id=\"124d9gx\" data-start=\"2505\" data-end=\"2529\">Estimated unit price<\/li>\n<li data-section-id=\"1ytdi6r\" data-start=\"2530\" data-end=\"2554\">Total estimated cost<\/li>\n<li data-section-id=\"52ch80\" data-start=\"2555\" data-end=\"2585\">Budget or expense category<\/li>\n<\/ul>\n<h3 data-section-id=\"q31r7s\" data-start=\"2587\" data-end=\"2632\">4. Supplier details and supporting documents<\/h3>\n<ul data-start=\"2634\" data-end=\"2804\">\n<li data-section-id=\"1u0uork\" data-start=\"2634\" data-end=\"2666\">Preferred supplier or vendor<\/li>\n<li><a href=\"https:\/\/www.hashmicro.com\/au\/blog\/rfq-template\/\">Template for quotation requests<\/a>\u00a0or pricing documents<\/li>\n<li data-section-id=\"1d02p0p\" data-start=\"2712\" data-end=\"2758\">Supporting files or procurement references<\/li>\n<li data-section-id=\"lvp3j9\" data-start=\"2759\" data-end=\"2804\">Additional procurement notes or approvals<\/li>\n<\/ul>\n<h2 data-section-id=\"ijlpzv\" data-start=\"2811\" data-end=\"2861\"><span role=\"text\"><strong data-start=\"2813\" data-end=\"2861\">Purchase Requisition Workflow in Procurement<\/strong><\/span><\/h2>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-4448\" src=\"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/05\/Purchase-Requisition-Workflow-in-Procurement-e1778554563260.webp\" alt=\"Purchase Requisition Workflow in Procurement\" width=\"970\" height=\"548\" srcset=\"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/05\/Purchase-Requisition-Workflow-in-Procurement-e1778554563260.webp 970w, https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/05\/Purchase-Requisition-Workflow-in-Procurement-e1778554563260-300x169.webp 300w, https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/05\/Purchase-Requisition-Workflow-in-Procurement-e1778554563260-768x434.webp 768w, https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/05\/Purchase-Requisition-Workflow-in-Procurement-e1778554563260-743x420.webp 743w, https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/05\/Purchase-Requisition-Workflow-in-Procurement-e1778554563260-150x85.webp 150w, https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/05\/Purchase-Requisition-Workflow-in-Procurement-e1778554563260-696x393.webp 696w\" sizes=\"(max-width: 970px) 100vw, 970px\" \/><\/p>\n<p data-start=\"854\" data-end=\"1047\">Purchase requisition workflows help businesses review, approve, and process procurement requests more efficiently. Structured workflows also improve purchasing visibility and policy compliance.<\/p>\n<p data-start=\"1049\" data-end=\"1159\">Clear approval structures and system integration become increasingly important as procurement operations grow.<\/p>\n<h3 data-section-id=\"1gcef3q\" data-start=\"3269\" data-end=\"3306\">1. Role of employees and departments<\/h3>\n<p data-start=\"3308\" data-end=\"3543\">Employees identify operational needs and submit purchase requisition requests for approval. Department managers, finance teams, and procurement staff then review and validate the request before purchasing approval is granted.<\/p>\n<p data-start=\"3545\" data-end=\"3700\">Each department plays a role in validating budgets, operational requirements, procurement policies, and supplier selection throughout the approval process.<\/p>\n<h3 data-section-id=\"g2c3io\" data-start=\"3702\" data-end=\"3726\">2. Approval hierarchies<\/h3>\n<p data-start=\"3728\" data-end=\"3837\">Approval hierarchies help businesses control purchasing authority across departments and spending categories.<\/p>\n<ul data-start=\"3839\" data-end=\"4084\">\n<li data-section-id=\"l66ta2\" data-start=\"3839\" data-end=\"3896\">Low-value purchases may only require manager approval<\/li>\n<li data-section-id=\"1x2hcfp\" data-start=\"3897\" data-end=\"3959\">Larger purchases may require finance or executive approval<\/li>\n<li data-section-id=\"159d09d\" data-start=\"3960\" data-end=\"4024\">Procurement teams may review supplier or contract compliance<\/li>\n<li data-section-id=\"743wme\" data-start=\"4025\" data-end=\"4084\">Multi-level approvals help reduce unauthorised spending<\/li>\n<\/ul>\n<h3 data-section-id=\"dxek9i\" data-start=\"4086\" data-end=\"4127\">3. Integration with procure-to-pay (P2P)<\/h3>\n<div class=\"qMYqUG_convSearchResultHighlightRoot\">\n<div class=\"relative w-full overflow-visible\">\n<section class=\"text-token-text-primary w-full focus:outline-none [--shadow-height:45px] has-data-writing-block:pointer-events-none has-data-writing-block:-mt-(--shadow-height) has-data-writing-block:pt-(--shadow-height) [&amp;:has([data-writing-block])&gt;*]:pointer-events-auto [content-visibility:auto] supports-[content-visibility:auto]:[contain-intrinsic-size:auto_100lvh] R6Vx5W_threadScrollVars scroll-mb-[calc(var(--scroll-root-safe-area-inset-bottom,0px)+var(--thread-response-height))] scroll-mt-[calc(var(--header-height)+min(200px,max(70px,20svh)))]\" dir=\"auto\" data-turn-id=\"request-69f8630b-18c4-8324-88ef-3bd8c221a018-10\" data-turn-id-container=\"request-69f8630b-18c4-8324-88ef-3bd8c221a018-10\" data-testid=\"conversation-turn-404\" data-scroll-anchor=\"false\" data-turn=\"assistant\">\n<div class=\"text-base my-auto mx-auto pb-10 [--thread-content-margin:var(--thread-content-margin-xs,calc(var(--spacing)*4))] @w-sm\/main:[--thread-content-margin:var(--thread-content-margin-sm,calc(var(--spacing)*6))] @w-lg\/main:[--thread-content-margin:var(--thread-content-margin-lg,calc(var(--spacing)*16))] px-(--thread-content-margin)\">\n<div class=\"[--thread-content-max-width:40rem] @w-lg\/main:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group\/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn\">\n<div class=\"flex max-w-full flex-col gap-4 grow\">\n<div class=\"min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal outline-none keyboard-focused:focus-ring [.text-message+&amp;]:mt-1\" dir=\"auto\" tabindex=\"0\" data-message-author-role=\"assistant\" data-message-id=\"7e1a8304-6442-40ea-9c4d-b9dce2deb9af\" data-message-model-slug=\"gpt-5-5\" data-turn-start-message=\"true\">\n<div class=\"flex w-full flex-col gap-1 empty:hidden\">\n<div class=\"markdown prose dark:prose-invert wrap-break-word w-full dark markdown-new-styling\">\n<p data-start=\"46\" data-end=\"269\" data-is-last-node=\"\" data-is-only-node=\"\">Purchase requisitions act as the starting point of the procure-to-pay (P2P) process before purchasing and payment activities occur. Integrated systems help connect procurement workflows with finance and supplier management.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<\/div>\n<\/div>\n<p data-start=\"4403\" data-end=\"4532\" data-is-last-node=\"\" data-is-only-node=\"\">This integration supports\u00a0<a href=\"https:\/\/www.hashmicro.com\/au\/blog\/procurement-management-system\/\">centralised supplier coordination<\/a>, improves procurement, reporting accuracy, and operational efficiency across the purchasing lifecycle.<\/p>\n<h2 data-section-id=\"19rlzat\" data-start=\"0\" data-end=\"51\"><span role=\"text\"><strong data-start=\"2\" data-end=\"51\">Challenges in Purchase Requisition Management<\/strong><\/span><\/h2>\n<p data-start=\"53\" data-end=\"322\">Manual procurement processes can create approval delays, inconsistent workflows, and limited spending visibility. Businesses often struggle to maintain procurement control without structured systems and approval procedures.<\/p>\n<h3 data-section-id=\"3v80d9\" data-start=\"324\" data-end=\"350\">1. Manual approval delays<\/h3>\n<p data-start=\"352\" data-end=\"605\">Manual approval processes can slow procurement activities, especially when approvals rely on emails, spreadsheets, or paper-based documentation. Delayed approvals may affect purchasing timelines and supplier coordination.<\/p>\n<h3 data-section-id=\"1q6rt9c\" data-start=\"607\" data-end=\"635\">2. Lack of spend visibility<\/h3>\n<p data-start=\"637\" data-end=\"886\">Disconnected procurement processes make it difficult for businesses to monitor operational spending accurately. Limited visibility can lead to budgeting issues, duplicate purchases, and inconsistent procurement reporting.<\/p>\n<h3 data-section-id=\"78f9x5\" data-start=\"888\" data-end=\"914\">3. Poor policy compliance<\/h3>\n<p data-start=\"916\" data-end=\"1144\">Without structured procurement workflows, employees may bypass approval procedures or submit incomplete purchasing requests. This increases the risk of unauthorised spending and procurement inconsistencies.<\/p>\n<h2 data-section-id=\"1ksp7w5\" data-start=\"1151\" data-end=\"1206\"><span role=\"text\"><strong data-start=\"1153\" data-end=\"1206\">Best Practices for Managing Purchase Requisitions<\/strong><\/span><\/h2>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-4446 size-full\" src=\"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/05\/best-practices-purchase-requisition-management-e1778554421360.webp\" alt=\"best practices for managing purchase requisitions\" width=\"1225\" height=\"576\" srcset=\"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/05\/best-practices-purchase-requisition-management-e1778554421360.webp 1225w, https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/05\/best-practices-purchase-requisition-management-e1778554421360-300x141.webp 300w, https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/05\/best-practices-purchase-requisition-management-e1778554421360-1024x481.webp 1024w, https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/05\/best-practices-purchase-requisition-management-e1778554421360-768x361.webp 768w, https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/05\/best-practices-purchase-requisition-management-e1778554421360-893x420.webp 893w, https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/05\/best-practices-purchase-requisition-management-e1778554421360-150x71.webp 150w, https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/05\/best-practices-purchase-requisition-management-e1778554421360-696x327.webp 696w, https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/05\/best-practices-purchase-requisition-management-e1778554421360-1068x502.webp 1068w\" sizes=\"(max-width: 1225px) 100vw, 1225px\" \/><\/p>\n<p data-start=\"1208\" data-end=\"1470\">Businesses should establish clear procurement procedures to improve approval efficiency, purchasing visibility, and operational consistency. Structured workflows also help reduce procurement risks and compliance issues.<\/p>\n<h3 data-section-id=\"itg1cz\" data-start=\"1472\" data-end=\"1509\">1. Standardise requisition processes<\/h3>\n<p data-start=\"4169\" data-end=\"4380\">Businesses should use consistent purchase requisition procedures, approval structures, and documentation requirements across departments. Standardised workflows help improve procurement accuracy and consistency.<\/p>\n<h3 data-section-id=\"1m2m1eb\" data-start=\"1746\" data-end=\"1777\">2. Automate approval workflows<\/h3>\n<p data-start=\"1779\" data-end=\"2010\">Automated approval routing helps businesses reduce manual delays and improve procurement efficiency. <a href=\"https:\/\/www.hashmicro.com\/au\/blog\/procurement-software\/\">Digital purchasing solutions<\/a> help businesses automate approval routing, reduce manual delays and purchasing visibility.<\/p>\n<h3 data-section-id=\"eexvvh\" data-start=\"2012\" data-end=\"2049\">3. Ensure clear procurement policies<\/h3>\n<p data-start=\"2051\" data-end=\"2277\">Clear procurement policies help employees understand approval requirements, purchasing limits, and documentation standards. This improves compliance and reduces procurement errors.<\/p>\n<h3 data-section-id=\"funhlj\" data-start=\"2279\" data-end=\"2308\">4. Maintain accurate records<\/h3>\n<p data-start=\"2310\" data-end=\"2541\">Businesses should maintain complete procurement records for requisitions, approvals, supplier documents, and purchasing activities. Accurate documentation supports reporting accuracy and audit readiness.<\/p>\n<p data-start=\"2310\" data-end=\"2541\"><style>\r\n    #custom-quote {\r\n        background-color: #f0f0f0;\r\n        padding: 20px;\r\n        border-radius: 12px;\r\n        margin: 20px;\r\n        display: flex;\r\n        flex-direction: column;\r\n    }\r\n\r\n    #custom-quote .quote-body {\r\n        display: flex;\r\n        flex-direction: row;\r\n        align-items: flex-start;\r\n        gap: 15px;\r\n        font-size: 16px;\r\n        line-height: 1.5;\r\n        font-style: italic;\r\n    }\r\n\r\n    #custom-quote .quote-icon {\r\n        width: 40px;\r\n        height: 40px;\r\n        flex-shrink: 0;\r\n    }\r\n\r\n    #custom-quote .quote-author-wrapper {\r\n        margin-top: 15px;\r\n        align-self: flex-start;\r\n        margin-left: 55px; \r\n\t\tmargin-bottom: 0px;\r\n    }\r\n\r\n    #custom-quote em {\r\n        font-family: 'Roboto Serif', serif !important;\r\n        font-size: 12px;\r\n        font-weight: bold;\r\n        font-style: normal;\r\n    }\r\n\r\n    @media screen and (max-width: 768px) {\r\n        #custom-quote {\r\n            margin: 15px 0;\r\n            padding: 15px;\r\n        }\r\n        \r\n        #custom-quote .quote-body {\r\n            gap: 12px;\r\n        }\r\n\r\n        #custom-quote .quote-author-wrapper {\r\n            margin-left: 52px;\r\n        }\r\n    }\r\n\r\n    @media screen and (max-width: 480px) {\r\n        #custom-quote {\r\n            margin: 10px 0;\r\n            padding: 12px;\r\n        }\r\n\r\n        #custom-quote .quote-body {\r\n            font-size: 14px;\r\n            gap: 10px;\r\n        }\r\n\r\n        #custom-quote .quote-icon {\r\n            width: 32px;\r\n            height: 32px;\r\n        }\r\n\r\n        #custom-quote .quote-author-wrapper {\r\n            margin-top: 10px;\r\n            margin-left: 42px;\r\n        }\r\n    }\r\n<\/style>\r\n\r\n<div id=\"custom-quote\">\r\n    <div class=\"quote-body\">\r\n        <img decoding=\"async\" src=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/12\/quote.webp\" alt=\"Quote Icon\" class=\"quote-icon\">\r\n        <div>\r\n            Procurement processes become easier to control when purchase requests follow clear approval workflows, standardised documentation, and centralised purchasing procedures.        <\/div>\r\n    <\/div>\r\n    <p class=\"quote-author-wrapper\">\r\n        <em>Luke Sheridan, Head of Finance Dept.<\/em>\r\n    <\/p>\r\n<\/div><\/p>\n<h2 data-section-id=\"sdsfis\" data-start=\"2548\" data-end=\"2607\"><span role=\"text\"><strong data-start=\"2550\" data-end=\"2607\">How Software Improves Purchase Requisition Management<\/strong><\/span><\/h2>\n<p data-start=\"2609\" data-end=\"2871\"><a href=\"https:\/\/www.hashmicro.com\/au\/procurement-and-purchasing-management-system\">Software for automating buying coordination<\/a> helps businesses streamline purchase requisition workflows, approval tracking, and purchasing visibility. Integrated systems also reduce manual administration.<\/p>\n<h3 data-section-id=\"1y4kqp7\" data-start=\"2873\" data-end=\"2903\">1. Automated approval routing<\/h3>\n<p data-start=\"3643\" data-end=\"3879\">Procurement systems automatically route requisition requests to the correct approvers based on purchasing rules and approval thresholds. This helps reduce approval delays and workflow bottlenecks.<\/p>\n<h3 data-section-id=\"89aatq\" data-start=\"3157\" data-end=\"3186\">2. Real-time budget tracking<\/h3>\n<p data-start=\"3188\" data-end=\"3417\">Integrated procurement software gives finance teams real-time visibility into purchasing requests, budgets, and operational spending. This improves budget control before purchases are approved.<\/p>\n<h3 data-section-id=\"3q8umq\" data-start=\"3419\" data-end=\"3459\">3. Integration with procurement systems<\/h3>\n<p data-start=\"4203\" data-end=\"4438\">Purchase requisition software can integrate with procurement, inventory, ERP, and finance systems to centralise purchasing workflows. Integrated systems improve visibility and reporting accuracy.<\/p>\n<h2 data-section-id=\"q2f4av\" data-start=\"0\" data-end=\"58\"><strong><span role=\"text\">Role of Purchase Requisition in Procure-to-Pay (P2P)<\/span><\/strong><\/h2>\n<p data-start=\"4523\" data-end=\"4749\">Purchase requisitions help businesses control purchasing requests before procurement activities begin. Structured workflows also improve spending visibility and procurement coordination.<\/p>\n<h3 data-section-id=\"bimymm\" data-start=\"363\" data-end=\"401\">1. First step in the purchasing cycle<\/h3>\n<p data-start=\"4798\" data-end=\"5039\">Purchase requisitions act as the starting point of the purchasing cycle before purchase orders and payment activities occur. The document helps validate operational needs before purchases are approved.<\/p>\n<h3 data-section-id=\"i9p70u\" data-start=\"668\" data-end=\"706\">2. Link between demand and purchasing<\/h3>\n<p data-start=\"708\" data-end=\"947\">Purchase requisitions connect operational requirements with procurement and supplier purchasing activities. This helps businesses align purchasing decisions with budgets and operational priorities.<\/p>\n<h3 data-section-id=\"j0h4mq\" data-start=\"949\" data-end=\"984\">3. Supporting compliance and audit<\/h3>\n<div class=\"qMYqUG_convSearchResultHighlightRoot\">\n<div class=\"relative w-full overflow-visible\">\n<section class=\"text-token-text-primary w-full focus:outline-none [--shadow-height:45px] has-data-writing-block:pointer-events-none has-data-writing-block:-mt-(--shadow-height) has-data-writing-block:pt-(--shadow-height) [&amp;:has([data-writing-block])&gt;*]:pointer-events-auto [content-visibility:auto] supports-[content-visibility:auto]:[contain-intrinsic-size:auto_100lvh] R6Vx5W_threadScrollVars scroll-mb-[calc(var(--scroll-root-safe-area-inset-bottom,0px)+var(--thread-response-height))] scroll-mt-[calc(var(--header-height)+min(200px,max(70px,20svh)))]\" dir=\"auto\" data-turn-id=\"request-69f8630b-18c4-8324-88ef-3bd8c221a018-9\" data-turn-id-container=\"request-69f8630b-18c4-8324-88ef-3bd8c221a018-9\" data-testid=\"conversation-turn-402\" data-scroll-anchor=\"false\" data-turn=\"assistant\">\n<div class=\"text-base my-auto mx-auto pb-10 [--thread-content-margin:var(--thread-content-margin-xs,calc(var(--spacing)*4))] @w-sm\/main:[--thread-content-margin:var(--thread-content-margin-sm,calc(var(--spacing)*6))] @w-lg\/main:[--thread-content-margin:var(--thread-content-margin-lg,calc(var(--spacing)*16))] px-(--thread-content-margin)\">\n<div class=\"[--thread-content-max-width:40rem] @w-lg\/main:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group\/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn\">\n<div class=\"flex max-w-full flex-col gap-4 grow\">\n<div class=\"min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal outline-none keyboard-focused:focus-ring [.text-message+&amp;]:mt-1\" dir=\"auto\" tabindex=\"0\" data-message-author-role=\"assistant\" data-message-id=\"365e6e87-5982-44a1-84c3-b7d7810d5867\" data-turn-start-message=\"true\" data-message-model-slug=\"gpt-5-5\">\n<div class=\"flex w-full flex-col gap-1 empty:hidden\">\n<div class=\"markdown prose dark:prose-invert wrap-break-word w-full dark markdown-new-styling\">\n<p data-start=\"5371\" data-end=\"5601\" data-is-last-node=\"\" data-is-only-node=\"\">Structured requisition records help businesses maintain approval documentation, procurement history, and spending visibility. Accurate records also support compliance and audit requirements.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<\/div>\n<\/div>\n<h2 class=\"_aupe copyable-text x15bjb6t x1n2onr6\"><strong><span class=\"_aupe copyable-text xkrh14z\">Conclusion<\/span><\/strong><\/h2>\n<p data-start=\"516\" data-end=\"757\">Purchase requisitions help businesses improve procurement control, approval visibility, and spending accuracy before purchases are finalised. Structured workflows also reduce procurement errors, unauthorised spending, and operational delays.<\/p>\n<p data-start=\"759\" data-end=\"927\">Businesses looking to improve purchasing workflows and procurement visibility can also explore procurement software solutions through a <a href=\"https:\/\/www.hashmicro.com\/au\/free-product-tour\/\">free consultation<\/a> with our team.<\/p>\n<p data-start=\"759\" data-end=\"927\"><a href=\"https:\/\/www.hashmicro.com\/au\/procurement-and-purchasing-management-system?medium=moneysite-banner\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" width=\"712\" src=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/06\/Procurement.webp\" alt=\"Procurement\"><\/a><\/p>\n<p data-start=\"759\" data-end=\"927\"><h2 class=\"faqTitle\">Frequently Asked Question<\/h2>\r\n<style>\r\n\t#main-article p.faqTitle{\r\n\t\ttext-align: center;\r\n\t\tmargin-bottom: 0;\r\n\t\tmargin-top: 50px;\r\n\t\tfont-weight: bold;\r\n\t}\r\n\t\r\n\t.accordion-wrapper{\r\n\t\tbackground-color: white;\r\n\t\tborder: 1px solid #9c171e;\r\n\t\tborder-radius: 6px;\r\n\t\ttransition: 0.4s ease;\r\n\t\tmargin-bottom: 20px;\r\n\t\toverflow: hidden;\r\n\t}\r\n\t\r\n\t.header-faq{\r\n\t\tdisplay: flex;\r\n\t\tborder: none;\r\n\t\tborder-radius: 6px 6px 6px 6px;\r\n\t\tbackground: #FFF;\r\n\t\talign-items: center;\r\n\t\tpadding: 18px;\r\n\t\ttransition: 0.4s;\r\n\t\tcursor: pointer;\r\n\t\tjustify-content: space-between;\r\n\t}\r\n\t\r\n\t.header-faq p{\r\n\t\tmargin-bottom: 0;\r\n\t}\r\n\t\r\n\t.question {\r\n\t\tcolor: #3C3C3C;\r\n\t\twidth: 100%;\r\n\t\ttext-align: left;\r\n\t\tfont-size: 16px;\r\n\t\tline-height: 20px;\r\n\t \ttransition: 0.4s;\r\n\t\tborder: none;\r\n\t\tborder-radius: 6px 6px 6px 6px;\r\n\t\tbackground: #FFF;\r\n\t\tpadding: 0;\r\n\t\ttext-transform: uppercase;\r\n\t\tfont-weight: 700;\r\n\t\tdisplay: flex;\r\n\t\tjustify-content: space-between;\r\n\t\talign-items: center;\r\n\t}\r\n\r\n\t.header-faq.active {\r\n\t  background-color: #FFF;\r\n\t}\r\n\t\r\n\tbutton.question{\r\n\t\tcolor: unset;\r\n\t\tbackground-color: unset;\r\n\t}\r\n\t\r\n\tbutton.question::after{\r\n\t\tcontent: \"<\";\r\n\t\twidth: 2.2rem;\r\n\t\theight: 2.2rem;\r\n\t\tdisplay: flex;\r\n\t\tjustify-content: center;\r\n\t\talign-items: center;\r\n\t\tborder-radius: 50%;\r\n\t\tcolor: #FFF;\r\n\t\tflex-shrink: 0;\r\n\t\tfloat: right;\r\n\t\ttransition: 0.4s;\r\n\t\topacity: 0.4;\r\n\t\tposition: relative;\r\n\t\ttransform: rotate(-90deg);\r\n\t\tbackground-color: #9c171e;\r\n\t\tfont-family: monospace;\r\n\t}\r\n\r\n\t.answer {\r\n\t  padding: 0 18px;\r\n\t  max-height: 0;\r\n\t  overflow: hidden;\r\n\t  background-color: white;\r\n\t  border-radius: 0 0 6px 6px;\r\n\t  transition: max-height 0.4s ease, opacity 0.4s ease;\r\n\t  opacity: 0;\r\n\t}\r\n\r\n\t.answer p{\r\n\t\tfont-size: 16px;\r\n\t\tfont-weight: 400;\r\n\t\tline-height: 28px;\r\n\t\ttext-align: left;\r\n\t\ttext-transform: none;\r\n\t\tcolor: #494949;\r\n\t}\r\n\t\r\n\t.accordion-wrapper.active{\r\n\t\tbox-shadow: 0px 0px 20px 0px #4034AB38;\r\n\t}\r\n\t\r\n\t.header-faq.active .accordion-icon .vLine{\r\n\t\ttransform: translateX(-50%) rotate(0deg);\r\n\t}\r\n\r\n\t.header-faq.active + .answer {\r\n\t  opacity: 1;\r\n\t}\r\n\t\r\n\t.header-faq.active button.question::after{\r\n\t\ttransform: rotate(90deg);\r\n\t\topacity: 1;\r\n\t}\r\n\t\r\n\t.header-faq:hover button.question::after{\r\n\t\topacity: 1;\r\n\t}\r\n\t\r\n\t.faq-h3-addition {\r\n\t\tmargin: 0 !important;\r\n\t\tpadding-right: 15px;\r\n\t\tmin-width: 0;\r\n\t}\r\n<\/style>\r\n\r\n    <div class=\"accordion-wrapper\">\r\n        <div class=\"header-faq\">\r\n            <button class=\"question\">What is the purpose of a purchase requisition?<\/button>\r\n        <\/div>\r\n        <div class=\"answer\">\r\n            <p>A purchase requisition helps businesses request, review, and approve purchases before company funds are committed. It improves procurement control, spending visibility, and purchasing compliance across departments.<\/p>\r\n        <\/div>\r\n    <\/div>\r\n    <div class=\"accordion-wrapper\">\r\n        <div class=\"header-faq\">\r\n            <button class=\"question\">What is the difference between a purchase requisition and a purchase order?<\/button>\r\n        <\/div>\r\n        <div class=\"answer\">\r\n            <p>A purchase requisition is an internal document used to request purchasing approval, while a purchase order is an external document sent to suppliers to officially confirm a purchase.<\/p>\r\n        <\/div>\r\n    <\/div>\r\n    <div class=\"accordion-wrapper\">\r\n        <div class=\"header-faq\">\r\n            <button class=\"question\">Who approves a purchase requisition?<\/button>\r\n        <\/div>\r\n        <div class=\"answer\">\r\n            <p>Purchase requisitions are typically approved by department managers, procurement teams, finance departments, or authorised executives depending on company policies and purchasing value.<\/p>\r\n        <\/div>\r\n    <\/div>\r\n    <div class=\"accordion-wrapper\">\r\n        <div class=\"header-faq\">\r\n            <button class=\"question\">What should be included in a purchase requisition form?<\/button>\r\n        <\/div>\r\n        <div class=\"answer\">\r\n            <p>Purchase requisition forms usually include requester details, department information, item descriptions, quantities, estimated costs, supplier details, and supporting procurement documents.<\/p>\r\n        <\/div>\r\n    <\/div>\r\n    <div class=\"accordion-wrapper\">\r\n        <div class=\"header-faq\">\r\n            <button class=\"question\">Can purchase requisitions be automated through software?<\/button>\r\n        <\/div>\r\n        <div class=\"answer\">\r\n            <p>Yes, procurement software can automate purchase requisition workflows through approval routing, budget tracking, procurement integration, and real-time purchasing visibility.<\/p>\r\n        <\/div>\r\n    <\/div>\r\n\r\n<script>\r\n    function toggleAccordion() {\r\n        var acc = document.getElementsByClassName(\"header-faq\");\r\n        for (var i = 0; i < acc.length; i++) {\r\n            acc[i].addEventListener(\"click\", function() {\r\n                for (var j = 0; j < acc.length; j++) {\r\n                    if (acc[j] !== this && acc[j].classList.contains(\"active\")) {\r\n                        acc[j].classList.remove(\"active\");\r\n                        acc[j].closest('.accordion-wrapper').classList.remove('active');\r\n                        var panel = acc[j].nextElementSibling;\r\n                        panel.style.maxHeight = null;\r\n                    }\r\n                }\r\n\r\n                this.classList.toggle(\"active\");\r\n                var accordionWrapper = this.closest('.accordion-wrapper');\r\n                var panel = this.nextElementSibling;\r\n                if (this.classList.contains(\"active\")) {\r\n                    panel.style.maxHeight = panel.scrollHeight + \"px\";\r\n                    accordionWrapper.classList.add('active');\r\n                } else {\r\n                    panel.style.maxHeight = null;\r\n                    accordionWrapper.classList.remove('active');\r\n                }\r\n            });\r\n        }\r\n    }\r\n\r\n    document.addEventListener('DOMContentLoaded', toggleAccordion);\r\n<\/script>\r\n\r\n<!-- <script>\r\n    document.addEventListener('DOMContentLoaded', function() {\r\n        document.querySelectorAll('.header-faq .question').forEach(btn => {\r\n            const text = btn.textContent.trim();\r\n            const h3 = document.createElement('h3');\r\n            h3.textContent = text;\r\n            h3.className = \"faq-h3-addition\";\r\n            btn.textContent = '';\r\n            btn.appendChild(h3);\r\n        });\r\n    });\r\n<\/script> --><\/p>\n<p><script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"FAQPage\",\n  \"mainEntity\": [\n    {\n      \"@type\": \"Question\",\n      \"name\": \"What is the purpose of a purchase requisition?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"A purchase requisition helps businesses request, review, and approve purchases before company funds are committed. It improves procurement control, spending visibility, and purchasing compliance across departments.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"What is the difference between a purchase requisition and a purchase order?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"A purchase requisition is an internal document used to request purchasing approval, while a purchase order is an external document sent to suppliers to officially confirm a purchase.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Who approves a purchase requisition?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Purchase requisitions are typically approved by department managers, procurement teams, finance departments, or authorised executives depending on company policies and purchasing value.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"What should be included in a purchase requisition form?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Purchase requisition forms usually include requester details, department information, item descriptions, quantities, estimated costs, supplier details, and supporting procurement documents.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Can purchase requisitions be automated through software?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Yes, procurement software can automate purchase requisition workflows through approval routing, budget tracking, procurement integration, and real-time purchasing visibility.\"\n      }\n    }\n  ]\n}\n<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Businesses often need a structured way to manage purchasing requests before operational spending occurs. Without proper approval workflows, procurement activities can become difficult to track, control, and validate across departments. Purchase requisitions help businesses standardise purchasing requests through approval, budget validation, and procurement review processes. This improves spending visibility while reducing procurement errors and unauthorised [&hellip;]<\/p>\n","protected":false},"author":58,"featured_media":4445,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"tdm_status":"","tdm_grid_status":"","footnotes":""},"categories":[65],"tags":[],"class_list":{"0":"post-4187","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-procurement"},"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.6 (Yoast SEO v27.5) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Purchase Requisition: Definition, Process, and Best Practices<\/title>\n<meta name=\"description\" content=\"Learn how purchase requisitions improve procurement control, approval workflows, budget visibility, and purchasing accuracy.\" \/>\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\/au\/blog\/purchase-requisition\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Purchase Requisition: Definition, Process, and Best Practices\" \/>\n<meta property=\"og:description\" content=\"Learn how purchase requisitions improve procurement control, approval workflows, budget visibility, and purchasing accuracy.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hashmicro.com\/au\/blog\/purchase-requisition\/\" \/>\n<meta property=\"og:site_name\" content=\"HashMicro Australia\" \/>\n<meta property=\"article:published_time\" content=\"2026-05-29T10:07:39+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/05\/purchase-requisition-hashmicro-e1778554290940.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"977\" \/>\n\t<meta property=\"og:image:height\" content=\"548\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Jasper Colefax\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jasper Colefax\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/au\\\/blog\\\/purchase-requisition\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/au\\\/blog\\\/purchase-requisition\\\/\"},\"author\":{\"name\":\"Jasper Colefax\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/au\\\/blog\\\/#\\\/schema\\\/person\\\/5e36c3e21c6cb33505689d9822fabb49\"},\"headline\":\"Purchase Requisition: Definition, Process, and Best Practices\",\"datePublished\":\"2026-05-29T10:07:39+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/au\\\/blog\\\/purchase-requisition\\\/\"},\"wordCount\":1889,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/au\\\/blog\\\/purchase-requisition\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.hashmicro.com\\\/au\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/purchase-requisition-hashmicro-e1778554290940.webp\",\"articleSection\":[\"Procurement\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.hashmicro.com\\\/au\\\/blog\\\/purchase-requisition\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/au\\\/blog\\\/purchase-requisition\\\/\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/au\\\/blog\\\/purchase-requisition\\\/\",\"name\":\"Purchase Requisition: Definition, Process, and Best Practices\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/au\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/au\\\/blog\\\/purchase-requisition\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/au\\\/blog\\\/purchase-requisition\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.hashmicro.com\\\/au\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/purchase-requisition-hashmicro-e1778554290940.webp\",\"datePublished\":\"2026-05-29T10:07:39+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/au\\\/blog\\\/#\\\/schema\\\/person\\\/5e36c3e21c6cb33505689d9822fabb49\"},\"description\":\"Learn how purchase requisitions improve procurement control, approval workflows, budget visibility, and purchasing accuracy.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/au\\\/blog\\\/purchase-requisition\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.hashmicro.com\\\/au\\\/blog\\\/purchase-requisition\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/au\\\/blog\\\/purchase-requisition\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/au\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/purchase-requisition-hashmicro-e1778554290940.webp\",\"contentUrl\":\"https:\\\/\\\/www.hashmicro.com\\\/au\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/purchase-requisition-hashmicro-e1778554290940.webp\",\"width\":977,\"height\":548,\"caption\":\"purchase requisition\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/au\\\/blog\\\/purchase-requisition\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.hashmicro.com\\\/au\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Purchase Requisition: Definition, Process, and Best Practices\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/au\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/au\\\/blog\\\/\",\"name\":\"HashMicro Australia\",\"description\":\"Business Management Blog\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.hashmicro.com\\\/au\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/au\\\/blog\\\/#\\\/schema\\\/person\\\/5e36c3e21c6cb33505689d9822fabb49\",\"name\":\"Jasper Colefax\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/au\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/cropped-Jasper-Colefax-96x96.webp\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/au\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/cropped-Jasper-Colefax-96x96.webp\",\"contentUrl\":\"https:\\\/\\\/www.hashmicro.com\\\/au\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/cropped-Jasper-Colefax-96x96.webp\",\"caption\":\"Jasper Colefax\"},\"description\":\"I\u2019m a full-time business systems analyst and a part-time writer focused on procurement and supply chain management. In my day-to-day work, I help teams map purchasing workflows, clarify approval rules, and connect supplier and inventory data so decisions don\u2019t rely on guesswork.\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/au\\\/blog\\\/author\\\/jasper-colefax\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Purchase Requisition: Definition, Process, and Best Practices","description":"Learn how purchase requisitions improve procurement control, approval workflows, budget visibility, and purchasing accuracy.","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\/au\/blog\/purchase-requisition\/","og_locale":"en_US","og_type":"article","og_title":"Purchase Requisition: Definition, Process, and Best Practices","og_description":"Learn how purchase requisitions improve procurement control, approval workflows, budget visibility, and purchasing accuracy.","og_url":"https:\/\/www.hashmicro.com\/au\/blog\/purchase-requisition\/","og_site_name":"HashMicro Australia","article_published_time":"2026-05-29T10:07:39+00:00","og_image":[{"width":977,"height":548,"url":"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/05\/purchase-requisition-hashmicro-e1778554290940.webp","type":"image\/webp"}],"author":"Jasper Colefax","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Jasper Colefax","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.hashmicro.com\/au\/blog\/purchase-requisition\/#article","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/au\/blog\/purchase-requisition\/"},"author":{"name":"Jasper Colefax","@id":"https:\/\/www.hashmicro.com\/au\/blog\/#\/schema\/person\/5e36c3e21c6cb33505689d9822fabb49"},"headline":"Purchase Requisition: Definition, Process, and Best Practices","datePublished":"2026-05-29T10:07:39+00:00","mainEntityOfPage":{"@id":"https:\/\/www.hashmicro.com\/au\/blog\/purchase-requisition\/"},"wordCount":1889,"commentCount":0,"image":{"@id":"https:\/\/www.hashmicro.com\/au\/blog\/purchase-requisition\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/05\/purchase-requisition-hashmicro-e1778554290940.webp","articleSection":["Procurement"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.hashmicro.com\/au\/blog\/purchase-requisition\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.hashmicro.com\/au\/blog\/purchase-requisition\/","url":"https:\/\/www.hashmicro.com\/au\/blog\/purchase-requisition\/","name":"Purchase Requisition: Definition, Process, and Best Practices","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/au\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.hashmicro.com\/au\/blog\/purchase-requisition\/#primaryimage"},"image":{"@id":"https:\/\/www.hashmicro.com\/au\/blog\/purchase-requisition\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/05\/purchase-requisition-hashmicro-e1778554290940.webp","datePublished":"2026-05-29T10:07:39+00:00","author":{"@id":"https:\/\/www.hashmicro.com\/au\/blog\/#\/schema\/person\/5e36c3e21c6cb33505689d9822fabb49"},"description":"Learn how purchase requisitions improve procurement control, approval workflows, budget visibility, and purchasing accuracy.","breadcrumb":{"@id":"https:\/\/www.hashmicro.com\/au\/blog\/purchase-requisition\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hashmicro.com\/au\/blog\/purchase-requisition\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hashmicro.com\/au\/blog\/purchase-requisition\/#primaryimage","url":"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/05\/purchase-requisition-hashmicro-e1778554290940.webp","contentUrl":"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/05\/purchase-requisition-hashmicro-e1778554290940.webp","width":977,"height":548,"caption":"purchase requisition"},{"@type":"BreadcrumbList","@id":"https:\/\/www.hashmicro.com\/au\/blog\/purchase-requisition\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.hashmicro.com\/au\/blog\/"},{"@type":"ListItem","position":2,"name":"Purchase Requisition: Definition, Process, and Best Practices"}]},{"@type":"WebSite","@id":"https:\/\/www.hashmicro.com\/au\/blog\/#website","url":"https:\/\/www.hashmicro.com\/au\/blog\/","name":"HashMicro Australia","description":"Business Management Blog","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.hashmicro.com\/au\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.hashmicro.com\/au\/blog\/#\/schema\/person\/5e36c3e21c6cb33505689d9822fabb49","name":"Jasper Colefax","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/02\/cropped-Jasper-Colefax-96x96.webp","url":"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/02\/cropped-Jasper-Colefax-96x96.webp","contentUrl":"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/02\/cropped-Jasper-Colefax-96x96.webp","caption":"Jasper Colefax"},"description":"I\u2019m a full-time business systems analyst and a part-time writer focused on procurement and supply chain management. In my day-to-day work, I help teams map purchasing workflows, clarify approval rules, and connect supplier and inventory data so decisions don\u2019t rely on guesswork.","url":"https:\/\/www.hashmicro.com\/au\/blog\/author\/jasper-colefax\/"}]}},"_links":{"self":[{"href":"https:\/\/www.hashmicro.com\/au\/blog\/wp-json\/wp\/v2\/posts\/4187","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hashmicro.com\/au\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hashmicro.com\/au\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/au\/blog\/wp-json\/wp\/v2\/users\/58"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/au\/blog\/wp-json\/wp\/v2\/comments?post=4187"}],"version-history":[{"count":4,"href":"https:\/\/www.hashmicro.com\/au\/blog\/wp-json\/wp\/v2\/posts\/4187\/revisions"}],"predecessor-version":[{"id":4476,"href":"https:\/\/www.hashmicro.com\/au\/blog\/wp-json\/wp\/v2\/posts\/4187\/revisions\/4476"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/au\/blog\/wp-json\/wp\/v2\/media\/4445"}],"wp:attachment":[{"href":"https:\/\/www.hashmicro.com\/au\/blog\/wp-json\/wp\/v2\/media?parent=4187"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hashmicro.com\/au\/blog\/wp-json\/wp\/v2\/categories?post=4187"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hashmicro.com\/au\/blog\/wp-json\/wp\/v2\/tags?post=4187"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}