SAP S/4HANA: Real-Time Intercompany Postings for Project-Based Services

SAP S/4HANA: Real-Time Intercompany Postings for Project-Based Services

As organizations become ever more global, it is becoming increasingly common for the employees charging time to a project to be working in a different legal entity from the one to which the project belongs. Every professional service organization is familiar with this situation, since they inevitably have consultants scattered across the world, but plenty of internal projects experience similar challenges as they bring experts together from around the globe. 

We’ll look at the new options for intercompany billing in the service world that are available from SAP S/4HANA 1610. We explain how the time recording process can trigger intercompany markups when the sender cost center and receiver project belong to different legal entities and how to set up intercompany clearing accounts to handle this process. You will learn how to:

  • Define activity rates that vary depending on who is providing the activity and in which legal entity it takes place
  • Trigger an intercompany margin calculation with each activity allocation that crosses a legal entity
  • Ensure that the receiving company is charged with stable prices when the two legal entities use different currencies
  • Use this process to streamline intercompany reconciliation
  • Configure the system to make such postings happen

Overview of the Process for Cross-Charging of Intercompany Services

With SAP S/4HANA the familiar concept of real-time postings has been extended so that such postings can trigger follow-on postings that generate an additional posting to reflect the intercompany margin when activities are recorded between different legal entities. With SAP S/4HANA 1610 a time confirmation can trigger a second journal entry for the intercompany margin. These postings can then be used as the basis for the familiar periodic billing process between the affiliated companies that includes tax markups at period close.

Figure 1 provides a simple illustration of how the delivering company is performing services for the ordering company, both of which are in the same controlling area and system instance.

Figure 1 — Resource-related intercompany billing process

The link is in the time recording, where the project requesting the service belongs to the ordering company and the employee providing the service is assigned to a cost center in the delivering company. The time recording uses Cross-Application Time Sheets (CATS), or if you haven’t implemented CATS, you need to use transaction code KB21N. The employee enters the hours of activity that should be charged to the project. The only difference is that the employee’s cost center and the receiving project belong to different legal entities. The time recording credits the cost center and debits the project as with any direct activity allocation. However, because the delivering and ordering company are in different legal entities, the system also triggers a follow-on posting containing the intercompany margin agreed upon between the two entities and a posting to an intercompany clearing account.

Intercompany Markups and Related Clearing Accounts

To understand the new process, let’s start by looking at the postings associated with the resource-related intercompany billing process in Figure 2. Figure 2 shows the SAP Fiori application G/L Account Line Items screen which is part of the G/L accountant role.

Figure 2 —— Time recording and follow-on posting in the G/L Account Line Ltems app

Users can access this app from the SAP Fiori Launchpad using the tiles delivered as part of the G/L accountant role. In this example, we have selected all postings associated with the reference document 300003117 (see the upper right section of Figure 2) that documents the time recorded by the employee to the project. The first block of posting lines are those created in company code 1710 (USA) where a consultant records that he has provided one hour of consulting from his cost center (17101902) to a project (work breakdown structure [WBS] element SW007.1.1) in company code 1010 (Germany). The second block of posting lines illustrates how these costs were received in company code 1010 and how a margin was added. 

The triggering process was a time recording in CATS. It resulted in the expected postings under business transaction RKL (for activity allocations) in each company code and a new pair of postings under business transaction KAMV (for manual cost allocations) that carries the intercompany margin. Normally, a time recording would only result in one posting ─ the RKL lines for the sender cost center and the receiver project. With the new functionality, there are substantially more posting lines, which operate as follows:  

  • The sending cost center in the US is credited, and the receiving project in Germany is debited with USD 75 (the first posting line in each company code). This is the internal rate for the service, converted into euros in the receiving company code.
  • The same amount is posted in reverse to an intercompany clearing account (the second posting line in each company code). These are the profit-and-loss (P&L) accounts and the process ensures that the balance is zero in the two affiliated company codes.
  • An intercompany markup of USD 15 is posted as a value adjustment for the difference between the intercompany rate of USD 90 and the internal rate of USD 75 (third posting line in each company code).
  • Again, the same amount is posted in reverse to an intercompany clearing account (the fourth posting line in each company code).

