Transfer Price is the price at which an item is transferred from one operating unit to another operating unit. Transfer price is also usually called as “Arm’s length Price” and is generally guided by the originating country’s accounting standards.
Logic for transfer price determination for shipping flows is explained in Figure . However, for procuring flow, you can specify whether the transfer price is same as the PO price in intercompany transaction flow. This means that an operating unit sells at the same price at which it procured the item to another operating unit. If you specify that the transfer price is not same as the PO price in the intercompany transaction flow, then system uses the same logic as depicted in . For procuring flow, you specify the pricing option (transfer price or PO price) separately for asset and expense items.

You can make use of the external API feature of the intercompany invoicing to develop your own custom logic for determining transfer price. For example, if you want to use the cost price as the transfer price, then build your custom logic to fetch the cost price. The name of the external API is MTL_INTERCOMPANY_INVOICES.get_transfer_price and the name of the file is INVICIVB.pls located at $INV_TOP/patch/115/sql. Ensure that the API returns transfer price along with currency code.
Please ensure that the transfer price is not 0. Oracle expects that the transfer price should be greater than 0. You will be able to create an intercompany AR invoice but will not be able to create an intercompany AP invoice resulting in intercompany reconciliation discrepancy. You need to set the profile “QP: Security Control” to ‘Off’, to generate logical transactions and for raising the intercompany AR invoice.

1. For a single process flow (one procure-to-pay cycle or order-to-cash cycle), you can model Oracle to generate intercompany invoices between two or more operating units. The building block of intercompany invoicing is the setup of intercompany transaction flow.
The intercompany transaction flow establishes the physical flow of goods and financial flow relationship between two operating units. The intercompany transaction flow establishes the relationship between one operating unit (known as Start Operating Unit) and another operating unit (known as End Operating Unit) about the actual movement of goods. Similarly, it also establishes the invoicing relationship between Start Operating Unit and End Operating Unit.
2. Intercompany transaction flow is of two types – shipping flow and procuring flow. You need to setup intercompany transaction flow of type shipping when selling operating unit is different from shipping operating unit. You need to setup intercompany transaction flow of type procuring when buying operating unit is different from receiving operating unit.
 
3.1 By enabling advanced accounting for an intercompany transaction flow, you would be able to generate multiple intercompany invoices between different operating units for the same physical movement of goods.
Oracle supports intercompany invoicing for both shipping and procuring flows. However, you need to use the ‘Advanced Accounting’ option for enabling intercompany invoicing for procuring flow even if it involves only two operating units. If you do not enable ‘Advanced Accounting’ option at the intercompany transaction header, then no logical transactions will be generated and no intermediate nodes can be defined
3.2 You need to define intercompany relations between each pair of operating units in the intercompany transaction flow. When advanced accounting is enabled for an intercompany transaction flow, you will be able to define multiple intercompany relationships between different operating units. If advanced accounting is set to No, then an intercompany transaction flow can have only one intercompany relation (it is between start operating unit and end operating unit).
 
At each pair of intercompany relationship, you will define the intercompany accounts, and currency code to be used on AR and AP invoices.
Note that in Figure 3.1 – Intercompany Transaction Flow, physical goods never flow through intermediate operating unit. Oracle creates ‘Logical Material Transactions’ between the operating units, based on which intercompany invoices between multiple operating units are raised.
3.3 No logical transactions will be created when you do not choose ‘Advanced Accounting’. For example, the transactions in Figure 4 can be broken down as depicted in Figure 6.
 
