Page tree
Skip to end of metadata
Go to start of metadata


STO is the intracompany process to transfer materials, between one plant to another within the same company with the same company code.

Customizings for STO

  • You have to register the supplying plant as a supplier and the receiving plant as a customer.

    The supplying plant can be customized on the vendor master data.
  1. XK03
  2. Enter the information of the supplying plant
  3. Select Purchasing Data and press enter
  4. Go to Extras
  5. Select Add. Purchasing Data
  6. See image below for reference:

The receiving plant can be customized following the path on SPRO:

  1. Materials Management
  2. Purchasing
  3. Purchase Order
  4. Set Up Stock Transport Order
  5. Define Shipping Data for Plants



Table J_1BIM02V should be set as below for movements 86X:



OMJJ - In this transaction you can set the allowed transaction for each movement, field settings, etc.



Tax Code Configuration on J1BTAX - MM


Posting String Configuration 

  1. J1BTAX
  2. Nota Fiscal
  3. Inventory Management
  4. IM Posting Strings
  5. Select the value string and make sure the option 'line item ID' is set to T - Tax or D - Tax.

Standard Process Flow

ME21N - Generate the Stock Transport Order

Use the order type 'UB' and Item Category should be set as 'U'.

VL10B - Create delivery

Fill the Purchasing document field and press Execute (F8):

Select the line click on Background:

Delivery will be created and you can now double click on delivery number created under 'Document' column:

Click on 'Edit/Change'(F1), then in 'Picking' tab fill the value in Picked Qty and all other necessary and relevant information. 


VL02N or VL03N - Change/Display Outbound Delivery

Enter the delivery created and press enter, then go to document flow (F7) to see an overview of documents created and it corresponding status. 

J1B3N - Display Nota Fiscal

The DOCNUM should come up automatically just enter the NF to see all the values of the NF created. 


MMBE / MB5T - Check goods movement

With these transactions, you can check the material's current situation. In this case, if the stock is in transit or if it was already delivered and free.
Here we can see an example of the system showing all the information about the material per Storage Location: 


Another alternative is MB5T:

With this transaction, you can see all the Stock in transit as shown below:

MIGO - Goods Receipt and incoming Nota Fiscal

Fill the outbound delivery number and enter movement 861.

Check items and mark them as ok and then post document.  

You can check the Nota Fiscal if you wish just by clicking on NF button.

Debug Tips

  • SE80>>>Function Group>>>J1BN>>>Function Module>>> J_1B_IM_TX_CALCULATE_TAX_NEW
    For all calculation routines related to material movement can be see in this FM and it is where it starts the interface with FI.
  • SE37>>>Function Module>>> CALCULATE_TAX_ITEM
    Where the KOMP and KOMK will be filled. 
  • SE80>>> Function Group>>>J1BF>>>Include LJ1BFF01 
  • In this include the NF is created. 

  • SE80>>> Function Group>>>MBGB>>> Subroutine>>> FORM AUSGABE (INCLUDE LMBGBFSU)
    This include you can find out issues regarding accounting posting and the famous balance error. 

Related Documents

Stock Transfer Order (STO) with Full or Partial Return of Transit Stock

Check out the SCN post in Portuguese about STO scenario for additional information.

Check out the SCN post in English about STO scenario for additional information


Related Notes/KBAs


123124 - LSA BR:5th v. Customizing of Brazilian movement types

*This note delivers the report CATT P40XXXX_CU_BR to set all the Brazilian movements to its standard settings.

