{"id":17173,"date":"2026-03-05T07:22:02","date_gmt":"2026-03-05T07:22:02","guid":{"rendered":"https:\/\/www.hashmicro.com\/my\/blog\/?p=17173"},"modified":"2026-03-10T02:02:43","modified_gmt":"2026-03-10T02:02:43","slug":"commercial-invoice-template","status":"publish","type":"post","link":"https:\/\/www.hashmicro.com\/my\/blog\/commercial-invoice-template\/","title":{"rendered":"Commercial invoice template: Definition, Key Components, Common Mistakes."},"content":{"rendered":"<p>In international trade, paperwork is everything. The difference between a shipment that clears customs in hours and one that sits in a warehouse for weeks often comes down to a single document: the commercial invoice.<\/p>\n<p>The commercial invoice was a legally binding document that serves as the foundational record of a transaction between a buyer and a seller. Utilizing a properly structured commercial invoice template is not just a matter of administrative preference, it is an absolute necessity for ensuring that international shipments clear customs without unnecessary delays, disputes, or unexpected financial penalties.<\/p>\n<p>Whether you are a small business owner shipping your first batch of artisanal products overseas or a large-scale manufacturer managing a complex global supply chain, understanding how to construct, utilize, and manage your export documentation is critical to your operational success.<\/p>\n<p>In this comprehensive guide, we will explore every facet of commercial invoicing, from its core components and legal implications to best practices for modernizing your financial workflows.<\/p>\n<p><span data-sheets-root=\"1\"><style>\r\n    #custom-quote {\r\n        background-color: #f0f0f0;\r\n        padding: 20px;\r\n        border-radius: 12px;\r\n        margin: 20px;\r\n        display: flex;\r\n        flex-direction: column;\r\n    }\r\n\r\n    #custom-quote .quote-body {\r\n        display: flex;\r\n        flex-direction: row;\r\n        align-items: flex-start;\r\n        gap: 15px;\r\n        font-size: 16px;\r\n        line-height: 1.5;\r\n        font-style: italic;\r\n    }\r\n\r\n    #custom-quote .quote-icon {\r\n        width: 40px;\r\n        height: 40px;\r\n        flex-shrink: 0;\r\n    }\r\n\r\n    #custom-quote .quote-author-wrapper {\r\n        margin-top: 15px;\r\n        align-self: flex-start;\r\n        margin-left: 55px; \r\n\t\tmargin-bottom: 0px;\r\n    }\r\n\r\n    #custom-quote em {\r\n        font-family: 'Roboto Serif', serif !important;\r\n        font-size: 12px;\r\n        font-weight: bold;\r\n        font-style: normal;\r\n    }\r\n\r\n    @media screen and (max-width: 768px) {\r\n        #custom-quote {\r\n            margin: 15px 0;\r\n            padding: 15px;\r\n        }\r\n        \r\n        #custom-quote .quote-body {\r\n            gap: 12px;\r\n        }\r\n\r\n        #custom-quote .quote-author-wrapper {\r\n            margin-left: 52px;\r\n        }\r\n    }\r\n\r\n    @media screen and (max-width: 480px) {\r\n        #custom-quote {\r\n            margin: 10px 0;\r\n            padding: 12px;\r\n        }\r\n\r\n        #custom-quote .quote-body {\r\n            font-size: 14px;\r\n            gap: 10px;\r\n        }\r\n\r\n        #custom-quote .quote-icon {\r\n            width: 32px;\r\n            height: 32px;\r\n        }\r\n\r\n        #custom-quote .quote-author-wrapper {\r\n            margin-top: 10px;\r\n            margin-left: 42px;\r\n        }\r\n    }\r\n<\/style>\r\n\r\n<div id=\"custom-quote\">\r\n    <div class=\"quote-body\">\r\n        <img decoding=\"async\" src=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/12\/quote.webp\" alt=\"Quote Icon\" class=\"quote-icon\">\r\n        <div>\r\n            Trade is not a zero-sum game. The paperwork that supports it should be equally precise because an error in documentation is an error that costs everyone time and money&lt;em&gt;.&lt;\/em&gt;        <\/div>\r\n    <\/div>\r\n    <p class=\"quote-author-wrapper\">\r\n        <em>- World Trade Organization (WTO), Global Trade Outlook Report<\/em>\r\n    <\/p>\r\n<\/div><\/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 style=\"list-style-type: none;\">\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">\u00a0A <a href=\"#1\">commercial invoice <\/a>is both a payment request and a legal customs declaration it&#8217;s not interchangeable with a standard domestic invoice.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"#2\">HS codes, Incoterms, country of origin, and declared value<\/a> are non-negotiable fields, comitting any one of them can result in fines or shipment seizure.<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"#3\">A standardized template<\/a> reduces human error, speeds up processing, and improves your professional credibility with international buyers.<\/li>\n<li aria-level=\"1\">Transitioning to<a href=\"#4\"> digital\/EDI invoicing<\/a> is no longer optional for businesses that ship at scale.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><!-- <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\">Content Lists<\/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<!-- TOC mobile -->\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<!-- TOC mobile -->\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}\r\n\t\t#toc_group_article {\r\n\t\t\tdisplay:none;\r\n\t\t}\t\t\t\t\r\n\t}\r\n\r\n<\/style>\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<!-- START 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<!-- END ToC styling  -->\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<\/script>\r\n\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\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', '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\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        \/\/ 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;} \/\/ Biar ga nampilin Key Takeaways di ToC\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\t\/\/ Dapatkan elemen ul dengan id 'list_toc_float'\r\nconst ulFloat = document.getElementById('list_toc');\r\nconst ulJourney = document.getElementById('list_journey');\r\n\r\n\/\/ Dapatkan 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\r\n\r\n\r\n\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<!-- \t<style>#toc_group_float{display:block !important}<\/style> -->\r\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2><strong>What is a Commercial Invoice?<\/strong><span id=\"1\"><\/span><img decoding=\"async\" class=\"size-full wp-image-17185 aligncenter\" src=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/commercial-invoice-template.webp\" alt=\"commercial invoice template\" width=\"1536\" height=\"1024\" srcset=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/commercial-invoice-template.webp 1536w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/commercial-invoice-template-300x200.webp 300w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/commercial-invoice-template-1024x683.webp 1024w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/commercial-invoice-template-768x512.webp 768w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/commercial-invoice-template-630x420.webp 630w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/commercial-invoice-template-150x100.webp 150w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/commercial-invoice-template-696x464.webp 696w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/commercial-invoice-template-1068x712.webp 1068w\" sizes=\"(max-width: 1536px) 100vw, 1536px\" \/><\/h2>\n<p>A commercial invoice is a specialized export document that acts as the primary proof of a transaction between an exporter (seller) and an importer (buyer).<\/p>\n<p>Unlike a standard domestic invoice, which primarily functions as a request for payment, a commercial invoice plays a dual role: as both a financial record and an official customs declaration. When your goods arrive at an international border, customs officers rely almost entirely on this document to assess the shipment&#8217;s value, calculate the applicable import duties and taxes, and verify compliance with local import regulations.<\/p>\n<p>The importance of this document cannot be overstated. Without a complete and accurate commercial invoice, Customs officials cannot legally process the shipment. This may result in:<\/p>\n<p>(1) Goods being held at the port and incurring demurrage\/storage fees<\/p>\n<p>(2) The shipment being flagged for physical inspection<\/p>\n<p>(3) In serious cases, seizure or destruction of goods. Additionally, banks and financial institutions require a valid commercial invoice to process Letters of Credit and documentary collections.<\/p>\n<p>Furthermore, the commercial invoice is often required by financial institutions to facilitate international payment mechanisms, such as Letters of Credit or documentary collections, making it an indispensable tool for securing your revenue.<br \/>\n<span id=\"2\"><\/span><\/p>\n<h2><strong>Key Components of a Standard Commercial Invoice Template<\/strong><\/h2>\n<p>To ensure seamless international trade, a commercial invoice template must be comprehensive, leaving no room for ambiguity. Customs officials process thousands of shipments daily, and any missing or unclear information will immediately flag a shipment for manual inspection. Any missing field or unclear information is enough to flag your shipment for manual review. Here&#8217;s what every commercial invoice template must contain:<\/p>\n<h3>1. Document Header &amp; Invoice Number<\/h3>\n<p>The document must clearly state &#8220;Commercial Invoice&#8221; at the very top. This immediately identifies the nature of the document to customs officials and logistics providers. Below that, include a unique invoice number and the date of issue. The invoice number is critical for cross-referencing with your Bill of Lading and Packing List.<\/p>\n<h3>2. Parties to the Transaction<\/h3>\n<p>A complete commercial invoice template must explicitly identify all parties involved in the transaction. This includes:<\/p>\n<ul>\n<li><strong>Shipper\/Exporter:<\/strong> The full legal name, registered business address, contact information (phone and email), and tax identification number of the company selling the goods.<\/li>\n<li><strong>Consignee\/Importer:<\/strong> The full legal name, delivery address, contact information, and tax identification number of the company or individual receiving and taking ownership of the goods.<\/li>\n<li><strong>Notify Party:<\/strong> If a freight forwarder or customs broker will handle arrival, their details go here so they can be contacted when the cargo arrives.<\/li>\n<\/ul>\n<h3>3. Detailed Description of Goods<\/h3>\n<p>This is the most critical field and the one most often done incorrectly. Writing &#8216;Electronics&#8217; or &#8216;Clothing&#8217; is not enough. A customs officer has never seen your product, they need enough detail to classify it correctly. for example:<\/p>\n<table>\n<tbody>\n<tr>\n<td style=\"background-color: #990000; color: #ffffff; padding: 5px; text-align: center;\"><b>Good Description<\/b><\/td>\n<td style=\"background-color: #990000; color: #ffffff; padding: 5px; text-align: center;\"><b>Bad Description<\/b><\/td>\n<\/tr>\n<tr>\n<td>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Cast Iron Pump Impeller for Industrial Water Pumps 200mm Diameter, Model WP-44.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">100% Cotton Women&#8217;s Long-Sleeve Dress, Size M, Printed Pattern, Blue.<\/span><\/li>\n<\/ul>\n<\/td>\n<td>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li><span style=\"font-weight: 400;\">Machine Parts.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\">Clothes.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>4. Harmonized System (HS) Codes<\/h3>\n<p>HS codes are a globally standardized classification system for traded goods. Every line item on your invoice must have the correct 6-to-10 digit code. Customs authorities use these codes to determine tariff rates instantly. An incorrect HS code can result in overpayment of duties or accusations of deliberate misclassification.<\/p>\n<h3>5. Country of Origin<\/h3>\n<p>The country of origin is where manufacturers produced or substantially transformed the goods. It is not necessarily the country from which you ship them. This distinction matters enormously because trade agreements, anti-dumping duties, and import embargoes are all linked to origin, not shipping location.<\/p>\n<p><strong>Example: <\/strong>If you source raw materials from Vietnam, manufacture in Thailand, and ship to Germany, the country of origin is <strong>Thailand.<\/strong><\/p>\n<h3>6. Quantity, Unit Price, and Total Value<\/h3>\n<p>Every line item must include: the exact quantity, the unit of measure (pieces, kilograms, liters, etc.), the price per unit, and the extended total. A grand total at the bottom is mandatory. Undervaluing goods to reduce the buyer&#8217;s import taxes is illegal, always declare the actual transaction value.<\/p>\n<h3>7. Currency of Transaction<\/h3>\n<p>Because international trade involves multiple countries, the currency used for the transaction must be explicitly stated (e.g., USD, EUR, GBP, MYR). A value of &#8220;10,000&#8221; means very little to a customs officer if they do not know whether it represents US Dollars or Japanese Yen. The currency listed on the commercial invoice will be used by customs authorities to convert the value into their local currency for the purpose of calculating duties.<\/p>\n<h3>8. Incoterms (Terms of Sale)<\/h3>\n<p>Incoterms (International Commercial Terms) are a set of standardized rules published by the International Chamber of Commerce (ICC) that define who is responsible for freight, insurance, and duties at each stage of the shipment. Your invoice must state both the Incoterm and the named place (e.g., FOB Tanjung Priok, CIF Rotterdam, DAP Berlin). This directly affects how customs calculates the dutiable value of your shipment.<\/p>\n<h3>9. Signature and Declaration<\/h3>\n<p>Finally, a commercial invoice must include a declaration certifying that the information provided is true and correct, accompanied by the signature of an authorized representative of the exporting company. Include their printed name and job title. Some countries also require a company stamp or official seal.<span id=\"3\"><\/span><\/p>\n<h2><strong>Why You Need a Reliable Commercial Invoice Template<\/strong><\/h2>\n<p>Building a new invoice from scratch for every shipment is one of the most efficient ways to introduce errors into your supply chain. Here&#8217;s why a fixed, well-designed template is worth investing in:<\/p>\n<ul>\n<li><strong>Consistency &amp; compliance:<\/strong> A template pre-built with all mandatory fields means nothing gets left out even when a junior employee is filling it in.<\/li>\n<li><strong>Faster customs clearance:<\/strong> Complete and accurate paperwork clears customs faster. Period. This directly protects your delivery timelines and your client relationships.<\/li>\n<li><strong>Professional credibility:<\/strong> International buyers, freight forwarders, and banks judge your business by the quality of your documentation. A polished invoice signals that you know what you&#8217;re doing.<\/li>\n<li><strong>Operational efficiency:<\/strong> Standardized templates dramatically reduce the time spent on each shipment especially important as your export volume scales.<\/li>\n<\/ul>\n<p>a standardized template ensures absolute consistency and compliance. International trade regulations are strict, and customs authorities are unforgiving when it comes to missing data. A\u00a0reliable template also enhances your brand&#8217;s professional image.<\/p>\n<p>When dealing with international buyers, freight forwarders, and overseas financial institutions, the quality of your documentation reflects the quality of your business. A clean, well-organized, and professionally formatted commercial invoice instills confidence in your partners. It shows that you understand the intricacies of global trade and are a reliable vendor capable of managing complex logistical requirements.<\/p>\n<h2 data-start=\"1270\" data-end=\"1305\"><strong>Commercial Invoice Template<\/strong><\/h2>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-17213\" src=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/commercial-invoice-template-webp.webp\" alt=\"commercial invoice template\" width=\"980\" height=\"832\" srcset=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/commercial-invoice-template-webp.webp 980w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/commercial-invoice-template-webp-300x255.webp 300w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/commercial-invoice-template-webp-768x652.webp 768w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/commercial-invoice-template-webp-495x420.webp 495w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/commercial-invoice-template-webp-150x127.webp 150w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/commercial-invoice-template-webp-696x591.webp 696w\" sizes=\"(max-width: 980px) 100vw, 980px\" \/><\/p>\n<p data-start=\"1307\" data-end=\"1461\"><!-- shortcode 1 -->\r\n\r\n<div class=\"download-wrapper\">\r\n\t<p class=\"download-desc\">Commercial 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:\/\/docs.google.com\/spreadsheets\/d\/1nETTvmbqxZ6slt2ueRKyVVpseLrJDf-R\/edit?usp=drive_link&amp;ouid=111682304737795785784&amp;rtpof=true&amp;sd=true\">\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\t<\/button>\r\n<\/div>\r\n<\/p>\n<p data-start=\"1307\" data-end=\"1461\">If you need to modify formulas, formatting, or other protected areas in the template, you can easily remove the sheet protection by following these steps:<\/p>\n<ol>\n<li>Open the <strong data-start=\"1475\" data-end=\"1506\">Commercial Invoice Template<\/strong> in Microsoft Excel.<\/li>\n<li>Click the <strong data-start=\"1542\" data-end=\"1552\">Review<\/strong> tab in the top menu.<\/li>\n<li>Select <strong data-start=\"1586\" data-end=\"1605\">Unprotect Sheet<\/strong>.<\/li>\n<li>Enter the following password: <strong>invoice123<\/strong><\/li>\n<li>Click <strong data-start=\"1672\" data-end=\"1678\">OK<\/strong>.<\/li>\n<\/ol>\n<h2><strong>The Differences Between a Commercial Invoice and a Standard Bill<\/strong><\/h2>\n<p>In everyday conversation, &#8216;invoice&#8217; and &#8216;bill&#8217; are often used interchangeably. But in accounting and international trade, they serve different purposes and are viewed from different perspectives.<\/p>\n<p>A standard invoice is issued by a seller to request payment. When the buyer receives that same document, they record it in their accounts payable as a &#8216;bill.&#8217; It&#8217;s the same document just seen from opposite sides of the transaction.<\/p>\n<p>A commercial invoice was a regulated government document designed to cross international borders. A domestic bill lists a service and a price. A commercial invoice lists HS codes, Incoterms, country of origin, declared customs value all formatted specifically for government agencies to process.<\/p>\n<p>To put it simply, an invoice is a document sent by a provider of a product or service to the purchaser. A bill, conversely, is what the purchaser receives and records in their accounts payable. When you send a commercial invoice to your overseas client, you view it as an invoice representing revenue to be collected. When your client receives that exact same document, they view it as a bill representing an expense that needs to be paid. For a deeper dive into how these documents interact within your accounting ecosystem, you can explore the nuances of <a href=\"https:\/\/www.hashmicro.com\/my\/blog\/invoice-bill\/\" target=\"_blank\" rel=\"noopener noreferrer\">understanding the fundamental difference between an invoice and a bill<\/a>.<\/p>\n<h2><strong>Purchase Order vs Invoice in International Trade<\/strong><\/h2>\n<p>To fully appreciate the role of the commercial invoice template, you must understand where it fits within the broader chronological timeline of an international trade transaction. The documentation process is a continuous dialogue between the buyer and the seller, and it almost always begins with<a href=\"https:\/\/www.hashmicro.com\/my\/blog\/purchase-order\/\"> a Purchase Order (PO)<\/a>.<\/p>\n<ol>\n<li>The buyer creates a Purchase Order and sends it to the seller. This legally binding document specifies exactly what the buyer wants: products, quantities, agreed price, and delivery timeline. It is an official offer to buy.<\/li>\n<li>Once the seller accepts the PO, they issue a Proforma Invoice. This confirms the expected terms and gives the buyer a reference document for financing or import permits.<\/li>\n<li>The seller manufactures, packages, and prepares the goods for international transit. This is also when they gather all required shipment data for the final invoice.<\/li>\n<li>At this point, the seller issues the Commercial Invoice the final, legally binding record of what was sold, at what price, and under what terms. This document must match the original Purchase Order precisely.<\/li>\n<li>When goods arrive, the buyer&#8217;s accounts payable team performs a three-way match. They compare the Commercial Invoice against the original PO and the Receiving Report.<\/li>\n<\/ol>\n<p>If the quantities, prices, or terms differ from the PO, payment stops until the discrepancy is resolved. As a result, accuracy in your commercial invoice directly determines how quickly you get paid.<\/p>\n<p>The relationship between these two documents is the cornerstone of corporate procurement and financial auditing. When the goods arrive and the invoice is received, the buyer&#8217;s accounts payable department will perform a &#8220;three-way match.&#8221; They will<a href=\"https:\/\/www.hashmicro.com\/my\/blog\/purchase-order-vs-invoice\/\"> compare the Commercial Invoice against the original Purchase Order<\/a> and the Receiving Report (which confirms what actually arrived).<\/p>\n<h2><strong>Common Mistakes to Avoid When Filling Out a Commercial Invoice<\/strong><\/h2>\n<p><img decoding=\"async\" class=\"size-full wp-image-17191 aligncenter\" src=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/Common-Mistakes-to-Avoid-When-Filling-Out-a-Commercial-Invoice.webp\" alt=\"Common Mistakes on Commercial Invoice\" width=\"1536\" height=\"1024\" srcset=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/Common-Mistakes-to-Avoid-When-Filling-Out-a-Commercial-Invoice.webp 1536w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/Common-Mistakes-to-Avoid-When-Filling-Out-a-Commercial-Invoice-300x200.webp 300w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/Common-Mistakes-to-Avoid-When-Filling-Out-a-Commercial-Invoice-1024x683.webp 1024w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/Common-Mistakes-to-Avoid-When-Filling-Out-a-Commercial-Invoice-768x512.webp 768w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/Common-Mistakes-to-Avoid-When-Filling-Out-a-Commercial-Invoice-630x420.webp 630w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/Common-Mistakes-to-Avoid-When-Filling-Out-a-Commercial-Invoice-150x100.webp 150w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/Common-Mistakes-to-Avoid-When-Filling-Out-a-Commercial-Invoice-696x464.webp 696w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/Common-Mistakes-to-Avoid-When-Filling-Out-a-Commercial-Invoice-1068x712.webp 1068w\" sizes=\"(max-width: 1536px) 100vw, 1536px\" \/><\/p>\n<p>Even the best commercial invoice template can&#8217;t protect you if it&#8217;s filled in incorrectly. These are the most frequent and most costly errors exporters make:<\/p>\n<h3>1. Vague or Ambiguous Product Descriptions<\/h3>\n<p>&#8216;Auto Parts&#8217; tells a customs officer nothing. They need to know if it&#8217;s a rubber gasket, a steel brake rotor, or a circuit board, because each item carries a different tariff. Be specific: material, dimensions, model number, intended use.<\/p>\n<h3>2. Declaring an Inaccurate Value<\/h3>\n<p>It&#8217;s illegal, and customs authorities are trained to spot it. Whether a buyer asks you to write a lower value, or you mark something as a &#8220;sample&#8221; at &#8220;$1&#8221;, customs can and will challenge the declared value. If they suspect undervaluation, they&#8217;ll hold the shipment and apply their own estimate often higher than the actual value.<\/p>\n<h3>3. Missing or Incorrect Incoterms<\/h3>\n<p>Incoterms tell customs who is <a href=\"https:\/\/www.hashmicro.com\/my\/blog\/freight-cost\/\">paying for freight and insurance<\/a> information that affects how the dutiable value is calculated. A missing Incoterm causes delays. A wrong Incoterm can result in incorrect duty assessments or legal disputes.<\/p>\n<p>For instance, in many countries, import duties are calculated on the CIF (Cost, Insurance, and Freight) value. If you sell goods FOB (Free On Board) but fail to state this, customs might assume the invoice value includes freight and insurance, or they might delay the shipment to ask for clarification. Always state the Incoterm and the named place (e.g., &#8220;DAP London&#8221;).<\/p>\n<h3>4. Wrong Country of Origin<\/h3>\n<p>Never assume that the country you&#8217;re shipping from is the country of origin. A Singapore distributor shipping Japanese-made electronics to Australia must declare Japan as the country of origin. Failing to declare the correct origin can lead to the denial of preferential tariff rates under free trade agreements, or the accidental violation of international trade embargoes.<\/p>\n<h3>5. Mathematical Errors and Inconsistencies<\/h3>\n<p>If the unit price multiplied by the quantity does not equal the line total, customs rejects the invoice. Furthermore, all figures must match across the Commercial Invoice, Bill of Lading, and Packing List. Even a single-unit discrepancy triggers a physical inspection. Use formulas or integrated software to eliminate manual calculation errors.<span id=\"4\"><\/span><\/p>\n<h2><strong>How to Choose the Right Commercial Invoice Format<\/strong><\/h2>\n<p>The format and medium you choose for your commercial invoice template will largely depend on the size of your business, your export volume, and your technical infrastructure. There is no one-size-fits-all solution, but understanding the pros and cons of each method will help you make an informed decision.<\/p>\n<h3>Word Processors and Spreadsheets (Word\/Excel)<\/h3>\n<p><strong>Best for:<\/strong> Small businesses shipping internationally a few times a year. Easy to customize, costs nothing, and Excel allows basic formula automation. The downside is that static files are prone to human error and don&#8217;t connect with any other systems version control becomes a headache as your team grows.<\/p>\n<h3>Cloud-Based PDF Generators<\/h3>\n<p><strong>Best for:<\/strong> Small to medium-sized exporters who want a more polished result. These web tools generate clean, professional PDFs from web forms and often allow you to save client and product details for faster future entries. However, they&#8217;re still standalone no connection to your inventory, accounting, or order management systems.<\/p>\n<h3>Integrated ERP and Automated Invoicing Software<\/h3>\n<p><strong>Best for:<\/strong> Growing businesses and large enterprises. An ERP system generates your commercial invoice automatically by pulling data from the accepted Purchase Order, inventory module, and CRM eliminating duplicate data entry, ensuring accuracy, and standardizing your entire documentation workflow.<\/p>\n<h2><strong>Managing Long-Term Projects: Commercial Invoices and Progress Billing<\/strong><\/h2>\n<p>Not every export is a one-time shipment. Usually organization like large international contracts custom machinery, infrastructure components, complex software deployments are often executed across months or years. In these cases, waiting until final delivery to issue a single invoice is financially unsustainable.<\/p>\n<p><a href=\"https:\/\/www.hashmicro.com\/my\/blog\/progress-billing\/\">Progress billing solves this<\/a>. The seller invoices the buyer for a percentage of the total contract value at each predefined milestone. For example:<\/p>\n<ul>\n<li>30% upon contract signing<\/li>\n<li>40% when production is complete and tested at the factory<\/li>\n<li>30% upon international delivery and installation<\/li>\n<\/ul>\n<p>Each progress invoice must clearly reference the master contract, state which milestone has been reached, and show the total contract value, the amount previously billed, the current amount due, and the remaining balance.<\/p>\n<p>Managing this manually across a multi-year project creates serious risk. Errors cause cash flow interruptions and contract disputes. Therefore, businesses involved in large-scale export projects benefit significantly from integrated invoicing software that tracks milestone progress automatically.<\/p>\n<h2><strong>Advanced Practices for Global Trade Documentation<\/strong><\/h2>\n<p>As your international operations grow, the basics are no longer enough. Here&#8217;s what leading exporters are doing to future-proof their documentation:<\/p>\n<ul>\n<li><strong>Electronic Data Interchange (EDI):<\/strong> Transmitting commercial invoice data directly to customs authorities before cargo departs the origin port enabling pre-clearance and dramatically reducing transit times.<\/li>\n<li><strong>AI-powered ERP automation:<\/strong> <a href=\"https:\/\/www.hashmicro.com\/my\/blog\/finance-automation\/\">Systems that automatically update invoice templates<\/a> when tariff rates change or new trade agreements are signed no manual oversight required.<\/li>\n<li><strong>Quarterly compliance audits:<\/strong> Regularly comparing issued commercial invoices against actual customs clearance records to verify ongoing accuracy and flag any systemic errors before they become costly problems.<\/li>\n<\/ul>\n<h2><strong>Conclusion<\/strong><\/h2>\n<p>A commercial invoice is far more than just a payment request it&#8217;s the document your goods travel on. Get it wrong, and shipments stall, duties spike, and business relationships take a hit. Get it right consistently, and you build a reputation as a reliable international partner.<\/p>\n<p>The fundamentals are straightforward: use a standardized template, fill in every required field with precision, align your figures with the purchase order, and always declare the true value of your goods. These aren&#8217;t optional best practices they&#8217;re the baseline of doing international business correctly.<\/p>\n<p>As your export volume grows, so does the complexity of managing this documentation manually. Many businesses find that the right invoicing tool whether a smart template, a cloud platform, or a fully integrated ERP ends up paying for itself within the first few prevented delays.<\/p>\n<h2><strong>FAQ About Commercial Invoice\u00a0<\/strong><\/h2>\n<ul class=\"bottom_faq\">\n<li>\n<details open=\"open\">\n<summary><strong>Is a commercial invoice required for every international shipment?<\/strong><\/summary>\n<p>In virtually all commercial cases, yes. Customs authorities in the destination country require it to assess duties and taxes. Some couriers generate simplified customs documents for low-value personal shipments, but any commercial transaction requires a proper commercial invoice<\/p>\n<\/details>\n<\/li>\n<li>\n<details open=\"open\">\n<summary><strong>How many copies of a commercial invoice do I need?<\/strong><\/summary>\n<p>Most countries require at least 3 copies, one for customs, one for the importer, and one for the exporter&#8217;s records. Some countries or freight arrangements require more. Always check the destination country&#8217;s specific import requirements before dispatch.<\/p>\n<\/details>\n<\/li>\n<li>\n<details open=\"open\">\n<summary><strong>Can I use the same commercial invoice template for all countries?<\/strong><\/summary>\n<p>A well-structured template covers universal requirements such as HS codes, Incoterms, value, and origin. However, some countries have additional requirements. Always verify the destination country&#8217;s import documentation rules before each shipment.<\/p>\n<\/details>\n<\/li>\n<li>\n<details open=\"open\">\n<summary><strong>Is it legal to mark goods as gifts or samples to reduce duties?<\/strong><\/summary>\n<p>No. Even genuine samples and gifts carry a fair market value. Declaring &#8216;zero value&#8217; or an artificially low price constitutes customs fraud. Customs authorities can penalize exporters with fines, confiscation of goods, or in serious cases, legal prosecution.<\/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    \"@type\": \"Question\",\n    \"name\": \"Is a commercial invoice required for every international shipment?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"In virtually all commercial cases, yes. Customs authorities in the destination country require it to assess duties and taxes. Some couriers generate simplified customs documents for low-value personal shipments, but any commercial transaction requires a proper commercial invoice\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"How many copies of a commercial invoice do I need?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Most countries require at least 3 copies, one for customs, one for the importer, and one for the exporter's records. Some countries or freight arrangements require more. Always check the destination country's specific import requirements before dispatch.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"Can I use the same commercial invoice template for all countries?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"A well-structured template covers universal requirements such as HS codes, Incoterms, value, and origin. However, some countries have additional requirements. Always verify the destination country's import documentation rules before each shipment.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"Is it legal to mark goods as gifts or samples to reduce duties?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"No. Even genuine samples and gifts carry a fair market value. Declaring 'zero value' or an artificially low price constitutes customs fraud. Customs authorities can penalize exporters with fines, confiscation of goods, or in serious cases, legal prosecution.\"\n    }\n  }]\n}\n<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In international trade, paperwork is everything. The difference between a shipment that clears customs in hours and one that sits in a warehouse for weeks often comes down to a single document: the commercial invoice. The commercial invoice was a legally binding document that serves as the foundational record of a transaction between a buyer [&hellip;]<\/p>\n","protected":false},"author":39,"featured_media":17387,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[221],"tags":[],"class_list":{"0":"post-17173","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-invoicing"},"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>Commercial invoice template: Definition &amp; free template to use<\/title>\n<meta name=\"description\" content=\"Use the right commercial invoice template to clear customs faster &amp; download a free commercial invoice template ready to use today.\" \/>\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\/my\/blog\/commercial-invoice-template\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Commercial invoice template: Definition, Key Components, Common Mistakes.\" \/>\n<meta property=\"og:description\" content=\"Use the right commercial invoice template to clear customs faster &amp; download a free commercial invoice template ready to use today.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hashmicro.com\/my\/blog\/commercial-invoice-template\/\" \/>\n<meta property=\"og:site_name\" content=\"HashMicro Malaysia\" \/>\n<meta property=\"article:published_time\" content=\"2026-03-05T07:22:02+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-10T02:02:43+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/commercial-invoice-template-featured-image.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"400\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Siti binti Rahman\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Siti binti Rahman\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"15 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/commercial-invoice-template\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/commercial-invoice-template\/\"},\"author\":{\"name\":\"Siti binti Rahman\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/person\/e4dba2ae170a31d8f85bf173ebfbf7a5\"},\"headline\":\"Commercial invoice template: Definition, Key Components, Common Mistakes.\",\"datePublished\":\"2026-03-05T07:22:02+00:00\",\"dateModified\":\"2026-03-10T02:02:43+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/commercial-invoice-template\/\"},\"wordCount\":3152,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/commercial-invoice-template\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/commercial-invoice-template-featured-image.webp\",\"articleSection\":[\"Invoicing\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.hashmicro.com\/my\/blog\/commercial-invoice-template\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/commercial-invoice-template\/\",\"url\":\"https:\/\/www.hashmicro.com\/my\/blog\/commercial-invoice-template\/\",\"name\":\"Commercial invoice template: Definition & free template to use\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/commercial-invoice-template\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/commercial-invoice-template\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/commercial-invoice-template-featured-image.webp\",\"datePublished\":\"2026-03-05T07:22:02+00:00\",\"dateModified\":\"2026-03-10T02:02:43+00:00\",\"description\":\"Use the right commercial invoice template to clear customs faster & download a free commercial invoice template ready to use today.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/commercial-invoice-template\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.hashmicro.com\/my\/blog\/commercial-invoice-template\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/commercial-invoice-template\/#primaryimage\",\"url\":\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/commercial-invoice-template-featured-image.webp\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/commercial-invoice-template-featured-image.webp\",\"width\":800,\"height\":400,\"caption\":\"commercial invoice template featured image\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/commercial-invoice-template\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.hashmicro.com\/my\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Commercial invoice template: Definition, Key Components, Common Mistakes.\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#website\",\"url\":\"https:\/\/www.hashmicro.com\/my\/blog\/\",\"name\":\"HashMicro Malaysia\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.hashmicro.com\/my\/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\/my\/blog\/#organization\",\"name\":\"HashMicro Malaysia\",\"url\":\"https:\/\/www.hashmicro.com\/my\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/09\/logo.webp\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/09\/logo.webp\",\"width\":422,\"height\":255,\"caption\":\"HashMicro Malaysia\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/person\/e4dba2ae170a31d8f85bf173ebfbf7a5\",\"name\":\"Siti binti Rahman\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/person\/image\/\",\"url\":\"http:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/10\/cropped-Siti-binti-Rahman-MY-1080x1080-BG-cafe-96x96.webp\",\"contentUrl\":\"http:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/10\/cropped-Siti-binti-Rahman-MY-1080x1080-BG-cafe-96x96.webp\",\"caption\":\"Siti binti Rahman\"},\"description\":\"Siti binti Rahman specializes in accounting-related topics, crafting articles that simplify complex financial concepts for business owners and finance professionals. Her content includes practical guides on accounting automation, compliance, and financial reporting. Through well-researched and accessible writing, she supports readers in improving their financial management strategies.\",\"url\":\"https:\/\/www.hashmicro.com\/my\/blog\/author\/siti-binti-rahman\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Commercial invoice template: Definition & free template to use","description":"Use the right commercial invoice template to clear customs faster & download a free commercial invoice template ready to use today.","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\/my\/blog\/commercial-invoice-template\/","og_locale":"en_US","og_type":"article","og_title":"Commercial invoice template: Definition, Key Components, Common Mistakes.","og_description":"Use the right commercial invoice template to clear customs faster & download a free commercial invoice template ready to use today.","og_url":"https:\/\/www.hashmicro.com\/my\/blog\/commercial-invoice-template\/","og_site_name":"HashMicro Malaysia","article_published_time":"2026-03-05T07:22:02+00:00","article_modified_time":"2026-03-10T02:02:43+00:00","og_image":[{"width":800,"height":400,"url":"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/commercial-invoice-template-featured-image.webp","type":"image\/webp"}],"author":"Siti binti Rahman","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Siti binti Rahman","Est. reading time":"15 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.hashmicro.com\/my\/blog\/commercial-invoice-template\/#article","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/commercial-invoice-template\/"},"author":{"name":"Siti binti Rahman","@id":"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/person\/e4dba2ae170a31d8f85bf173ebfbf7a5"},"headline":"Commercial invoice template: Definition, Key Components, Common Mistakes.","datePublished":"2026-03-05T07:22:02+00:00","dateModified":"2026-03-10T02:02:43+00:00","mainEntityOfPage":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/commercial-invoice-template\/"},"wordCount":3152,"commentCount":0,"publisher":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/#organization"},"image":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/commercial-invoice-template\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/commercial-invoice-template-featured-image.webp","articleSection":["Invoicing"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.hashmicro.com\/my\/blog\/commercial-invoice-template\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.hashmicro.com\/my\/blog\/commercial-invoice-template\/","url":"https:\/\/www.hashmicro.com\/my\/blog\/commercial-invoice-template\/","name":"Commercial invoice template: Definition & free template to use","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/commercial-invoice-template\/#primaryimage"},"image":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/commercial-invoice-template\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/commercial-invoice-template-featured-image.webp","datePublished":"2026-03-05T07:22:02+00:00","dateModified":"2026-03-10T02:02:43+00:00","description":"Use the right commercial invoice template to clear customs faster & download a free commercial invoice template ready to use today.","breadcrumb":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/commercial-invoice-template\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hashmicro.com\/my\/blog\/commercial-invoice-template\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hashmicro.com\/my\/blog\/commercial-invoice-template\/#primaryimage","url":"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/commercial-invoice-template-featured-image.webp","contentUrl":"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/commercial-invoice-template-featured-image.webp","width":800,"height":400,"caption":"commercial invoice template featured image"},{"@type":"BreadcrumbList","@id":"https:\/\/www.hashmicro.com\/my\/blog\/commercial-invoice-template\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.hashmicro.com\/my\/blog\/"},{"@type":"ListItem","position":2,"name":"Commercial invoice template: Definition, Key Components, Common Mistakes."}]},{"@type":"WebSite","@id":"https:\/\/www.hashmicro.com\/my\/blog\/#website","url":"https:\/\/www.hashmicro.com\/my\/blog\/","name":"HashMicro Malaysia","description":"","publisher":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.hashmicro.com\/my\/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\/my\/blog\/#organization","name":"HashMicro Malaysia","url":"https:\/\/www.hashmicro.com\/my\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/09\/logo.webp","contentUrl":"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/09\/logo.webp","width":422,"height":255,"caption":"HashMicro Malaysia"},"image":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/person\/e4dba2ae170a31d8f85bf173ebfbf7a5","name":"Siti binti Rahman","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/person\/image\/","url":"http:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/10\/cropped-Siti-binti-Rahman-MY-1080x1080-BG-cafe-96x96.webp","contentUrl":"http:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/10\/cropped-Siti-binti-Rahman-MY-1080x1080-BG-cafe-96x96.webp","caption":"Siti binti Rahman"},"description":"Siti binti Rahman specializes in accounting-related topics, crafting articles that simplify complex financial concepts for business owners and finance professionals. Her content includes practical guides on accounting automation, compliance, and financial reporting. Through well-researched and accessible writing, she supports readers in improving their financial management strategies.","url":"https:\/\/www.hashmicro.com\/my\/blog\/author\/siti-binti-rahman\/"}]}},"order_j":"","_links":{"self":[{"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/posts\/17173","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/users\/39"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/comments?post=17173"}],"version-history":[{"count":11,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/posts\/17173\/revisions"}],"predecessor-version":[{"id":17395,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/posts\/17173\/revisions\/17395"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/media\/17387"}],"wp:attachment":[{"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/media?parent=17173"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/categories?post=17173"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/tags?post=17173"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}