Take a detailed look at the configuration steps within SAP ERP that are necessary to process an inter-company transaction from start to finish.
Key Concept
Many companies consist of multiple subsidiaries and each is regarded as a separate legal entity. Some companies create this type of distinction for legal and regulatory reasons, while others simply want a clear separation of their business entities when it comes to financial reporting. This typically translates into the creation of multiple company codes within the SAP ERP system. Any activity that takes place between these internal company codes is typically referred to as inter-company. Inter-company billing is a process for invoicing business transactions when the organization that sells a product and the organization that delivers the product belong to different company codes within the same enterprise.
Often, organizational and political factors can make it harder to keep accurate and timely tracking of inter-company transactions within your SAP ERP system. Fortunately, SAP ERP Central Component (SAP ECC) comes with a number of standard pieces of functionality that make the processing of inter-company postings a whole lot easier and cleaner. Specifically, SAP ECC provides the tools to create a purchase order, convert it to a corresponding delivery note and billing document on the supplying company code’s side, and automatically apply that billing document as a purchase order payment at the receiving company code.
The use of the inter-company stock transfer process in SAP ERP has a number of advantages. Foremost, it enforces tight integration between purchasing, delivery, and invoicing steps. This greatly reduces the number of errors upon invoice receipt at the receiving company code, which is often one of the main pain points within the inter-company process. Second, even though some electronic data interchange (EDI)-related configuration is used in SAP ERP, the inter-company functionality completely bypasses the EDI server translations, keeping all the postings inside SAP ERP. This eliminates the need for a separate EDI server. One of the disadvantages to the inter-company functionality is the need to use identical material numbers in both supplying and receiving company codes. Take that into consideration when planning the implementation of this functionality.
Following are the configuration steps to process an inter-company transaction.
Step 1. Configure the Delivery Type
In the first configuration step you create a custom delivery type to handle the inter-company stock transport delivery documents at the supplying company code. You use the standard SAP delivery type NLCC as the starting point. Proceed to IMG menu path Logistics Execution > Shipping > Deliveries > Define Delivery Types or use transaction code 0VLK. Select delivery type NLCC and click the copy as icon as shown in Figure 1.

Figure 1
Configure delivery type (part 1)
Give your new delivery type the technical name of ZNLC (I use Z as the first character to be in the customer name space). The NLC is simply the first three characters of the standard delivery type that you are copying from NLCC (because you are limited to four characters in total) and a description of your choice. You can leave most of the settings here unchanged. The key setting that you do need to modify is the NR int. assgt., which controls the internal number range assignment. Assign a number range that has already been configured for other delivery types in your system. Figure 2 shows an example.

Figure 2
Configure delivery type (part 2)
Step 2. Assign a Delivery Type to the Purchase Order Type
Next, assign the delivery type that will be used at the supplying company code. Follow IMG menu path Materials Management > Purchasing > Purchase Order > Set up Stock Transport Order > Assign Delivery Type and Checking Rule and assign the new delivery type ZNLC to standard purchase order type NB. Do this for each plant that will be supplying goods for inter-company stock transports. You can refer to Figure 3 for an example of such a configuration. You will be using standard purchase order type NB Standard PO, not the stock transport purchase order type UB Stock transport ord. The latter should be used on intra-company stock transports, when material is moved within the same company code but between two different plants.

Figure 3
Assign delivery type to purchase order type
Step 3. Update Vendor Master Data with Plant Assignment
Assign each supplying plant to the corresponding vendor master data record. Note that this is not a configuration step, but rather a master data step, and thus it cannot be transported between your SAP ERP systems. Instead, this step should be performed manually in each SAP ERP system (such as development and production). You can either use transaction code XK02 or menu path Logistics > Materials Management > Purchasing > Master Data > Vendor > Central > Change to update vendor master data. Proceed to the Purchasing data screen, follow the menu path Extras > Add. purchasing data, and assign the corresponding plant to the vendor (Figure 4). The system uses this assignment to determine the plant for the inter-company stock transport delivery document from the vendor that was specified on the purchase order.

