Skip to end of metadata
Go to start of metadata


The purpose of this page is to give an overview of the release process for blocked invoices.


The following sections will explain some points of the use, main functions and technical details about the release process for blocked invoices.

Release process

Before you can pay a blocked invoice, you must release it in a separate step. You do so by canceling the blocking indicator that was set when the invoice was posted.

Since the total invoice amount is to be paid and not individual invoice items, the blocking indicator is set in the vendor line of the accounting document. As a result, all the items in an invoice can only be released at the same time.

MRBR is the invoice release transaction for blocked invoices that were posted in Logistics Invoice Verification.

There are two process to release the invoices for payment:

  • Release Manually
  • Release Automatically

(info) Note: A typical error made by most customers is using the financial transaction FBL1N to remove the MM-invoice-block. This removes the flag on the financial side and allows the payment to be made, but, it does not process the blocked record properly, so the items appear in the blocked invoice transaction (MRBR) even after they have been released.

Release Manually

Deleting Blocking Reasons 


You can delete individual blocking reasons while processing a blocked invoice item.


  1. Select the blocking reasons that you want to delete.
  2. Choose Cancel Blocking Reason button. The system sets a trash symbol in the blocking reasons selected.
  3. Choose Save button.


If there are other blocking reasons in this item or other items in the invoice, you receive a message indicating that the selected blocking reason was deleted. When you delete the last blocking reason in an invoice, the system automatically releases the invoice. The following message appears: xx invoice(s) released.

Releasing Invoices


When you release an invoice, the system reverses the blocking indicator in the accounting document for the invoice. In the vendor line, the R in the field Payment block is deleted.


  1. Select the invoice document that you want to release. The system automatically selects all other items in the invoice since you cannot release individual items.
  2. Choose Release Invoice button. The system sets a green flag symbol in the invoice document selected.
  3. Choose Save button. The invoices selected are only released for payment when you save them.

Release Automatically

When you release invoices automatically, the system deletes all blocking reasons that no longer apply.
When all blocking reasons in an invoice are deleted, the system automatically releases the invoice.

It is only possible to automatically release invoices if their blocking reasons are no longer valid. This can be the case for invoices blocked due to quantity, price, or schedule variances, or due to quality inspection. You can only use the function Release automatically for the blocking procedure Blocked due to variances.

The system issues a list of the invoices released. The system will also release invoices for which a manual block was set in the document header if the blocking reasons in all items no longer apply.

Technical details

Database Structure

 Database structure of the incoming invoice:

  • RBKP: Header data of an incoming invoice
  • RSEG: Item data (reference to a PO)
  • RBMA: Item data (reference to a material)
  • RBCO: Item data (Direct posting to G/L account)

Further details:

  • Exists a record in the index table RBKP_BLOCKED (containing 10 fields for fast selection of blocked invoices)
  • Important field in RBKP_BLOCKED: MRM_ZLSPR (Logistics payment block) with the following possible values:
    • A: Automatically blocked due to existence of blocking reasons
    • S: Stochastically blocked
    • M: Manual payment block set in header - no blocking reasons


In an automatically blocked invoice (MRM_ZLSPR = A) there is at least one blocking reason in RSEG / RBMA / RBCO:


Database structure of the FI follow-on document:

First (vendor) BSEG Item: Payment Block is set (BSEG-ZLSPR = R)


(info) Note: RBKP contains exactly the data the user has entered, so RBKP-ZLSPR is only filled when the user has entered a value. This means

        • Field RBKP-ZLSPR is not necessarily set in the case of blocked invoices.
        • Field RBKP-ZLSPR will never be changed in the release process.

Update of the Incoming Invoice

  • Deletion RBKP_BLOCKED
  • Deletion blocking reasons in RSEG if necessary
  • Update of FI follow-on document (Deletion BSEG-ZLSPR) via Accounting Interface (TRWPR-PROCESS = PYMNTBLK)

Why does (does not) MRBR release an invoice automatically?

Check the prerequisites for releasing invoices automatically.

Check if with processing option Release manually, blocking procedure Blocked due to variances, the blocking reason is white (= valid) or coloured (= not valid).

RM08RELEASE - Overview Flow Logic


Debugging tips

Why does MRBR not show an invoice as blocked for payment?

  • First check the corresponding database entries (RBKP_BLOCKED, first BSEG item: BSEG-ZLSPR).
  • Debugging: breakpoint on SELECT of RBKP_BLOCKED in RM08RELEASE:

 * Selection from RBKP_BLOCKED -----------------------------------------*
  SELECT * FROM rbkp_blocked INTO TABLE tab_rbkp_blocked
       WHERE    mrm_zlspr  = f_mrm_zlspr
         AND    bukrs      IN so_bukrs
         AND    gjahr      IN so_gjahr
         AND    lifnr      IN so_lifnr
         AND    belnr      IN so_belnr
         AND    usnam      IN so_usnam
         AND    budat      IN so_budat
         AND    faell      IN so_faell
         AND    ekgrp      IN so_ekgrp.

Why does MRBR show a blocking reason as valid (not valid)?

  • Check the IMG documentation of the corresponding tolerance key.
  • Debugging:
    • Put a breakpoint on:
    • Put another breakpoint on:
      Function module: MRM_TOLERANCE_CHECK (MRM_TOLERANCE_CHECK is executed e.g. in RM08RELEASE from function module MRM_BLOCK_REASON_VAL_CHECK_P which is called from BLOCKING_REASON_VALIDITY_CHECK for tolerance key PP. MRM_TOLERANCE_CHECK is also the function module which, in general, determines whether an invoice is blocked for payment when you post it e.g. with MIRO)

Related Content

Related Documents

Invoice Release

Related SAP Notes/KBAs

Note 394370 - FAQ: Invoice release - frequently asked questions

KBA 2103443 - MRBR does not return all the blocked invoices

KBA 2218838 - MRBR shows invoices already unblocked/cleared at FI side