{"id":79032,"date":"2026-03-30T08:48:35","date_gmt":"2026-03-30T08:48:35","guid":{"rendered":"https:\/\/www.hashmicro.com\/blog\/?p=79032"},"modified":"2026-04-06T09:23:28","modified_gmt":"2026-04-06T09:23:28","slug":"withholding-tax-singapore","status":"publish","type":"post","link":"https:\/\/www.hashmicro.com\/blog\/withholding-tax-singapore\/","title":{"rendered":"Guide to Withholding Tax Singapore for Businesses"},"content":{"rendered":"<p>What is withholding tax in Singapore, and why does it matter for businesses making overseas payments? Many companies only realise their impact when dealing with non-resident vendors, directors, or service providers.<\/p>\n<p>In simple terms, withholding tax is deducted at source when certain payments are made to non-residents. It helps the tax authority collect tax upfront before the income leaves Singapore.<\/p>\n<p>For businesses, understanding when to withhold and how much to deduct is key to staying compliant. A clear understanding of rates, deadlines, and exemptions can prevent penalties and avoid unnecessary tax disputes.<\/p>\n<!-- <div id=\"toc_group_article\" style=''>\r\n\t<p style='font-size:25px;font-weight:bold; margin-bottom:0px'>\r\n\t\tTable of Content:\r\n\t<\/p>\r\n\t<ul id=\"list_toc\" class='list_toc'><\/ul>\r\n<\/div> -->\r\n\r\n<!-- <div class=\"dropdown-fixed-top\" id=\"dropdown-fixed-top\">\r\n\t<div class=\"row\">\r\n\t\t<p id=\"pilihDaftarIsi\">Table of Content<\/p>\r\n\t\t<p><i class=\"td-icon-menu-down\"><\/i><\/p>\r\n\t<\/div>\r\n\t\r\n\t<div>\r\n\t\t<ul id=\"list_toc_top\" class='list_toc'><\/ul>\r\n\t<\/div>\r\n<\/div> -->\r\n\r\n<div id=\"placeholder-toc\"><\/div>\r\n<div id=\"toc\">\r\n    <div class=\"header\">\r\n\t<span class=\"toc-title\" id=\"toc-title\">Table of Content<\/span>\t\r\n\t <i class=\"toc-icon\">\r\n        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"30\" height=\"30\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#000\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"header-icon\">\r\n          <path d=\"m6 9 6 6 6-6\" \/>\r\n        <\/svg>\r\n      <\/i>\r\n\t<\/div>\r\n    <div class=\"list\">\r\n      <ul id=\"toc-list\"><\/ul>\r\n    <\/div>\r\n <\/div>\r\n\r\n<style>\r\n\t@media (max-width: 992px) {\r\n\t\t#toc_group_article {\r\n\t\t\tpadding-top: 24px;\r\n\t\t}\r\n\t}\r\n\t\r\n\t#list_toc_float {\r\n\t\tmax-height: calc(100vh - 250px);\r\n\t\toverflow-y: auto;\r\n\t}\r\n\t\r\n\t#list_toc_top {\r\n\t\tdisplay: none;\r\n\t\tbackground: #fff;\r\n\t\tmargin-bottom: 4px;\r\n\t}\r\n\t\r\n\t#list_toc_top li {\r\n\t\tdisplay: block;\r\n\t\tmargin-left: 0;\r\n\t\tlist-style: none;\r\n\t}\r\n\t\r\n\t#list_toc_top a {\r\n\t\tpadding: 5px;\r\n\t\tdisplay: block;\r\n\t}\r\n\t\r\n\t#list_toc_top.show {\r\n\t\tdisplay: block;\r\n\t}\r\n\r\n\t#list_toc_top a {\r\n\t\tcolor: #434343;\r\n\t\tborder-bottom: 1px solid #bbb;\r\n\t}\r\n\t\r\n\t.dropdown-fixed-top {\r\n\t\tposition: fixed;\r\n\t\ttop: 59px;\r\n\t\twidth: 100%;\r\n\t\tz-index: 99;\r\n\t\tborder-bottom: 2px solid #9c171e;\r\n\t\tpadding: 12px;\r\n\t\tbackground: #fff;\r\n\t\twidth: 100%;\r\n\t\tcursor: pointer;\r\n\t\tdisplay: none;\r\n\t\tleft: 0;\r\n\t\tbox-shadow: 0 -2px 7px 6px rgba(0, 0, 0, 0.17);\r\n\t}\r\n\t\r\n\t#dropdown-fixed-top.show {\r\n\t\tanimation: showAnim 0.5s ease;\r\n\t\tdisplay: block;\r\n\t\topacity: 1;\r\n\t}\r\n\t\r\n\t@keyframes showAnim {\r\n\t\tfrom {\r\n\t\t\tdisplay: none;\r\n\t\t\topacity: 0;\r\n\t\t}\r\n\t\tto {\r\n\t\t\tdisplay: block;\r\n\t\t\topacity: 1;\r\n\t\t}\r\n\t}\r\n\t\r\n\t.dropdown-fixed-top #list_toc_top {\r\n\t\tmax-height: calc(50vh - 110px);\r\n\t\toverflow-y: scroll;\r\n\t}\r\n\t\r\n\t.dropdown-fixed-top .row {\r\n\t\tdisplay: flex;\r\n\t\tjustify-content: space-between\r\n\t}\r\n\t\r\n\t.dropdown-fixed-top .row p {\r\n\t\tmargin-bottom: 0;\r\n\t}\r\n\t\r\n\t#pilihDaftarIsi {\r\n\t\tmax-width: 100%;\r\n\t\toverflow: hidden;\r\n\t\twhite-space: nowrap;\r\n\t}\r\n\t\r\n\t@media (min-width: 1018px) {\r\n\t\t.dropdown-fixed-top {\r\n\t\t\tdisplay: none;\r\n\t\t}\r\n\t}\r\n\t\r\n\t#list_toc li {margin-bottom: 0;margin-top: 5px;}\r\n\t#list_toc > li > ul {padding-left: 20px;margin-bottom: 0;}\r\n\t#list_toc{height:max-content;transition:ease-in-out}\r\n\t#list_toc li {margin-bottom: 0;margin-top: 5px;}\r\n\t#list_toc_float li.active > a {color:#b1252d;background: #ffe1e3;}\r\n\t#list_toc_top li.active > a {color:#b1252d;background: #ffe1e3;}\r\n\t#list_toc_float li a {padding:3px 7px}\r\n\t#list_toc_float li a {\r\n\t\tdisplay: block;\r\n\t\tcolor: #000;\r\n\t\tmargin-bottom: 6px;\r\n\t\tpadding-top: 2px;\r\n\t\tpadding-bottom: 2px;\r\n\t\ttransition: all 0.2s ease-in-out;\r\n\t\tfont-size: 15px;\r\n\t\tline-height: 18px;\r\n\t}\r\n\t#list_toc_float li{list-style:none;list-style-position:inside; margin-left:0;}\r\n\t#list_toc_float a:hover{color:#b1252d;}\r\n\t\r\n\t#toc_group_float{\r\n\t\tline-height: 24px;\r\n\t\tmax-height: calc(100vh - 100px);\r\n\t\toverflow: auto;\r\n\t\tz-index: 99;\r\n\t\tdisplay:none!important;\r\n\t\tbackground:#fff;\r\n\t\ttransition:all 0.5s linear\r\n\t}\r\n\t\r\n\t@media (min-width:1019px){\r\n\t\t#toc_group_float {\r\n\t\t\tdisplay:block!important;\r\n\t\t\t}\r\n\t\t\t\t#toc_group_article {\r\n\t\t\tdisplay:none;\r\n\t\t}\r\n\t}\r\n\r\n<\/style>\r\n\r\n<!-- ToC styling  -->\r\n<style>\r\n\t\/* Simple styling for the TOC *\/\r\n\t\r\n\t#toc ul li:last-child {\r\n    padding-bottom: 16px; \/* Adjust the value as needed *\/\r\n}\r\n\r\n.td-fix-index {\r\n\t transform: unset !important;\r\n     -webkit-transform: unset !important; \r\n}\r\n.footer-contact .td-fix-index {\r\n\t transform: translateZ(0) !important;\r\n     -webkit-transform: translateZ(0) !important; \r\n}\r\n\t.tdb_single_content .tdb-block-inner.td-fix-index{\r\n\t\tposition: static;\r\n\t}\r\n\t\r\n\r\n\t\r\n#toc {\r\n  background-color: #FFF;\r\n\tpadding: 17px 24px 0px 24px !important;\r\n  margin-bottom: 20px;\r\n\/*   border: 1px solid #9C171E; *\/\r\n  border-radius: 6px;\r\n\tdisplay: none;\r\n  max-width: 100%;\r\n  transition: .4s ease height;\r\n\tmargin-left: 0;\r\n\toverflow: hidden;\r\n}\r\n\r\n#toc .header{\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: space-between;\r\n\tbackground-color: transparent;\r\n}\r\n\t\r\n\t#toc.sticky .header{\r\n\t\tpadding: 4px 0;\r\n\t}\r\n\t\r\n.header p{\r\n  font-size: 18px !important;\r\n  font-weight: 600 !important;\r\n  color: #393939;\r\n   margin-bottom: 0;\r\n  \/* margin-top: 20px; *\/\r\n}\r\n\r\n.toc-icon{\r\n  float: right;\r\n\/*   visibility: hidden; *\/\r\n}\r\n\r\n\t.toc-title{\r\n\t\tmargin-right: auto;\r\n\/* \t\tpadding-left: 20px; *\/\r\n\t\tfont-weight: 600;\r\n\t\talign-self: center;\t}\t\r\n\r\n#toc ul {\r\n  list-style-type: none;\r\n  padding-left: 0;\r\n}\r\n\t\r\n#toc.sticky ul{\r\n\toverflow-y: auto;\r\n\tmax-height: 250px;\r\n\tmargin-top: 0px;\r\n\tpadding-top: 20px;\r\n\/* \tborder-top: 1px solid #d3d3d3; *\/\r\n}\r\n\t\r\n#toc ul li {\r\n\/*   margin-bottom: 10px; *\/\r\n  margin-bottom: 10px;\r\n\tmargin-left: 0;\r\n\ttransition: .2s ease;\r\n\tcursor: pointer;\r\n}\r\n\t\r\n\t#toc.sticky ul li {\r\n\t  margin-right: 10px;\r\n\t}\r\n\t\r\n.td-post-content #toc-list li a:hover, .td-post-content #toc-list a.active{\r\n\tbackground-color: #FFF;\r\n\/* \tpadding: 8px 16px 8px 16px; *\/\r\n\tpadding: 4px 16px 4px 16px;\r\n\tborder-radius: 6px;\r\n\tcolor: #9c171e !important;\r\n\tfont-weight: 600 !important;\r\n}\r\n\t\r\n\t.td-post-content #toc-list li:hover a, .td-post-content #toc-list a.active{\r\n\t\tcolor: #9C171E !important;\r\n\t\tfont-weight: 600 !important;\r\n\t}\r\n\t\r\n.td-post-content #toc-list a.active{\r\n\tfont-weight: bold !important;\r\n\tcolor: #9C171E !important;\r\n}\r\n\t\r\n#toc a, .td-post-content #toc-list a {\r\n  text-decoration: none;\r\n  color: #ea1717 !important;\r\n  transition: .2s ease;\r\n\tfont-weight: 400 !important;\r\n\tdisplay: block;\r\n\t\r\n\tpadding: 4px 16px 4px 0;\r\n}\r\n\r\n#toc.sticky {\r\n  position: fixed;\r\n\/*   top: 73px; *\/\r\n\tbottom: 0;\r\n  z-index: 100; \r\n  box-shadow: 0 2px 5px rgba(0,0,0,0.1); \r\n\twidth: 100%; \r\n\tbackground-color: #FFF;\r\n\/* \tbackground-color: #FFF1F1; *\/\r\n\tborder-bottom: 1px solid #ea1717;\r\n\/*   border: 1px solid #393939; *\/\r\n  box-shadow: 0px 0px 14px 0px #00000040;\r\n  cursor: pointer;\r\n\tanimation: fadein .3s ease;\r\n\tpadding: 12px 16px !important;\r\n}\r\n\t\r\n\t.fadein{\r\n\t\tanimation: fadein .3s ease;\r\n\t}\r\n\t\r\n\t.fadeout{\r\n\t\tanimation: fadeout .3s ease;\r\n\t}\r\n\t\r\n\t\r\n\t@keyframes fadein{\r\n\t\t0% {\r\n\t\t\topacity: 0;\r\n\t\t}\r\n\t\t100%{\r\n\t\t\topacity: 1;\r\n\t\t}\r\n\t}\r\n\t\r\n\t@keyframes fadeout{\r\n\t\t0% {\r\n\t\t\topacity: 1;\r\n\t\t}\r\n\t\t100%{\r\n\t\t\topacity: 0;\r\n\t\t}\r\n\t}\r\n\r\n\t\r\n#toc.sticky .header p{\r\n\tmargin-bottom: 10px;\r\n\tmargin-top: 10px;\r\n}\r\n\r\n#toc.sticky .toc-icon{\r\n  visibility: visible;\r\n\/* \ttransition: 0.4s ease; *\/\r\n}\r\n\t\r\n\t.toc-icon{\r\n\t\talign-items: center;\r\n    \tdisplay: flex;\r\n\t}\r\n\t\r\n\tsvg.header-icon{\r\n\/* \t\tbackground-color: #9c171e; *\/\r\n\t\tbackground-color: #FFF;\r\n\t\tborder-radius: 30px;\r\n\t\tpadding: 5px;\r\n\t}\r\n\r\n#toc.sticky .list{\r\n\/*   max-height: 0; *\/\r\n  transition: height 0.4s ease;\r\n}\r\n\t\r\n\t#toc .list{\r\n\/*   max-height: 0; *\/\r\n  transition: height 0.4s ease;\r\n}\r\n\r\n#toc .header.active .toc-icon{\r\n\ttransform: rotate(0deg); \r\n\topacity: 1;\r\n}\r\n\r\n\t#toc .header.active + .list {\r\n\t  max-height: 200px; \/* Adjust this value as needed *\/\r\n\t  opacity: 1;\r\n\t}\r\n\t\r\n\t#placeholder-toc{\r\n\/* \t\tdisplay: none; *\/\r\n\t}\r\n\t\r\n\t@media (min-width: 768px) and (max-width: 991px){\r\n\t\t#toc.sticky{\r\n\/* \t\t\ttop: 104px; *\/\r\n\t\t\tbottom: 0px;\r\n\t\t}\r\n\t\t\r\n\t\t#toc{\r\n\t\t\twidth: unset !important;\r\n\t\t}\r\n\t}\r\n\t\r\n\t@media (max-width: 767px){\r\n\t\t#toc{\r\n\t\t\twidth: 100% !important;\r\n\t\t\tdisplay: inline-block;\r\n\t\t}\r\n\t\t\r\n\t\t#toc.sticky{\r\n\t\t\twidth: 90% !important;\r\n\/* \t\t\ttop: 81px; *\/\r\n\t\t\tbottom: 60px;\r\n\t\t\tmargin-left: auto;\r\n\t\t\tmargin-right: auto;\r\n\t\t\tpadding: 0 16px;\r\n\t\t\tright: 5%;\r\n\t\t}\r\n\t}\r\n\t\r\n\t<\/style>\r\n\r\n<!-- ToC List for mobile -->\r\n<script>\r\n \/\/ Generate TOC based on headings\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n  \/\/ Get the element that will contain the TOC\r\n  const tocList = document.getElementById('toc-list');\r\n\r\n  \/\/ Get the element with the ID 'article-left'\r\n  const article = document.querySelector('.td-post-content');\r\n\r\n  \/\/ Find all h2 elements within 'myarticle'\r\n  const headers = article.getElementsByTagName('h2');\r\n\r\n  \/\/ Loop through the h2 elements and create a list item for each one\r\n  for (let i = 0; i < headers.length; i++) {\r\n    const header = headers[i];\r\n    const headerText = header.textContent;\r\n\/\/     const headerId = 'header-' + i;\r\n    const headerId = headerText\r\n    .toLowerCase()\r\n    .trim()\r\n    .replace(\/[^\\w\\s-]\/g, '')  \/\/ hapus tanda baca\r\n    .replace(\/\\s+\/g, '-'); \/\/ ganti spasi jadi \"-\"\r\n\r\n    \/\/ Set an ID for the header if it doesn't have one\r\n    header.setAttribute('id', headerId);\r\n\r\n    \/\/ Create a list item for the TOC\r\n    const listItem = document.createElement('li');\r\n\r\n    \/\/ Create a link for the list item\r\n    const link = document.createElement('a');\r\n    link.setAttribute('href', '#' + headerId);\r\n    link.textContent = headerText;\r\n\r\n    \/\/ Append the link to the list item\r\n    listItem.appendChild(link);\r\n\r\n    \/\/ Append the list item to the TOC list\r\n    tocList.appendChild(listItem);\r\n  }\r\n});\r\n\r\n\/\/ Keep height and placement of content using placeholder in place of TOC\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n  const toc = document.querySelector('#toc');\r\n  const placeholderToc = document.querySelector('#placeholder-toc');\r\n\r\n  function setPlaceholderHeight() {\r\n    placeholderToc.style.height = `${toc.offsetHeight}px`;\r\n  }\r\n\r\n  \/\/ Set the initial height of the placeholder\r\n  setPlaceholderHeight();\r\n\r\n  \/\/ Update the height on window resize\r\n  window.addEventListener('resize', setPlaceholderHeight);\r\n});\r\n  const tocTitle = document.querySelector('#toc-title'); \/\/ Assuming header-faq is the element for TOC title\r\n\r\n\/\/ Sticky TOC and update heading\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n  const toc = document.querySelector('#toc');\r\n  const footer = document.querySelector('.td-footer-template-wrap');\r\n  const tocParent = toc.parentElement;\r\n  const divTop = tocParent.getBoundingClientRect().top + window.pageYOffset;\r\n  const tocHeight = toc.offsetHeight;\r\n  const triggerPoint = divTop + tocHeight + 700;\r\n  const footerHeight = footer.offsetHeight;\r\n  const triggerFooterPoint = footer.getBoundingClientRect().top + window.pageYOffset - footerHeight - footerHeight - footerHeight;\r\n  const phtoc = document.querySelector('#placeholder-toc');\r\n  const headers = document.querySelectorAll('.td-post-content h2');\r\n  const navLinks = document.querySelectorAll('#toc-list a');\r\n\t\r\n\tconst panel2 = document.querySelector(\"#toc .list\");\r\n\tvar icon = document.querySelector(\".toc-icon\");\r\n\r\n  let activeLink = null; \/\/ Declare activeLink outside the loop\r\n\t\r\n  \/\/ Function to handle scroll and add\/remove .sticky class\r\n  function handleScroll() {\r\n    const windowTop = window.pageYOffset || document.documentElement.scrollTop;\r\n    let currentHeader = '';\r\n\r\n    \/\/ Highlight user progress as the heading comes\r\n    headers.forEach(header => {\r\n\t\tconst headerTop = header.offsetTop;\r\n\t\tconst headerHeight = header.clientHeight;\r\n\t\tif (window.scrollY >= (headerTop - headerHeight + 700)) {\r\n\t\t\tconst currentHeaderId = header.getAttribute('id');\r\n\t\t\tconst currentHeaderText = document.getElementById(currentHeaderId).textContent;\r\n\/\/ \t\t\tconsole.log(\"current header text:\", currentHeaderText);\r\n\t\t\ttocTitle.textContent = currentHeaderText;\r\n\t\t\tcurrentHeader = currentHeaderId;\r\n\t\t\t\r\n\t\t\tif(window.innerWidth < 767){\r\n\t\t\t\ttocTitle.textContent = 'Table of Content';\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n    navLinks.forEach(link => {\r\n      link.classList.remove('active');\r\n      if(currentHeader != '') {\r\n\t\t  if (link.getAttribute('href').includes(currentHeader)) {\r\n\t\t\t  link.classList.add('active');\r\n\t\t  }\r\n\t  }\r\n    });\r\n\/\/     if (windowTop < triggerFooterPoint) {\r\n\/\/         toc.style.display = 'block';\r\n\/\/ \t}else{\r\n\/\/         toc.style.display = 'none';\r\n\/\/ \t}\r\n    \/\/ Update TOC title if sticky\r\n    if (windowTop > triggerPoint) {\r\n      if (!toc.classList.contains('sticky')) {\r\n        phtoc.style.display = \"block\";\r\n        toc.classList.add('sticky');\r\n        toc.style.width = `${tocParent.offsetWidth}px`; \/\/ Set width to match the parent element\r\n        toc.setAttribute('style', 'width: ' + tocParent.offsetWidth + 'px !important;');\r\n        toc.style.backgroundColor = \"#FFF\";\r\n\t\tpanel2.style.height = '0px';\r\n\t\t  icon.style.transform = \"rotate(180deg)\";\r\n\t\t  if(window.innerWidth < 767){\r\n\/\/ \t\t\t  const tocs = document.querySelector('#toc.sticky');\r\n\t\t\t  tocTitle.textContent = 'Table of Content'; \/\/ Reset title\r\n       \t\t  toc.style.width = '150px'; \/\/ Set width to match the parent element\r\n\t\t  }\r\n      }\r\n      if (currentHeader) {\r\n\/\/         console.log(\"activeLink:\", activeLink);\r\n        if (activeLink) {\r\n\/\/           tocTitle.textContent = activeLink.textContent; \/\/ Update TOC title\r\n          tocTitle.textContent = activeLink ? activeLink.textContent : \"\"; \/\/ Update title only if activeLink exists\r\n        }\r\n      }\r\n    } else {\r\n      toc.classList.remove('sticky');\r\n      phtoc.style.display = \"none\";\r\n      toc.style.width = 'unset'; \/\/ Reset to original width\r\n      toc.style.backgroundColor = \"#FFF\";\r\n      tocTitle.textContent = 'Table of Content'; \/\/ Reset title\r\n\t\tpanel2.style.height = panel2.scrollHeight + \"px\";\r\n\t\ticon.style.transform = \"rotate(180deg)\";\r\n    }\r\n  }\r\n\r\n    \/\/ Attach the scroll event listener to the window\r\n    window.addEventListener('scroll', handleScroll);\r\n\r\n    \/\/ Initial call to handleScroll to set the correct state on load\r\n    handleScroll();\r\n});\r\n\t\r\n\t\/\/ Open toggle TOC\r\n\t  document.addEventListener(\"DOMContentLoaded\", function() {\r\n\t\tvar tocHeader = document.querySelector(\"#toc .header\");\r\n\t\tvar toc = document.querySelector(\"#toc\");\r\n\t\tvar icon = document.querySelector(\".toc-icon\");\r\n\t\tconst tocTitle = document.querySelector('#toc-title');\r\n\t\tconst tocs = document.querySelector('#toc.sticky');\r\n \t\tconst tocParent = toc.parentElement;\t\t  \r\n\r\n\t\t  tocHeader.addEventListener(\"click\", function() {\r\n\t\t\tvar panel = this.nextElementSibling;\r\n\t\t\tif (panel.style.height !== '0px') { \/\/ Check if height is not 0px\r\n\t\t\t  panel.style.height = '0px'; \/\/ Set height to 0 for full collapse\r\n\t\t\t  icon.style.transform = \"rotate(180deg)\";\r\n\/\/ \t\t\t\ttoc.style.paddingBottom = '6px'; \r\n\t\t\t\tif(window.innerWidth > 768){\r\n\t\t\t\t\tif(!toc.classList.contains('sticky')){\r\n\t\t\t\t\t\ttoc.style.width = \"unset\";\r\n\/\/ \t\t\t\t\t\ttoc.setAttribute('style', 'width: ' + tocParent.offsetWidth + 'px !important;');\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (toc.classList.contains('sticky')){\r\n\t\t\t\t\t\ttoc.style.width = '${tocParent.offsetWidth}px';\r\n\t\t\t\t\t\ttoc.setAttribute('style', 'width: ' + tocParent.offsetWidth + 'px !important;');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif(window.innerWidth < 767){\r\n\t\t\t\t\ttoc.style.width = \"unset\"; \/\/ Reset width\r\n\t\t\t\t}\r\n\t\t\t\ttoc.style.backgroundColor = \"#FFF1F1\";\r\n\t\t\t} else {\r\n\t\t\t  panel.style.height = panel.scrollHeight + \"px\";\r\n\t\t\t  icon.style.transform = \"rotate(0deg)\";\r\n\t\t\t  toc.style.backgroundColor = \"#FFF\";\r\n\t\t\t  tocTitle.textContent = 'Table of Content'; \/\/ Reset title\r\n\t\t\t\ttoc.style.paddingBottom = '24px';\r\n\t\t\t \tif(window.innerWidth < 767){\r\n\t\t\t\t\ttoc.style.width = `${tocParent.offsetWidth}px`; \/\/ Set width to match the parent element\r\n\t\t\t\t\ttoc.setAttribute('style', 'width: ' + tocParent.offsetWidth + 'px !important;');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t  });\r\n\r\n\t\t  \/\/ Close TOC when a link inside it is clicked\r\n\t\t  var tocLinks = document.querySelectorAll(\"#toc .list a\");\r\n\t\t  tocLinks.forEach(function(link) {\r\n\t\t\tlink.addEventListener(\"click\", function() {\r\n\t\t\t  var panel = document.querySelector(\"#toc .list\");\r\n\t\t\t  panel.style.height = '0px'; \/\/ Set height to 0 for full collapse\r\n\t\t\t  icon.style.transform = \"rotate(180deg)\";\r\n\t\t\t  toc.style.backgroundColor = \"#FFF\";\r\n\t\t\t});\r\n\t\t  });\r\n\t\t});\r\n\r\n\r\n\r\n\t\r\n\/\/ \tmake the heading at the center of the viewport\r\n\/\/ \tdocument.addEventListener('DOMContentLoaded', function() {\r\n\/\/     \/\/ Add click event listener to all links in the TOC list\r\n\/\/     document.querySelectorAll('#toc-list a').forEach(anchor => {\r\n\/\/         anchor.addEventListener('click', function (e) {\r\n\/\/             e.preventDefault(); \/\/ Prevent the default behavior of jumping to the anchor\r\n\/\/ \/\/ \t\t\tconsole.log(\"prevent default\");\r\n\/\/             const targetId = this.getAttribute('href').substring(1); \/\/ Get the ID of the target element\r\n\/\/             const targetElement = document.getElementById(targetId); \/\/ Get the target element\r\n\r\n\/\/             if (targetElement) {\r\n\/\/                 const headerHeight = document.querySelector('#toc .header').offsetHeight; \/\/ Get the height of the fixed header\r\n\/\/                 const windowHeight = window.innerHeight; \/\/ Get the height of the viewport\r\n\/\/                 const targetOffset = targetElement.offsetTop; \/\/ Get the top offset of the target element\r\n\/\/                 const scrollTo = targetOffset + (windowHeight \/ 2) + (headerHeight); \/\/ Calculate the scroll position to center the target element\r\n\r\n\/\/                 \/\/ Scroll to the calculated position smoothly\r\n\/\/                 window.scrollTo({\r\n\/\/                     top: scrollTo,\r\n\/\/                     behavior: 'smooth'\r\n\/\/                 });\r\n\/\/             }\r\n\/\/         });\r\n\/\/     });\r\n\/\/ });\r\n<\/script>\r\n\r\n<!-- START script lama -->\r\n<!-- <script>\r\n\/\/ \tvar pilihDaftarIsi = document.getElementById('pilihDaftarIsi');\r\n\t\r\n\/\/ \tdocument.addEventListener('DOMContentLoaded', function() {\r\n\/\/ \t\tvar dropdownFixedTop = document.querySelector('.dropdown-fixed-top');\r\n\r\n\/\/ \t\tdropdownFixedTop.addEventListener('click', function() {\r\n\/\/ \t\t\tvar dropdownContent = this.querySelector('.list_toc');\r\n\/\/ \t\t\tdropdownContent.classList.toggle('show');\r\n\/\/ \t\t});\r\n\r\n\/\/ \t\twindow.addEventListener('click', function(event) {\r\n\/\/ \t\t\tvar listTocTop = document.getElementById('list_toc_top');\r\n\r\n\/\/ \t\t\tif (!dropdownFixedTop.contains(event.target)) {\r\n\/\/ \t\t\t\tlistTocTop.classList.remove('show');\r\n\/\/ \t\t\t}\r\n\/\/ \t\t});\r\n\/\/ \t});\r\n\t\r\n\/\/ \tvar daftarIsiContainer = document.getElementById('toc_group_article');\r\n\/\/ \tvar dropdownFixedTop = document.getElementById('dropdown-fixed-top');\r\n\/\/     var triggered = false; \/\/ Flag to keep track of whether the function has been triggered\r\n\r\n\/\/     window.addEventListener('scroll', function() {\r\n\/\/         if (!triggered && isCompletelyScrolledPast(daftarIsiContainer)) {\r\n\/\/             showSectionDropdownFixedTop(false);\r\n\/\/             triggered = true;\r\n\/\/         } else if (triggered && !isCompletelyScrolledPast(daftarIsiContainer)) {\r\n\/\/             showSectionDropdownFixedTop(true);\r\n\/\/             triggered = false;\r\n\/\/         }\r\n\/\/     });\r\n\r\n\/\/     function isCompletelyScrolledPast(element) {\r\n\/\/         var elementTop = element.getBoundingClientRect().top;\r\n\/\/         var elementBottom = element.getBoundingClientRect().bottom;\r\n\/\/         return elementTop < 0 && elementBottom < 0;\r\n\/\/     }\r\n\r\n\/\/     function showSectionDropdownFixedTop(show) {\r\n\/\/ \t\tif (show) {\r\n\/\/ \t\t\tdropdownFixedTop.classList.remove(\"show\");\r\n\/\/ \t\t} else {\r\n\/\/ \t\t\tdropdownFixedTop.classList.add(\"show\");\r\n\/\/ \t\t}\r\n\/\/     }\r\n<\/script> -->\r\n<!-- <script>\r\n    \/\/ Scrollspy function to highlight the active TOC item based on the scroll position\r\n  function scrollSpy(tocClass) {\r\n    const scrollPosition = window.scrollY;\r\n\r\n    \/\/ Find the active h2 and h3 headings based on their position in the corresponding TOC\r\n    let activeH2 = null;\r\n    let activeH3 = null;\r\n\r\n    const tocItems = document.querySelectorAll(`.${tocClass} li`);\r\n    tocItems.forEach(item => {\r\n      const a = item.querySelector('a');\r\n      if (!a) return;\r\n      const href = a.getAttribute('href');\r\n      const targetId = href.substring(1); \/\/ Remove the '#' from the href to get the target ID\r\n      const targetElement = document.getElementById(targetId);\r\n      if (!targetElement) return;\r\n\r\n      const targetTop = targetElement.getBoundingClientRect().top + scrollPosition;\r\n      const nextItem = item.nextElementSibling;\r\n      const nextTop = nextItem ? nextItem.getBoundingClientRect().top + scrollPosition : Infinity;\r\n\r\n      if (targetTop <= scrollPosition + 150) {\r\n        if (a.parentElement.parentElement === tocItems) {\r\n          \/\/ The h2 heading is at the root level of the TOC\r\n          activeH2 = { id: targetId, level: 'h2' };\r\n        } else {\r\n          \/\/ The h3 heading is nested under an h2 heading\r\n          const parentH2 = a.parentElement.parentElement.previousElementSibling;\r\n          if (parentH2) {\r\n            const h2Link = parentH2.querySelector('a');\r\n            if (h2Link) {\r\n              const h2Href = h2Link.getAttribute('href');\r\n              const h2Id = h2Href.substring(1);\r\n              activeH2 = { id: h2Id, level: 'h2' };\r\n            }\r\n          }\r\n          activeH3 = { id: targetId, level: 'h3' };\r\n        }\r\n      }\r\n\r\n      if (targetTop > scrollPosition + 150 && nextTop > scrollPosition + 150 && !activeH3) {\r\n        \/\/ Reset the activeH2 when there are no more active h3 headings\r\n        activeH2 = null;\r\n      }\r\n    });\r\n\r\n    \/\/ Update the active state for the TOC items\r\n    tocItems.forEach(item => {\r\n      item.classList.remove('active');\r\n      const a = item.querySelector('a');\r\n      if (a) {\r\n        const href = a.getAttribute('href');\r\n        const targetId = href.substring(1);\r\n        if ((activeH2 && activeH2.id === targetId) || (activeH3 && activeH3.id === targetId)) {\r\n          item.classList.add('active');\r\n\t\t  pilihDaftarIsi.innerHTML = a.textContent;\r\n        }\r\n      }\r\n    });\r\n  }\r\n\r\n  \/\/ Call scrollSpy for each TOC on window scroll\r\n  const tocClasses = ['list_toc', 'list_toc_float', 'list_toc_top']; \/\/ Add other TOC class names here if you have more than two instances\r\n  tocClasses.forEach(tocClass => {\r\n    window.addEventListener('scroll', () => scrollSpy(tocClass));\r\n  });\r\n<\/script> -->\r\n<!-- END script lama -->\r\n\t\r\n<script>\r\n    \/\/ Scrollspy function to highlight the active TOC item based on the scroll position\r\n  function scrollSpy(tocClass) {\r\n    const scrollPosition = window.scrollY;\r\n\r\n    \/\/ Find the active h2 and h3 headings based on their position in the corresponding TOC\r\n    let activeH2 = null;\r\n    let activeH3 = null;\r\n\r\n    const tocItems = document.querySelectorAll(`.${tocClass} li`);\r\n    tocItems.forEach(item => {\r\n      const a = item.querySelector('a');\r\n      if (!a) return;\r\n      const href = a.getAttribute('href');\r\n      const targetId = href.substring(1); \/\/ Remove the '#' from the href to get the target ID\r\n      const targetElement = document.getElementById(targetId);\r\n      if (!targetElement) return;\r\n\r\n      const targetTop = targetElement.getBoundingClientRect().top + scrollPosition;\r\n      const nextItem = item.nextElementSibling;\r\n      const nextTop = nextItem ? nextItem.getBoundingClientRect().top + scrollPosition : Infinity;\r\n\r\n      if (targetTop <= scrollPosition + 150) {\r\n        if (a.parentElement.parentElement === tocItems) {\r\n          \/\/ The h2 heading is at the root level of the TOC\r\n          activeH2 = { id: targetId, level: 'h2' };\r\n        } else {\r\n          \/\/ The h3 heading is nested under an h2 heading\r\n          const parentH2 = a.parentElement.parentElement.previousElementSibling;\r\n          if (parentH2) {\r\n            const h2Link = parentH2.querySelector('a');\r\n            if (h2Link) {\r\n              const h2Href = h2Link.getAttribute('href');\r\n              const h2Id = h2Href.substring(1);\r\n              activeH2 = { id: h2Id, level: 'h2' };\r\n            }\r\n          }\r\n          activeH3 = { id: targetId, level: 'h3' };\r\n        }\r\n      }\r\n\r\n      if (targetTop > scrollPosition + 150 && nextTop > scrollPosition + 150 && !activeH3) {\r\n        \/\/ Reset the activeH2 when there are no more active h3 headings\r\n        activeH2 = null;\r\n      }\r\n    });\r\n\r\n    \/\/ Update the active state for the TOC items\r\n    tocItems.forEach(item => {\r\n      item.classList.remove('active');\r\n      const a = item.querySelector('a');\r\n      if (a) {\r\n        const href = a.getAttribute('href');\r\n        const targetId = href.substring(1);\r\n        if ((activeH2 && activeH2.id === targetId) || (activeH3 && activeH3.id === targetId)) {\r\n          item.classList.add('active');\r\n        }\r\n      }\r\n    });\r\n  }\r\n\r\n  \/\/ Call scrollSpy for each TOC on window scroll\r\n  const tocClasses = ['list_toc', 'list_toc_float']; \/\/ Add other TOC class names here if you have more than two instances\r\n  tocClasses.forEach(tocClass => {\r\n    window.addEventListener('scroll', () => scrollSpy(tocClass));\r\n  });\r\n<\/script>\r\n\t\r\n\r\n<!-- ToC List for desktop side bar, diganti jadi inject by php, di code snippet \"Sidebar Accordion\" -->\r\n<!--  <script>\r\n\tdocument.addEventListener(\"DOMContentLoaded\", function() {\r\nToC List for desktop side bar, diganti jadi inject by php, di code snippet \"Sidebar Accordion\"\r\n        Fungsi untuk mengubah teks menjadi format id\r\n        function formatId(text) {\r\n            return text.trim().replace(\/[^\\w\\d]+\/g, '_');\r\n        }\r\n\r\n        \/\/ Fungsi untuk membuat nested list\r\n        function createNestedList(parentNode, children) {\r\n            if (children.length === 0) return;\r\n\r\n            const nestedUl = document.createElement('ul');\r\n            children.forEach(child => {\r\n                const nestedLi = document.createElement('li');\r\n                const nestedA = document.createElement('a');\r\n                nestedA.textContent = child.title;\r\n                nestedA.href = `#${child.id}`;\r\n                nestedLi.appendChild(nestedA);\r\n                nestedUl.appendChild(nestedLi);\r\n\r\n                if (child.children.length > 0) {\r\n                    createNestedList(nestedLi, child.children);\r\n                }\r\n            });\r\n\r\n            parentNode.appendChild(nestedUl);\r\n        }\r\n\r\n        \/\/ Membuat objek untuk menyimpan daftar h2 dan h3 beserta judulnya\r\n        const headings = [];\r\n\r\n           \/\/ Mengambil semua elemen h2 dan h3\r\n        const elements = document.querySelectorAll('.td-post-content h2');\r\n\t\t\t\/\/, .td-post-content h3\r\n\r\n        elements.forEach(element => {\r\n            if (element.tagName === 'H2') {\r\n                const id = formatId(element.textContent);\r\n                element.id = id;\r\n\t\t\t\tif (element.textContent.toLowerCase() === \"key takeaways\") {return;} \/\/ Kalau Key Takeaways, jangan dimasukin\r\n                headings.push({ level: 'h2', id: id, title: element.textContent, children: [] });\r\n            } else if (element.tagName === 'H3') {\r\n                const id = formatId(element.textContent);\r\n                element.id = id;\r\n                if (headings.length > 0) {\r\n                    headings[headings.length - 1].children.push({ level: 'h3', id: id, title: element.textContent, children: [] });\r\n                }\r\n            }\r\n        });\r\n\r\n        \/\/ Membuat list HTML dari objek headings\r\n        const ul = document.getElementById('list_toc');\r\n        let currentUl = ul;\r\n        headings.forEach(heading => {\r\n            const li = document.createElement('li');\r\n            const a = document.createElement('a');\r\n            a.textContent = heading.title;\r\n            a.href = `#${heading.id}`;\r\n            li.appendChild(a);\r\n\r\n            if (heading.level === 'h2') {\r\n                \/\/ Menyimpan ul saat ini untuk menambahkan nested ul\r\n                currentUl = li;\r\n                ul.appendChild(li);\r\n            } else if (heading.level === 'h3') {\r\n                if (!currentUl.lastElementChild || currentUl.lastElementChild.tagName !== 'UL') {\r\n                    \/\/ Jika belum ada nested ul, buat satu\r\n                    const nestedUl = document.createElement('ul');\r\n                    currentUl.appendChild(nestedUl);\r\n                    currentUl = nestedUl;\r\n                }\r\n                currentUl.appendChild(li);\r\n            }\r\n\r\n            createNestedList(li, heading.children);\r\n        });\r\n\t\tDapatkan elemen ul dengan id 'list_toc_float'\r\nconst ulFloat = document.getElementById('list_toc');\r\nconst ulJourney = document.getElementById('list_journey');\r\n\r\nDapatkan isi (child elements) dari ul dengan id 'list_toc_float'\r\n\tif (ulFloat !== null) {\r\n\t\tconst clonedChildren = ulFloat.cloneNode(true).children;\r\n\t\tconst ulToc = document.getElementById('list_toc_float');\r\n\t\tconst ulTocTop = document.getElementById('list_toc_top');\r\n\t\tif ((ulToc !== null || ulToc !== undefined) && window.innerWidth > 1018){\r\n\t\t\tulToc.append(...clonedChildren);\r\n\t\t} else {\r\n\t\t\tulTocTop.append(...clonedChildren);\r\n\t\t}\r\n\t} \r\n\r\n\tif (ulJourney !== null) {\r\n\t\tconst clonedChildrenJourney = ulJourney.cloneNode(true).children;\r\n\t\tconst ulTocJourney = document.getElementById('list_toc_journey');\r\n\t\tulTocJourney.append(...clonedChildrenJourney);\r\n\t} \r\n\t\r\n        Fungsi untuk mengambil tinggi navbar\r\n        function getNavbarHeight() {\r\n            const navbar = document.getElementById('tdi_34');\r\n            return navbar ? navbar.offsetHeight : 0;\r\n        }\r\n\r\n        \/\/ Fungsi untuk menambahkan offset posisi scroll\r\n        function scrollToElementWithOffset(elementId) {\r\n            const element = document.getElementById(elementId);\r\n            if (element) {\r\n                const offset = getNavbarHeight();\r\n                const elementPosition = element.getBoundingClientRect().top;\r\n                const offsetPosition = elementPosition - offset-40;\r\n\r\n                window.scrollBy({\r\n                    top: offsetPosition,\r\n                    behavior: 'smooth'\r\n                });\r\n            }\r\n        }\r\n\r\n        \/\/ Fungsi untuk menangani klik pada tautan judul\r\n        function handleTitleClick(event) {\r\n            event.preventDefault();\r\n            const href = event.target.getAttribute('href').substr(1);\r\n            scrollToElementWithOffset(href);\r\n        }\r\n\r\n        \/\/ Tambahkan event listener untuk semua tautan judul\r\n        const titleLinks = document.querySelectorAll('a[href^=\"#\"]');\r\n        titleLinks.forEach(link => {\r\n            link.addEventListener('click', handleTitleClick);\r\n        });\r\n\t});\r\n    <\/script> -->\r\n\n<table style=\"border-collapse: collapse; background-color: #fffacd; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); border-radius: 25px 25px 25px 25px;\" width=\"100%\">\n<tbody>\n<tr>\n<td style=\"padding: 15px; border: none;\">\n<h3 style=\"margin-bottom: 10px;\"><span style=\"background-color: #8a0e19; color: #ffffff; padding: 5px;\"><b>Key Takeaways<\/b><\/span><\/h3>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"#1\">Withholding tax in Singapore<\/a> is a tax deducted on certain payments to non-residents before funds are paid.<\/li>\n<li aria-level=\"1\">Interest, royalties, technical service fees, management fees, rent for movable property, and directors\u2019 fees paid to non-residents are the <a href=\"#2\">payments subject to withholding tax in Singapore<\/a>.<\/li>\n<li aria-level=\"1\"><a href=\"#3\">Double Taxation Agreements<\/a> reduce or eliminate Singapore withholding tax on certain cross-border payments by applying lower treaty rates when eligibility conditions are met.<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 id=\"understanding-the-fundamentals-of-withholding-tax-in-singapore\"><strong><span id=\"1\">Understanding the Fundamentals of Withholding Tax in Singapore<\/span><\/strong><\/h2>\n<p>Withholding tax is a way for governments to collect tax at the point of payment. In Singapore, when a payer makes certain payments to a non-resident for income sourced in Singapore, part of the payment must be withheld and remitted to IRAS.<\/p>\n<p>The rules mainly come from the Singapore Income Tax Act, which defines what income is treated as Singapore-sourced and taxable. Because the recipient is outside Singapore\u2019s filing reach, the obligation shifts to the local payer to withhold before funds are sent out.<\/p>\n<p>Non-resident status depends on tax residency rules, not just incorporation or nationality. Companies are usually non-resident if control and management happen outside Singapore, while individuals are assessed based on how long they stay or work in Singapore.<\/p>\n<h2 id=\"categories-of-payments-subject-to-withholding-tax\"><strong><span id=\"2\">Categories of Payments Subject to Withholding Tax<\/span><\/strong><\/h2>\n<p>Withholding tax applies only to specific payments to non-residents under the Income Tax Act, particularly Sections 12(6) and 12(7), such as interest, royalties, technical fees, and rent. Getting the classification right is critical because mistakes can lead to underpaid taxes or unnecessary extra tax costs.<\/p>\n<h3><strong>1. Interest, Commissions, and Fees Related to Loans<\/strong><\/h3>\n<p>Payments made in connection with any loan or indebtedness are subject to WHT. This includes interest payments on loans, as well as commissions and fees related to the arrangement, management, or guarantee of such loans.<\/p>\n<p>For example, if a Singapore company borrows money from a foreign bank that does not have a branch in Singapore, the interest paid on that loan is subject to WHT. The prevailing rate is typically 15%, but this can be reduced under Double Taxation Agreements (DTAs) or specific government exemptions designed to encourage foreign lending.<\/p>\n<h3><strong>2. Royalties and Rights of Use<\/strong><\/h3>\n<p>Royalties paid for the use of, or the right to use, intellectual property are a common trigger for WHT. This includes payments for the use of patents, copyrights, trademarks, scientific, technical, industrial, or commercial knowledge or information.<\/p>\n<p>In the digital age, this category has become increasingly complex. Payments for software licenses, database access, and digital content distribution often blur the line between royalties and service payments. Generally, the WHT rate for royalties is 10%, but again, this is subject to the provisions of any applicable tax treaty.<\/p>\n<h3><strong>3. Management Fees and Technical Assistance<\/strong><\/h3>\n<p>Section 12(7)(b) of the Income Tax Act imposes WHT on payments for the management or assistance in the management of any trade, business, or profession. This is often referred to as &#8220;management fees.&#8221; Additionally, payments for technical assistance or service fees fall under this umbrella.<\/p>\n<p>However, a critical distinction exists here: WHT on these services is typically only applicable if the services are rendered <em>in<\/em> Singapore. If a non-resident consultant performs the work entirely from their home country and does not come to Singapore, WHT may not apply, provided there is no permanent establishment in Singapore.<\/p>\n<p>The prevailing rate for these payments is the prevailing corporate tax rate (currently 17%) for non-resident companies, though administrative concessions often allow a reduced rate or exemption under specific conditions.<\/p>\n<p><strong>Read more: <a href=\"https:\/\/www.hashmicro.com\/blog\/cloud-accounting-5-reasons-why-company-should-switch\/\">Cloud Accounting: What It Is and Why You Should Use It<\/a><\/strong><\/p>\n<h3><strong>4. Rent for Movable Property<\/strong><\/h3>\n<p>Payments for the rent or use of movable property are also subject to WHT. This category includes the leasing of equipment, machinery, ships, or aircraft. For instance, a construction company in Singapore leasing a specialized crane from a German company would need to withhold tax on the rental payments.<\/p>\n<p>The rate is typically 15%. It is vital to note that this applies to <em>movable<\/em> property; rent paid for real estate (immovable property) creates a different set of tax implications, typically involving property tax and income tax on rental income, but handled differently from the Section 12(7) WHT regime.<\/p>\n<h3><strong>5. Director&#8217;s Remuneration<\/strong><\/h3>\n<p>When a Singapore company pays remuneration to a non-resident director, WHT applies. This includes salary, bonuses, director&#8217;s fees, and other accommodations or allowances. The rate is generally 22% (or 24% from the Year of Assessment 2024 onwards, aligning with the top marginal personal income tax rate).<\/p>\n<p>Unlike other categories where treaties might offer significant relief, director&#8217;s fees are often taxed in the country where the company is resident, meaning WHT is almost always applicable unless specific exemptions exist.<\/p>\n<h2 id=\"withholding-tax-rates-and-calculation-methods\"><strong>Withholding Tax Rates and Calculation Methods<\/strong><\/h2>\n<p>Determining the correct rate is critical for compliance. The rates vary depending on the type of payment and the recipient&#8217;s legal status (individual or company). The standard domestic rates are set by the Income Tax Act, but this act as a ceiling. In practice, the actual rate applied is often lower due to tax treaties or administrative concessions.<\/p>\n<ul>\n<li><strong>Interest and related payments:<\/strong> The standard rate is 15%. However, this is a final tax for non-residents if the income is not derived from a trade or business carried on in Singapore.<\/li>\n<li><strong>Royalties:<\/strong> The standard rate is 10% (reduced from 15% previously). This is also typically a final tax.<\/li>\n<li><strong>Technical Assistance and Management Fees:<\/strong> For non-resident companies, the rate is the prevailing corporate tax rate of 17%. For non-resident individuals, it is 22% (or 24% from YA 2024). However, if the services are performed entirely outside Singapore, they may be exempt.<\/li>\n<li><strong>Rent on Movable Property:<\/strong> The standard rate is 15%.<\/li>\n<li><strong>Time Charter Fees and Bareboat Charter Fees:<\/strong> These have specific rates, often 1% to 3%, depending on the nature of the charter and the residence of the ship owner.<\/li>\n<\/ul>\n<p><strong>Gross vs. Net Payments:<\/strong><\/p>\n<p>A common source of confusion is whether the tax should be calculated on the gross amount or on the contract-stipulated &#8220;net of tax&#8221; payment. If the contract states that the non-resident must receive a specific net amount (e.g., $10,000), the Singapore payer must bear the tax cost.<\/p>\n<p>In this scenario, the tax is calculated on a &#8220;re-grossed&#8221; basis. This means the $10,000 is treated as the after-tax amount, and the payer must calculate the gross amount that, after tax deduction, yields $10,000. This significantly increases the service cost for the Singapore company, as it effectively covers the vendor&#8217;s tax liability.<\/p>\n<h2 id=\"the-role-of-double-taxation-agreements-dtas\"><strong><span id=\"3\">The Role of Double Taxation Agreements (DTAs)<\/span><\/strong><\/h2>\n<p>Singapore has Double Taxation Agreements with over 80 jurisdictions to prevent the same income being taxed twice. For businesses, DTAs can significantly reduce withholding tax on cross-border payments.<\/p>\n<p>Under a DTA, withholding tax rates on items like interest and royalties are often lower than Singapore\u2019s domestic rates. To claim the reduced rate, the non-resident payee usually must provide a Certificate of Residence from their home tax authority.<\/p>\n<p>Always review the specific DTA article, as definitions and conditions may differ from Singapore domestic tax rules. Many treaties also allow business profits to be taxed only in the payee\u2019s home country, unless the payee has a permanent establishment in Singapore, which can affect whether service fees are subject to withholding tax.<\/p>\n<p><strong>Read more: <a href=\"https:\/\/www.hashmicro.com\/blog\/management-vs-financial-accounting\/\">How Is Management Accounting Different from Financial Accounting?<\/a><\/strong><\/p>\n<h2 id=\"compliance-filing\"><strong>Procedural Compliance: Filing and Payment (IR37)<\/strong><\/h2>\n<p>The administrative side of Withholding Tax involves strict deadlines and specific forms. The primary form used for filing WHT is the <strong>IR37<\/strong>.<\/p>\n<p>The filing and payment must be made to IRAS by the 15th of the second month following the date of payment to the non-resident. For example, if a payment is made to a vendor on January 10th, the withholding tax must be filed and paid by March 15th.<\/p>\n<p><strong>Definition of &#8220;Date of Payment&#8221;:<\/strong> Determining the exact date of payment is crucial for establishing the deadline. Under the law, the date of payment is the <em>earliest<\/em> of the following:<\/p>\n<ul>\n<li>The date the payment is due and payable under the contract.<\/li>\n<li>The date the payment is actually made (cash, cheque, bank transfer).<\/li>\n<li>The date the payment is credited to the non-resident&#8217;s account (e.g., in the payer&#8217;s accounting records).<\/li>\n<li>The date of the director&#8217;s resolution (for director&#8217;s fees).<\/li>\n<\/ul>\n<p>This definition means that even if cash has not physically left the company&#8217;s bank account, simply accruing the liability in the accounting books can trigger the WHT obligation. Finance teams must be vigilant in monitoring accruals for non-resident services to avoid late filing penalties.<\/p>\n<p><strong>Electronic Filing:<\/strong> IRAS has moved almost entirely to digital platforms. WHT returns must be filed electronically via the myTax Portal. The payment is typically made via GIRO, which allows for seamless deduction from the company&#8217;s bank account.<\/p>\n<p>Once the tax is paid, IRAS issues a confirmation, which the Singapore payer can provide to the non-resident vendor as proof of tax payment. This proof is often required by the vendor to claim foreign tax credits in their home country.<\/p>\n<h2 id=\"challenges-solutions\"><strong>Common Roadblocks and Strategic Solutions<\/strong><\/h2>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-79116\" src=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2026\/01\/Common-Roadblocks-and-Strategic-Solutions.webp\" alt=\"Common-Roadblocks-and-Strategic-Solutions\" width=\"1200\" height=\"675\" srcset=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2026\/01\/Common-Roadblocks-and-Strategic-Solutions.webp 1200w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2026\/01\/Common-Roadblocks-and-Strategic-Solutions-300x169.webp 300w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2026\/01\/Common-Roadblocks-and-Strategic-Solutions-1024x576.webp 1024w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2026\/01\/Common-Roadblocks-and-Strategic-Solutions-768x432.webp 768w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2026\/01\/Common-Roadblocks-and-Strategic-Solutions-747x420.webp 747w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2026\/01\/Common-Roadblocks-and-Strategic-Solutions-150x84.webp 150w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2026\/01\/Common-Roadblocks-and-Strategic-Solutions-696x392.webp 696w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2026\/01\/Common-Roadblocks-and-Strategic-Solutions-1068x601.webp 1068w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/p>\n<p>Despite the regime&#8217;s structure, businesses frequently encounter pitfalls that lead to non-compliance or financial losses. Understanding these challenges is the first step toward mitigation.<\/p>\n<h3><strong>1. Misclassification of Software Payments<\/strong><\/h3>\n<p>Software payments are often disputed because they may be treated as royalties (rights to use copyrighted works) or as purchases of standard software. In general, end-use \u201cshrink-wrap\u201d or standard licences are typically not subject to WHT, but rights to modify, resell, or sub-license are usually treated as royalties, so defaulting to 10% \u201cjust in case\u201d can create unnecessary costs.<\/p>\n<h3><strong>2. The \u201cGrossing Up\u201d Trap<\/strong><\/h3>\n<p>If a contract states that payments must be made \u201cfree and clear of all taxes,\u201d the Singapore payer may have to pay the WHT instead of deducting it from the vendor\u2019s invoice. This means a $100,000 fee at 10% WHT can end up costing about $111,111, so it\u2019s critical to negotiate tax clauses early or budget for the gross-up impact.<\/p>\n<h3><strong>3. Late Filing Penalties<\/strong><\/h3>\n<p>Late filing triggers a 5% penalty on the unpaid tax, plus an additional 1% per completed month until paid, capped at 15%, which can add up fast. The usual issue is poor coordination between accounts payable and tax, so having a process or system that flags non-resident payments helps prevent missed deadlines.<\/p>\n<h3><strong>4. Solution: Digital Transformation in Tax Management<\/strong><\/h3>\n<p>Modern ERP and finance systems can identify non-resident vendors, apply the correct WHT logic, and prepare data for filing, reducing manual errors. The most important factor is configurable tax rules and controls, such as blocking foreign payments until the WHT portion is properly accounted for, so the setup can keep up with treaty or rate changes.<\/p>\n<h2 id=\"industry-cases\"><strong>Industry-Specific Use Cases<\/strong><\/h2>\n<p>The impact of WHT varies significantly across sectors, necessitating tailored compliance approaches.<\/p>\n<h3><strong>1. Technology and SaaS Sector<\/strong><\/h3>\n<p>In the tech industry, cross-border payments for cloud services, API access, and software development occur daily. A Singapore SaaS company might pay a US firm for server hosting (AWS\/Azure), an Indian firm for coding services, and a European firm for marketing analytics.<\/p>\n<p><strong>Analysis:<\/strong> Server hosting fees are generally not subject to WHT as they are considered payments for the use of equipment or facilities outside Singapore (if servers are offshore) or business profits.<\/p>\n<p>However, payments for coding could be technical fees. If the Indian developers do not enter Singapore, no WHT applies. If they send a team to Singapore for integration, WHT applies to the portion of work done locally. Distinguishing these elements in the invoice is vital.<\/p>\n<h3><strong>2. Construction and Engineering<\/strong><\/h3>\n<p>Construction projects often rely on foreign expertise and equipment. A Singapore construction firm might lease heavy machinery from Japan and hire consultants from the UK.<br \/>\n<strong>Analysis:<\/strong> The lease payments for machinery are subject to 15% WHT (rent on movable property). The consulting fees are subject to the prevailing corporate rate if the consultants are present in Singapore.<\/p>\n<p>However, under the Singapore-UK DTA, if UK consultants are in Singapore for less than a specified period (e.g., 183 days) and do not form a Permanent Establishment, they may be exempt. Tracking the exact number of days foreign personnel spend on-site is a compliance necessity in this sector.<\/p>\n<h3><strong>3. Event Management and Entertainment<\/strong><\/h3>\n<p>Organizing international conferences or concerts involves paying foreign speakers, artists, and production crews.<\/p>\n<p><strong>Analysis:<\/strong> Payments to non-resident public entertainers (musicians, athletes) are subject to a concessionary WHT rate of 10% (reduced from 15% previously). This applies to their gross income.<\/p>\n<p>However, defining what constitutes a &#8220;public entertainer&#8221; vs. a &#8220;speaker&#8221; at a business conference is key. Business speakers may fall under the &#8220;professional services&#8221; category for individuals, taxed at 22% (or 24% from 2024), unless the &#8220;60-day rule&#8221; exemption applies (where short-term employment of less than 60 days is exempt).<\/p>\n<p><strong>Read more: <a href=\"https:\/\/www.hashmicro.com\/blog\/how-to-find-the-best-cloud-accounting\/\">What Is Cloud Accounting and Its Key Benefits<\/a><\/strong><\/p>\n<h2 id=\"future-trends\"><strong>Future Trends: The Evolving Landscape of Tax Compliance<\/strong><\/h2>\n<p>The landscape of international taxation is undergoing a seismic shift, driven by digitalization and global cooperation. Singapore, as a global business hub, is at the forefront of these changes.<\/p>\n<h3><strong>1. BEPS 2.0 and the Global Minimum Tax<\/strong><\/h3>\n<p>The OECD&#8217;s Base Erosion and Profit Shifting (BEPS) 2.0 initiative introduces a global minimum tax of 15% for large multinational enterprises (MNEs). While this primarily targets corporate income tax, it interacts with WHT.<\/p>\n<p>WHT paid in source countries is often considered a &#8220;covered tax&#8221; when calculating the effective tax rate. As Singapore implements the Domestic Top-up Tax (DTT) to align with Pillar Two rules, MNEs will need to rigorously track WHT payments to ensure they are accurately reflected in their global tax calculations.<\/p>\n<p>The interplay between WHT and the minimum tax could influence how inter-company charges are structured in the future.<\/p>\n<h3><strong>2. Digitalization of Tax Administration<\/strong><\/h3>\n<p>IRAS is aggressively pursuing a digital agenda. The integration of tax systems with accounting software (APIs) is becoming more common. We can anticipate a future where WHT filings are triggered automatically via APIs connected to corporate bank accounts or ERP systems at the moment of payment.<\/p>\n<p>This &#8220;Tax-by-Design&#8221; approach aims to reduce the compliance burden but requires businesses to have immaculate data hygiene. Companies will need to ensure their vendor master data\u2014classifying residency, entity type, and tax codes\u2014is perfectly accurate to function in an automated environment.<\/p>\n<h3><strong>3. Scrutiny on Economic Substance<\/strong><\/h3>\n<p>Tax authorities globally are looking beyond the legal form to the economic substance of transactions. IRAS is increasingly vigilant about &#8220;treaty shopping&#8221;, where companies route payments through a third country solely to take advantage of a favorable DTA. To claim treaty benefits, the recipient must be the &#8220;beneficial owner&#8221; of the income.<\/p>\n<p>Shell companies established solely to receive royalties or interest without substantive business operations may be denied treaty benefits. Singapore businesses must ensure their vendors have genuine commercial substance in their resident jurisdictions before applying reduced WHT rates.<\/p>\n<h2><strong>How Brinks Complies with Singapore&#8217;s Tax Withholding with the Help of Accounting Technology<\/strong><\/h2>\n<p>Brinks handles frequent cross-border payments for security services, technology, and specialist vendors, so withholding tax compliance needs to be built into daily finance workflows. With accounting technology, the team can control risk early, not after the payment is already sent.<\/p>\n<ol>\n<li><strong>Automated identification of non-resident vendors<\/strong><br \/>\nThe system tags overseas vendors and routes invoices for withholding tax review before payment approval.<\/li>\n<li><strong>Built-in withholding tax rules by payment type<\/strong><br \/>\nIt classifies payments such as technical services or royalties and applies the correct WHT logic based on pre-set tax codes.<\/li>\n<li><strong>Invoice-level cost segregation<\/strong><br \/>\nBrinks splits offshore work and any Singapore-performed work on the invoice, so WHT is applied only to the taxable portion.<\/li>\n<li><strong>Payment controls and compliance checks<\/strong><br \/>\nPayments are held until the WHT component is calculated, approved, and properly recorded, reducing late filings and errors.<\/li>\n<\/ol>\n<h3><strong>Conclusion<\/strong><\/h3>\n<p>Withholding tax in Singapore plays an important role in ensuring tax compliance for cross-border payments. By understanding the rules, applicable rates, and reporting obligations, businesses can manage their tax responsibilities with more confidence.<\/p>\n<p>If you need help automating tax withholding and reducing manual errors, it may be worth <a href=\"https:\/\/www.hashmicro.com\/free-product-tour\/\">consulting our expert<\/a>. A short discussion with a specialist can help align your processes with current regulations and business needs.<\/p>\n<a href=\"https:\/\/www.hashmicro.com\/accounting?medium=moneysite-banner\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" width=\"712\" src=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/06\/Accounting.webp\" alt=\"Accounting\"><\/a>\n<h3><strong>FAQ About Withholding Tax Singapore<\/strong><\/h3>\n<ul class=\"bottom_faq\">\n<li>\n<details>\n<summary><strong>What is the withholding tax rate for services in Singapore?<\/strong><\/summary>\n<p>For non-resident companies, the withholding tax rate for technical assistance and management fees is the prevailing corporate tax rate of 17%. For non-resident individuals, the rate is 24% (from YA 2024). However, if the services are performed entirely outside Singapore, they may be exempt.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>When is the deadline for filing withholding tax in Singapore?<\/strong><\/summary>\n<p>The withholding tax must be filed and paid to IRAS by the 15th of the second month following the date of payment to the non-resident. For example, tax on a payment made in January is due by March 15th.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Can I claim a refund on withholding tax paid?<\/strong><\/summary>\n<p>Yes, if tax was withheld erroneously or in excess (e.g., a DTA rate was not applied initially), the Singapore payer can file a claim for a refund with IRAS, provided they submit the necessary supporting documents and the non-resident has not already claimed a tax credit in their home country.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Does withholding tax apply to software payments?<\/strong><\/summary>\n<p>It depends on the rights transferred. Payments for shrink-wrap software or site licenses for end-use are generally not subject to withholding tax. However, payments for the right to modify, resell, or sublicense the software are treated as royalties and are subject to withholding tax, typically at 10%.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>What happens if I pay withholding tax late?<\/strong><\/summary>\n<p>A late payment penalty of 5% is imposed on the unpaid tax. If the tax remains unpaid after the initial penalty notice, an additional 1% penalty is added for each completed month the tax remains outstanding, up to a maximum of 15%.<\/p>\n<\/details>\n<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>What is withholding tax in Singapore, and why does it matter for businesses making overseas payments? Many companies only realise their impact when dealing with non-resident vendors, directors, or service providers. In simple terms, withholding tax is deducted at source when certain payments are made to non-residents. It helps the tax authority collect tax upfront [&hellip;]<\/p>\n","protected":false},"author":199,"featured_media":79115,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[153],"tags":[],"class_list":{"0":"post-79032","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>Guide to Withholding Tax Singapore for Businesses<\/title>\n<meta name=\"description\" content=\"Learn withholding tax Singapore for businesses, who must withhold, rates by payment type, deadlines, and common compliance mistakes to avoid.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.hashmicro.com\/blog\/withholding-tax-singapore\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Guide to Withholding Tax Singapore for Businesses\" \/>\n<meta property=\"og:description\" content=\"Learn withholding tax Singapore for businesses, who must withhold, rates by payment type, deadlines, and common compliance mistakes to avoid.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hashmicro.com\/blog\/withholding-tax-singapore\/\" \/>\n<meta property=\"og:site_name\" content=\"BusinessTech\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/web.facebook.com\/hashmicro\/\" \/>\n<meta property=\"article:published_time\" content=\"2026-03-30T08:48:35+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-06T09:23:28+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2026\/01\/withholding-tax-singapore-hashmicro.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"675\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Lucas\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@hashmicro\" \/>\n<meta name=\"twitter:site\" content=\"@hashmicro\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Lucas\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"14 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.hashmicro.com\/blog\/withholding-tax-singapore\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/withholding-tax-singapore\/\"},\"author\":{\"name\":\"Lucas\",\"@id\":\"https:\/\/www.hashmicro.com\/blog\/#\/schema\/person\/1d507d1ae58f14604279ad39f6076838\"},\"headline\":\"Guide to Withholding Tax Singapore for Businesses\",\"datePublished\":\"2026-03-30T08:48:35+00:00\",\"dateModified\":\"2026-04-06T09:23:28+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/withholding-tax-singapore\/\"},\"wordCount\":2992,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/withholding-tax-singapore\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2026\/01\/withholding-tax-singapore-hashmicro.webp\",\"articleSection\":[\"Accounting\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.hashmicro.com\/blog\/withholding-tax-singapore\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.hashmicro.com\/blog\/withholding-tax-singapore\/\",\"url\":\"https:\/\/www.hashmicro.com\/blog\/withholding-tax-singapore\/\",\"name\":\"Guide to Withholding Tax Singapore for Businesses\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/withholding-tax-singapore\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/withholding-tax-singapore\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2026\/01\/withholding-tax-singapore-hashmicro.webp\",\"datePublished\":\"2026-03-30T08:48:35+00:00\",\"dateModified\":\"2026-04-06T09:23:28+00:00\",\"description\":\"Learn withholding tax Singapore for businesses, who must withhold, rates by payment type, deadlines, and common compliance mistakes to avoid.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/withholding-tax-singapore\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.hashmicro.com\/blog\/withholding-tax-singapore\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.hashmicro.com\/blog\/withholding-tax-singapore\/#primaryimage\",\"url\":\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2026\/01\/withholding-tax-singapore-hashmicro.webp\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2026\/01\/withholding-tax-singapore-hashmicro.webp\",\"width\":1200,\"height\":675,\"caption\":\"withholding-tax-singapore\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.hashmicro.com\/blog\/withholding-tax-singapore\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.hashmicro.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Guide to Withholding Tax Singapore for Businesses\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.hashmicro.com\/blog\/#website\",\"url\":\"https:\/\/www.hashmicro.com\/blog\/\",\"name\":\"BusinessTech\",\"description\":\"Business Management Blog\",\"publisher\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.hashmicro.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.hashmicro.com\/blog\/#organization\",\"name\":\"HashMicro\",\"url\":\"https:\/\/www.hashmicro.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.hashmicro.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2016\/02\/bt_logo-1.png\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2016\/02\/bt_logo-1.png\",\"width\":334,\"height\":51,\"caption\":\"HashMicro\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/web.facebook.com\/hashmicro\/\",\"https:\/\/x.com\/hashmicro\",\"https:\/\/www.linkedin.com\/company\/hashmicro\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.hashmicro.com\/blog\/#\/schema\/person\/1d507d1ae58f14604279ad39f6076838\",\"name\":\"Lucas\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.hashmicro.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/01\/cropped-expertise-blog-2-96x96.png\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/01\/cropped-expertise-blog-2-96x96.png\",\"caption\":\"Lucas\"},\"description\":\"Lucas Yeo creates in-depth articles on accounting topics tailored to the challenges and questions faced by finance professionals. His articles are SEO-friendly and designed to attract readers seeking accounting solutions.\",\"url\":\"https:\/\/www.hashmicro.com\/blog\/author\/lucas-yeo\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Guide to Withholding Tax Singapore for Businesses","description":"Learn withholding tax Singapore for businesses, who must withhold, rates by payment type, deadlines, and common compliance mistakes to avoid.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.hashmicro.com\/blog\/withholding-tax-singapore\/","og_locale":"en_US","og_type":"article","og_title":"Guide to Withholding Tax Singapore for Businesses","og_description":"Learn withholding tax Singapore for businesses, who must withhold, rates by payment type, deadlines, and common compliance mistakes to avoid.","og_url":"https:\/\/www.hashmicro.com\/blog\/withholding-tax-singapore\/","og_site_name":"BusinessTech","article_publisher":"https:\/\/web.facebook.com\/hashmicro\/","article_published_time":"2026-03-30T08:48:35+00:00","article_modified_time":"2026-04-06T09:23:28+00:00","og_image":[{"width":1200,"height":675,"url":"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2026\/01\/withholding-tax-singapore-hashmicro.webp","type":"image\/webp"}],"author":"Lucas","twitter_card":"summary_large_image","twitter_creator":"@hashmicro","twitter_site":"@hashmicro","twitter_misc":{"Written by":"Lucas","Est. reading time":"14 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.hashmicro.com\/blog\/withholding-tax-singapore\/#article","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/blog\/withholding-tax-singapore\/"},"author":{"name":"Lucas","@id":"https:\/\/www.hashmicro.com\/blog\/#\/schema\/person\/1d507d1ae58f14604279ad39f6076838"},"headline":"Guide to Withholding Tax Singapore for Businesses","datePublished":"2026-03-30T08:48:35+00:00","dateModified":"2026-04-06T09:23:28+00:00","mainEntityOfPage":{"@id":"https:\/\/www.hashmicro.com\/blog\/withholding-tax-singapore\/"},"wordCount":2992,"commentCount":0,"publisher":{"@id":"https:\/\/www.hashmicro.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.hashmicro.com\/blog\/withholding-tax-singapore\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2026\/01\/withholding-tax-singapore-hashmicro.webp","articleSection":["Accounting"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.hashmicro.com\/blog\/withholding-tax-singapore\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.hashmicro.com\/blog\/withholding-tax-singapore\/","url":"https:\/\/www.hashmicro.com\/blog\/withholding-tax-singapore\/","name":"Guide to Withholding Tax Singapore for Businesses","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.hashmicro.com\/blog\/withholding-tax-singapore\/#primaryimage"},"image":{"@id":"https:\/\/www.hashmicro.com\/blog\/withholding-tax-singapore\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2026\/01\/withholding-tax-singapore-hashmicro.webp","datePublished":"2026-03-30T08:48:35+00:00","dateModified":"2026-04-06T09:23:28+00:00","description":"Learn withholding tax Singapore for businesses, who must withhold, rates by payment type, deadlines, and common compliance mistakes to avoid.","breadcrumb":{"@id":"https:\/\/www.hashmicro.com\/blog\/withholding-tax-singapore\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hashmicro.com\/blog\/withholding-tax-singapore\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hashmicro.com\/blog\/withholding-tax-singapore\/#primaryimage","url":"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2026\/01\/withholding-tax-singapore-hashmicro.webp","contentUrl":"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2026\/01\/withholding-tax-singapore-hashmicro.webp","width":1200,"height":675,"caption":"withholding-tax-singapore"},{"@type":"BreadcrumbList","@id":"https:\/\/www.hashmicro.com\/blog\/withholding-tax-singapore\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.hashmicro.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Guide to Withholding Tax Singapore for Businesses"}]},{"@type":"WebSite","@id":"https:\/\/www.hashmicro.com\/blog\/#website","url":"https:\/\/www.hashmicro.com\/blog\/","name":"BusinessTech","description":"Business Management Blog","publisher":{"@id":"https:\/\/www.hashmicro.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.hashmicro.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.hashmicro.com\/blog\/#organization","name":"HashMicro","url":"https:\/\/www.hashmicro.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hashmicro.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2016\/02\/bt_logo-1.png","contentUrl":"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2016\/02\/bt_logo-1.png","width":334,"height":51,"caption":"HashMicro"},"image":{"@id":"https:\/\/www.hashmicro.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/web.facebook.com\/hashmicro\/","https:\/\/x.com\/hashmicro","https:\/\/www.linkedin.com\/company\/hashmicro"]},{"@type":"Person","@id":"https:\/\/www.hashmicro.com\/blog\/#\/schema\/person\/1d507d1ae58f14604279ad39f6076838","name":"Lucas","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hashmicro.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/01\/cropped-expertise-blog-2-96x96.png","contentUrl":"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/01\/cropped-expertise-blog-2-96x96.png","caption":"Lucas"},"description":"Lucas Yeo creates in-depth articles on accounting topics tailored to the challenges and questions faced by finance professionals. His articles are SEO-friendly and designed to attract readers seeking accounting solutions.","url":"https:\/\/www.hashmicro.com\/blog\/author\/lucas-yeo\/"}]}},"order_j":"","_links":{"self":[{"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/posts\/79032","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/users\/199"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/comments?post=79032"}],"version-history":[{"count":4,"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/posts\/79032\/revisions"}],"predecessor-version":[{"id":79119,"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/posts\/79032\/revisions\/79119"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/media\/79115"}],"wp:attachment":[{"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/media?parent=79032"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/categories?post=79032"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/tags?post=79032"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}