Figure 4
Update vendor master data with plant assignment
Step 4. Maintain the Sales Area Assignment to Plant
You now assign the sales area, which consists of sales organizations, distribution channels, and divisions that are used on the delivery document that is created at the supplying company code against the initial purchase order. Keep in mind that you can only assign one sales area to each plant so choose carefully. Follow IMG menu path Materials Management > Purchasing > Purchase Order > Set up Stock Transport Order > Define Shipping Data for Plants to access this configuration step (Figure 5). Perform this step for each supplying plant that is involved in the inter-company stock transport process.

Figure 5
Maintain the sales area assignment to plant
Step 5. Maintain Partner Determination Procedure Assignment
Configure partner determination on delivery type ZNLC so it is similar to the configuration of the delivery types that you are already using in your SAP ERP system. This assignment controls which partners can be present on the delivery document and how these partners are determined.
Use transaction code VOPAN or follow IMG menu path Logistics Execution > Shipping > Basic Shipping Functions > Partners > Set up Partner Determination for Deliveries. Double-click the Partner Determination Procedure Assignment node in the Dialog Structure menu on the left side of the screen (Figure 6).

Figure 6
Partner Determination Procedure Assignment (part 1)
Locate delivery type ZNLC and assign the partner determination procedure of your choice. Figure 7 shows the assignment of partner determination procedure ZLF. This is simply an example. Use the partner determination procedure that has already been configured in your SAP ERP environment. Detailed partner determination procedure configuration is outside of the scope of this article.

Figure 7
Partner Determination Procedure Assignment (part 2)
Step 6. Assign Storage Location Rule
Update delivery type ZNLC with the proper storage location rule. For this step, I assume you have the storage location rule already configured in your SAP ERP system and you simply need to assign it to this delivery type. Use IMG menu path Logistics Execution > Shipping > Picking > Determine Picking Location > Define Rules for Picking Location Determination to access this configuration. Refer to Figure 8 for an example of proper assignment to delivery type ZNLC. Storage location rule YY is used as an example. You can assign the proper storage location rule that has already been configured in your SAP ERP system.

Figure 8
Partner Determination Procedure Assignment (part 2)
Step 7. Assign Default Billing Document Type
In this step, you tell the system which billing type should be used for custom delivery type ZNLC. To keep things simple, I use billing type F2, which is also used on regular customer invoices. Take a look at standard SAP billing type IV (via transaction code VOFA or IMG menu path Sales and Distribution > Billing > Billing Documents > Define Billing Types) if you would like to have a separate billing type for your inter-company invoices. To assign the default billing type, follow IMG menu path Sales and Distribution > Billing > Intercompany Billing > Define Order Types for Intercompany Billing. Assign billing type F2 to sales document type DL (Figure 9). The reason you use sales document type DL is because you assigned it to your custom delivery type ZNLC in step 1 shown in Figure 2.

Figure 9
Assign default billing document type
Step 8. Update the Output Determination Procedure
Add standard output type RD04 to the output procedure that is used by the billing type F2 in your SAP ERP environment. Follow IMG menu path Sales and Distribution > Basic Functions > Output Control > Output Determination > Maintain Output Determination for Billing Documents > Maintain Output Determination Procedure to complete this configuration step. Select the output determination procedure that you are currently using against billing document type F2 and double-click the Control Data folder under the Dialog Structure on the left side of the screen in Figure 10.

Figure 10
Update output determination procedure (part 1)
Next, click the New Entries button at the top of the screen and assign output type RD04 (Figure 11). Requirement routine 62 ensures that output is issued only if the billing document is successfully released to accounting.

Figure 11
Update output determination procedure (part 2)
The next three steps cover EDI-related configuration. As I mentioned before, there is no need for an actual EDI server to make this functionality work. You simply use EDI configuration to handle some of the automation directly in SAP ERP.
Step 9. Create a Logical Address
You need to maintain the logical address assignment so that you can automate the creation of the invoice receipt at the receiving company code. Proceed to IMG menu path Sales and Distribution > Billing > Intercompany Billing > Automatic Posting to Vendor Account (SAP-EDI) > Assign Vendor. You can also use transaction code WEL1 to access this configuration step. Create a configuration entry for each combination of receiving plant and supplying sales organization. Click the New Entries button at the top of the screen to create a new entry in this configuration table.
Input the logical address into the Log.addr. field by concatenating the supplying sales organization and the receiving plant (customer number). Note that if the receiving plant has a purely numeric (as opposed to alpha-numeric) customer number, the logical address needs to be 14 digits long, so fill the space between the sales organization number and plant/customer number with zeros accordingly. In my example I have sales organization 1400 and receiving customer/plant number 1704 combined into logical address 14000000001704 (Figure 12). Finally, specify the receiving company code and supplying plant/vendor number at the bottom of the screen.

