{"id":175871,"date":"2025-11-07T15:15:21","date_gmt":"2025-11-07T08:15:21","guid":{"rendered":"https:\/\/www.hashmicro.com\/id\/blog\/?p=175871"},"modified":"2025-11-07T15:15:21","modified_gmt":"2025-11-07T08:15:21","slug":"sertifikat-pembayaran","status":"publish","type":"post","link":"https:\/\/www.hashmicro.com\/id\/blog\/sertifikat-pembayaran\/","title":{"rendered":"Sertifikat Pembayaran Proyek sebagai Legalitas Proyek Konstruksi"},"content":{"rendered":"<p>Manajemen pembayaran dalam proyek konstruksi dapat tantangan bagi perusahaan, terutama saat menyangkut sertifikat pembayaran yang menentukan kelancaran arus kas. Keterlambatan penerbitan dokumen ini bisa menimbulkan sengketa antara kontraktor dan pemilik proyek.<\/p>\n<p>Masalah seperti ini biasa muncul karena proses manual yang memakan waktu, kurangnya transparansi, dan sulitnya melacak status klaim secara real-time. Akibatnya, proyek terhambat dan pembayaran yang tertunda.<\/p>\n<p>Kini, banyak perusahaan yang beralih ke <a href=\"https:\/\/www.hashmicro.com\/id\/hash-construction-software\">software konstruksi<\/a> yang mampu mengotomatisasi pembuatan sertifikat pembayaran dan memverifikasi progres proyek. Sehingga setiap transaksi dapat tercatat dengan akurat dan transparan.<\/p>\n<table style=\"border-collapse: collapse; background-color: #fffacd; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); border-radius: 25px 25px 25px 25px;\" width=\"100%\">\n<tbody>\n<tr>\n<td style=\"padding: 15px; border: none;\">\n<h3 style=\"margin-bottom: 10px;\"><span style=\"background-color: #990000; color: #ffffff; padding: 5px;\"><b>Key Takeaways<\/b><\/span><\/h3>\n<ul>\n<li><a href=\"#sertifikat\">Sertifikat pembayaran<\/a> adalah dokumen resmi yang mengonfirmasi nilai pekerjaan yang telah diselesaikan kontraktor serta jumlah pembayaran yang harus diterima dalam periode tertentu.<\/li>\n<li aria-level=\"1\">Ada beberapa <a href=\"#fungsi\">fungsi sertifikat pembayaran<\/a> antara lain sebagai dasar hukum penagihan, kontrol arus kas, bukti progres pekerjaan, pencegahan sengketa pembayaran, mempermudah pelaporan.<\/li>\n<li aria-level=\"1\"><a href=\"https:\/\/www.hashmicro.com\/id\/hash-construction-software\">Software Konstruksi HashMicro<\/a> mendukung integrasi\u00a0seluruh aspek manajemen proyek, dari perencanaan, penagihan, hingga pelaporan, dalam satu platform terpusat yang efisien.<\/li>\n<\/ul>\n<p style=\"text-align: center;\">\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n\r\n\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>\n<div id=\"toc_group_article\" style=''>\r\n\t<p style='font-size:25px;font-weight:bold; margin-bottom:0px'>\r\n\t\tDaftar Isi:\r\n\t<\/p>\r\n\t<ul id=\"list_toc\" class='list_toc'><\/ul>\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\">Daftar Isi<\/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\/* 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\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<style>\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_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: 10px;\r\n\t\ttransition:all 0.2s ease-in-out;\r\n\t\tfont-size:15px\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#list_toc_float li a{margin-bottom:0px}\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#toc_group_article {\r\n\t\t\tdisplay:none;\r\n\t\t}\r\n\t}\r\n\t\r\n\t@media (max-width:768px){\r\n\t\t#toc_group_article {\r\n\t\t\tdisplay:none;\r\n\t\t}\r\n\t}\r\n\t\r\n\t \/* custom scrollbar style *\/\r\n::-webkit-scrollbar {\r\n    width: 7px;\r\n}\r\n::-webkit-scrollbar-track {\r\n    background: #d7a2a4;\r\n}\r\n::-webkit-scrollbar-thumb {\r\n    background: #b1252d;\r\n    border-radius: 15px;\r\n}\t\t\r\n\r\n<\/style>\r\n\r\n<script>\r\n\tdocument.addEventListener('DOMContentLoaded', function() {\r\n\t\t\/\/ Fungsi untuk menangani klik pada semua elemen <a> dengan href yang dimulai dengan #\r\n\t\tfunction handleTitleClick(event) {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tconst targetId = this.getAttribute('href').substring(1);\r\n\t\t\tconst targetElement = document.getElementById(targetId);\r\n\r\n\t\t\tif (targetElement) {\r\n\t\t\t\tconst headerHeight = document.querySelector('#toc .header').offsetHeight;\r\n\t\t\t\tconst navbarHeight = document.getElementById('tdi_34') ? document.getElementById('tdi_34').offsetHeight : 0;\r\n\t\t\t\tconst windowHeight = window.innerHeight;\r\n\t\t\t\tconst targetOffset = targetElement.offsetTop;\r\n\t\t\t\tconst scrollTo = targetOffset + (windowHeight \/ 2) + (headerHeight) - navbarHeight - 40;\r\n\r\n\t\t\t\twindow.scrollTo({\r\n\t\t\t\t\ttop: scrollTo,\r\n\t\t\t\t\tbehavior: 'smooth'\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t\/\/ Tambahkan event listener untuk semua elemen <a> di toc-list dan list-toc\r\n\t\tconst titleLinks = document.querySelectorAll('#toc-list a, #list_toc a');\r\n\t\ttitleLinks.forEach(link => {\r\n\t\t\tlink.addEventListener('click', handleTitleClick);\r\n\t\t});\r\n\t});\r\n<\/script>\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\n\/\/ document.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 = 'Daftar Isi';\r\n\/\/ \/\/ \t\t\t}\r\n\/\/ \/\/ \t\t}\r\n\/\/ \t\tif(window.innerWidth < 767){\r\n\/\/ \t\t\ttocTitle.textContent = 'Daftar Isi'; \/\/ Selalu pertahankan judul ini di mobile\r\n\/\/ \t\t} else {\r\n\/\/ \t\t\tif (window.scrollY >= (headerTop - headerHeight + 700)) {\r\n\/\/ \t\t\t\tconst currentHeaderId = header.getAttribute('id');\r\n\/\/ \t\t\t\tconst currentHeaderText = document.getElementById(currentHeaderId).textContent;\r\n\/\/ \t\t\t\ttocTitle.textContent = currentHeaderText;\r\n\/\/ \t\t\t\tcurrentHeader = currentHeaderId;\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 = 'Daftar Isi'; \/\/ 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 = 'Daftar isi'; \/\/ 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 = 'Daftar isi'; \/\/ 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\/\/ START new JS for ToC improvements\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 + 1750;\r\n\tconsole.log(triggerPoint)\r\n  const footerHeight = footer.offsetHeight;\r\n  const triggerFooterPoint = footer.getBoundingClientRect().top + window.pageYOffset - footerHeight*3;\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  \r\n  const panel2 = document.querySelector(\"#toc .list\");\r\n  const icon = document.querySelector(\".toc-icon\");\r\n  const tocTitle = document.querySelector('#toc-title');\r\n\r\n  let activeLink = null;\r\n  let userClosedTOC = false; \/\/ Flag user menutup TOC\r\n\r\n  function handleScroll() {\r\n    const windowTop = window.pageYOffset || document.documentElement.scrollTop;\r\n    let currentHeader = '';\r\n\r\n    \/\/ Update TOC title sesuai header yang terlihat\r\n    headers.forEach(header => {\r\n      const headerTop = header.offsetTop;\r\n      const headerHeight = header.clientHeight;\r\n      if(window.innerWidth < 767){\r\n        tocTitle.textContent = 'Daftar Isi'; \r\n      } else {\r\n        if (window.scrollY >= (headerTop - headerHeight + 1750)) {\r\n          const currentHeaderId = header.getAttribute('id');\r\n          const currentHeaderText = document.getElementById(currentHeaderId).textContent;\r\n          tocTitle.textContent = currentHeaderText;\r\n          currentHeader = currentHeaderId;\r\n        }\r\n      }\r\n    });\r\n\r\n    navLinks.forEach(link => {\r\n      link.classList.remove('active');\r\n      if(currentHeader && link.getAttribute('href').includes(currentHeader)) {\r\n        link.classList.add('active');\r\n      }\r\n    });\r\n\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`;\r\n        toc.style.backgroundColor = \"#FFF\";\r\n        \/\/ Saat sticky, TOC otomatis tertutup\r\n        panel2.style.height = '0px';\r\n        icon.style.transform = \"rotate(180deg)\";\r\n        userClosedTOC = true; \/\/ Set flag supaya tidak terbuka saat scroll\r\n      }\r\n      \r\n      if(window.innerWidth < 767){\r\n        tocTitle.textContent = 'Daftar Isi'; \r\n        toc.style.width = '150px';\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';\r\n      toc.style.backgroundColor = \"#FFF\";\r\n      tocTitle.textContent = 'Daftar isi'; \r\n\r\n      \/\/ Kembalikan panel jika user belum menutup manual\r\n      if(!userClosedTOC) {\r\n        panel2.style.height = panel2.scrollHeight + \"px\";\r\n        icon.style.transform = \"rotate(0deg)\";\r\n      }\r\n    }\r\n  }\r\n\r\n  window.addEventListener('scroll', handleScroll);\r\n  handleScroll();\r\n\r\n  \/\/ Toggle TOC saat user klik\r\n  const tocHeader = document.querySelector(\"#toc .header\");\r\n  tocHeader.addEventListener(\"click\", function() {\r\n    const panel = panel2;\r\n    if (panel.style.height !== '0px') {\r\n      panel.style.height = '0px';\r\n      icon.style.transform = \"rotate(180deg)\";\r\n      userClosedTOC = true;\r\n    } else {\r\n      panel.style.height = panel.scrollHeight + \"px\";\r\n      icon.style.transform = \"rotate(0deg)\";\r\n      userClosedTOC = false;\r\n    }\r\n  });\r\n\r\n  \/\/ Close TOC saat link diklik\r\n  document.querySelectorAll(\"#toc .list a\").forEach(link => {\r\n    link.addEventListener(\"click\", function() {\r\n      panel2.style.height = '0px';\r\n      icon.style.transform = \"rotate(180deg)\";\r\n      userClosedTOC = true;\r\n    });\r\n  });\r\n});\r\n\/\/ END new JS for ToC improvements\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<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        } \r\n\t\t  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\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\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        \/\/ Mengambil semua elemen h2 dan h3\r\n\t\tconst elements = document.querySelectorAll('.td-post-content h2');\r\n\r\n\t\t\tfunction newFormatId(text) {\r\n\t\t\t\tif(text.toLowerCase() === \"key takeaways\") {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tconst result = text.toLowerCase()\r\n\t\t\t\t.trim()\r\n\t\t\t\t.replace(\/[^\\w\\s-]\/g, '')  \/\/ hapus tanda baca\r\n\t\t\t\t.replace(\/\\s+\/g, '-'); \/\/ ganti spasi jadi \"-\"\r\n\r\n\t\t\t\treturn result;\r\n\t\t\t}\r\n\t\r\n\t\telements.forEach(element => {\r\n\t\t\tif (element.tagName === 'H2') {\r\n\t\t\t\tconst id = newFormatId(element.textContent); \/\/ Hasilkan ID baru\r\n\t\t\t\telement.id = id; \/\/ Tetapkan ID ke elemen h2\r\n\t\t\t\tif (element.textContent.toLowerCase() === \"key takeaways\") {return;} \/\/ Kalau Key Takeaways, jangan dimasukin\r\n\t\t\t\theadings.push({ level: 'h2', id: id, title: element.textContent, children: [] });\r\n\t\t\t} else if (element.tagName === 'H3') {\r\n\t\t\t\tconst id = newFormatId(element.textContent); \/\/ Hasilkan ID baru\r\n\t\t\t\telement.id = id; \/\/ Tetapkan ID ke elemen h3\r\n\t\t\t\tif (headings.length > 0) {\r\n\t\t\t\t\theadings[headings.length - 1].children.push({ level: 'h3', id: id, title: element.textContent, children: [] });\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n       \/\/ Membuat list HTML dari objek headings\r\n\t\tconst ul = document.getElementById('list_toc');\r\n\t\tlet currentUl = ul;\r\n\t\theadings.forEach(heading => {\r\n\t\t\tconst li = document.createElement('li');\r\n\t\t\tconst a = document.createElement('a');\r\n\t\t\ta.textContent = heading.title;\r\n\t\t\ta.href = `#${heading.id}`; \/\/ Gunakan ID yang baru dihasilkan\r\n\t\t\tli.appendChild(a);\r\n\r\n\t\t\tif (heading.level === 'h2') {\r\n\t\t\t\tcurrentUl = li;\r\n\t\t\t\tul.appendChild(li);\r\n\t\t\t} else if (heading.level === 'h3') {\r\n\t\t\t\tif (!currentUl.lastElementChild || currentUl.lastElementChild.tagName !== 'UL') {\r\n\t\t\t\t\tconst nestedUl = document.createElement('ul');\r\n\t\t\t\t\tcurrentUl.appendChild(nestedUl);\r\n\t\t\t\t\tcurrentUl = nestedUl;\r\n\t\t\t\t}\r\n\t\t\t\tcurrentUl.appendChild(li);\r\n\t\t\t}\r\n\r\n\t\t\tcreateNestedList(li, heading.children);\r\n\t\t});\r\n\t\t\/\/ Dapatkan elemen ul dengan id 'list_toc'\r\n\t\tconst ulFloat = document.getElementById('list_toc');\r\n\r\n\t\t\/\/ Dapatkan isi (child elements) dari ul dengan id 'list_toc'\r\n\t\tconst clonedChildren = ulFloat.cloneNode(true).children;\r\n\r\n\t\t\/\/ Dapatkan elemen ul dengan id 'list_toc_float'\r\n\t\tconst ulToc = document.getElementById('list_toc_float');\r\n\r\n\t\t\/\/ Tambahkan isi yang telah didapatkan dari 'list_toc' ke ul dengan id 'list_toc_float'\r\n\t\tulToc.append(...clonedChildren);\r\n\r\n\r\n        \/\/ Fungsi untuk mengambil tinggi navbar\r\n\t\tfunction getNavbarHeight() {\r\n\t\t\tconst navbar = document.getElementById('tdi_34');\r\n\t\t\treturn navbar ? navbar.offsetHeight : 0;\r\n\t\t}\r\n\r\n\t\t\/\/ Fungsi untuk menambahkan offset posisi scroll\r\n\t\tfunction scrollToElementWithOffset(elementId) {\r\n\t\t\tconst element = document.getElementById(elementId);\r\n\t\t\tif (element) {\r\n\t\t\t\tconst offset = getNavbarHeight();\r\n\t\t\t\tconst elementPosition = element.getBoundingClientRect().top;\r\n\t\t\t\tconst offsetPosition = elementPosition - offset - 40;\r\n\r\n\t\t\t\twindow.scrollBy({\r\n\t\t\t\t\ttop: offsetPosition,\r\n\t\t\t\t\tbehavior: 'smooth'\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t\/\/ Fungsi untuk menangani klik pada tautan judul\r\n\t\tfunction handleTitleClick(event) {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tconst href = event.target.getAttribute('href').substr(1);\r\n\t\t\tscrollToElementWithOffset(href);\r\n\t\t}\r\n\r\n\t\t\/\/ Tambahkan event listener untuk semua tautan judul\r\n\t\tconst titleLinks = document.querySelectorAll('a[href^=\"#\"]');\r\n\t\ttitleLinks.forEach(link => {\r\n\t\t\tlink.addEventListener('click', handleTitleClick);\r\n\t\t});\r\n\t\t\r\n\t});\r\n    <\/script> -->\r\n\n<h2><span id=\"sertifikat\">Apa Itu Sertifikat Pembayaran dan Mengapa Ini Krusial untuk Bisnis Anda?<\/span><\/h2>\n<p>Sertifikat Pembayaran, atau sering disebut Berita Acara Pembayaran (BAP), adalah dokumen resmi yang dikeluarkan oleh pemilik proyek atau konsultan pengawas untuk mengonfirmasi nilai pekerjaan yang telah diselesaikan oleh kontraktor selama periode tertentu dan jumlah pembayaran yang harus dibayarkan.<\/p>\n<p>Dokumen ini berfungsi sebagai pengakuan formal atas progres pekerjaan yang telah diverifikasi dan disetujui, menjadikannya dasar hukum yang kuat untuk proses penagihan selanjutnya.<\/p>\n<p>Tanpa dokumen ini, proses klaim pembayaran menjadi subjektif dan rentan terhadap perselisihan, karena tidak ada bukti formal yang divalidasi oleh pihak berwenang mengenai progres aktual di lapangan.<\/p>\n<p>Bagi kontraktor, dokumen ini adalah kunci untuk menjaga likuiditas dan arus kas, memungkinkan mereka untuk membayar upah pekerja, membeli material, dan menutupi biaya operasional lainnya tepat waktu.<\/p>\n<p>Di sisi lain, bagi pemilik proyek, sertifikat ini memberikan visibilitas dan kendali penuh atas anggaran, mencegah pembayaran berlebih, dan memastikan setiap rupiah yang dikeluarkan sepadan dengan progres fisik yang dicapai.<\/p>\n<h2><span id=\"fungsi\">Fungsi Utama Sertifikat Pembayaran dalam Proyek Konstruksi<\/span><\/h2>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-175884\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/fungsi-utama-sertifikat-pembayaran-dalam-proyek-konstruksi.webp\" alt=\"fungsi utama sertifikat pembayaran dalam proyek konstruksi\" width=\"1200\" height=\"675\" srcset=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/fungsi-utama-sertifikat-pembayaran-dalam-proyek-konstruksi.webp 1200w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/fungsi-utama-sertifikat-pembayaran-dalam-proyek-konstruksi-300x169.webp 300w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/fungsi-utama-sertifikat-pembayaran-dalam-proyek-konstruksi-1024x576.webp 1024w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/fungsi-utama-sertifikat-pembayaran-dalam-proyek-konstruksi-768x432.webp 768w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/fungsi-utama-sertifikat-pembayaran-dalam-proyek-konstruksi-747x420.webp 747w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/fungsi-utama-sertifikat-pembayaran-dalam-proyek-konstruksi-150x84.webp 150w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/fungsi-utama-sertifikat-pembayaran-dalam-proyek-konstruksi-696x392.webp 696w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/fungsi-utama-sertifikat-pembayaran-dalam-proyek-konstruksi-1068x601.webp 1068w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/>Sertifikat pembayaran memegang peranan multifungsi yang sangat strategis dalam siklus hidup sebuah proyek. Dokumen ini bukan sekadar lembaran kertas berisi angka, melainkan sebuah instrumen kontrol, legalitas, dan komunikasi yang memastikan semua pihak yang terlibat berada dalam pemahaman yang sama. Dari memastikan pembayaran yang adil hingga menjadi alat audit yang andal, setiap fungsi sertifikat pembayaran dirancang untuk menjaga proyek tetap berjalan sesuai jalur, baik dari segi anggaran, jadwal, maupun kualitas. Memahami fungsi-fungsi ini secara mendalam akan membantu para pemimpin bisnis mengapresiasi pentingnya mengelola dokumen ini dengan cermat. Berikut adalah beberapa fungsi utamanya yang perlu Anda ketahui.<\/p>\n<p>Setiap fungsi dari sertifikat pembayaran saling terkait untuk membentuk sebuah sistem manajemen keuangan proyek yang solid dan dapat dipertanggungjawabkan. Sebagai dasar hukum, dokumen ini memberikan kekuatan pada proses penagihan sehingga kontraktor memiliki landasan yang kuat saat mengajukan invoice. Sebagai alat pengendali <em>cash flow<\/em>, ia memberikan prediktabilitas yang dibutuhkan oleh tim keuangan untuk merencanakan alokasi dana. Selain itu, perannya sebagai bukti progres yang sah menjadikannya referensi utama saat rapat evaluasi atau pelaporan kepada para pemangku kepentingan. Dengan memahami betapa vitalnya peran sertifikat pembayaran, perusahaan dapat membangun proses yang lebih terstruktur untuk menghindari kesalahpahaman dan sengketa yang merugikan.<\/p>\n<h3>1. Sebagai dasar hukum penagihan<\/h3>\n<p>Fungsi paling fundamental dari sertifikat pembayaran adalah sebagai landasan hukum yang sah bagi kontraktor untuk menerbitkan tagihan atau <em>invoice<\/em> kepada pemilik proyek. Dokumen ini secara resmi menyatakan bahwa sejumlah pekerjaan telah selesai, diverifikasi, dan disetujui nilainya oleh pihak yang berwenang, seperti konsultan pengawas atau manajer konstruksi. Tanpa sertifikat ini, sebuah <em>invoice<\/em> dapat dengan mudah diperdebatkan atau ditolak karena dianggap tidak memiliki dasar validasi progres yang objektif. Keberadaan sertifikat pembayaran mengubah klaim pembayaran dari sekadar permintaan menjadi hak yang dilindungi oleh kontrak, sehingga memberikan posisi tawar yang kuat bagi kontraktor dan meminimalkan risiko pembayaran yang ditahan tanpa alasan yang jelas.<\/p>\n<h3>2. Mengontrol arus kas (cash flow) proyek<\/h3>\n<p>Bagi pemilik proyek maupun kontraktor, sertifikat pembayaran adalah alat vital untuk mengelola dan memprediksi arus kas dengan lebih akurat. Dengan adanya jadwal penerbitan sertifikat yang teratur, misalnya bulanan, semua pihak dapat merencanakan keuangan mereka dengan lebih baik. Pemilik proyek dapat mempersiapkan dana yang dibutuhkan sesuai dengan nilai yang tertera, sementara kontraktor dapat memperkirakan kapan pendapatan akan masuk untuk menutupi biaya operasional, seperti gaji tenaga kerja, pembelian material, dan pembayaran subkontraktor. Keteraturan ini mencegah terjadinya guncangan finansial mendadak dan menjaga stabilitas keuangan proyek dari awal hingga akhir.<\/p>\n<h3>3. Menjadi bukti progres pekerjaan yang sah<\/h3>\n<p>Sertifikat pembayaran berfungsi sebagai catatan historis yang otentik mengenai kemajuan fisik sebuah proyek dari waktu ke waktu. Setiap sertifikat yang diterbitkan mendokumentasikan volume pekerjaan yang telah diselesaikan pada periode tertentu, yang telah melalui proses inspeksi dan verifikasi di lapangan. Dokumentasi ini sangat berharga untuk keperluan pelaporan kepada manajemen, investor, atau lembaga keuangan, karena memberikan bukti konkret dan terukur atas perkembangan proyek. Jika terjadi sengketa di kemudian hari, kumpulan sertifikat pembayaran dapat menjadi bukti kuat yang menunjukkan kronologi penyelesaian pekerjaan secara objektif dan telah disetujui oleh semua pihak.<\/p>\n<h3>4. Mencegah sengketa pembayaran<\/h3>\n<p>Salah satu penyebab utama konflik dalam proyek konstruksi adalah perselisihan mengenai jumlah pembayaran yang tidak sesuai dengan progres pekerjaan yang diklaim. Sertifikat pembayaran secara efektif memitigasi risiko ini dengan menciptakan proses verifikasi yang transparan sebelum pembayaran dilakukan. Karena nilai pekerjaan telah dihitung, diperiksa, dan disetujui bersama oleh perwakilan kontraktor dan pemilik proyek, ruang untuk perdebatan mengenai kuantitas atau kualitas pekerjaan menjadi sangat terbatas. Dokumen ini memastikan bahwa semua pihak memiliki pemahaman yang sama tentang apa yang telah dicapai dan berapa nilai yang pantas dibayarkan, sehingga menjaga hubungan kerja tetap harmonis.<\/p>\n<h3>5. Mempermudah proses audit dan pelaporan<\/h3>\n<p>Dari perspektif akuntansi dan kepatuhan, sertifikat pembayaran adalah dokumen sumber yang sangat penting untuk proses audit internal maupun eksternal. Setiap pembayaran besar yang dilakukan dalam proyek harus memiliki justifikasi yang jelas, dan sertifikat ini menyediakan jejak audit yang lengkap dan terperinci. Di dalamnya tercatat rincian pekerjaan, perhitungan nilai, potongan, serta persetujuan dari pihak yang berwenang. Kelengkapan informasi ini sangat memudahkan tim audit, yang seringkali menggunakan <a href=\"https:\/\/www.hashmicro.com\/id\/blog\/software-penting-untuk-perusahaan-konstruksi\/\">software akuntansi kontraktor<\/a>, untuk melacak alur pengeluaran dana dan memastikan bahwa setiap transaksi telah sesuai dengan prosedur kontrak dan kebijakan perusahaan.<\/p>\n<h2>Komponen Wajib dalam Sebuah Sertifikat Pembayaran<\/h2>\n<p>Untuk memastikan sertifikat pembayaran dapat menjalankan fungsinya secara efektif dan sah secara hukum, dokumen ini harus memuat serangkaian informasi yang lengkap, jelas, dan tidak ambigu. Setiap komponen memiliki tujuan spesifik, mulai dari mengidentifikasi proyek hingga merinci perhitungan finansial yang kompleks. Kekurangan salah satu elemen penting dapat menyebabkan kebingungan, penundaan pembayaran, atau bahkan sengketa hukum. Oleh karena itu, penting bagi setiap manajer proyek dan tim administrasi untuk memahami dan memastikan semua komponen ini selalu ada dalam setiap sertifikat yang diterbitkan. Berikut adalah rincian komponen-komponen wajib yang harus ada.<\/p>\n<p>Struktur yang terstandarisasi ini tidak hanya mempermudah proses verifikasi, tetapi juga menciptakan konsistensi dalam dokumentasi proyek. Ketika setiap sertifikat pembayaran mengikuti format yang sama, proses peninjauan dan persetujuan menjadi lebih cepat karena informasi yang dibutuhkan mudah ditemukan. Selain itu, kelengkapan data ini sangat krusial untuk integrasi dengan sistem akuntansi atau ERP, di mana data dari sertifikat akan digunakan untuk pembukuan, pelaporan keuangan, dan analisis biaya proyek. Mari kita bedah setiap komponen untuk memahami signifikansinya lebih dalam.<\/p>\n<h3>1. Informasi detail proyek dan kontrak<\/h3>\n<p>Bagian ini berfungsi sebagai kop surat atau identitas utama dokumen, yang mencakup informasi dasar namun krusial. Di dalamnya harus tercantum nama proyek secara jelas, nomor kontrak yang menjadi acuan, lokasi proyek, serta periode pekerjaan yang dicakup oleh sertifikat tersebut (misalnya, <em>Periode 1 Agustus &#8211; 31 Agustus 2025<\/em>). Informasi ini penting untuk memastikan dokumen dapat diarsipkan dengan benar dan mudah diidentifikasi di antara ratusan dokumen lain dalam sebuah proyek besar, serta menghubungkannya langsung ke perjanjian hukum yang mendasarinya.<\/p>\n<h3>2. Identitas para pihak terlibat<\/h3>\n<p>Sertifikat pembayaran harus secara eksplisit menyebutkan nama dan alamat lengkap dari pihak-pihak yang terlibat dalam transaksi pembayaran. Ini mencakup pihak yang mengajukan pembayaran (kontraktor utama), pihak yang melakukan pembayaran (pemilik proyek atau <em>owner<\/em>), dan pihak yang melakukan verifikasi serta menerbitkan sertifikat (konsultan manajemen konstruksi atau pengawas). Kejelasan identitas ini penting untuk tujuan legal dan administrasi, memastikan bahwa dokumen ditujukan dan disetujui oleh entitas yang benar sesuai dengan yang tertulis di dalam kontrak.<\/p>\n<h3>3. Rincian progres pekerjaan<\/h3>\n<p>Ini adalah inti dari sertifikat pembayaran, yang menyajikan data terperinci mengenai pekerjaan yang telah diselesaikan selama periode terkait. Rincian ini biasanya disajikan dalam format tabel yang merujuk pada <em>Bill of Quantities<\/em> (BoQ) dalam kontrak, menunjukkan item pekerjaan, volume yang telah diselesaikan pada periode ini, dan persentase penyelesaian kumulatif. Detail ini memberikan transparansi penuh atas apa saja yang telah dikerjakan dan menjadi dasar utama untuk perhitungan nilai pembayaran, memastikan pemilik proyek tahu persis apa yang mereka bayar.<\/p>\n<h3>4. Kalkulasi nilai pembayaran<\/h3>\n<p>Bagian finansial ini menerjemahkan progres pekerjaan menjadi nilai uang yang harus dibayarkan. Perhitungan dimulai dari nilai pekerjaan yang diselesaikan, kemudian disesuaikan dengan berbagai variabel seperti pekerjaan tambah\/kurang (<em>variation order<\/em>), eskalasi harga (jika ada), dan kemudian dikurangi dengan potongan-potongan yang relevan. Potongan ini biasanya mencakup pembayaran uang muka, retensi (jaminan pemeliharaan), PPN (Pajak Pertambahan Nilai), dan PPh (Pajak Penghasilan), sehingga menghasilkan nilai pembayaran bersih (<em>net payable<\/em>) yang akan diterima oleh kontraktor.<\/p>\n<h3>5. Lampiran dokumen pendukung<\/h3>\n<p>Untuk memperkuat validitas klaim progres, sertifikat pembayaran sering kali harus disertai dengan dokumen-dokumen pendukung yang relevan. Lampiran yang paling umum adalah Berita Acara Pemeriksaan Pekerjaan atau <em>opname<\/em> lapangan, yang berisi catatan detail hasil inspeksi bersama. Selain itu, lampiran lain bisa berupa dokumentasi foto progres, hasil pengujian material, atau risalah rapat yang menyetujui adanya pekerjaan tambah, yang semuanya berfungsi sebagai bukti pendukung yang memperkuat keabsahan data dalam sertifikat.<\/p>\n<h3>6. Kolom persetujuan dan tanda tangan<\/h3>\n<p>Sebagai sebuah dokumen resmi, sertifikat pembayaran harus memiliki kolom untuk persetujuan yang ditandatangani oleh pihak-pihak yang berwenang. Umumnya, ini melibatkan tanda tangan dari perwakilan kontraktor yang mengajukan, konsultan pengawas yang memverifikasi, dan manajer proyek dari pihak pemilik yang menyetujui pembayaran. Tanda tangan ini menandakan bahwa semua pihak telah memeriksa, menyetujui isi dokumen, dan secara resmi mengesahkan nilai pembayaran yang tertera, sehingga menjadikannya dokumen yang mengikat secara hukum.<\/p>\n<h2>Optimalkan Pengelolaan Sertifikat Pembayaran dengan Software Konstruksi HashMicro<\/h2>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-175874\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/software-konstruksi-hashmicro.webp\" alt=\"software konstruksi hashmicro\" width=\"1548\" height=\"1261\" srcset=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/software-konstruksi-hashmicro.webp 1548w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/software-konstruksi-hashmicro-300x244.webp 300w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/software-konstruksi-hashmicro-1024x834.webp 1024w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/software-konstruksi-hashmicro-768x626.webp 768w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/software-konstruksi-hashmicro-1536x1251.webp 1536w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/software-konstruksi-hashmicro-516x420.webp 516w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/software-konstruksi-hashmicro-150x122.webp 150w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/software-konstruksi-hashmicro-696x567.webp 696w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/software-konstruksi-hashmicro-1068x870.webp 1068w\" sizes=\"auto, (max-width: 1548px) 100vw, 1548px\" \/>Untuk mengotomatisasi proses bisnis dalam industri konstruksi, termasuk pengelolaan sertifikat pembayaran yang sering kali rumit, perusahaan dapat mulai mengimplementasikan teknologi digital. Sehingga, dapat menghindari kesalahan manual dalam proses pendataan proyek.<\/p>\n<p>Salah satu yang direkomendasikan adalah <a href=\"https:\/\/www.hashmicro.com\/id\/hash-construction-software\">Software Konstruksi HashMicro<\/a> yang mempercepat pelaporan progres dan memastikan setiap klaim terselesaikan dengan transparan. Didukung juga oleh fitur-fitur canggih dan integrasi dengan modul lain, memungkinkan perusahaan meningkatkan efisiensi kerja tim.<\/p>\n<p>Fitur Software Konstruksi HashMicro:<\/p>\n<ul>\n<li><strong>Progressive Claims Management:<\/strong> Mengelola dan melacak klaim progres dari kontraktor secara sistematis, memastikan setiap pengajuan diverifikasi berdasarkan progres aktual di lapangan sebelum menjadi sertifikat pembayaran.<\/li>\n<li><strong>In-Depth Job Estimates (RAB):<\/strong> Membuat dan mengelola Rencana Anggaran Biaya (RAB) secara detail yang menjadi dasar perhitungan nilai pekerjaan dalam sertifikat pembayaran, sehingga kontrol anggaran lebih akurat.<\/li>\n<li><strong>Budget S-Curve Management:<\/strong> Memvisualisasikan perbandingan antara rencana biaya dan realisasi pengeluaran proyek melalui kurva S, memberikan peringatan dini jika terjadi deviasi anggaran.<\/li>\n<li><strong>Automated Project Invoice:<\/strong> Mengotomatiskan pembuatan faktur proyek berdasarkan data dari sertifikat pembayaran yang telah disetujui, mempercepat proses penagihan dan meningkatkan arus kas.<\/li>\n<li><strong>Integrated with Accounting:<\/strong> Terintegrasi langsung dengan sistem akuntansi untuk pencatatan otomatis setiap transaksi pembayaran, menyederhanakan proses rekonsiliasi dan pelaporan keuangan proyek.<\/li>\n<\/ul>\n<p>Coba <a href=\"https:\/\/www.hashmicro.com\/id\/tour-produk-gratis\/\">demo gratis<\/a> sekarang dan rasakan bagaimana HashMicro dapat mengubah cara Anda mengelola proyek konstruksi!<\/p>\n<h2>Kesimpulan<\/h2>\n<p>Sertifikat pembayaran adalah dokumen dalam industri konstruksi sebagai dokumen utama untuk legalitas penagihan, kontrol arus kas, dan mitigasi sengketa. Dokumen ini memastikan transparansi dan akuntabilitas antara pemilik proyek dan kontraktor.<\/p>\n<p>Namun, pengelolaan secara manual sering kali menjadi hambatan besar, penuh dengan risiko kesalahan, keterlambatan, dan inefisiensi yang dapat merugikan semua pihak. Sehingga, teknologi seperti <a href=\"https:\/\/www.hashmicro.com\/id\/hash-construction-software\">Software Konstruksi HashMicro<\/a> dapat menjadi jawaban untuk masalah tersebut.<\/p>\n<p>Dengan mengotomatiskan pembuatan, verifikasi, dan pelacakan sertifikat pembayaran, perusahaan dapat secara signifikan meningkatkan akurasi, mempercepat siklus pembayaran, dan mendapatkan visibilitas penuh atas kesehatan finansial proyek.<\/p>\n<p>Tertarik mencoba langsung? Dapatkan <a href=\"https:\/\/www.hashmicro.com\/id\/tour-produk-gratis\/\">demo gratis<\/a> sekarang dan rasakan bagaimana sistemnya bisa mempermudah pengelolaan bisnis Anda!<\/p>\n<a href=\"https:\/\/www.hashmicro.com\/id\/hash-construction-software?medium=moneysite-banner\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/02\/47-Construction-Desktop.webp\" data-desktop-src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/02\/47-Construction-Desktop.webp\" data-mobile-src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/02\/47-Construction-Mobile.webp\" alt=\"HashConstructionSuite\" class=\"responsive-image-banner\"><\/a>\r\n\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>\n<h2><strong>Pertanyaan Seputar Sertifikat Pembayaran<\/strong><\/h2>\n<ul class=\"bottom_faq\">\n<li>\n<details>\n<summary><strong>Siapa yang berwenang menerbitkan sertifikat pembayaran?<\/strong><\/summary>\n<p>Umumnya, sertifikat pembayaran diterbitkan oleh pihak yang ditunjuk sebagai pengawas independen, seperti Konsultan Manajemen Konstruksi (MK) atau arsitek. Pihak inilah yang melakukan verifikasi atas klaim progres dari kontraktor sebelum menerbitkan dokumen resmi.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Apa dasar hukum sertifikat pembayaran di Indonesia?<\/strong><\/summary>\n<p>Di Indonesia, dasar hukumnya diatur dalam UU No. 2 Tahun 2017 tentang Jasa Konstruksi dan peraturan turunannya. Prinsip pembayaran berdasarkan progres yang diverifikasi adalah inti dari regulasi tersebut, yang juga sering diperkuat dalam kontrak kerja konstruksi.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Apakah sertifikat pembayaran dapat direvisi setelah diterbitkan?<\/strong><\/summary>\n<p>Ya, sertifikat pembayaran dapat direvisi jika ditemukan kesalahan. Revisi dilakukan dengan menerbitkan sertifikat baru atau membuat penyesuaian pada sertifikat periode berikutnya, dengan setiap perubahan didokumentasikan secara resmi.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Apa perbedaan utama antara nilai dalam sertifikat pembayaran dan jumlah yang ditagih di invoice?<\/strong><\/summary>\n<p>Nilai dalam sertifikat pembayaran adalah nilai pekerjaan yang disetujui sebelum PPN. Sementara itu, jumlah di invoice adalah nilai dari sertifikat tersebut ditambah PPN 11%. Sertifikat mengesahkan nilai kotor pekerjaan, sedangkan invoice adalah dokumen penagihan resmi yang menyertakan pajak.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Bagaimana jika terjadi keterlambatan penerbitan sertifikat pembayaran?<\/strong><\/summary>\n<p>Keterlambatan penerbitan dapat menunda pembayaran kepada kontraktor dan mengganggu arus kas mereka. Kontrak yang baik biasanya memiliki klausul batas waktu dan kompensasi jika terjadi keterlambatan dari pihak pengawas atau pemilik proyek.<\/p>\n<\/details>\n<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Manajemen pembayaran dalam proyek konstruksi dapat tantangan bagi perusahaan, terutama saat menyangkut sertifikat pembayaran yang menentukan kelancaran arus kas. Keterlambatan penerbitan dokumen ini bisa menimbulkan sengketa antara kontraktor dan pemilik proyek. Masalah seperti ini biasa muncul karena proses manual yang memakan waktu, kurangnya transparansi, dan sulitnya melacak status klaim secara real-time. Akibatnya, proyek terhambat dan [&hellip;]<\/p>\n","protected":false},"author":222,"featured_media":175885,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[3,89],"tags":[],"class_list":{"0":"post-175871","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-construction","8":"category-industry"},"acf":{"post_reviewer":""},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.1 (Yoast SEO v27.5) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Sertifikat Pembayaran Proyek sebagai Legalitas Proyek Konstruksi<\/title>\n<meta name=\"description\" content=\"Pahami apa itu sertifikat pembayaran, fungsi untuk arus kas proyek, dan cara mengelolanya secara efisien dengan software konstruksi.\" \/>\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\/id\/blog\/sertifikat-pembayaran\/\" \/>\n<meta property=\"og:locale\" content=\"id_ID\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Sertifikat Pembayaran Proyek sebagai Legalitas Proyek Konstruksi\" \/>\n<meta property=\"og:description\" content=\"Pahami apa itu sertifikat pembayaran, fungsi untuk arus kas proyek, dan cara mengelolanya secara efisien dengan software konstruksi.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hashmicro.com\/id\/blog\/sertifikat-pembayaran\/\" \/>\n<meta property=\"og:site_name\" content=\"HashMicro Indonesia\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/hashmicro\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-07T08:15:21+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/sertifikat-pembayaran-hashmicro.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"675\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Kinan Eliana\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@hashmicro\" \/>\n<meta name=\"twitter:site\" content=\"@hashmicro\" \/>\n<meta name=\"twitter:label1\" content=\"Ditulis oleh\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kinan Eliana\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimasi waktu membaca\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 menit\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/sertifikat-pembayaran\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/sertifikat-pembayaran\\\/\"},\"author\":{\"name\":\"Kinan Eliana\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#\\\/schema\\\/person\\\/53c7ddb69fea5f813a7687ddf4196411\"},\"headline\":\"Sertifikat Pembayaran Proyek sebagai Legalitas Proyek Konstruksi\",\"datePublished\":\"2025-11-07T08:15:21+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/sertifikat-pembayaran\\\/\"},\"wordCount\":2142,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/sertifikat-pembayaran\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/11\\\/sertifikat-pembayaran-hashmicro.webp\",\"articleSection\":[\"Construction Suite\",\"Industry\"],\"inLanguage\":\"id\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/sertifikat-pembayaran\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/sertifikat-pembayaran\\\/\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/sertifikat-pembayaran\\\/\",\"name\":\"Sertifikat Pembayaran Proyek sebagai Legalitas Proyek Konstruksi\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/sertifikat-pembayaran\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/sertifikat-pembayaran\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/11\\\/sertifikat-pembayaran-hashmicro.webp\",\"datePublished\":\"2025-11-07T08:15:21+00:00\",\"description\":\"Pahami apa itu sertifikat pembayaran, fungsi untuk arus kas proyek, dan cara mengelolanya secara efisien dengan software konstruksi.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/sertifikat-pembayaran\\\/#breadcrumb\"},\"inLanguage\":\"id\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/sertifikat-pembayaran\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"id\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/sertifikat-pembayaran\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/11\\\/sertifikat-pembayaran-hashmicro.webp\",\"contentUrl\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/11\\\/sertifikat-pembayaran-hashmicro.webp\",\"width\":1200,\"height\":675},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/sertifikat-pembayaran\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Sertifikat Pembayaran Proyek sebagai Legalitas Proyek Konstruksi\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/\",\"name\":\"HashMicro Indonesia\",\"description\":\"Blog Software Manajemen Bisnis Indonesia #1\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"id\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#organization\",\"name\":\"HashMicro Indonesia\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"id\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/11\\\/hashmicro-logo-blog.webp\",\"contentUrl\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/11\\\/hashmicro-logo-blog.webp\",\"width\":924,\"height\":121,\"caption\":\"HashMicro Indonesia\"},\"image\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/hashmicro\",\"https:\\\/\\\/x.com\\\/hashmicro\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/hashmicro\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#\\\/schema\\\/person\\\/53c7ddb69fea5f813a7687ddf4196411\",\"name\":\"Kinan Eliana\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"id\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/kinan-96x96.webp\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/kinan-96x96.webp\",\"contentUrl\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/kinan-96x96.webp\",\"caption\":\"Kinan Eliana\"},\"description\":\"Kinan telah berpengalaman selama 3 tahun di bidang content writing untuk industri manufaktur, konstruksi, dan retail. Ia secara konsisten mengulas topik terkait proses operasional bisnis manufaktur, manajemen omnichannel, manajemen proyek, serta implementasi teknologi digital untuk proses bisnis.\",\"sameAs\":[\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/\"],\"gender\":\"Perempuan\",\"knowsAbout\":[\"industri\",\"manajemen bisnis\"],\"knowsLanguage\":[\"Inggris\",\"Indonesia\"],\"jobTitle\":\"Content Writer\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/author\\\/kinan-eliana\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Sertifikat Pembayaran Proyek sebagai Legalitas Proyek Konstruksi","description":"Pahami apa itu sertifikat pembayaran, fungsi untuk arus kas proyek, dan cara mengelolanya secara efisien dengan software konstruksi.","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\/id\/blog\/sertifikat-pembayaran\/","og_locale":"id_ID","og_type":"article","og_title":"Sertifikat Pembayaran Proyek sebagai Legalitas Proyek Konstruksi","og_description":"Pahami apa itu sertifikat pembayaran, fungsi untuk arus kas proyek, dan cara mengelolanya secara efisien dengan software konstruksi.","og_url":"https:\/\/www.hashmicro.com\/id\/blog\/sertifikat-pembayaran\/","og_site_name":"HashMicro Indonesia","article_publisher":"https:\/\/www.facebook.com\/hashmicro","article_published_time":"2025-11-07T08:15:21+00:00","og_image":[{"width":1200,"height":675,"url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/sertifikat-pembayaran-hashmicro.webp","type":"image\/webp"}],"author":"Kinan Eliana","twitter_card":"summary_large_image","twitter_creator":"@hashmicro","twitter_site":"@hashmicro","twitter_misc":{"Ditulis oleh":"Kinan Eliana","Estimasi waktu membaca":"13 menit"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.hashmicro.com\/id\/blog\/sertifikat-pembayaran\/#article","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/sertifikat-pembayaran\/"},"author":{"name":"Kinan Eliana","@id":"https:\/\/www.hashmicro.com\/id\/blog\/#\/schema\/person\/53c7ddb69fea5f813a7687ddf4196411"},"headline":"Sertifikat Pembayaran Proyek sebagai Legalitas Proyek Konstruksi","datePublished":"2025-11-07T08:15:21+00:00","mainEntityOfPage":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/sertifikat-pembayaran\/"},"wordCount":2142,"commentCount":0,"publisher":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/#organization"},"image":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/sertifikat-pembayaran\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/sertifikat-pembayaran-hashmicro.webp","articleSection":["Construction Suite","Industry"],"inLanguage":"id","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.hashmicro.com\/id\/blog\/sertifikat-pembayaran\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.hashmicro.com\/id\/blog\/sertifikat-pembayaran\/","url":"https:\/\/www.hashmicro.com\/id\/blog\/sertifikat-pembayaran\/","name":"Sertifikat Pembayaran Proyek sebagai Legalitas Proyek Konstruksi","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/sertifikat-pembayaran\/#primaryimage"},"image":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/sertifikat-pembayaran\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/sertifikat-pembayaran-hashmicro.webp","datePublished":"2025-11-07T08:15:21+00:00","description":"Pahami apa itu sertifikat pembayaran, fungsi untuk arus kas proyek, dan cara mengelolanya secara efisien dengan software konstruksi.","breadcrumb":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/sertifikat-pembayaran\/#breadcrumb"},"inLanguage":"id","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hashmicro.com\/id\/blog\/sertifikat-pembayaran\/"]}]},{"@type":"ImageObject","inLanguage":"id","@id":"https:\/\/www.hashmicro.com\/id\/blog\/sertifikat-pembayaran\/#primaryimage","url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/sertifikat-pembayaran-hashmicro.webp","contentUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/sertifikat-pembayaran-hashmicro.webp","width":1200,"height":675},{"@type":"BreadcrumbList","@id":"https:\/\/www.hashmicro.com\/id\/blog\/sertifikat-pembayaran\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.hashmicro.com\/id\/blog\/"},{"@type":"ListItem","position":2,"name":"Sertifikat Pembayaran Proyek sebagai Legalitas Proyek Konstruksi"}]},{"@type":"WebSite","@id":"https:\/\/www.hashmicro.com\/id\/blog\/#website","url":"https:\/\/www.hashmicro.com\/id\/blog\/","name":"HashMicro Indonesia","description":"Blog Software Manajemen Bisnis Indonesia #1","publisher":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.hashmicro.com\/id\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"id"},{"@type":"Organization","@id":"https:\/\/www.hashmicro.com\/id\/blog\/#organization","name":"HashMicro Indonesia","url":"https:\/\/www.hashmicro.com\/id\/blog\/","logo":{"@type":"ImageObject","inLanguage":"id","@id":"https:\/\/www.hashmicro.com\/id\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/11\/hashmicro-logo-blog.webp","contentUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/11\/hashmicro-logo-blog.webp","width":924,"height":121,"caption":"HashMicro Indonesia"},"image":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/hashmicro","https:\/\/x.com\/hashmicro","https:\/\/www.linkedin.com\/company\/hashmicro"]},{"@type":"Person","@id":"https:\/\/www.hashmicro.com\/id\/blog\/#\/schema\/person\/53c7ddb69fea5f813a7687ddf4196411","name":"Kinan Eliana","image":{"@type":"ImageObject","inLanguage":"id","@id":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/kinan-96x96.webp","url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/kinan-96x96.webp","contentUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/kinan-96x96.webp","caption":"Kinan Eliana"},"description":"Kinan telah berpengalaman selama 3 tahun di bidang content writing untuk industri manufaktur, konstruksi, dan retail. Ia secara konsisten mengulas topik terkait proses operasional bisnis manufaktur, manajemen omnichannel, manajemen proyek, serta implementasi teknologi digital untuk proses bisnis.","sameAs":["https:\/\/www.hashmicro.com\/id\/"],"gender":"Perempuan","knowsAbout":["industri","manajemen bisnis"],"knowsLanguage":["Inggris","Indonesia"],"jobTitle":"Content Writer","url":"https:\/\/www.hashmicro.com\/id\/blog\/author\/kinan-eliana\/"}]}},"focus_keyword":"sertifikat pembayaran","order_j":"","_links":{"self":[{"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/175871","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/users\/222"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/comments?post=175871"}],"version-history":[{"count":2,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/175871\/revisions"}],"predecessor-version":[{"id":175887,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/175871\/revisions\/175887"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/media\/175885"}],"wp:attachment":[{"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/media?parent=175871"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/categories?post=175871"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/tags?post=175871"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}