Skip to Content
Author's profile photo Vinod Vemuru

Fixed day payment terms – The magic behind due date determination!!!

Payment terms define the parameters to derive the due date for the payment of an invoice, cash discount terms and periods, installment terms, default payment block/method that can be set etc. Usually baseline date is defined and derived from payment terms which is in turn used as the base for calculation of due date for payment.

Fixed date payment terms are used when the due date for the payment is a fixed date.

E.G: Payment is due on 20th October of every year.

Usually this kind of payment terms are used in case of seasonal sales/purchases.

Many people might have a doubt, if the due date is a fixed day, why do we need payment terms at all?. Instead, can’t we enter the due date directly in invoice? Fixed day payment terms are used for better management of invoices/payments. We maintain the payment terms in master data of customer/vendor which is defaulted to invoice automatically. So, we don’t have to go through the pain of remembering each fixed date for every customer/vendor.

Definition of fixed day payment term is done with out any baseline date as shown below. Then, how does SAP derives due date?

Untitled.png

There is no standard SAP logic which determines the due date for fixed day payment terms. It is left to customers to write their own logic through

BTE (Business transaction event) 1120.

Implicit enhancement can be done in the BTE function module OPEN_FI_PERFORM_00001120_P to write custom ABAP logic and update the field ZFBDT (Baseline date) of internal table t_bsegsub.

One of the flexible way is to maintain a TVARVC variable with the list of fixed day payment terms in the format YYYYMMDD where MMDD is already known.

Year can be replaced with current year/year from posting date through program logic.

In below screenshot, 15th January of every year is the fixed due date for the payment term 070. This TVARVC variable can be queried with the payment term as low value to identify the due date from high value. YYYY should be replaced with year from posting date/any other logic based on business requirement.

Untitled.png

Above BTE is called for every FI document creation where due date determination is required (From sales, purchase etc). So, logic has to be restricted based on business requirement.

Your valuable comments/any other better approach if you know would be most welcome 🙂

Best regards,

Vinod Vemuru.

