South Africa
Introduction
The South African Transfer Pricing rules are set out in Section 31 of the Income Tax Law, Act No. 58 of 1962, effective as of July 1, 1995, supported by Practice Note No. 7, and published on August 6, 1999, which provides additional guidance to taxpayers on determining compliance with the Arm’s Length Principle relating to cross-border related party transactions. These rules are under the OECD Guidelines.
The South African Tax Laws Amendment Bill was published in December 2019 and presented the first material amendment to the Transfer Pricing Regulations for several years.
Related Parties
Section 1 of the Income Tax Law encompasses “related persons” in natural persons, trusts, partnerships, and companies. It includes an enterprise, which could be the same person (such as a branch) participating directly or indirectly in the management, control, or capital of another.
For companies, it summarizes including members of a group where the common shareholding exceeds 50% and companies with at least a 20% shareholding in a company where no other shareholder has a majority of the voting rights in the company.
Transfer Pricing Methods
South Africa adopts the five methods recognized by the Organization for Economic Cooperation and Development (OECD). They are listed below:
- Comparable Uncontrolled Price Method.
- Cost Plus Method.
- Resale Price Method.
- Profit Split Method.
- Transactional Net Margin Method.
There is no hierarchy of methods. You may apply the most appropriate method as a criterion.
Transfer Pricing Documentation
Country by Country Report
The Country-by-Country Report must be filed by the ultimate parent company of a multinational enterprise or the Reporting Entity if it is not the same as the ultimate parent with a consolidated turnover of 10 thousand million South African Rand (ZAR) or more.
Master File
South African taxpayers who conform to the ultimate parent company of a multinational enterprise must prepare the Master File. The Master File includes key information on the Group’s global transactions, an overview of the business transactions, and important information on the worldwide Transfer Pricing policies.
Companies in South Africa must file a Master File if aggregate cross-border related party transactions exceed ZAR 100 million, applicable to assessment years commencing as of October 1, 2016.
Local Report
The Local Report has detailed and supportable information on the intercompany transactions performed by the local company with its foreign-related parties. South African multinational companies will file the Country-by-Country Report and the Local Report as part thereof, regardless of the value of cross-border related party transactions for a particular year.
The documentation must be filed by a person whose potentially affected transactions are below the Rand 100 million threshold. Conversely, when filing the ITR 14 tax return, the taxpayer must disclose whether the Transfer Pricing documentation has been prepared.
Transfer Pricing Penalties
Non-compliance penalties comprise percentage-based penalties under sections 210 (1) and 211 of the Tax Administration Act (TAA). The amount of the penalty receivable depends on a taxpayer’s taxable income and can range from ZAR 250 to ZAR 16,000 for each month of non-compliance.
<script> /* Author: Wolfgang Hartl Author URI: https://my-webcraftdesign.at/ DOCS: https://my-webcraftdesign.at/tutorial/read-more-read-less-toggle-in-bricksbuilder/ */ 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) element.style.overflow = "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); element.style.height = height; //ASSIGN CLICK EVENT TO TRIGGER trigger = element.nextSibling; trigger.addEventListener("click", function () { if (element.style.height == element.getAttribute("wcd_rmrl_min")) { element.style.height = element.getAttribute("wcd_rmrl_max"); this.childNodes.forEach((node) => { if (node.nodeValue !== null) { node.nodeValue = readLessText; } }); } else { element.style.height = 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', }); </script>