While that covers the posting lines, you’ll notice several new fields that you wouldn’t have found in the classic Controlling (CO) line items:

  • The first newcomer is the trading partner (the far right column in Figure 2) that is used as the basis for eliminating profits between affiliated companies during the consolidation process.
  • You would expect to see the WBS element as the receiver of the allocation, but not in the sending lines (see postings in the US company code) where you would expect to see only the cost center and activity type. The WBS element field has been configured as a reporting attribute so that the sending company has complete transparency over which cost objects have received charges. 

To understand how the consulting charge was made, let’s now look at the activity rates in the SAP Fiori Change Actual Cost Rate Condition application. Users can access this app from the tiles delivered as part of the cost accountant role. Notice in Figure 3 that we are not entering activity rates using the familiar transaction code KP26 (activity type/price planning), but rather, a new transaction code CMACA02 (the SAP Fiori Maintain activity cost rates app) that is only available if you activate the business function FINS_CO_ICO_PROC_ENH_101. You still use transaction code KP26 for activities such as production hours or maintenance hours taking place in cost centers that are supplying activities in the same legal entity. However, you should consider using the new application where you have cross-company activity flows.

Figure 3  — Intercompany activity rate


Activities taking place in the delivering company 1710 (the USA company code) are charged at USD 75 per hour. If the receiver of the activity allocation is in the same company code, you see only the normal posting lines, debiting the cost center and crediting the receiver for USD 75. However, if the receiver of the activity allocation is in a different company code, in our case 1010 (the German company code), a higher charge is made that includes the intercompany markup. 

This results in the two lines shown in Figure 2, where you see a charge of USD 75 plus an intercompany charge of USD 15. The account determination works as usual for the consulting activity, which is charged under the G/L account for the cost element entered in the activity type. We’ll look at how to define the account assignment for the intercompany margins and clearing accounts in the configuration section later in the article. You’ll find more about the background to such intercompany postings in SAP Note 2527020 at

Since outside of the EU it is likely that the affiliated companies will be working with different currencies, a change was made to the logic for the currency conversion in SAP S/4HANA 1709. The internal posting in the delivering company (1710) takes place in the transaction currency (USD here), and other currencies are derived from this currency using the standard currency settings. In the cloud edition of SAP S/4HANA, the price agreed upon for the receiving company should not react to exchange rate fluctuations, but instead should remain stable at EUR 72 with all other currencies derived from this transaction currency.

Here an example how the single price components are calculated.

Exchange rate: 1 USD = 0.80 EUR,1 EUR = 1,25 USD

The intercompany rate is fixed for the receiver -> 72 EUR ( 90 USD)

The internal cost rate is calculated -> 60 EUR   (75USD *0,8 EUR)

The margin is calculated as the difference of intercompany and intracompany rate -> 12 EUR (72 EUR minus 60 EUR).
So the margin value will react on exchange rate fluctuations, but not the price received in the receiving company.

SAP Note 2395283 explains details of the conversion logic at

If you are familiar with the fields in Change Plan Data for Activity Types transaction (transaction code KP26), you’ll notice several other new options in addition to the company-code-specific rate in Figure 3. Notice that you can also make the rate specific to the project (the WBS Element column) or even the employee (the Pers.No. [personnel number] column). Notice also a column for the service cost level (the SC… column). Currently, this column is only available in the cloud edition and is used to define the grade of the employee. This grade or service cost level is then defined as an attribute in the employee master record and is taken into account for activity postings made by that employee.

Figure 4 shows the SAP Fiori Projects – Actuals application that is delivered as part of the Cost Accountant – Sales role and how these postings are reflected in project reporting. In this example, we have selected the project definition SW007 (see the top left section of Figure 4) to show all postings relating to the project. Notice the Consulting and ICO Margin accounts in each company code.

Figure 4 — The Projects – Actuals Report

Intercompany Billing

The postings in Figures 2 and 4 take place whenever time is recorded (often on a daily basis). However, most ordering companies don’t want to receive an invoice on a daily basis. Instead, they want to be billed at period close for the work performed by employees. You’ll find the application to create the intercompany billing document (along with the sales order) in the Internal Sales Representative for Professional Services (SAP_BR_INTERNAL_SALES_REP_PRSV) role or by using transaction code DP93.

