Transfer Pricing in Indonesia is governed by Article 18 of the Income Tax Law of 2008.

In late 2010, the Indonesian Directorate General of Taxation (DGT) issued important Transfer Pricing rules, laying the groundwork for a new era of Transfer Pricing in Indonesia. Regulation PER-43/PJ/2010 represents the first specific Transfer Pricing Guideline for the country.

Arm’s Length Principle

Indonesia complies with the Arm’s Length Principle as a standard Transfer Pricing guideline. According to this Principle, the transaction price collected between two related parties must be similar to the price collected between two unrelated parties. Profits are taxed where economic activities have been performed.

Related Parties

Transfer Pricing applies to companies carrying out transactions between companies of the same group, such as a subsidiary or other “related” parties. Persons or entities are related if:

  1. One party has direct or indirect control of the other (e.g., head offices or branches); or
  2. Both parties are controlled by the same persons or entities (e.g., several subsidiaries are owned by the same parent company).

According to Article 18(4) of the Income Tax Law, the definition of ‘special relationship’ applies to circumstances in which:

  1. One taxpayer directly or indirectly owns at least 25% of the equity of the other taxpayer, or two or more taxpayers have a relationship through ownership of at least 25% of the equity of two or more residents;
  2. One resident ‘controls’ another resident or two or more residents directly or indirectly; or;
  3. There is kinship through blood or marriage within a direct or indirect degree of consanguinity.

Transfer Pricing Methods

For determining the market value of related party transactions, one of the following five methods may be used:

  • Comparable Uncontrolled Price Method.
  • Cost Plus Method.
  • Resale Price Method.
  • Profit Split method.
  • Transactional Net Margin Method.

Other methods may also be used if justified and appropriate.

PER-32 is no longer considering the hierarchy approach for the Transfer Pricing methods and has adopted the most appropriate method approach. Nevertheless, from a practical perspective, the DGT still considers the Comparable Uncontrolled Price (CUP) method as the most preferred one.

Transfer Pricing Documentation

Indonesia issued Regulation No.213/PMK.03/2016, which introduced a three-tier system for the Transfer Pricing documentation, i.e., taxpayers must file three documentations: Master File, Local Report (which must be available within four months after the end of the tax year), and a Country-by-Country Report, filed in the official Bahasa Indonesia language.

Taxpayers must also prepare a statement letter signed by the person who prepared the documentation to declare when the Transfer Pricing Reports are available. It should be attached to the Master File and Local Report to file to the Tax Authorities upon request.

Master File and Local Report

Taxpayers must comply with the Master File and Local Report documentation obligations and with their related party transactions with the following requirements as well:

  • To have gross revenues over Rp 50 thousand million (US$3.4 million) during the preceding fiscal year;
  • Taxpayers having related party transactions exceeding Rp 20 000 million (US$1.37 million) in the preceding fiscal year;
  • Taxpayers having related party transactions exceeding Rp 5 000 million (US$344,000) regarding services, interest payments, or intangible property; or
  • Taxpayers having related party transactions located in a jurisdiction with a lower income tax rate than the Indonesian one.

The Local Report must be prepared within four months after the end of the fiscal year, and the Master File must be prepared within four months after the end of the fiscal year.

Country-by-Country Report

These are the main filing requirements for the Country-by-Country Report:

  1. The parent entity of the corporate group must be a tax resident in Indonesia.
  2. The consolidated gross revenue of the corporate group must be at least IDR 11 billion.
  3. A record of transactions with foreign subsidiaries.

The Country-by-Country Report must be filed 12 months after the end of the fiscal year.

On the other hand, the secondary requirements for the Country-by-Country Report are as follows:

  1. The parent entity of the corporate group is a foreign tax resident.
  2. Compliance with any of these requirements:
    • The home country of the parent entity does not require filing a Country-by-Country Report.
    • There is no agreement between the home country of the parent entity and the Government of Indonesia concerning the exchange of information.
    • The home country of the parent entity has an agreement, but the Indonesian government cannot obtain the Country-by-Country Report.


The regulations do not mention specific Transfer Pricing penalties. However, for failure to file or wrongly filing the Country-by-Country Report, the penalty will be IDR 1,000,000. It will be subject to an additional inspection if a written warning has been issued. If it results in a Transfer Pricing adjustment, a penalty in the form of a 50% increase will be issued.

Read More

 Author:       Wolfgang Hartl
 Author URI:
function WCD_rmrl(options) {
  const readLessText = options.readLessText;
  const readMoreText = options.readMoreText;

  const rmrlContent = document.querySelectorAll("[wcd_rmrl_percentage]");

  rmrlContent.forEach((element) => {
    // INITIAL SETUP (define height, overflow and attributes) = "hidden";
    element.setAttribute("wcd_rmrl_max", element.clientHeight + "px");

    var percentage = element.getAttribute("wcd_rmrl_percentage");
    var height = element.clientHeight;
    height = Math.round((height / 100) * percentage) + "px";

    element.setAttribute("wcd_rmrl_min", height); = height;

    trigger = element.nextSibling;
    trigger.addEventListener("click", function () {
      if ( == element.getAttribute("wcd_rmrl_min")) { = element.getAttribute("wcd_rmrl_max");
        this.childNodes.forEach((node) => {
          if (node.nodeValue !== null) {
            node.nodeValue = readLessText;
      } else { = element.getAttribute("wcd_rmrl_min");
        this.childNodes.forEach((node) => {
          if (node.nodeValue !== null) {
            node.nodeValue = readMoreText;
  const rmrl = new WCD_rmrl({
    readLessText : 'Read Less',
    readMoreText : 'Read More',


Contact us

In order to contact us, please fill out the following form:

Google reCaptcha: Invalid site key.