Assigned Tags

      43 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Srinu S
      Srinu S

      Hi Vinod,

      Useful document. Thanks for sharing.

      Srinu.

      Author's profile photo Vinod Vemuru
      Vinod Vemuru
      Blog Post Author

      Thanks Srinivas 🙂

      Author's profile photo Former Member
      Former Member

      Good one...Thanks.

      Best Regards,

      Naresh K.

      Author's profile photo Vinod Vemuru
      Vinod Vemuru
      Blog Post Author

      Thanks Naresh 🙂

      Author's profile photo Srinivas Salpala
      Srinivas Salpala

      Hi,

      Nice one. Keep sharing knowledge 🙂

      BR, Srinivas Salpala

      Author's profile photo Vinod Vemuru
      Vinod Vemuru
      Blog Post Author

      Thanks Srinivas 🙂

      Author's profile photo Former Member
      Former Member

      Your Blog is usful and Good.. Thanks ...

      Author's profile photo Vinod Vemuru
      Vinod Vemuru
      Blog Post Author

      Thanks Ramesh 🙂

      Author's profile photo Former Member
      Former Member

      Very Nice document Vinod. Appreciate the add-on Knowledge 🙂

      Author's profile photo Vinod Vemuru
      Vinod Vemuru
      Blog Post Author

      Thanks Sowmya 🙂

      Author's profile photo Lakshmi Kumari Sama
      Lakshmi Kumari Sama

      Hello Vinod,

      It is really a nice blog. Thanks to know a new topic from your end and at the same time we are expecting more articles in future also 🙂

      Doubt - If we want to give any discount how can we proceed further on that.

      Can we fix this fixed pyt terms issue through validation/substitution also?

      Thanks & Regards,

      Lakshmi S

      Author's profile photo Vinod Vemuru
      Vinod Vemuru
      Blog Post Author

      Thanks Lakshmi 🙂

      The requirement you are asking is for our client only 😛 . We explored multiple options with no luck. So, posted question in forum (By Rudra) to seek experts advice.

      Thanks,

      V V

      Author's profile photo Former Member
      Former Member

      Thanks for sharing this insightful information......nice to have this document handy!

      -Amir

      Author's profile photo Vinod Vemuru
      Vinod Vemuru
      Blog Post Author

      Thanks Amir 🙂

      Author's profile photo Mohammed Kalim
      Mohammed Kalim

      Hi Vinod,

      Nice document...Thanks for sharing.

      Regards,

      kalim

      Author's profile photo Vinod Vemuru
      Vinod Vemuru
      Blog Post Author

      Thanks Kalim 🙂

      Author's profile photo Former Member
      Former Member

      Hi Vinod,

      Well written with clear flow of information...

      Thanks for sharing..

      Rahul

      Author's profile photo Vinod Vemuru
      Vinod Vemuru
      Blog Post Author

      Thanks a lot Rahul 🙂

      Author's profile photo narin kamuni
      narin kamuni

      Good Document, thanks for sharing...

      Regards,

      Narin Kamuni

      Author's profile photo Vinod Vemuru
      Vinod Vemuru
      Blog Post Author

      Thanks narin 🙂

      Author's profile photo Former Member
      Former Member

      Wonderful Document. This is infact an Innovation!

      Author's profile photo Vinod Vemuru
      Vinod Vemuru
      Blog Post Author

      Thanks a lot Naseem 🙂

      Author's profile photo CA. Prasad Atmakuri
      CA. Prasad Atmakuri

      Nice Document

      Thanks for sharing

      Regards

      Prasad

      Author's profile photo Former Member
      Former Member

      Hi Vinod,

      Thanks for sharing the knowledge..A question asked often, and you addressed it .

      Regards,

      Kavita

      Author's profile photo Vinod Vemuru
      Vinod Vemuru
      Blog Post Author

      Thanks Prasad, Kavita 🙂

      Author's profile photo Ajay Maheshwari
      Ajay Maheshwari

      Hi Vinod

      Nice document

      I am wondering cant this be achieved using the fields "Fixed date" and "additional months"??

      If you want invoice will be due always in the next month, on 15th, you can have "Fixed date = 15" and "Additional months = 1"..

      For the example you have considered, try with Additional months = 12

      Pardon me, if I am wrong, but my memory says I did it once... It was way 3 yrs back.. Can you please check this aspect?

      Br, Ajay M

      Author's profile photo Ajay Maheshwari
      Ajay Maheshwari

      Hi Vinod

      I tested this in my system and it worked.

      See below..

      /wp-content/uploads/2014/01/2_367791.png

      /wp-content/uploads/2014/01/1_367792.png

      Can you please revise the document accordingly. Please let me know incase I have misunderstood the whole issue

      Br. Ajay M

      Author's profile photo Vinod Vemuru
      Vinod Vemuru
      Blog Post Author

      Thanks Ajay for your valuable inputs.

      However, requirement here is little different. It is not always fixed day + fixed additional months. Payment term can be used any time during the year. Due date year should be adjusted to current year/next year comparing with posting date.

      E.G:

      If my Fixed due date is 15.02.YYYY, If I use my payment terms in Jan 14, then due date would be 15.02.2014. If I use the same payment term from Feb on wards till Jan 2015(This is business requirement), then due date should be 15.02.2015. Can this dynamic date determination possible through standard SAP setup? Awaiting your expert advice 🙂

      Thanks,

      V V

      Author's profile photo Ajay Maheshwari
      Ajay Maheshwari

      Hi Vinod

      Not this dynamism, but some dynamism is possible

      Example - If Invoice date is between 1-15, then 15th of next month.. For 16-31, 30th of next month... Such dynamic determination is possible

      For the case you have suggested, it wont support.. However, you can have 2 payment terms and write a plain substitution to substitute payment term based on posting date... I dont prefer to go for ABAP if Std solution is possible

      No doubts the BTE is a good solution in the case you have suggested.

      Br, Ajay M

      Author's profile photo Diwa p
      Diwa p

      Hi Vinod,

      Very good document.

      Regards

      Diwa

      Author's profile photo Vinod Vemuru
      Vinod Vemuru
      Blog Post Author

      Thanks Diwa 🙂

      Author's profile photo sreehari tokala
      sreehari tokala

      Thank you Vinod . for your addition of knowledge. appreciated

      Regards,

      Sreehari

      Author's profile photo Vinod Vemuru
      Vinod Vemuru
      Blog Post Author

      Thanks Sreehari 🙂

      Author's profile photo Former Member
      Former Member

      Thanks Vinod, its very informative document.

      Regards,

      Ramesh Kumar

      Author's profile photo Vinod Vemuru
      Vinod Vemuru
      Blog Post Author

      Thanks Ramesh 🙂

      Author's profile photo Former Member
      Former Member

      Hi Vinod,

      Thanks for your document. I don't whether it works in my case or not.

      We have a requirement to take fixed Day as baseline Date. For Ex: 5th of every Month. After 5th any invoice (Until next 5th) should pick next month 5th as Baseline date. But in standard system it is picking Current month fixed date even after the date.

      Author's profile photo Vinod Vemuru
      Vinod Vemuru
      Blog Post Author

      Hello,

      As we can code our own logic in BTE, this works fine. Get help from your ABAPer on how to code this logic.

      Thanks,

      V V

      Author's profile photo Arvind Pereira
      Arvind Pereira

      Hi Vinod,

      Thanks for sharing, appreciate the hardwork.

      Regards

      Arvind Leo Pereira

      Author's profile photo Vinod Vemuru
      Vinod Vemuru
      Blog Post Author

      Thanks Arvind 🙂

      Author's profile photo Former Member
      Former Member

      Just a question : In BSEG_SUBST there is no Baseline Date (ZFBDT) field ...

      Have you an idea/workaround ?

      Regards,

      Youri

      Author's profile photo Former Member
      Former Member

      Solved

      I append structure with my field ZFBDT to BSEG_SUBST 😉

      Thanks for this document.

      Regards

      Youri

      Author's profile photo Vinod Vemuru
      Vinod Vemuru
      Blog Post Author

      Thanks for posting solution 🙂 . Didn't find time to check this 😐

      Author's profile photo Sandip Kurewar
      Sandip Kurewar

      Thanks for the valuable content.