{"id":9140,"date":"2025-11-30T10:36:57","date_gmt":"2025-11-30T10:36:57","guid":{"rendered":"https:\/\/www.hashmicro.com\/ph\/blog\/?p=9140"},"modified":"2025-12-29T03:12:33","modified_gmt":"2025-12-29T03:12:33","slug":"wave-invoice-review","status":"publish","type":"post","link":"https:\/\/www.hashmicro.com\/ph\/blog\/wave-invoice-review\/","title":{"rendered":"Wave Invoicing Review: Features, Pros &amp; Cons in 2026"},"content":{"rendered":"<p><i>Magandang araw<\/i>, Business People! Did you know that <a href=\"https:\/\/www.6wresearch.com\/industry-report\/philippines-accounting-software-market-outlook\"><b>the Philippine government supports the use of invoicing software<\/b><\/a>, such as Wave Invoicing, as part of its Digital Payments Transformation Roadmap? That\u2019s correct, the adoption of invoicing software for businesses is now highly encouraged.<\/p>\n<p>As a result, the demand for invoice system implementation has surged. Many entrepreneurs are actively searching for vendors offering the most advanced and suitable systems for their needs. Among the available options, Wave software is likely on your radar.<\/p>\n<p>Before making a decision, it\u2019s crucial to know the Wave Invoicing review thoroughly. Can this software align with your business processes? Does it offer the features you require, or are there more promising alternatives? This article will provide an in-depth analysis to help you decide.<\/p>\n<table style=\"border-collapse: collapse; background-color: #fffacd; 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=\"#what-is\">Wave invoicing<\/a> is one of robust accounting vendor in the Philippines. It has great <a href=\"#features-of\">features<\/a>, such as recurring billing.<\/li>\n<li>Wave hash <a href=\"#pros-and\">pros and cons<\/a> that businesses should considers properly.<\/li>\n<li>As the best alternative for Wave, <a href=\"https:\/\/www.hashmicro.com\/ph\/invoicing-software\">HashMicro<\/a> offers you the best invoicing features in the Philippines. It is complied with BIR CAS regulations and has a <a href=\"https:\/\/www.hashmicro.com\/ph\/free-product-tour\/\">free demo<\/a> for you to try.<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span id=\"what-is\"><a href=\"https:\/\/www.hashmicro.com\/ph\/free-product-tour\/?medium=free-product-tour\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/bir-demo-gratis.webp\" data-desktop-src=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/bir-demo-gratis.webp\" data-mobile-src=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/mobile-bir-demo-gratis.webp\" alt=\"FreeDemo\" class=\"responsive-image-banner\" width=\"620\" height=\"255\"><\/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> <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 Contents\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\">Content Lists<\/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\t\r\n#toc {\r\n  background-color: #FFF;\r\n\tpadding: 17px 24px 20px 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  padding-top: 20px;\r\n  margin-top: 0px;\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: 84% !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<\/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\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\/\/ Function to handle click on all <a> elements with href starting with #\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\/\/ Add event listener for all <a> elements in toc-list and 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 class 'td-post-content'\r\n  const article = document.querySelector('.td-post-content');\r\n\r\n  \/\/ Find all h2 elements within the article\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');\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.innerWidth < 767){\r\n\t\t\ttocTitle.textContent = 'Table of Contents'; \/\/ 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\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  tocTitle.textContent = 'Table of Contents'; \/\/ 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        tocTitle.textContent = activeLink ? activeLink.textContent : \"\"; \/\/ Update title only if activeLink exists\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 Contents'; \/\/ 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\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}\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 Contents'; \/\/ 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\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\/\/             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        } 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\n        let headerCounter = 0; \/\/ Counter to generate unique IDs\r\n\r\n\t\t\/\/ Function to generate ID in header0, header1, etc. format\r\n\t\tfunction formatId() {\r\n\t\t\treturn `header-${headerCounter++}`; \/\/ ID format: header0, header1, etc.\r\n\t\t}\r\n\r\n\/\/ \t\tfunction formatId(text) {\r\n\/\/             return text.trim().replace(\/[^\\w\\d]+\/g, '_');\r\n\/\/         }\r\n\t\r\n        \/\/ Function to create 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        \/\/ Object to store list of h2 and h3 with their titles\r\n        const headings = [];\r\n\r\n           \/\/ Get all h2 and h3 elements\r\n        \/\/ Get all h2 and h3 elements\r\n\t\tconst elements = document.querySelectorAll('.td-post-content h2');\r\n\r\n\t\telements.forEach(element => {\r\n\t\t\tif (element.tagName === 'H2') {\r\n\t\t\t\tconst id = formatId(); \/\/ Generate new ID\r\n\t\t\t\telement.id = id; \/\/ Set ID to h2 element\r\n\t\t\t\tif (element.textContent.toLowerCase() === \"key takeaways\") {return;} \/\/ Hide Key Takeaways di ToC\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 = formatId(); \/\/ Generate new ID\r\n\t\t\t\telement.id = id; \/\/ Set ID to h3 element\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       \/\/ Create HTML list from headings object\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}`; \/\/ Use the newly generated ID\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\/\/ Get ul element with id 'list_toc'\r\n\t\tconst ulFloat = document.getElementById('list_toc');\r\n\r\n\t\t\/\/ Get content (child elements) from ul with id 'list_toc'\r\n\t\tconst clonedChildren = ulFloat.cloneNode(true).children;\r\n\r\n\t\t\/\/ Get ul element with id 'list_toc_float'\r\n\t\tconst ulToc = document.getElementById('list_toc_float');\r\n\r\n\t\t\/\/ Add content obtained from 'list_toc' to ul with id 'list_toc_float'\r\n\t\tulToc.append(...clonedChildren);\r\n\r\n\r\n        \/\/ Function to get navbar height\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\/\/ Function to add scroll position offset\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\/\/ Function to handle title link click\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\/\/ Add event listener for all title links\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});\r\n    <\/script> -->\r\n<\/span><\/p>\n<h2><b>What is Wave Invoicing?<\/b><\/h2>\n<p><b>Wave Invoicing<\/b> is an invoicing software tailored for small businesses and freelancers. It is designed to simplify the invoicing process, helping businesses maintain a professional image while managing their billing operations efficiently.<\/p>\n<p><span id=\"features-of\">Recognized for its accessibility, Wave Invoicing has become a go-to choice for business owners. Its intuitive interface makes it easy to navigate, ensuring that users can focus on their business without being bogged down by complex billing procedures.<\/span><\/p>\n<style>\r\n    * {\r\n        margin: 0;\r\n        padding: 0;\r\n        box-sizing: border-box;\r\n        font-family: 'Roboto', sans-serif;\r\n    }\r\n\t\r\n\t.hashy-content a {\r\n\t\t\tcolor: #b0e0e6  !important;\r\n\t\t\ttext-decoration: underline !important;\r\n\t}\r\n\t.hashy-content a:hover {\r\n\t\t\ttext-decoration: underline !important;\r\n\t}\r\n\t\r\n\t.hashy-content .hashy-cta {\r\n\t\ttext-decoration: none !important;\r\n\t}\r\n\t\r\n\t.hashy-content .hashy-cta:hover {\r\n\t\t\ttext-decoration: none !important;\r\n\t}\r\n\r\n    .hashylogo {\r\n        width: 280px !important;\r\n        height: 70px !important;\r\n    }\r\n\r\n    .hashyrobot {\r\n        position: absolute;\r\n        top: -25%;\r\n        left: 82%;\r\n\t\tz-index: 10;\r\n    }\r\n\r\n    .hashy {\r\n\t\tmargin: 100px 0px 30px 0px;\r\n        display: flex;\r\n        gap: 16px;\r\n        flex-direction: column;\r\n\t\tposition: relative;\r\n    }\r\n\r\n    .hashy-fact {\r\n        width: 200px;\r\n        height: 55px;\r\n        justify-content: center;\r\n        color: #FFF;\r\n        text-align: center;\r\n        font-family: Roboto;\r\n        font-size: 20px;\r\n        font-style: normal;\r\n        font-weight: 700;\r\n        line-height: normal;\r\n        display: flex;\r\n        padding: 12px 30px;\r\n        align-items: center;\r\n        gap: 8px;\r\n        border-radius: 48px;\r\n        background: linear-gradient(238deg, #7B00FF 2.44%, #FBB8FF 154.72%), #F3E3FF;\r\n        box-shadow: 0px 0px 12px 0px rgba(125, 2, 255, 0.30);\r\n    }\r\n\r\n    .hashy-fact-star {\r\n        position: absolute;\r\n        top: -2%;\r\n        left: 200px;\r\n        width: 50px;\r\n        height: 38px;\r\n    }\r\n\r\n    .hashy-content {\r\n        width: 100%;\r\n        height: auto;\r\n        justify-content: center;\r\n        border-radius: 12px;\r\n        padding: 24px;\r\n        display: flex;\r\n        flex-direction: column;\r\n        gap: 16px;\r\n        color: #fff;\r\n        background: linear-gradient(238deg, #7B00FF 2.44%, #FBB8FF 154.72%), #F3E3FF;\r\n        box-shadow: 0px 0px 12px 0px #7D02FF4D;\r\n        border: 1px solid #7D02FF;\r\n        position: relative;\r\n    }\r\n\r\n    .hashy-content h3 {\r\n        color: #FFF;\r\n        font-size: 22px;\r\n        font-style: normal;\r\n        font-weight: 800;\r\n        line-height: normal;\r\n        margin: 0px !important;\r\n    }\r\n    \r\n    .hashy-content p {\r\n        margin-bottom: 0px !important;\r\n    }\r\n    \r\n    .hashy p {\r\n        margin-bottom: 0px !important;\r\n    }\r\n\r\n     .hashy-cta {\r\n        cursor: pointer;\r\n        justify-content: center;\r\n        align-items: center;\r\n        width: fit-content;\r\n        height: 45px;\r\n        border: 1px solid #7D02FF;\r\n        background: #F8EEFF;\r\n        box-shadow: 0px 4px 4px 0px #00000040, \r\n                   0px 0px 15.5px 0px #FFFFFF66;\r\n        padding: 12px 24px;\r\n        gap: 8px;\r\n        border-radius: 8px;\r\n        position: relative;\r\n        overflow: hidden;\r\n        transition: all 0.3s ease;\r\n        text-decoration: none;\r\n    }\r\n\r\n    .hashy-cta p {\r\n        color: #8627DE;\r\n        text-align: center;\r\n        font-weight: 800;\r\n        font-size: 13px;\r\n        line-height: 100%;\r\n    }\r\n\r\n    .hashy-cta img {\r\n        width: 25px;\r\n        height: 20px;\r\n        margin-bottom: 0px !important;\r\n    }\r\n\r\n    .hashy-cta::before {\r\n        content: '';\r\n        position: absolute;\r\n        top: 0;\r\n        left: -100%;\r\n        width: 60%;\r\n        height: 100%;\r\n        background: linear-gradient(\r\n            90deg,\r\n            transparent,\r\n            rgba(98, 0, 234, 0.4),\r\n            rgba(98, 0, 234, 0.6),\r\n            transparent\r\n        );\r\n        transform: skewX(-15deg);\r\n        animation: visible-shimmer 2.5s infinite;\r\n    }\r\n\r\n    @keyframes visible-shimmer {\r\n        100% {\r\n            left: 150%;\r\n        }\r\n    }\r\n\r\n    .hashy-cta:hover {\r\n        transform: translateY(-2px);\r\n        box-shadow: 0 6px 20px rgba(125, 2, 255, 0.4);\r\n    }\r\n\r\n    .hashy-cta:active {\r\n        transform: translateY(0);\r\n    }\r\n\r\n    @media screen and (max-width: 550px) {\r\n\t\t.hashy{\r\n\t\t\tmargin: 50px 0px 30px 0px;\r\n\t\t}\r\n        .hashy-fact {\r\n            display: flex;\r\n            padding: 8px 20px;\r\n            align-items: center;\r\n            gap: 8px;\r\n            border-radius: 48px;\r\n            background: linear-gradient(242deg, #B14CF1 2.92%, #7B00FF 104.91%), #F3E3FF;\r\n            box-shadow: 0px 0px 12px 0px rgba(125, 2, 255, 0.30);\r\n        }\r\n\r\n        .hashy-fact-star {\r\n            width: 36px;\r\n            height: 29px;\r\n\t\t\tleft:52%;\r\n        }\r\n\t\t\r\n\t\t.hashy-fact {\r\n    \t\twidth: fit-content;\r\n\t\t\theight: auto;align-content\r\n\t\t}\r\n\r\n        .hashy-fact p {\r\n            color: #FFF;\r\n            text-align: center;\r\n            font-size: 18px;\r\n            font-weight: 700;\r\n            line-height: normal;\r\n        }\r\n\r\n        .hashy-content {\r\n            display: flex;\r\n            width: 100%;\r\n            padding: 16px;\r\n            flex-direction: column;\r\n            align-items: flex-start;\r\n            border-radius: 8px;\r\n            border: 1px solid #7D02FF;\r\n            background: linear-gradient(238deg, #7B00FF 2.44%, #FBB8FF 154.72%), #F3E3FF;\r\n            box-shadow: 0px 0px 12px 0px rgba(125, 2, 255, 0.30);\r\n            gap: 12px;\r\n        }\r\n\r\n        .hashy-content h3 {\r\n            color: #FFF;\r\n            font-family: Roboto;\r\n            font-size: 16px;\r\n\t\t\tpadding: 0px !important;\r\n            font-style: normal;\r\n            font-weight: 800;\r\n            line-height: normal;\r\n        }\r\n\r\n        .hashy-content p {\r\n            color: #FFF;\r\n            font-size: 14px;\r\n            font-weight: 400;\r\n            line-height: 18px;\r\n        }\r\n\t\t\r\n        .hashy-cta {\r\n            display: flex;\r\n            padding: 12px 16px;\r\n            align-items: center;\r\n            gap: 8px;\r\n            width: fit-content;\r\n            border-radius: 8px;\r\n            border: 1px solid #7D02FF;\r\n            background: #F8EEFF;\r\n            box-shadow: 0px 0px 15.5px 0px rgba(255, 255, 255, 0.40), 0px 4px 4px 0px rgba(0, 0, 0, 0.25);\r\n        }\r\n\r\n        .hashy-cta p {\r\n            color: #8627DE;\r\n            text-align: center;\r\n            font-size: 14px;\r\n            font-weight: 800;\r\n            line-height: normal;\r\n        }\r\n\r\n        .hashyrobot {\r\n            top: -14%;\r\n            left: 75%;\r\n            width: 64px;\r\n            height: 110px;            \r\n        }\r\n    }\r\n<\/style>\r\n\r\n<div>\r\n    <div class=\"hashy\">\r\n        <div class=\"hashy-fact\">\r\n            <p>Hashy AI Fact<\/p>\r\n\t\t\t<div  class=\"hashy-fact-star\">\r\n\t\t\t\t\t  <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"36\" height=\"28\" viewBox=\"0 0 36 28\" fill=\"none\">\r\n\t\t\t\t\t  <path d=\"M17.7875 22.5125C20.7747 23.1401 21.7146 24.0249 22.3263 26.9054C22.3463 26.9933 22.3964 27.0718 22.4684 27.1281C22.5404 27.1844 22.6299 27.215 22.7222 27.215C22.8145 27.215 22.904 27.1844 22.976 27.1281C23.048 27.0718 23.0981 26.9933 23.1181 26.9054C23.7619 23.9936 24.6697 23.0773 27.6248 22.5125C27.7148 22.493 27.7954 22.4441 27.8532 22.374C27.9109 22.3038 27.9424 22.2165 27.9424 22.1266C27.9424 22.0366 27.9109 21.9493 27.8532 21.8792C27.7954 21.809 27.7148 21.7601 27.6248 21.7406C24.6439 21.1131 23.704 20.2282 23.1181 17.3477C23.0981 17.2599 23.048 17.1813 22.976 17.1251C22.904 17.0688 22.8145 17.0381 22.7222 17.0381C22.6299 17.0381 22.5404 17.0688 22.4684 17.1251C22.3964 17.1813 22.3463 17.2599 22.3263 17.3477C21.6825 20.2533 20.7747 21.1695 17.8196 21.7406C17.7285 21.7563 17.6456 21.8018 17.5847 21.8697C17.5237 21.9376 17.4885 22.0238 17.4847 22.1139C17.481 22.2041 17.5089 22.2927 17.564 22.3652C17.6191 22.4378 17.6979 22.4897 17.7875 22.5125Z\" fill=\"#AF48F2\"\/>\r\n\t\t\t\t\t  <path d=\"M0.643802 13.5823C7.6355 14.8374 9.54115 16.7201 10.8288 23.5103C10.8288 23.6767 10.8966 23.8363 11.0173 23.954C11.1381 24.0717 11.3018 24.1378 11.4726 24.1378C11.6433 24.1378 11.8071 24.0717 11.9278 23.954C12.0485 23.8363 12.1164 23.6767 12.1164 23.5103C13.404 16.695 15.3354 14.8374 22.2949 13.5823C22.4656 13.5823 22.6294 13.5161 22.7501 13.3984C22.8709 13.2808 22.9387 13.1211 22.9387 12.9547C22.9387 12.7883 22.8709 12.6286 22.7501 12.5109C22.6294 12.3933 22.4656 12.3271 22.2949 12.3271C15.3032 11.072 13.404 9.22071 12.1164 2.40539C12.1164 2.23895 12.0485 2.07933 11.9278 1.96164C11.8071 1.84395 11.6433 1.77783 11.4726 1.77783C11.3018 1.77783 11.1381 1.84395 11.0173 1.96164C10.8966 2.07933 10.8288 2.23895 10.8288 2.40539C9.54115 9.22071 7.60975 11.072 0.643802 12.3271C0.473055 12.3271 0.309302 12.3933 0.188565 12.5109C0.067829 12.6286 0 12.7883 0 12.9547C0 13.1211 0.067829 13.2808 0.188565 13.3984C0.309302 13.5161 0.473055 13.5823 0.643802 13.5823Z\" fill=\"#AF48F2\"\/>\r\n\t\t\t\t\t  <path d=\"M22.8576 7.12452C27.2547 7.84621 28.2848 8.85659 29.0316 13.1428C29.0418 13.2081 29.0757 13.2677 29.1271 13.3107C29.1784 13.3538 29.2439 13.3774 29.3117 13.3774C29.3794 13.3774 29.445 13.3538 29.4963 13.3107C29.5477 13.2677 29.5816 13.2081 29.5917 13.1428C30.3643 8.85659 31.3751 7.85249 35.7723 7.12452C35.8371 7.11097 35.8952 7.07617 35.9368 7.02592C35.9785 6.97567 36.0012 6.91301 36.0012 6.84839C36.0012 6.78378 35.9785 6.72112 35.9368 6.67086C35.8952 6.62061 35.8371 6.58581 35.7723 6.57226C31.3751 5.84429 30.3643 4.8402 29.5917 0.553954C29.5816 0.488664 29.5477 0.429094 29.4963 0.38605C29.445 0.343005 29.3794 0.319336 29.3117 0.319336C29.2439 0.319336 29.1784 0.343005 29.1271 0.38605C29.0757 0.429094 29.0418 0.488664 29.0316 0.553954C28.2848 4.8402 27.2547 5.84429 22.8576 6.59737C22.8029 6.61786 22.7559 6.65402 22.7228 6.70107C22.6896 6.74812 22.6719 6.80386 22.6719 6.86094C22.6719 6.91802 22.6896 6.97376 22.7228 7.02082C22.7559 7.06787 22.8029 7.10403 22.8576 7.12452Z\" fill=\"#AF48F2\"\/>\r\n\t\t\t\t\t<\/svg>\r\n\t\t\t\t<\/div> \r\n        <\/div>\r\n\r\n        <img decoding=\"async\" src=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/05\/Hashy-Desktop-1.webp\" width=\"96\" height=\"166\" alt=\"\" class=\"hashyrobot\">\r\n\r\n        <div class=\"hashy-content\">\r\n            <h3>Need to know!<\/h3>\r\n\t\t\t<p>Many businesses are shifting from manual invoicing to AI-powered solutions that automate billing, reduce errors, and speed up payments. One of the best is Hashy AI from HashMicro, equipped with smart invoicing features.<\/p>\r\n\r\n<a href=\"https:\/\/www.hashmicro.com\/ph\/free-product-tour?medium=cta-button-fun-fact\" class=\"hashy-cta\" style=\"display: flex;\">\r\n\t\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20\" height=\"15\" viewBox=\"0 0 36 28\" fill=\"none\">\r\n  <path d=\"M17.7875 22.5125C20.7747 23.1401 21.7146 24.0249 22.3263 26.9054C22.3463 26.9933 22.3964 27.0718 22.4684 27.1281C22.5404 27.1844 22.6299 27.215 22.7222 27.215C22.8145 27.215 22.904 27.1844 22.976 27.1281C23.048 27.0718 23.0981 26.9933 23.1181 26.9054C23.7619 23.9936 24.6697 23.0773 27.6248 22.5125C27.7148 22.493 27.7954 22.4441 27.8532 22.374C27.9109 22.3038 27.9424 22.2165 27.9424 22.1266C27.9424 22.0366 27.9109 21.9493 27.8532 21.8792C27.7954 21.809 27.7148 21.7601 27.6248 21.7406C24.6439 21.1131 23.704 20.2282 23.1181 17.3477C23.0981 17.2599 23.048 17.1813 22.976 17.1251C22.904 17.0688 22.8145 17.0381 22.7222 17.0381C22.6299 17.0381 22.5404 17.0688 22.4684 17.1251C22.3964 17.1813 22.3463 17.2599 22.3263 17.3477C21.6825 20.2533 20.7747 21.1695 17.8196 21.7406C17.7285 21.7563 17.6456 21.8018 17.5847 21.8697C17.5237 21.9376 17.4885 22.0238 17.4847 22.1139C17.481 22.2041 17.5089 22.2927 17.564 22.3652C17.6191 22.4378 17.6979 22.4897 17.7875 22.5125Z\" fill=\"#AF48F2\"\/>\r\n  <path d=\"M0.643802 13.5823C7.6355 14.8374 9.54115 16.7201 10.8288 23.5103C10.8288 23.6767 10.8966 23.8363 11.0173 23.954C11.1381 24.0717 11.3018 24.1378 11.4726 24.1378C11.6433 24.1378 11.8071 24.0717 11.9278 23.954C12.0485 23.8363 12.1164 23.6767 12.1164 23.5103C13.404 16.695 15.3354 14.8374 22.2949 13.5823C22.4656 13.5823 22.6294 13.5161 22.7501 13.3984C22.8709 13.2808 22.9387 13.1211 22.9387 12.9547C22.9387 12.7883 22.8709 12.6286 22.7501 12.5109C22.6294 12.3933 22.4656 12.3271 22.2949 12.3271C15.3032 11.072 13.404 9.22071 12.1164 2.40539C12.1164 2.23895 12.0485 2.07933 11.9278 1.96164C11.8071 1.84395 11.6433 1.77783 11.4726 1.77783C11.3018 1.77783 11.1381 1.84395 11.0173 1.96164C10.8966 2.07933 10.8288 2.23895 10.8288 2.40539C9.54115 9.22071 7.60975 11.072 0.643802 12.3271C0.473055 12.3271 0.309302 12.3933 0.188565 12.5109C0.067829 12.6286 0 12.7883 0 12.9547C0 13.1211 0.067829 13.2808 0.188565 13.3984C0.309302 13.5161 0.473055 13.5823 0.643802 13.5823Z\" fill=\"#AF48F2\"\/>\r\n  <path d=\"M22.8576 7.12452C27.2547 7.84621 28.2848 8.85659 29.0316 13.1428C29.0418 13.2081 29.0757 13.2677 29.1271 13.3107C29.1784 13.3538 29.2439 13.3774 29.3117 13.3774C29.3794 13.3774 29.445 13.3538 29.4963 13.3107C29.5477 13.2677 29.5816 13.2081 29.5917 13.1428C30.3643 8.85659 31.3751 7.85249 35.7723 7.12452C35.8371 7.11097 35.8952 7.07617 35.9368 7.02592C35.9785 6.97567 36.0012 6.91301 36.0012 6.84839C36.0012 6.78378 35.9785 6.72112 35.9368 6.67086C35.8952 6.62061 35.8371 6.58581 35.7723 6.57226C31.3751 5.84429 30.3643 4.8402 29.5917 0.553954C29.5816 0.488664 29.5477 0.429094 29.4963 0.38605C29.445 0.343005 29.3794 0.319336 29.3117 0.319336C29.2439 0.319336 29.1784 0.343005 29.1271 0.38605C29.0757 0.429094 29.0418 0.488664 29.0316 0.553954C28.2848 4.8402 27.2547 5.84429 22.8576 6.59737C22.8029 6.61786 22.7559 6.65402 22.7228 6.70107C22.6896 6.74812 22.6719 6.80386 22.6719 6.86094C22.6719 6.91802 22.6896 6.97376 22.7228 7.02082C22.7559 7.06787 22.8029 7.10403 22.8576 7.12452Z\" fill=\"#AF48F2\"\/>\r\n<\/svg>\r\n                <p>Get a Free Demo Now!<\/p>\r\n            <\/a>\r\n        <\/div>\r\n    <\/div>\r\n<\/div>\n<h2><b>Wave Invoicing Features that Simplify Your Accounting Processes<\/b><\/h2>\n<p>The Wave Invoice feature is something you need to know. Through the following list of features, Wave accounting software is committed to helping you simplify your company&#8217;s accounting flow in the Philippines. Here is the Wave Invoicing review:<\/p>\n<ul>\n<li><b>Recurring billing<\/b>: Set up recurring invoices for repeat customers.<\/li>\n<li><b>Automatic payment reminders<\/b>: Send automatic reminders for overdue payments.<\/li>\n<li><b>Customizable invoices<\/b>: Personalize invoices with your logo, colors, and templates.<\/li>\n<li><b>Track payments<\/b>: Monitor income and outstanding payments easily.<\/li>\n<li><b>Instant notifications<\/b>: Get alerts when an invoice is viewed, due, or paid.<\/li>\n<li><b>Online payments<\/b>: Accept payments through credit cards, bank transfers, and Apple Pay.<\/li>\n<\/ul>\n<p>Furthermore, you might want to know the price of an invoicing system in the Philippines. With impressive features and usability, how much do you have to spend on the system? Click the banner below to find out <b>the price of the best invoicing system<\/b>.<\/p>\n<p><span id=\"pros-and\"><a href=\"https:\/\/www.hashmicro.com\/ph\/offer\/download-erp-pricing-list?medium=banner-article\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/bir-skema-harga.webp\" data-desktop-src=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/bir-skema-harga.webp\" data-mobile-src=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/mobile-bir-skema-harga.webp\" alt=\"SkemaHarga\" class=\"responsive-image-banner\" width=\"620\" height=\"255\"><\/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><\/span><\/p>\n<h2><b>Pros and Cons Using Wave Invoicing in 2026<\/b><\/h2>\n<p>When choosing <a href=\"https:\/\/www.hashmicro.com\/ph\/invoicing-software\">invoicing software<\/a>, it&#8217;s important to weigh the pros and cons. Wave Invoicing is known for its ease of use and mobile access. <i>Ngunit, may ilang limitasyon ito tulad ng customer support at ang pagsunod sa Philippine regulations<\/i>. Here\u2019s a brief look to help you decide if it suits your business.<\/p>\n<table>\n<tbody>\n<tr>\n<td style=\"background-color: #990000; color: #ffffff; padding: 5px; text-align: center;\" width=\"50%\"><b>Pros<\/b><\/td>\n<td style=\"background-color: #990000; color: #ffffff; padding: 5px; text-align: center;\" width=\"50%\"><b>Cons<\/b><\/td>\n<\/tr>\n<tr>\n<td>A variety of features<\/td>\n<td>Limited customer support for basic plans<\/td>\n<\/tr>\n<tr>\n<td>Wave accounting has robust reporting<\/td>\n<td>Does not fully cater to Philippine tax regulations<\/td>\n<\/tr>\n<tr>\n<td>Unlimited expenses, invoices and receipts<\/td>\n<td>No extras such as time tracking and inventory management to increase functionality<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"3\">Free version available<\/td>\n<td>Lacks advanced reporting features<\/td>\n<\/tr>\n<tr>\n<td>Wave accounting software is not suitable for larger businesses<\/td>\n<\/tr>\n<tr>\n<td>No multi-language support<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>While Wave offers a solid starting point for small businesses, you may also want to explore other ERP solutions like Ecount ERP, HashMicro, or Xero for more comprehensive features. An <a href=\"https:\/\/www.hashmicro.com\/ph\/blog\/ecount-erp-review\/\">Ecount ERP review<\/a> can give you more insight into how this ERP system offers robust functionalities and affordability, especially for growing businesses.<\/p>\n<h2><b>HashMicro Invoicing: The Best Alternatives for Your Accounting Needs in the Philippines<\/b><\/h2>\n<p><i><img decoding=\"async\" class=\"alignnone wp-image-9142 size-full\" src=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/hashmicro-invoicing.webp\" alt=\"hashmicro invoicing\" width=\"1470\" height=\"900\" srcset=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/hashmicro-invoicing.webp 1470w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/hashmicro-invoicing-300x184.webp 300w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/hashmicro-invoicing-1024x627.webp 1024w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/hashmicro-invoicing-768x470.webp 768w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/hashmicro-invoicing-686x420.webp 686w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/hashmicro-invoicing-150x92.webp 150w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/hashmicro-invoicing-696x426.webp 696w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/hashmicro-invoicing-1068x654.webp 1068w\" sizes=\"(max-width: 1470px) 100vw, 1470px\" \/>Gusto mo bang makita ang kinabukasan ng software sa pag-invoice na may mga mahuhusay na feature? Isang sistema na madaling makasabay sa laki at bilis ng iyong negosyo? Narito ang sagot.<\/i><\/p>\n<p><a href=\"https:\/\/www.hashmicro.com\/ph\/invoicing-software\">HashMicro<\/a> is the strongest invoicing software provider in Southeast Asia. Powered by <a href=\"https:\/\/www.hashmicro.com\/ph\/invoicing-software\">Hashy AI<\/a>, its systems continuously adapt to evolving business needs and technological advancements, ensuring your company remains competitive. With its comprehensive features, HashMicro has become the preferred choice for many Filipino businesses.<\/p>\n<p>More than 1,750 businesses in Southeast Asia entrust their invoicing operations to HashMicro. How could they not? This invoicing vendor provides numerous benefits for its customers, such as free user additions, a <a href=\"https:\/\/www.hashmicro.com\/ph\/free-product-tour\/\"><b>free demo<\/b><\/a>, and extensive customization options.<\/p>\n<p>HashMicro\u2019s invoicing software is approved by the Filipino government, meeting the strict standards set by the BIR CAS regulations. This software simplifies tax compliance, ensuring businesses accurately record and manage their transactions. Below are the features that makes HashMicro different from the others:<\/p>\n<ul>\n<li><b>Invoice generation:<\/b> Create invoices with personalized templates for different clients. Print them in PDF or send them directly via email.<\/li>\n<li><b>Tax &amp; discount management:<\/b> With HashMicro&#8217;s e-Invoicing Software, you can automatically calculate taxes and discounts for certain invoices.<\/li>\n<li><b>Online payment management:<\/b> Allow customers to make payments through an online payment gateway. Send receipts through the same portal.<\/li>\n<li><b>Credit limit management:<\/b> Our system makes it easier for you to set different credit limits for each client based on the price of your product\/service.<\/li>\n<li><b>Invoice approval &amp; validation:<\/b> The system allows you to process approvals and validate each invoice that is given a special price or discount.<\/li>\n<li><b>Real-time invoice reporting:<\/b> Our robust e-Invoicing System lets you figure out the age of your invoices &amp; quickly find unpaid invoices to find out your total income.<\/li>\n<\/ul>\n<h2><b>Conclusion<\/b><\/h2>\n<p>Wave Invoicing is an invoicing software that integrates seamlessly with accounting tools. Along with its great features, Wave apps does have limitations that makes businesses still need to exploring other invoicing software options can ensure that businesses find the right fit for their specific needs.<\/p>\n<p>As the <a href=\"https:\/\/www.hashmicro.com\/ph\/blog\/best-invoicing-software\/\">best invoicing software<\/a>, HashMicro\u2019s invoicing software has proven itself to be a top solution for businesses across Southeast Asia, especially in the Philippines. It offers free user additions, a <a href=\"https:\/\/www.hashmicro.com\/ph\/free-product-tour\/\"><b>free demo<\/b><\/a>, and extensive customization options.With HashMicro, companies can growth in a dynamic market.<\/p>\n<a href=\"https:\/\/www.hashmicro.com\/ph\/invoicing-software?medium=moneysite-banner\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/bir-invoicing.webp\" data-desktop-src=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/bir-invoicing.webp\" data-mobile-src=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/mobile-bir-invoicing.webp\" alt=\"eInvoicing\" class=\"responsive-image-banner\" width=\"620\" height=\"255\"><\/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>FAQ About Wave Invoicing<\/strong><\/h2>\n<ul class=\"bottom_faq\">\n<li>\n<details>\n<summary><strong>Who owns Wave invoicing?<\/strong><\/summary>\n<p>Wave Invoicing is owned by the company H&amp;R Block.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Is Wave payment safe?<\/strong><\/summary>\n<p>Wave safeguards your data using 256-bit TLS encryption, offering the same level of security as online banking and shopping platforms.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Who is the CEO of wave?<\/strong><\/summary>\n<p>Zahir Khoja serves as the CEO of Wave and is a member of the Forbes Business Council.<\/p>\n<\/details>\n<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Magandang araw, Business People! Did you know that the Philippine government supports the use of invoicing software, such as Wave Invoicing, as part of its Digital Payments Transformation Roadmap? That\u2019s correct, the adoption of invoicing software for businesses is now highly encouraged. As a result, the demand for invoice system implementation has surged. Many entrepreneurs [&hellip;]<\/p>\n","protected":false},"author":18,"featured_media":9143,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[166],"tags":[180,56,32,178,184,191],"class_list":{"0":"post-9140","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-e-invoicing","8":"tag-accounting-article","9":"tag-accounting-articles","10":"tag-accounting-software","11":"tag-accounting-system-reccomendation","12":"tag-invoice","13":"tag-invoice-articles"},"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.6 (Yoast SEO v26.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Wave Invoicing Review: Features, Pros &amp; Cons in 2026<\/title>\n<meta name=\"description\" content=\"Wave Invoicing is one of the powerful e-invoicing software in the Philippines. However, does Wave meet your business needs? Here is a review.\" \/>\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\/ph\/blog\/wave-invoice-review\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Wave Invoicing Review: Features, Pros &amp; Cons in 2026\" \/>\n<meta property=\"og:description\" content=\"Wave Invoicing is one of the powerful e-invoicing software in the Philippines. However, does Wave meet your business needs? Here is a review.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hashmicro.com\/ph\/blog\/wave-invoice-review\/\" \/>\n<meta property=\"og:site_name\" content=\"HashMicro Philippine Blog\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-30T10:36:57+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-29T03:12:33+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/wave-invoicing-review.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=\"Nabila Zulfa Damayanti\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Nabila Zulfa Damayanti\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/wave-invoice-review\/\",\"url\":\"https:\/\/www.hashmicro.com\/ph\/blog\/wave-invoice-review\/\",\"name\":\"Wave Invoicing Review: Features, Pros & Cons in 2026\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/wave-invoice-review\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/wave-invoice-review\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/wave-invoicing-review.webp\",\"datePublished\":\"2025-11-30T10:36:57+00:00\",\"dateModified\":\"2025-12-29T03:12:33+00:00\",\"author\":{\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/#\/schema\/person\/7c413f93c7074ffaccbc4778010f2bec\"},\"description\":\"Wave Invoicing is one of the powerful e-invoicing software in the Philippines. However, does Wave meet your business needs? Here is a review.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/wave-invoice-review\/#breadcrumb\"},\"inLanguage\":\"en-PH\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.hashmicro.com\/ph\/blog\/wave-invoice-review\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-PH\",\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/wave-invoice-review\/#primaryimage\",\"url\":\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/wave-invoicing-review.webp\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/wave-invoicing-review.webp\",\"width\":1200,\"height\":675,\"caption\":\"wave invoicing review\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/wave-invoice-review\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.hashmicro.com\/ph\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Wave Invoicing Review: Features, Pros &amp; Cons in 2026\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/#website\",\"url\":\"https:\/\/www.hashmicro.com\/ph\/blog\/\",\"name\":\"HashMicro Philippine Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.hashmicro.com\/ph\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-PH\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/#\/schema\/person\/7c413f93c7074ffaccbc4778010f2bec\",\"name\":\"Nabila Zulfa Damayanti\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-PH\",\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/02\/cropped-IMG-20240617-WA0015-96x96.jpg\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/02\/cropped-IMG-20240617-WA0015-96x96.jpg\",\"caption\":\"Nabila Zulfa Damayanti\"},\"description\":\"Nabila Zulfa is an experienced content writer who specializes in technology. With the ability to simplify complex concepts, she is trusted due to her industry insights and solid research that results in informative and engaging content.\",\"url\":\"https:\/\/www.hashmicro.com\/ph\/blog\/author\/nabila\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Wave Invoicing Review: Features, Pros & Cons in 2026","description":"Wave Invoicing is one of the powerful e-invoicing software in the Philippines. However, does Wave meet your business needs? Here is a review.","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\/ph\/blog\/wave-invoice-review\/","og_locale":"en_US","og_type":"article","og_title":"Wave Invoicing Review: Features, Pros &amp; Cons in 2026","og_description":"Wave Invoicing is one of the powerful e-invoicing software in the Philippines. However, does Wave meet your business needs? Here is a review.","og_url":"https:\/\/www.hashmicro.com\/ph\/blog\/wave-invoice-review\/","og_site_name":"HashMicro Philippine Blog","article_published_time":"2025-11-30T10:36:57+00:00","article_modified_time":"2025-12-29T03:12:33+00:00","og_image":[{"width":1200,"height":675,"url":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/wave-invoicing-review.webp","type":"image\/webp"}],"author":"Nabila Zulfa Damayanti","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Nabila Zulfa Damayanti","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.hashmicro.com\/ph\/blog\/wave-invoice-review\/","url":"https:\/\/www.hashmicro.com\/ph\/blog\/wave-invoice-review\/","name":"Wave Invoicing Review: Features, Pros & Cons in 2026","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/ph\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.hashmicro.com\/ph\/blog\/wave-invoice-review\/#primaryimage"},"image":{"@id":"https:\/\/www.hashmicro.com\/ph\/blog\/wave-invoice-review\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/wave-invoicing-review.webp","datePublished":"2025-11-30T10:36:57+00:00","dateModified":"2025-12-29T03:12:33+00:00","author":{"@id":"https:\/\/www.hashmicro.com\/ph\/blog\/#\/schema\/person\/7c413f93c7074ffaccbc4778010f2bec"},"description":"Wave Invoicing is one of the powerful e-invoicing software in the Philippines. However, does Wave meet your business needs? Here is a review.","breadcrumb":{"@id":"https:\/\/www.hashmicro.com\/ph\/blog\/wave-invoice-review\/#breadcrumb"},"inLanguage":"en-PH","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hashmicro.com\/ph\/blog\/wave-invoice-review\/"]}]},{"@type":"ImageObject","inLanguage":"en-PH","@id":"https:\/\/www.hashmicro.com\/ph\/blog\/wave-invoice-review\/#primaryimage","url":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/wave-invoicing-review.webp","contentUrl":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/wave-invoicing-review.webp","width":1200,"height":675,"caption":"wave invoicing review"},{"@type":"BreadcrumbList","@id":"https:\/\/www.hashmicro.com\/ph\/blog\/wave-invoice-review\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.hashmicro.com\/ph\/blog\/"},{"@type":"ListItem","position":2,"name":"Wave Invoicing Review: Features, Pros &amp; Cons in 2026"}]},{"@type":"WebSite","@id":"https:\/\/www.hashmicro.com\/ph\/blog\/#website","url":"https:\/\/www.hashmicro.com\/ph\/blog\/","name":"HashMicro Philippine Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.hashmicro.com\/ph\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-PH"},{"@type":"Person","@id":"https:\/\/www.hashmicro.com\/ph\/blog\/#\/schema\/person\/7c413f93c7074ffaccbc4778010f2bec","name":"Nabila Zulfa Damayanti","image":{"@type":"ImageObject","inLanguage":"en-PH","@id":"https:\/\/www.hashmicro.com\/ph\/blog\/#\/schema\/person\/image\/","url":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/02\/cropped-IMG-20240617-WA0015-96x96.jpg","contentUrl":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/02\/cropped-IMG-20240617-WA0015-96x96.jpg","caption":"Nabila Zulfa Damayanti"},"description":"Nabila Zulfa is an experienced content writer who specializes in technology. With the ability to simplify complex concepts, she is trusted due to her industry insights and solid research that results in informative and engaging content.","url":"https:\/\/www.hashmicro.com\/ph\/blog\/author\/nabila\/"}]}},"order_j":"","_links":{"self":[{"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/posts\/9140","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/users\/18"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/comments?post=9140"}],"version-history":[{"count":10,"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/posts\/9140\/revisions"}],"predecessor-version":[{"id":30290,"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/posts\/9140\/revisions\/30290"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/media\/9143"}],"wp:attachment":[{"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/media?parent=9140"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/categories?post=9140"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/tags?post=9140"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}