Skip to Content

Different Payment Terms for each Line Item in Sales Order

Hello All,

Recently my client launched a new Product which was pushed to existing Dealers along with existing Products but the Payment Terms for new Product was different than existing Products.

For Example, A Mobile handset manufacturing company has launched a new Handset & it is selling in large numbers. Due to this newly launched Product, the earlier Products (which are lying in Stock) are not in demand & sales are slow. Thus this Company comes out with a scheme that for every 4 latest Handset, Dealers will have to Purchase of 1 older model Mobile. Payment Terms for Latest Mobile will be immediate & for older model Mobile will be after 30 days.

Now how to handle scenario like this where in single Sales Order for same Sold-to-Party & Ship-to-Party, payment terms are different for each Material.

SAP has given facility of maintaining Payment Terms in Condition Records of Materials as shown below:


Payment terms mentioned in Condition Record will be determined for the respective Line Item while creating Sales Document & will overwrite the Payment Terms mentioned in Customer Master Record.

Point to be noted: While we can successfully create Sales Order & Delivery with multiple Line Items & Separate Payment Terms, but there will be Invoice split based on Payment Terms. Because Payment Terms is Header Level field in Invoice.

A pre-requisite – In Item Category (T-Code VOV7) Business Item Check Box should be ticked, which will allow separate Business Data in Sales Order Header & Item.

Hope this is useful.


You must be Logged on to comment or reply to a post.
  • Jignesh,

    Thank you for your document!

    Business examples help in understanding the concepts and theory.

    Thus this Company comes out with a scheme that for every 4 latest Handset, Dealers will have to Purchase of 1 older model Mobile.

    This has not been addressed in the document.

    Could you please comment what functionality your client used for this business requirement?

  • hi

    tq sharing

    but it is not working,

    it means order created for  for two payment terms, but billing is not created its splitting,( based on payment terms )

    so what is use the two payment terms maintain  at order level .

    can you ex plane  business process at billing creation , with out  any logic changes ,

    based on my knowledge , one bill to party maintain one payment term,

      • hi

        i have idea for  the billing split reasons

        Payment Terms is located at Invoice Header & all the Fields of Invoice Header can cause split if they are not same at Line Item level.

        my question is you told  at sale order level two payment terms ,  it means single line item payment terms, are line item wise different terms ,

        this process it allow at delivery level , but in billing system takes billing split based on payment terms

        VBKD- zterms field values for two lines it different

        first line item VBKD - ZTERM  is different

        secound line item VBKD-ZTERMS is different

        so system will be split based on payment terms, because it is VBKD data , so line item wise VBKD its feted , so VBKD-ZTERM , two line items different check below VBKD Table data


        30071786 1 0001 02 CFR
        30071786 2 0002 02 CFR

        CHECK below screens

        Split analy.

               Split due to different header data

                Fld Name                        $000000001           $000000002

                Terms of payment key            0001                 0002

        i tested my system this issue it will come

        you also pl test

        and also do the debugger then you find the diffierence,

        VBKD data also line item its feted, when business data is different

        i think its full clarification

        anything wrong pl rewert

        i will not  post the screen because  here their no option

    • Bojja,

      it means order created for  for two payment terms, but billing is not created its splitting,( based on payment terms )

      The main point of this document is not invoice splitting. (or the main point is not about whether multiple invoice shall be created or single invoice shall be created)

      It is about having different Terms of payment at item level, in a sales order.

      Ofcourse, the splitting of invoice shall take place because of different terms of payment in the reference document(s) based on which billing document is created.

      • hi tw

        tq  repaly

        my question is when you maintain the two payment at order level , it will be accept , but when do the billing it is not allow , read my new post ,

        because VBKD-ZTERM field same for all line item it is ok, but you maintain different payment for different line items  on that time system take line item wise  payment terms

        so i create the one billing for two line item , two different payment terms

        like item 1- 0001

        item 2 -0002

        vbkd table field  zterm ( payment term) it comes two payment terms

        now i create the single delivery , then do the billing now it will  happen billing spit ,

        this wrong or right , based on my knowledge it is wrong ,

        so what is the use of maintain two payment terms in order level,

        any thing wrong pl revert

        • Bojja,

          Are you saying that -

          1 sales order > 1 delivery

          But there SHALL BE multiple billing document.

          If you are saying the above, Yes you are correct!

          Side comment: Jignesh too has said the same.

          • TW

            yes user wants every time single delivery for single billing , on that why your maintain two payment terms at order level ,

            and also when you maintain the business data for each line different , system not allow the billing , and delivery also .

            is not a good practice , (this is also based on customer requirement)

          • Bojja,

            For one of your clients, the requirement was to have single billing document for a single delivery document (i.e. number of delivery : number of billing documents = 1:1).

            But that does not make splitting (or having multiple invoices for 1 delivery)

            "not a good practice"!

            It depends upon what business wants and what business agrees with.

        • Hello Bojja,

          That is exactly (regarding Invoice split) what I have mention in bold letters under - Point to be noted in the document above.

  • Thx a lot for the start point Jignesh, now that it's crystal clear that this type of scenario can by fully satisfied by SAP what could be the best approach that we can take to solve this automatically?

    I've been reading about this and it's said with pricing and conditions technique (creating tables with the relevant fields, assigning AccSq, creating condition type, assigning the condition type to Pricing Procedure and create the condition record) but for another part we could use the MV45AFZZ program with the userexit_move_field_to_vbkd routine to influence directly to the VBKD-ZTERM per position?

    For the condition type it could be a good idea to copy the PR00? or what condition woould be the best to accomplish this task?

    The routine would be a easy and dirty way (and not to mention limited) to accomplish this?

    Kind regards,


    • Aaron,

      The routine would be a easy and dirty way (and not to mention limited) to accomplish this?

      Could you please explain what you mean by the above?

      Going for enhancement (routine) would have some costs, where as payment terms+condition record would be a standard solution provided by SAP i.e. no extra costs.

      • Of course T W!

        In the standard routine move_field_to_vbap (or vbkd) in MV45AFZZ program an ABAP could write some code like:

        IF vbap-mvgr5 =  'X1'.

             READ TABLE vbkd WITH KEY posnr = vbap-posnr

                             ASSIGNING <wa_vbkd>.

             IF sy-subrc = 0.

               <wa_vbkd>-zterm = 'Z001'.



        This could be a very straigh forward example to accomplish the initial task but could grow to an exponential mess if the business requirements change in the organization.

        Looking forward for your comments,


      • Thanks for your quick replies guys!

        @Jignesh: Requirement is as follows:

        As of now the only requirement is that for the material group 5 value 'X1' payment terms have to be within 100 days (ex. ZTERM = Z001), but for any other value in material group 5 the payment terms are copied from the customer master record. So in a sales order we are taking into account that different materials may come with different payment terms but this payment terms have to be fetch automatically.

        We are expecting that this requirement could be expanded to sales organizations or certain custumers or customer hierarchy  or customer group or any combination between them but this is not for granted it's a maybe or maybe not (right now is a nation wide directive with no restrictions).

        I hope made myself clear, if not please tell me so and i'll be glad to explain.


  • Thanks for wonderful article Jignesh.

    Very informative.

    Can you please tell me which TCODE you used to access Condition Records of Materials (shown in the screenshot in this article)


    Sorry I am new in SAP. tried to find out the tcode but i couldnt.