{"id":7233,"date":"2024-08-27T07:32:44","date_gmt":"2024-08-27T07:32:44","guid":{"rendered":"https:\/\/www.hashmicro.com\/ph\/blog\/?p=7233"},"modified":"2026-04-09T09:58:21","modified_gmt":"2026-04-09T09:58:21","slug":"proforma-invoice","status":"publish","type":"post","link":"https:\/\/www.hashmicro.com\/ph\/blog\/proforma-invoice\/","title":{"rendered":"Proforma Invoice: Definition, Examples, and Free Template 2026"},"content":{"rendered":"<p class=\"mb-3 text-gray-700 leading-relaxed\">A proforma invoice is a preliminary bill that a seller sends before a transaction is confirmed. It outlines estimated costs, item details, and terms, so both parties know what the deal looks like before anything&#8217;s finalized.<\/p>\n<p class=\"mb-3 text-gray-700 leading-relaxed\">Buyers use it to see how much they&#8217;ll owe once goods or services arrive. It&#8217;s common when a deal is agreed in principle, but quantities, specs, or delivery dates still need pinning down.<\/p>\n<p class=\"mb-3 text-gray-700 leading-relaxed\">Think of it as a good-faith preview; it bridges the gap between shaking hands on a deal and sending the official invoice. Below, we&#8217;ll break down how proforma invoices work in Philippine business, their legal weight, and how software can take the manual work out of creating them.<\/p>\n<p><span data-sheets-root=\"1\"><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><\/span><span data-sheets-root=\"1\"><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<table style=\"border-collapse: coacllapse; 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 class=\"ml-5 mb-1.5 text-gray-700 leading-relaxed list-disc\"><a href=\"#defintion\">Proforma invoices help<\/a> set clear expectations and build trust between trading partners, especially in cross-border transactions.<\/li>\n<li class=\"ml-5 mb-1.5 text-gray-700 leading-relaxed list-disc\">Using <a href=\"#reason\">dedicated invoicing tools keeps you<\/a> compliant with Philippine tax rules (BIR, VAT) while cutting down on billing mistakes and speeding up collections.<\/li>\n<li class=\"ml-5 mb-1.5 text-gray-700 leading-relaxed list-disc\"><a href=\"#hminvoice\">Good invoicing software connects<\/a> smoothly with accounting and ERP modules, so your finance data stays consistent without extra manual work.<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2><strong>What a Proforma Invoice Really Is and How It Works<\/strong><\/h2>\n<p class=\"mb-3 text-gray-700 leading-relaxed\">A proforma invoice and a commercial invoice look similar, but they serve different purposes. The proforma version is your pre-deal estimate; it lays out terms, pricing, and quantities before anything&#8217;s final. A commercial invoice, on the other hand, is the actual payment demand you send after delivering goods or services.<\/p>\n<p class=\"mb-3 text-gray-700 leading-relaxed\">For Philippine businesses, particularly those trading internationally or supplying to larger firms, getting your proforma invoicing right builds credibility. It signals to buyers that you&#8217;re organized, transparent, and ready to do business on clear terms.<\/p>\n<p><span style=\"font-weight: 400;\">As the <\/span><a href=\"https:\/\/www.mckinsey.com\/ph\/our-insights\/the-philippines-economy-in-2024-stronger-for-longer#:~:text=being%20the%20fastest%20growing%20economy%20across%20Southeast%20Asia\"><span style=\"font-weight: 400;\">fastest growing economy across Southeast Asia<\/span><\/a><span style=\"font-weight: 400;\">, the Philippines business, which is projected to grow by <\/span><a href=\"https:\/\/www.bworldonline.com\/special-features\/2024\/01\/31\/572484\/whats-ahead-for-the-philippine-economy\/#:~:text=to%20grow%20by-,6.2%25%20in%202024,-%2C%20underpinned%20by%20rising\"><span style=\"font-weight: 400;\">6.2%<\/span><\/a><span style=\"font-weight: 400;\"> in 2024, with key sectors like manufacturing contributing 19% to the GDP, the importance of tools like proforma invoices cannot be overstated. For businesses looking to expand their operations, mastering the use of proforma invoices is a strategic move that can facilitate smoother transactions and establish a solid reputation in both domestic and international markets.<\/span><\/p>\n<h3><strong>1. Proforma Invoice as a Negotiation Tool<\/strong><\/h3>\n<p class=\"mb-3 text-gray-700 leading-relaxed\">Handing a proforma invoice to a potential client early in the conversation does more than show you&#8217;re prepared. It puts concrete numbers on the table: pricing, delivery timelines, and payment terms, so negotiations start from specifics instead of vague promises. When both sides have a reference document, it&#8217;s easier to discuss adjustments without misunderstandings.<\/p>\n<p class=\"mb-3 text-gray-700 leading-relaxed\">It also works the other way. If you need to justify your pricing or ask for extended payment terms, pointing to a detailed proforma gives your request weight. Both parties walk into the final contract with the same expectations, which cuts down on disputes later.<\/p>\n<p class=\"mb-3 text-gray-700 leading-relaxed\">Say you&#8217;re a Cebu-based furniture exporter quoting a bulk order to a buyer in Japan. A proforma invoice that spells out unit costs, freight estimates, and FOB terms gives the buyer confidence to commit, and gives you a paper trail if terms change mid-negotiation.<\/p>\n<h3><strong><span style=\"color: #111111; font-family: Roboto, sans-serif; font-size: 22px;\">2. Legal Implications of Proforma Invoices<\/span><\/strong><\/h3>\n<p class=\"mb-3 text-gray-700 leading-relaxed\">Proforma invoices aren&#8217;t legally binding in the Philippines, but that doesn&#8217;t mean they&#8217;re insignificant. They work as good-faith estimates that help both parties agree on terms before the deal is locked in. For importers, they&#8217;re especially useful at customs, as they provide a preliminary value declaration that&#8217;s needed to calculate duties and taxes.<\/p>\n<p class=\"mb-3 text-gray-700 leading-relaxed\">Here&#8217;s the thing: under BIR rules, you can&#8217;t use a proforma invoice to claim input taxes or treat it as an official accounting record. The Philippines requires a VAT invoice for every sale of goods, so your proforma needs to be clearly labeled as such; it can&#8217;t stand in for the real thing. Don&#8217;t record it in your books until the transaction is confirmed and you&#8217;ve issued a proper sales invoice.<\/p>\n<p class=\"mb-3 text-gray-700 leading-relaxed\">Because of this, accuracy matters. If the proforma and the final VAT invoice don&#8217;t match up, say, different unit prices or quantities, you could face complications with the BIR during audits. <a href=\"https:\/\/www.hashmicro.com\/ph\/blog\/bir-eis\/\">Understanding how BIR electronic invoicing systems work<\/a>\u00a0helps you manage the proforma-to-official transition without compliance gaps.<\/p>\n<h3><strong><span style=\"color: #111111; font-family: Roboto, sans-serif; font-size: 22px;\">3. Transitioning from a Proforma Invoice to an Official Invoice<\/span><\/strong><\/h3>\n<p class=\"mb-3 text-gray-700 leading-relaxed\">Once you&#8217;ve delivered the goods or services, you convert the proforma into an official invoice. This means verifying that order details, quantities, prices, terms match what was actually delivered. The official invoice is what triggers payment and starts the clock on your receivables. Keeping clean records of both documents makes it easier to resolve disputes and maintain a clear transaction trail.<\/p>\n<p class=\"mb-3 text-gray-700 leading-relaxed\">In the Philippines, the BIR requires a VAT invoice for every sale, no exceptions. So while the proforma is great for negotiation, it&#8217;s the official invoice that makes the transaction legally binding and tax-compliant. <a href=\"https:\/\/www.hashmicro.com\/ph\/blog\/customer-billing-cycle\/\">How the customer billing cycle connects invoicing to collections<\/a> is worth reviewing if you want to tighten up this process end-to-end.<\/p>\n<h3 data-section-id=\"53qqqw\" data-start=\"4396\" data-end=\"4445\"><strong>4. Proforma for Domestic Philippine Transactions vs <\/strong><strong>Export and Import Transactions<\/strong><\/h3>\n<p data-start=\"4447\" data-end=\"4816\">For domestic transactions, a proforma invoice mainly works as a quotation document. It helps the buyer review pricing, quantities, payment terms, and expected delivery before the final sale is confirmed. In this setup, the focus is usually on commercial clarity, internal approval, and smoother conversion into the final invoice.<\/p>\n<p data-start=\"4867\" data-end=\"5405\">For export or import deals, a proforma invoice usually needs more detail. Buyers, brokers, and customs-related processes may rely on it for preliminary valuation, shipment planning, and documentary review, which is why details like freight terms, package information, weight, and Incoterms matter more here than in ordinary local transactions. Philippine customs procedures also recognize proforma invoices in specific documentary contexts, including provisional or simplified processing scenarios<\/p>\n<h2><strong>How to Create a Proforma Invoice for a Philippine Business<\/strong><\/h2>\n<p data-start=\"2044\" data-end=\"2364\">A proforma invoice should be created before delivery and before the final invoice is issued. In the Philippines, the safest approach is to use a consistent company template so the proforma can later be matched against the actual invoice, delivery documents, and payment terms without re-entering everything from scratch.<\/p>\n<ul>\n<li data-start=\"2366\" data-end=\"2719\"><strong>First &#8211; <\/strong>start with the seller and buyer details. Add the registered business name, business address, contact details, and TIN where available. Even though a proforma invoice is still a preliminary document, including these details early helps reduce corrections once the transaction moves to a BIR-compliant invoice.<\/li>\n<li data-start=\"2721\" data-end=\"3084\"><strong>Second &#8211; <\/strong>list the goods or services clearly. Each line should show the item description, quantity, unit price, and subtotal.<\/li>\n<li data-start=\"2721\" data-end=\"3084\"><strong>Third &#8211;<\/strong> show the tax treatment properly. If the sale is a VATable local sale and the business is VAT-registered, indicate the VAT treatment and show the total clearly. If the transaction is not subject to regular 12% VAT, do not force a VAT line just to make the form look complete.<\/li>\n<li data-start=\"2721\" data-end=\"3084\"><strong>Fourth<\/strong>, add the commercial terms. Include payment terms, quote validity date, delivery timeline, and whether freight, insurance, and handling are included. If the transaction involves international shipping, specify the applicable Incoterms rule because that is what clarifies which party carries the cost, responsibility, and risk at each stage of delivery.<\/li>\n<li data-start=\"2721\" data-end=\"3084\"><strong>Finally<\/strong>, send the proforma invoice in a format the buyer can review easily, usually PDF by email, and keep a copy linked to the sales order or quotation trail. That makes it easier to update the document if the buyer requests changes and keeps the transition to the final invoice cleaner.<\/li>\n<\/ul>\n<h2><strong>Why Proforma Invoice Software Pays for Itself<\/strong><\/h2>\n<p><img decoding=\"async\" class=\"alignnone size-large wp-image-22993\" src=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/11\/image-2025-03-26T115006.634-1024x576.webp\" alt=\"invoice template\" width=\"696\" height=\"392\" srcset=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/11\/image-2025-03-26T115006.634-1024x576.webp 1024w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/11\/image-2025-03-26T115006.634-300x169.webp 300w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/11\/image-2025-03-26T115006.634-768x432.webp 768w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/11\/image-2025-03-26T115006.634-747x420.webp 747w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/11\/image-2025-03-26T115006.634-150x84.webp 150w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/11\/image-2025-03-26T115006.634-696x392.webp 696w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/11\/image-2025-03-26T115006.634-1068x601.webp 1068w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/11\/image-2025-03-26T115006.634.webp 1200w\" sizes=\"(max-width: 696px) 100vw, 696px\" \/><\/p>\n<p class=\"mb-3 text-gray-700 leading-relaxed\">Philippine businesses deal with strict tax compliance, BIR-mandated VAT invoices, proper documentation for every sale, and potential audits. <a href=\"https:\/\/www.hashmicro.com\/ph\/blog\/best-invoicing-software\/\">Choosing the right invoicing software for Philippine businesses<\/a>\u00a0takes the manual work out of this process. It auto-generates proforma and official invoices, applies the correct VAT and withholding tax rates, and keeps everything audit-ready.<\/p>\n<p class=\"mb-3 text-gray-700 leading-relaxed\">When your invoicing tool plugs into your accounting system, month-end reconciliation gets faster, no more re-entering figures or chasing mismatched records. That frees up your finance team to focus on analysis and planning instead of data entry. For growing MSMEs, this kind of efficiency can be the difference between scaling smoothly and drowning in paperwork.<\/p>\n<p class=\"mb-3 text-gray-700 leading-relaxed\">Here&#8217;s what good invoicing software actually does for you:<\/p>\n<ul>\n<li class=\"ml-5 mb-1.5 text-gray-700 leading-relaxed list-disc\"><strong>Keeps you BIR-compliant<\/strong> \u2014 auto-generates VAT invoices for every sale, formatted to meet regulatory requirements.<\/li>\n<li class=\"ml-5 mb-1.5 text-gray-700 leading-relaxed list-disc\"><strong>Cuts billing errors<\/strong> \u2014 pulls data directly from the proforma, so the official invoice matches without manual re-entry.<\/li>\n<li class=\"ml-5 mb-1.5 text-gray-700 leading-relaxed list-disc\"><strong>Speeds up billing<\/strong> \u2014 what used to take 20-30 minutes per invoice can drop to under 5 with templates and auto-fill.<\/li>\n<li class=\"ml-5 mb-1.5 text-gray-700 leading-relaxed list-disc\"><strong>Improves cash flow<\/strong> \u2014 faster, more reliable invoicing means clients pay sooner.<\/li>\n<li class=\"ml-5 mb-1.5 text-gray-700 leading-relaxed list-disc\"><strong>Simplifies month-end<\/strong> \u2014 integrates with your accounting system so financial data flows in without duplicate entry.<\/li>\n<\/ul>\n<p class=\"mb-3 text-gray-700 leading-relaxed\">Several invoicing platforms now cater to Philippine businesses specifically, with features like automated VAT computation,\u00a0<a href=\"https:\/\/www.hashmicro.com\/ph\/blog\/bir-eis\/\">BIR electronic invoicing and reporting compliance<\/a>, and multi-branch support. Whether you&#8217;re a sole proprietor or managing a mid-size operation, these tools scale to fit.<\/p>\n<h2 class=\"text-lg font-semibold text-gray-800 mb-2 mt-6\"><strong>Red Flags: Signs Your Proforma Invoice Process Is Costing You<\/strong><\/h2>\n<p class=\"mb-3 text-gray-700 leading-relaxed\">Not sure if your current process is working? Watch for these warning signs:<\/p>\n<ul>\n<li class=\"ml-5 mb-1.5 text-gray-700 leading-relaxed list-disc\">You&#8217;re re-creating proforma invoices from scratch every time instead of pulling from templates \u2014 this wastes 15-30 minutes per document.<\/li>\n<li class=\"ml-5 mb-1.5 text-gray-700 leading-relaxed list-disc\">Final invoices frequently don&#8217;t match the proforma (different unit prices, missing items), leading to payment delays or BIR discrepancies.<\/li>\n<li class=\"ml-5 mb-1.5 text-gray-700 leading-relaxed list-disc\">You&#8217;ve had a customs hold-up because the proforma&#8217;s declared value didn&#8217;t align with the shipment \u2014 a common issue for exporters in CALABARZON and Cebu economic zones.<\/li>\n<li class=\"ml-5 mb-1.5 text-gray-700 leading-relaxed list-disc\">Your team can&#8217;t easily find past proformas when a client references an old quote, because they&#8217;re scattered across email threads and Excel files.<\/li>\n<li class=\"ml-5 mb-1.5 text-gray-700 leading-relaxed list-disc\">You&#8217;re manually computing VAT (12%) and withholding tax (1-2% for goods, 2% for services) on each proforma instead of auto-calculating.<\/li>\n<\/ul>\n<p class=\"mb-3 text-gray-700 leading-relaxed\">If two or more of these sound familiar, you&#8217;re likely losing time and risking compliance issues that dedicated invoicing software can fix.<\/p>\n<h2><b style=\"color: #111111; font-family: Roboto, sans-serif; font-size: 27px;\">Proforma Invoice Example:<\/b><\/h2>\n<p>&nbsp;<\/p>\n<p><img decoding=\"async\" class=\"wp-image-32943 aligncenter\" src=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-2026-03-06-162744-271x300.webp\" alt=\"\" width=\"472\" height=\"523\" srcset=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-2026-03-06-162744-271x300.webp 271w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-2026-03-06-162744-379x420.webp 379w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-2026-03-06-162744-150x166.webp 150w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-2026-03-06-162744-300x332.webp 300w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-2026-03-06-162744.webp 662w\" sizes=\"(max-width: 472px) 100vw, 472px\" \/><\/p>\n<div style=\"overflow-x: auto;\">\n<table style=\"min-width: 980px; border-collapse: collapse;\">\n<tbody>\n<tr>\n<td style=\"background-color: #990000; color: #ffffff; padding: 5px; text-align: center;\" width=\"22%\"><b>Field<\/b><\/td>\n<td style=\"background-color: #990000; color: #ffffff; padding: 5px; text-align: center;\" width=\"78%\"><b>Sample Entry<\/b><\/td>\n<\/tr>\n<tr>\n<td><b>Document Title<\/b><\/td>\n<td>Proforma Invoice<\/td>\n<\/tr>\n<tr>\n<td><b>Reference No.<\/b><\/td>\n<td>PI-2026-00125<\/td>\n<\/tr>\n<tr>\n<td><b>Date<\/b><\/td>\n<td>April 9, 2026<\/td>\n<\/tr>\n<tr>\n<td><b>Validity<\/b><\/td>\n<td>Valid for 15 days from issue date<\/td>\n<\/tr>\n<tr>\n<td><b>Seller<\/b><\/td>\n<td>ABC Trading Philippines Inc., Makati City, Metro Manila<\/td>\n<\/tr>\n<tr>\n<td><b>Seller TIN<\/b><\/td>\n<td>123-456-789-000<\/td>\n<\/tr>\n<tr>\n<td><b>Buyer<\/b><\/td>\n<td>XYZ Retail Solutions, Cebu City<\/td>\n<\/tr>\n<tr>\n<td><b>Buyer TIN<\/b><\/td>\n<td>987-654-321-000<\/td>\n<\/tr>\n<tr>\n<td><b>Item Description<\/b><\/td>\n<td>Industrial shelving unit, powder-coated steel, 1200mm x 450mm x 2000mm<\/td>\n<\/tr>\n<tr>\n<td><b>Quantity<\/b><\/td>\n<td>20 units<\/td>\n<\/tr>\n<tr>\n<td><b>Unit Price<\/b><\/td>\n<td>\u20b18,500<\/td>\n<\/tr>\n<tr>\n<td><b>Subtotal<\/b><\/td>\n<td>\u20b1170,000<\/td>\n<\/tr>\n<tr>\n<td><b>VAT<\/b><\/td>\n<td>\u20b120,400 (12%), if VAT-registered and VATable<\/td>\n<\/tr>\n<tr>\n<td><b>Total<\/b><\/td>\n<td>\u20b1190,400<\/td>\n<\/tr>\n<tr>\n<td><b>Payment Terms<\/b><\/td>\n<td>50% down payment, 50% before dispatch<\/td>\n<\/tr>\n<tr>\n<td><b>Delivery Terms<\/b><\/td>\n<td>Delivery within 10 working days after confirmation<\/td>\n<\/tr>\n<tr>\n<td><b>Shipping \/ Incoterms<\/b><\/td>\n<td>FOB Manila Port (for export) \/ Delivered Cebu Warehouse (for domestic)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p class=\"mb-3 text-gray-700 leading-relaxed\">The sample proforma invoice above shows the key components you&#8217;ll need: shipper and receiver details, item descriptions, quantities, unit prices, and a financial summary. A well-prepared proforma like this sets expectations clearly, so there&#8217;s less back-and-forth once you move to the official invoice.<\/p>\n<p class=\"mb-3 text-gray-700 leading-relaxed\">Pay attention to these three elements:<\/p>\n<ul>\n<li class=\"ml-5 mb-1.5 text-gray-700 leading-relaxed list-disc\"><strong>Complete contact details for both parties<\/strong> \u2014 names, addresses, TIN (Tax Identification Number) where applicable. This is non-negotiable for BIR documentation.<\/li>\n<li class=\"ml-5 mb-1.5 text-gray-700 leading-relaxed list-disc\"><strong>Itemized pricing<\/strong> \u2014 each product or service listed with quantity, unit price, subtotal, applicable VAT (12%), and the grand total.<\/li>\n<li class=\"ml-5 mb-1.5 text-gray-700 leading-relaxed list-disc\"><strong>Logistics info<\/strong> \u2014 transport mode, number of packages, gross weight, and Incoterms (FOB, CIF, etc.) for international shipments.<\/li>\n<\/ul>\n<p class=\"mb-3 text-gray-700 leading-relaxed\">Getting these right from the proforma stage saves you from corrections and delays when the official invoice is due.<\/p>\n<div style=\"overflow-x: auto;\">\n<table style=\"min-width: 980px; border-collapse: collapse;\">\n<tbody>\n<tr>\n<td style=\"background-color: #990000; color: #ffffff; padding: 5px; text-align: center;\" width=\"24%\"><b>Component<\/b><\/td>\n<td style=\"background-color: #990000; color: #ffffff; padding: 5px; text-align: center;\" width=\"16%\"><b>Status<\/b><\/td>\n<td style=\"background-color: #990000; color: #ffffff; padding: 5px; text-align: center;\" width=\"60%\"><b>PH Note<\/b><\/td>\n<\/tr>\n<tr>\n<td><b>Seller name and address<\/b><\/td>\n<td>Required<\/td>\n<td>Should be shown clearly so the document can be matched later with the final invoice and business records.<\/td>\n<\/tr>\n<tr>\n<td><b>Buyer name and address<\/b><\/td>\n<td>Required<\/td>\n<td>Important for quotation accuracy, approval, and delivery coordination.<\/td>\n<\/tr>\n<tr>\n<td><b>TIN<\/b><\/td>\n<td>Usually needed<\/td>\n<td>Best included for BIR-ready documentation. It becomes critical once the transaction moves to the final invoice.<\/td>\n<\/tr>\n<tr>\n<td><b>Invoice number \/ reference no.<\/b><\/td>\n<td>Required<\/td>\n<td>Helps track revisions and link the proforma to the final invoice or sales order.<\/td>\n<\/tr>\n<tr>\n<td><b>Date and validity period<\/b><\/td>\n<td>Required<\/td>\n<td>Prevents disputes when prices or terms change after the quote was sent.<\/td>\n<\/tr>\n<tr>\n<td><b>Item description<\/b><\/td>\n<td>Required<\/td>\n<td>Use specific product or service descriptions, not vague labels.<\/td>\n<\/tr>\n<tr>\n<td><b>Quantity and unit price<\/b><\/td>\n<td>Required<\/td>\n<td>Needed so the buyer can verify the commercial offer before confirmation.<\/td>\n<\/tr>\n<tr>\n<td><b>Subtotal and total amount<\/b><\/td>\n<td>Required<\/td>\n<td>Should be shown clearly to avoid mismatch with the final invoice.<\/td>\n<\/tr>\n<tr>\n<td><b>VAT line<\/b><\/td>\n<td>Conditional<\/td>\n<td>Show 12% only if the sale is VATable and the seller is VAT-registered. Do not force this line for non-VAT or zero-rated treatment.<\/td>\n<\/tr>\n<tr>\n<td><b>Payment terms<\/b><\/td>\n<td>Required<\/td>\n<td>Examples: 50% down payment, balance upon delivery, or 30-day credit terms.<\/td>\n<\/tr>\n<tr>\n<td><b>Delivery terms<\/b><\/td>\n<td>Required<\/td>\n<td>State delivery schedule, lead time, and whether shipping is included.<\/td>\n<\/tr>\n<tr>\n<td><b>Incoterms<\/b><\/td>\n<td>Export-specific<\/td>\n<td>Usually needed for export\/import deals, not always for ordinary domestic sales.<\/td>\n<\/tr>\n<tr>\n<td><b>Gross weight \/ packages<\/b><\/td>\n<td>Export-specific<\/td>\n<td>More relevant when the proforma is used for shipping or customs-related preparation.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<!-- shortcode 1 -->\r\n\r\n<div class=\"download-wrapper\">\r\n\t<p class=\"download-desc\">Download Proforma Invoice Template<\/p>\r\n\t<button \r\n\t\tclass=\"downloadBtn\" \r\n\t\t\tpopup-content=\"template\" \r\n\t\t\tdata-link=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/12\/Proforma-Invoice-Templates-10-.xlsx\">\r\n\t\t<img decoding=\"async\" class=\"icon-unduh\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2024\/11\/icon-unduh.webp\">\r\n\t\tClick Here to Download the Template\t<\/button>\r\n<\/div>\r\n\n<h2><b style=\"color: #111111; font-family: Roboto, sans-serif; font-size: 27px;\">Conclusion<\/b><\/h2>\n<p><span style=\"font-family: Verdana, BlinkMacSystemFont, -apple-system, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;\">Proforma invoices aren&#8217;t just a formality, they&#8217;re how Philippine businesses set expectations, build trust with buyers, and lay the groundwork for compliant, dispute-free transactions. Pairing them with the right invoicing tools turns a manual, error-prone process into something that runs on autopilot.<\/span><\/p>\n<div class=\"flex flex-col text-sm pb-25\">\n<article class=\"text-token-text-primary w-full focus:outline-none [--shadow-height:45px] has-data-writing-block:pointer-events-none has-data-writing-block:-mt-(--shadow-height) has-data-writing-block:pt-(--shadow-height) [&amp;:has([data-writing-block])&gt;*]:pointer-events-auto scroll-mt-[calc(var(--header-height)+min(200px,max(70px,20svh)))]\" dir=\"auto\" data-turn-id=\"request-WEB:9a7c8b50-4258-493c-a435-6f16c3c83ed9-8\" data-testid=\"conversation-turn-18\" data-scroll-anchor=\"true\" data-turn=\"assistant\">\n<div class=\"text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] @w-sm\/main:[--thread-content-margin:--spacing(6)] @w-lg\/main:[--thread-content-margin:--spacing(16)] px-(--thread-content-margin)\">\n<div class=\"[--thread-content-max-width:40rem] @w-lg\/main:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group\/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn\">\n<div class=\"flex max-w-full flex-col grow\">\n<div class=\"min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&amp;]:mt-1\" dir=\"auto\" data-message-author-role=\"assistant\" data-message-id=\"ebc7ff70-ca92-4488-8a2c-0379d3f9a2ec\" data-message-model-slug=\"gpt-5-2\">\n<div class=\"flex w-full flex-col gap-1 empty:hidden first:pt-[1px]\">\n<div class=\"markdown prose dark:prose-invert w-full wrap-break-word dark markdown-new-styling\">\n<div class=\"max-w-none prose-sm\">\n<p class=\"mb-3 text-gray-700 leading-relaxed\">If you&#8217;re still creating proformas in Word or Excel and manually converting them to VAT invoices, you&#8217;re spending time on work that software handles in seconds. A modern invoicing platform keeps you BIR-compliant and gives your team time back for work that actually grows the business.<\/p>\n<p class=\"mb-3 text-gray-700 leading-relaxed\">Want to see how this works in practice? Check out this\u00a0<a href=\"https:\/\/www.hashmicro.com\/ph\/blog\/best-invoicing-software\/\">breakdown of the best invoicing software options for Philippine businesses<\/a> to find one that fits your setup.<\/p>\n<\/div>\n<h2 data-start=\"68\" data-end=\"568\"><strong style=\"color: #111111; font-family: Roboto, sans-serif; font-size: 27px;\">Frequently Asked Questions<\/strong><\/h2>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/article>\n<\/div>\n<ul class=\"bottom_faq\">\n<li>\n<details>\n<summary><strong>How should a proforma invoice be created?<\/strong><\/summary>\n<p>To create a proforma invoice, include essential details such as the buyer&#8217;s and seller&#8217;s information, a description of the goods or services, pricing, and terms of sale, including payment and delivery details. It\u2019s important to present this information clearly and professionally to ensure all parties understand the transaction and reduce the risk of disputes.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Why is a proforma invoice important in business?<\/strong><\/summary>\n<p>Proforma invoices are crucial for providing clarity on the terms of a sale and helping buyers make informed decisions. They serve as a formal quote, aiding in negotiations and establishing trust between trading partners. Additionally, they are vital for facilitating customs clearance in international transactions, ensuring that all necessary details are communicated upfront.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>What components should a proforma invoice include?<\/strong><\/summary>\n<p>A proforma invoice should include the names and addresses of both the buyer and seller, the date of issue, a detailed description of the goods or services, unit prices, total charges, applicable taxes, and the terms of sale, such as shipping and payment conditions. It should also specify an expiration date to ensure the terms are timely.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Why should businesses consider using proforma invoice software?<\/strong><\/summary>\n<p>Proforma invoice software enhances billing efficiency by automating the creation of invoices, reducing errors, and speeding up the process. It simplifies the customization of invoices, streamlines workflow, and improves record-keeping. By integrating with accounting systems, it significantly boosts operational efficiency, allowing businesses to focus on growth and customer satisfaction.<\/p>\n<\/details>\n<\/li>\n<\/ul>\n<p><script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"FAQPage\",\n  \"mainEntity\": [\n    {\n      \"@type\": \"Question\",\n      \"name\": \"How should a proforma invoice be created?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"To create a proforma invoice, include essential details such as the buyer's and seller's information, a description of the goods or services, pricing, and terms of sale, including payment and delivery details. It's important to present this information clearly and professionally to ensure all parties understand the transaction and reduce the risk of disputes.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Why is a proforma invoice important in business?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Proforma invoices are crucial for providing clarity on the terms of a sale and helping buyers make informed decisions. They serve as a formal quote, aiding in negotiations and establishing trust between trading partners. Additionally, they are vital for facilitating customs clearance in international transactions, ensuring that all necessary details are communicated upfront.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"What components should a proforma invoice include?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"A proforma invoice should include the names and addresses of both the buyer and seller, the date of issue, a detailed description of the goods or services, unit prices, total charges, applicable taxes, and the terms of sale, such as shipping and payment conditions. It should also specify an expiration date to ensure the terms are timely.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Why should businesses consider using proforma invoice software?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Proforma invoice software enhances billing efficiency by automating the creation of invoices, reducing errors, and speeding up the process. It simplifies the customization of invoices, streamlines workflow, and improves record-keeping. By integrating with accounting systems, it significantly boosts operational efficiency, allowing businesses to focus on growth and customer satisfaction.\"\n      }\n    }\n  ]\n}\n<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>A proforma invoice is a preliminary bill that a seller sends before a transaction is confirmed. It outlines estimated costs, item details, and terms, so both parties know what the deal looks like before anything&#8217;s finalized. Buyers use it to see how much they&#8217;ll owe once goods or services arrive. It&#8217;s common when a deal [&hellip;]<\/p>\n","protected":false},"author":8,"featured_media":21926,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[157],"tags":[],"class_list":{"0":"post-7233","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-accounting"},"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.6 (Yoast SEO v26.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Proforma Invoice: Definition, Examples, and Free Template 2026<\/title>\n<meta name=\"description\" content=\"A proforma invoice is a preliminary bill before a transaction is confirmed. Learn how it works, BIR compliance rules, and get a free template\" \/>\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\/proforma-invoice\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Proforma Invoice: Definition, Examples, and Free Template 2026\" \/>\n<meta property=\"og:description\" content=\"A proforma invoice is a preliminary bill before a transaction is confirmed. Learn how it works, BIR compliance rules, and get a free template\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hashmicro.com\/ph\/blog\/proforma-invoice\/\" \/>\n<meta property=\"og:site_name\" content=\"HashMicro Philippine Blog\" \/>\n<meta property=\"article:published_time\" content=\"2024-08-27T07:32:44+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-09T09:58:21+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/08\/proforma-invoice.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"432\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Victo Glend\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Victo Glend\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"14 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\/proforma-invoice\/\",\"url\":\"https:\/\/www.hashmicro.com\/ph\/blog\/proforma-invoice\/\",\"name\":\"Proforma Invoice: Definition, Examples, and Free Template 2026\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/proforma-invoice\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/proforma-invoice\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/08\/proforma-invoice.webp\",\"datePublished\":\"2024-08-27T07:32:44+00:00\",\"dateModified\":\"2026-04-09T09:58:21+00:00\",\"author\":{\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/#\/schema\/person\/c51b93967a008cb14e6ae3a116c1ea25\"},\"description\":\"A proforma invoice is a preliminary bill before a transaction is confirmed. Learn how it works, BIR compliance rules, and get a free template\",\"breadcrumb\":{\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/proforma-invoice\/#breadcrumb\"},\"inLanguage\":\"en-PH\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.hashmicro.com\/ph\/blog\/proforma-invoice\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-PH\",\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/proforma-invoice\/#primaryimage\",\"url\":\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/08\/proforma-invoice.webp\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/08\/proforma-invoice.webp\",\"width\":800,\"height\":432,\"caption\":\"proforma invoice\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/proforma-invoice\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.hashmicro.com\/ph\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Proforma Invoice: Definition, Examples, and Free Template 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\/c51b93967a008cb14e6ae3a116c1ea25\",\"name\":\"Victo Glend\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-PH\",\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/43770bec05cbcf2f378f590b5d00de05b91998ddb9ef520e856f3dfd761a2487?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/43770bec05cbcf2f378f590b5d00de05b91998ddb9ef520e856f3dfd761a2487?s=96&d=mm&r=g\",\"caption\":\"Victo Glend\"},\"url\":\"https:\/\/www.hashmicro.com\/ph\/blog\/author\/victoglend\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Proforma Invoice: Definition, Examples, and Free Template 2026","description":"A proforma invoice is a preliminary bill before a transaction is confirmed. Learn how it works, BIR compliance rules, and get a free template","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\/proforma-invoice\/","og_locale":"en_US","og_type":"article","og_title":"Proforma Invoice: Definition, Examples, and Free Template 2026","og_description":"A proforma invoice is a preliminary bill before a transaction is confirmed. Learn how it works, BIR compliance rules, and get a free template","og_url":"https:\/\/www.hashmicro.com\/ph\/blog\/proforma-invoice\/","og_site_name":"HashMicro Philippine Blog","article_published_time":"2024-08-27T07:32:44+00:00","article_modified_time":"2026-04-09T09:58:21+00:00","og_image":[{"width":800,"height":432,"url":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/08\/proforma-invoice.webp","type":"image\/webp"}],"author":"Victo Glend","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Victo Glend","Est. reading time":"14 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.hashmicro.com\/ph\/blog\/proforma-invoice\/","url":"https:\/\/www.hashmicro.com\/ph\/blog\/proforma-invoice\/","name":"Proforma Invoice: Definition, Examples, and Free Template 2026","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/ph\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.hashmicro.com\/ph\/blog\/proforma-invoice\/#primaryimage"},"image":{"@id":"https:\/\/www.hashmicro.com\/ph\/blog\/proforma-invoice\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/08\/proforma-invoice.webp","datePublished":"2024-08-27T07:32:44+00:00","dateModified":"2026-04-09T09:58:21+00:00","author":{"@id":"https:\/\/www.hashmicro.com\/ph\/blog\/#\/schema\/person\/c51b93967a008cb14e6ae3a116c1ea25"},"description":"A proforma invoice is a preliminary bill before a transaction is confirmed. Learn how it works, BIR compliance rules, and get a free template","breadcrumb":{"@id":"https:\/\/www.hashmicro.com\/ph\/blog\/proforma-invoice\/#breadcrumb"},"inLanguage":"en-PH","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hashmicro.com\/ph\/blog\/proforma-invoice\/"]}]},{"@type":"ImageObject","inLanguage":"en-PH","@id":"https:\/\/www.hashmicro.com\/ph\/blog\/proforma-invoice\/#primaryimage","url":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/08\/proforma-invoice.webp","contentUrl":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/08\/proforma-invoice.webp","width":800,"height":432,"caption":"proforma invoice"},{"@type":"BreadcrumbList","@id":"https:\/\/www.hashmicro.com\/ph\/blog\/proforma-invoice\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.hashmicro.com\/ph\/blog\/"},{"@type":"ListItem","position":2,"name":"Proforma Invoice: Definition, Examples, and Free Template 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\/c51b93967a008cb14e6ae3a116c1ea25","name":"Victo Glend","image":{"@type":"ImageObject","inLanguage":"en-PH","@id":"https:\/\/www.hashmicro.com\/ph\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/43770bec05cbcf2f378f590b5d00de05b91998ddb9ef520e856f3dfd761a2487?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/43770bec05cbcf2f378f590b5d00de05b91998ddb9ef520e856f3dfd761a2487?s=96&d=mm&r=g","caption":"Victo Glend"},"url":"https:\/\/www.hashmicro.com\/ph\/blog\/author\/victoglend\/"}]}},"order_j":"","_links":{"self":[{"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/posts\/7233","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\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/comments?post=7233"}],"version-history":[{"count":26,"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/posts\/7233\/revisions"}],"predecessor-version":[{"id":34266,"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/posts\/7233\/revisions\/34266"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/media\/21926"}],"wp:attachment":[{"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/media?parent=7233"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/categories?post=7233"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/tags?post=7233"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}