Enterprise Resource Planning Blogs by SAP
Get insights and updates about cloud ERP and RISE with SAP, SAP S/4HANA and SAP S/4HANA Cloud, and more enterprise management capabilities with SAP blog posts.
Showing results for 
Search instead for 
Did you mean: 
Hello everyone,

I hope you are fine! I am Rafael Rhoden from SAP Product Support. I have been working for SAP in Product Support since 2007. I started working with SRM Supplier Self-Services (SUS) and now I am working with Logistic Invoice Verification (MM-IV) and FIORI (MM-FIO-IV).

I would like to share with you my experience helping our customers with different topics from my area. For this blog, I would like to talk about Payment Block, how this works in MIRO, and how to manipulate the Header Blocking. Then, I invite you to keep here with me to learn a little more about this LIV functionality 😊

Why this Topic is so interesting?

I´ve been working with some different cases related to the field ZLSPR, the Payment Block field in the MIRO Header Tab – Payment. I noticed that this topic sometimes can be hard to be understood.

In many cases, the customers were expecting different behaviors, such as these:

  • A behavior that is not standard, for example, blocking the Invoice in the header directly for a Company Code or a group of users without blocking in the item and without a user´s action blocking manually.

  • Others were trying to manipulate this field INVFO-ZLSPR to be blocked in all scenarios, requiring that all Invoices needs to be released by MRBR.

  • And scenarios where the Header´s blocking should happen due to the Payment Terms set in the Purchase Order.

  • A different Blocking Reason /key than "Invoice Verification - R"

I going to start by providing a quick explanation about the Blocking functionality in MIRO, the standard fields that we have to block an Invoice, and finally, the options that we have to manipulate the MIRO´s header.

Invoice Blocking Fields

In MIRO we have three fields related to invoice blocking:

1. In the Tab Payment: Pmnt Block - field INVFO-ZLSPR which can be set manually by MIRO.

Payment Tab


2. In the PO line, the field DRSEG-SPGRP. This is set when the amount, quantity, etc, or other reason exceeds the value determined by the Tolerance Key in OMR6. In this example, the Tolerance Key used is “PP” – Price Variance.

Blocking Reason = Price


3. Manual Blocking Reason field DRSEG-SPGRQ is set in the PO Item:

Manual Blocking Reason in the PO line Item


Standard Settings

The Tolerance keys configuration is done by transaction OMR6. About the tolerance keys available, you can check and read these blogs. They are an excellent source of information and examples from each Tolerance Key:

Invoice Tolerance Keys – An Insight – Part 1

Invoice Tolerance Keys – An Insight – Part 2


Common Issues in the MRBR

Sometimes when MRBR is executed, the results are not bringing all Invoices that the user is expecting. A common reason for this is that the MM authorization objects are not correctly configured. For further information, please read the SAP KBA 2103443 - MRBR does not return all the blocked invoices.

Another common issue when performing MRBR is the error "M8657 - The list of blocked invoices is incomplete". For this issue I recommend reading and following the checks provided in the KBA 2103402 - MRBR shows message M8657 after the selection screen


Example with Tolerance Key "PP"

Okay, as mentioned, we will use the tolerance Key PP. To configure this tolerance and its value run tcode OMR6. Create or edit the existing one for the Company code and Tlky = PP. In my example, the upper limit is the absolute value 10,00:

Transaction OMR6


Once this is set, the system will check the price variance. In this case, this is a purchase order with no GR_BSD-IV flag set.  (For further information about the influence of this flag for Blocking functionality, please read this SAP KBA:  2055131 - Invoice posted for more than the quantity delivered and GR-Bsd IV is set or not)

Posting the Invoice with more than EUR 10,00 which is expected by the Purchase Order, the warning message is displayed – M8082 - Price too high (tolerance limit of 10,00 EUR exceeded):

Warning Message M8082 displayed due to tol.key PP

The message is a warning, so it is possible to post the Invoice which is going to be blocked. If it is required not to allow the user to post the Invoice, you can add the message M8082 in the OMRM and set this as an Error.

When a user post this Invoice which is blocked, the message confirms that Invoice was blocked:

A message confirming the blocking


This blocking information is available in the PO line item in the PO reference tab:

Blocking Reason = Price


And in the Header the Invoice is blocked with – Invoice Verification – R:


Checking in the FI accounting document we see the “R” option in the Vendor line:

Payment Block flag in the vendor line in the accounting document


To release this Invoice, the correct process is carried out by MRBR. If the blocking reason is not valid anymore, then the release option is “Release Automatic”, and if still exists then the option is “Release Manually”. This is explained in this SAP KBA 1933251 - MRBR: determination logic for quantity variance.


Now, how I can handle a different Header Blocking during MIRO Posting?

You are seeking to set other payment reasons, or enter some logic to determine this, these are the options:


A) Manipulate the E_ZLSPR field in the BADI MRM_PAYMENT_TERMS, so you can set this depending on your developed logic. For example, depending on the vendor, Company Code, user, etc.

This is an example just to illustrate what I mean:

Example of how to manipulate the field ZLSPR


B) Set the field "Blocking Key" in the transaction code OBB8 for the Payment Terms. So, this way, you can control the Invoice Blocking in the Header Level in MIRO depending on the Payment Terms used.

Block Key in the Terms of Payment


C) Set the field E_ZLSPR as "Blocked" by transaction SHD0, creating a custom layout to be used in MIRO. This way the field is set as blocked from when you start the transaction. However, bear in mind that if the Payment term is set in the OBB8 to be blocked (Block Key), this will overwrite the SHD0 settings.

I hope that this information helps you. See you in the next blog 😊