Logical transactions are useful to record financial transactions between two operating units without physical movement of goods. For example, in Figure 3.2 – Logical Material Flow, Vision Japan is an intermediate operating unit through which no physical goods flow. However, it is a financial intermediate node, which is involved in intercompany invoice flow. To facilitate accounting in the intermediate OUs, logical intercompany receipt and issue transactions are created. Similarly, logical receipt and logical sales order issue transactions are created for those receipts and issues that are not accompanied with physical receipt and issue of goods.
3.4 Advanced Accounting’ option is not available for internal requisitions – internal sales order business flow. Though you can set the ‘Advanced Accounting’ flag at Intercompany Transaction Flow header to ‘Yes’, system ignores the flag and does not generate any logical transactions. This means you cannot have an intermediate financial node in the intercompany transaction flow. Also, you cannot have intercompany invoicing for internal sales order with direct transfer (in shipping network between the inventory organizations) as an option. You have an flexibility to switch off intercompany invoicing for internal sales orders by setting the profile ‘INV: Intercompany Invoice for Internal Orders’ to No.
Intercompany invoicing is possible for inter-org transfers of type ‘In-transit’ only through ‘Internal sales Orders’. No intercompany invoicing is possible if you perform org transfers between two inventory orgs belonging two different operating units without ‘internal sales Orders’. Also note that intercompany invoice cannot be raised for inter-org transfers of type ‘Direct Transfer’ through Internal sales Orders.

Customer and Supplier relationship

Intercompany invoicing is widely used in multinational organizations. Sometimes you will find that these companies engage in a customer – supplier relationship.
For example, in above Figure you need to define Vision Japan as a customer in Vision China operating unit. Similarly, Vision China should be defined as a supplier in Vision Japan. When you define an intercompany relationship between Vision Japan and Vision China, actually you are establishing an internal customer and supplier relationship. Similar is the case for every intercompany relationship in an intercompany transaction flow. However, at present intercompany invoicing does not support any sales credit check.
Intercompany invoicing is done when one organization offers products / services to another operating unit. For example, when a customer order is processed through the order cycle and then invoiced, the selling organization records journal entries to accounts receivable, revenue, and as applicable tax and freight. The shipping warehouse records journal entries to its inventory asset and cost of goods sold accounts. When this scenario involves a selling organization in one business unit but a shipping warehouse in a different business unit, additional accounting must take place. The shipping organization needs to bill the selling organization at transfer price, and the selling organization needs to make the corresponding payment.
Note that intercompany invoicing is possible only between two operating units. You cannot invoice between two inventory orgs if they belong to the same operating unit.The intercompany AR invoice is the transaction used by Oracle to record intercompany receivable accounting for the shipping organization: debiting intercompany AR (at transfer price), tax, and freight and crediting intercompany revenue.
The intercompany AP invoice is the transaction used by Oracle to record the payable accounting for the selling organization: debiting intercompany COGS (at transfer price) and freight and crediting the intercompany payable account. Ideally, these transactions should happen automatically and as soon as possible after the shipment takes place. This can be done using the intercompany invoicing process within Oracle applications.
Oracle supports intercompany invoicing when:
  •  Shipping operating unit is different from selling operating unit and
  •  Receiving operating unit is different from procuring operating unit.
Basic Business Needs
Oracle Applications provides you with the features you need to satisfy the following basic business needs.
  • Enter sales orders from one operating unit and assign a shipping warehouse under a different operating unit.
  • Automatically create intercompany payable and receivable invoices to record intercompany revenue, payables and receivables.
  • Eliminate intercompany profit in the general ledger.
Major Features
Automatic Intercompany Sales Recognition
You can assign a shipping warehouse under a different operating unit to a sales order. The system automatically records an intercompany sale between the shipping organization and the selling organization by generating intercompany invoices.
Segregating Trade and Intercompany COGS and Revenue
You can define different accounts for Trade and Intercompany COGS and Sales Revenue to eliminate intercompany profits’ Transfer Pricing. You can establish your transfer pricing in intercompany invoices through Oracle Order Management and Shipping Execution’s price lists.

Extensible Architecture
At key event points in the programs, stored procedure callbacks have been installed, including invoice and invoice line creations, and the transfer pricing algorithm. You can insert PL/SQL code to append or replace existing program logic to fulfill your specific business requirements.