Figure 12
Create logical address
Step 10. Create a Partner Profile for the Supplying Plant
Use transaction code WE20 to create a vendor partner profile for each supplying plant that will use the inter-company stock transport process. Select Partner Type LI Vendor in the Partner Profiles menu on the left and click the create icon as shown in Figure 13.

Figure 13
Create partner profile for supplying plant (part 1)
You can refer to Figure 14 for an example of some of the common settings that need to be present on the vendor partner profile. Work with your EDI administrator to determine the specific settings that are applicable in your environment. Click the create inbound parameter icon highlighted in Figure 14 to add a new inbound parameter.

Figure 14
Create partner profile for supplying plant (part 2)
Finally, assign Message type INVOIC, Message code MM, and Process code INVL within the new inbound parameter (Figure 15). Make sure to save your changes.

Figure 15
Create a partner profile for supplying plant (part 3)
Step 11. Create a Partner Profile for the Receiving Plant
This step is similar to step 9 except that you set up the proper partner profile for the receiving as opposed to the supplying plant. Proceed to the same transaction code (WE20) and select Partner Type KU Customer this time. Click the create icon. As in step 9, consult your EDI administrator for the preferred setup of the partner profile settings in your environment. The key setting is the creation of a new outbound parameter as opposed to an inbound parameter. Click the Create outbound parameter icon (highlighted in Figure 14) and maintain the proper settings as shown in Figure 16. Note that the Receiver port needs to be set to ALEPORTXXX, in which XXX is the system name of your SAP ERP system.

Figure 16
Create a partner profile for the receiving plant
Step 12. Maintain Program Parameters for EDI Incoming Invoices
In this configuration step, you need to maintain a record for every combination of supplying plant and receiving company code, keeping the necessary settings to a minimum. Consult with your Accounts Payable systems analyst on any additional settings that you would like to implement before you proceed. To begin, click the New Entries button. Figure 17 displays an example of the necessary configuration.

Figure 17
Maintain program parameters for EDI incoming invoices
See It in Action
Now you are finished with the necessary configuration steps and are ready to take the inter-company stock transport process from start to finish. First, create a regular purchase order at the receiving plant with purchase order type NB. Use transaction ME21N (create purchase order). Figure 18 displays an example.

Figure 18
Create the purchase order
Next, create the delivery without your customer delivery type ZNLC at the supplying plant. Proceed to transaction code VL10B (delivery due list — purchase orders, fast display) to create the delivery. Enter the shipping point of the supplying plant on the initial screen of the transaction and execute the report. Select the purchase order that you created in the previous step and click the Background button (Figure 19).

figure 19
Create the stock transport delivery
Now you need to goods issue the delivery document that you’ve created to represent the fact that the goods have left the supplying plant. Use transaction code VL02N (change delivery). Post the goods receipt against the same outbound delivery document at the receiving plant using transaction code MIGO (goods receipt).
Finally, create the billing document at the supplying company code. Proceed to transaction code VF01 (create billing document), enter the outbound delivery document on the original screen of the transaction, and press the Enter key. Make sure that output type RD04 is present at the header of the billing document as shown in Figure 20 by using menu path Goto > Header > Output. Click the Further Data button and then select Send immediately as the dispatch time.

Figure 20
Create the billing document with output RD04
Once the billing document is successfully saved and created, the system automatically posts the invoice receipt at the receiving company code. You can see this by going to the Purchase Order History tab on the original purchase order through transaction ME23N (Display Purchase Order) as shown in Figure 21.

Figure 21
Invoice receipt is posted automatically
Anton Karnaukhov
Anton Karnaukhov is a senior IT manager at Pacific Coast Companies, Inc., in Sacramento, California. He earned an MBA degree at Heriot-Watt University and a BS/BA degree with a specialization in computer information systems at Western Carolina University. Anton has more than eight years of SAP implementation and development experience focusing on business intelligence and logistics modules in the manufacturing and resale industries.
You may contact the author at anton.karnaukhov@paccoast.com.
If you have comments about this article or publication, or would like to submit an article idea, please contact the editor.