2149094STO - Changing tax code during Goods Receipt, at MIGO
2164657STO - Changing tax code during Goods Receipt, at MIGO
1650850Message error 8B122 when use transaction MR8M
1650880Subcontract Process Supported for Brazil Localization
1294597Nota Fiscal generation for inbound delivery
2078053Automatic determination of Incoterms for all Nota Fiscal processes
1890828Message "8B 146" - Enter a partner type, a partner function, and a partner iden
2069453MB1B- Incoterm is not being filled automatically for movement type 833
2069463Encapsulation of inbound delivery check
2038744Incoterms not filled automatically for mvt 541
1768008Subcontracting: Configuring acc.keys for different acc.
2037109Subcontracting: Balance error in reversal process for mvt. 542
2055635LPP: Incoming nota fiscal (GR) generated with wrongly values for STO process
2062152LPP: Incoming nota fiscal (GR) generated with wrongly values for STO process
679372DIFAL - Brazil: Tax on goods movements - Customizing
722167BR: Altn. base amt and ctrl ind. for BAPI_GOODSMVT_CREATE
1907014Future Delivery - Canceling a document with foreign currency
2012645STO: Goods Receipt error on MIGO using Inbound Delivery
1977720Subcontracting: Reversal document generated by mvt. 544 did not generate taxes
2000223Subcontracting: Reversal document generated by mvt. 544 did not generate taxes
1640802Stock Transport Order between project stocks
1677806Allow tax calculation for subcontracting process
1618453How to fix quantity on stock in transit?





  1. Unknown User (wtklqk0)

    Hi All

    I am facing a issue with Cross company Stock transfer order,our client process is:

    Me21n then Vl10b(delivery creation),PGI(vl02n),VF01(Prof Inv),J1iin(Excise Inv),Migo(based on the Outbound delivery) here we take the reference of J1iin Exicse inv, the excise value captured from J1iin, it is our process.

    But my client new requirement is the excise value should  be posted in the inventory(material account), but now it is going to excise account. so please give an suitable solution on it.



  2. Hi,

    I am using TAXBRJ calculation procedure. I am trying to configure the Sub Trib scenario using as key the field BRSCH for my excpetion table. It seems the system does not  determine my exception because this is read "customer"-BRSCH master data, and function j_1bcalculate_taxes uses "vendor"-BRSCH, that is of course in blank.

    It seems this scenario is not supported by SAP (and should) or there is a bug.

    Have you tried this scenario before?

    1. Hi Gustavo, 

      I was going to suggest you to open an incident for us to test this scenario but I see you already have. (smile)

      It is under dev analysis so you will have an official answer from them (smile)



  3. What are the steps when you get this error "Partial Receipt not allowed for STO", but the plant has confirmed that all goods are present.  Also why the COO error?

    1. Hi Larissa, 

      Can you provide more details?

      In what step this is happening? 





  4. Hi Patricia - First of all, this is a great article.  I am working on implementing the Intra-Company STO process in our Brazilian operations to transfer product between two plants.   I have followed the configuration per OSS 888805, but I am confused when I get to the step for Tax Code Configuration on J1BTAX - MM.  I am not completely sure which values to use.  I configured it with Tax code = Z1, TC at GR = I1 and TX at GI = A1.  But when I try to PGI my delivery, I get "tax code A1 does not exist for jurisdiction code".

    When I change the Tax at GI to I1, I get a balance error.

    When I change the tax at GI to SD, I get "only input tax is allowed on 134000 (my inventory account)

    I am trying to understand exactly what the system is wanting for this step.  As far as I can tell, everything else is setup according to the note.

    FYI:  I am using Z1 for my SD tax code because the I1 is calculating ICMS + PIS + COFINS, so I think someone messed with it along the way.  And I get balance error when I use it.






    1. Hi Rita,
      Thank you I´m glad the article is helping people (smile)

      Regarding the tax code basically you have 3 columns in J1BTAX:

      1. SD TC, which is for the delivery (the one create in VL10B)
      2. Tax Code, which is for the oubound document (posted via VL02N)
      3. TC at GR, which is for the inbound document (posted via MIGO or VL32N depending on your process

      How are they used?

      • In the very last column is the 'SD TC' tax code. This tax code should be enter in your delivery or set up to be automatically determine via view J_1BSDICA.
      • So now that you have your delivery created and you will post this document via VL02N to create the outbound NF. For this NF tax calculation, system will pick up the tax code from the very first column of J1BTAX.
      • After that you will enter the goods posting an inbound document, so now the system will use the tax code of column TC at GR.

      Basically this is the logic.

      If you are following this logic and still getting the error of jurisdiction code missing the root cause can be either a note missing or a configuration missing.

      Please check the options below:

      • Error FF718 involving tax jurisdiction code error might be because condition BI00 is checked when it should not.
      • Note  2329708 must be applied in your system.
      • Also this could be due to a wrong configuration of conditions and for that I can recommend running the report from note 1706309. This tool reviews all your settings comparing to the standard settings. That can give you a way to go. 

      Kind Regards,

      Patricia Eidelwein

  5. Hello

    I am interested in this scenario but I was wondering at what value the parts would be transferred (in your example it is 0 BRL). Outside Brazil if you have a UB STO cross Plant (if both the Materials are managed at Price Control S Standard Price in both Plants, as it is usually in Brazil too) the result will be a FI document stock to stock account into the same company code but at the standard price value. How is it in Brazil ? Do you have an example of FI bookings resulting of this scenario ?

    Best Regards