Section 18(3) of the Income Tax Law is the basic legislation governing Transfer Pricing in Kenya. In Kenya, the Transfer Pricing rules came into force on July 1, 2006, significantly inspired by the Transfer Pricing Guidelines of the Organization for Economic Co-operation and Development (OECD).

In 2018, there was an amendment to that law, stating that resident entities in Kenya performing transactions with related resident entities operating in preferential tax regimes to price their transactions under the Arm’s Length Principle.

The Finance Act 2021 introduced key amendments to the regulatory Transfer Pricing framework in Kenya.

The Kenya Finance Act 2022 amended several provisions of the Income Tax Law, introducing rules for the preparation and filing of Country-by-Country Reports, as well as Master Files and Local Reports by members of multinational enterprise (MNE) groups operating in Kenya.

Related Parties

Section 18(6) of the Income Tax Law states as follows:

“For the purposes of Subsection (3), a person is related to another person if-

(a) Any person directly or indirectly participates in the management, control, or capital of the business of the other;

(b) A third person directly or indirectly participates in the management, control, or capital of the business of both; or

(c) An individual, who participates in the management, control, or capital of the business of one, is associated by marriage, consanguinity, or relationship with an individual participating in the management, control, or capital of the business of the other.”

Transfer Pricing Methods

The Income Tax Transfer Pricing Regulation 2006 recognizes five methods to apply in the Arm’s Length pricing of transactions:

  • Comparable Uncontrolled Price (CUP) method.
  • Resale Price method (RP)
  • Cost Plus method (CP)
  • Profit Split Method (PSM)
  • Transactional Net Margin Method

Any other method may be employed as long as the Tax Authority considers that the Arm’s Length price cannot be determined by any of the aforementioned methods based on the nature of the transactions.

Transfer Pricing Documentation

The Finance Act 2022 has introduced an annual three-tier Transfer Pricing filing requirement for multinational groups operating in Kenya as a parent entity.

The filing requirement consists of a Country-by-Country Report, Master File, and Local Report, each of these providing specific information related to the cross-border activities of the multinational group.

The Country-by-Country Report applies to ultimate parent entities resident in Kenya and part of a multinational enterprise (MNE) with a gross invoicing of KES 95 thousand million, including extraordinary or investment income.

It must be filed to the Kenyan Tax Authority within 12 months after the end of the entity’s fiscal year, whereas Master Files and Local Reports must be filed within 6 months after the end of the company’s fiscal year.


Failure to file the Country-by-Country Report, Master File, and Local Report shall be subject to a fine not exceeding KES 1M (Kenyan shillings) and to a three-year sentence.

Source: Kenya Revenue Authority

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.