To understand what will be included in the intercompany billing document, select the two relevant posting lines by entering the trading partner 1010 in the top right section of the G/L Account Line Items app, as shown in Figure 5. What’s important here is that the intercompany markup has already been calculated based on the settings for the activity rate. These exact figures will be billed to the ordering company, so you don’t have intercompany reconciliation headaches with each company showing a different figure for the activities charged.

Figure 5 —— Document lines to be used for intercompany billing

Figure 6 shows how these figures are transferred directly to the intercompany billing document. To keep the example simple, we have charged for only one consulting hour, but normally we would be billing for all the consulting activities performed during the period. The normal billing process then calculates the tax obligation and the associated receivables. 

Figure 6 — Intercompany billing document

Consultants and employees on international projects don’t generally just record work time, but also incur travel expenses. If the employee’s cost center and the project for which the travel took place were in different legal entities, the employee cost center was credited and the project in the receiving company was credited with the travel expense account. For real-time intercompany clearing in both companies line items were created with an intercompany clearing account (must be P&L accounts). For travel postings there are no mark-ups available. This expense line item is also picked up during intercompany billing and included in the invoice to the ordering company. 

At the time of writing, the intercompany billing document recognizes activity postings (transaction code KB21N) and the related mark-up postings and travel if posted cross company with the Enter Manual Repostings of Costs transaction (transaction code KB11N). The intercompany billing document does not reflect manual journal entries between company codes or the results of project settlement or assessment/distribution cycles that cross company codes.  

Configuring Cross-Company Service Charges

Before you start, you’ll need to ask your system administrator to activate business function FINS_CO_ICO_PROC_ENH_101 (Intercompany Process Enhancements 1) using transaction code SFW5, as shown in Figure 7. This activates the relevant steps in the IMG and the application to enter the activity rates. 

Figure 7 — Activate the intercompany process enhancements business function

Before you can use the application we showed in Figure 3, you’ll need to create an appropriate pricing procedure and activate this in the IMG by following the steps shown in Figure 8 to create the relevant sales and distribution (SD) conditions. You’ll find these steps under menu path Controlling > Cost Center Accounting > Planning > Price Planning Based on Condition Technique. Follow the instructions in each of the steps.


Figure 8 — Condition techniques for the pricing procedure for the activity valuation

Before you can create the intercompany posting lines in Figures 2 and 4, you need to enter the account that will be used to store the intercompany margin. Follow menu path Controlling > Cost Center Accounting > Actual Postings > Additional Transaction-Related Postings > Intercompany Margins for Activity Allocations > Assign Intercompany Margin Accounts in the IMG. Then select your chart of accounts. We selected YCOA (standard chart of accounts). In Figure 9 you can either define a different intercompany margin account for each activity account or define a default intercompany margin account to be used for all activity allocation accounts.

Figure 9 — Intercompany margin accounts

On a similar note, if you wish to use the different types of expense postings to generate postings to separate intercompany clearing accounts, you can use the triggering account to determine which intercompany clearing account should be updated. In Figure 10 we have created separate accounts for the various expenses that are typically incurred on a professional services project. To maintain these expense accounts in the IMG, follow menu path Controlling > Cost Center Accounting > Actual Postings > Additional Transaction-Related Postings > Assign Intercompany Clearing Accounts and add a pair of clearing accounts for each expense account that will be used in your intercompany postings. 

Figure 10 — Intercompany clearing accounts

Finally, you need to make the extra fields that are shown in Figure 3 part of the posting document by activating them as reporting attributes. To include the employee number and the WBS Element in the posting line, follow IMG menu path Controlling > Cost Center Accounting > Actual Postings > Additional Transaction-Related Postings > Derivation of Add Reporting Attributes for ICO CO Postings. Select the DerRepA (derive reporting attributes) check box as shown in Figure 11. This ensures that they are included in the relevant posting documents.

Figure 11 — Reporting attributes

More Resources

See All Related Content