Professional Documents
Culture Documents
Solutions
Support
Training
Community
Developer
Partner
About
Community / Blogs
Raja Ramasamy
more by this author
MM (Materials Management)
3way matchinvoice blockinvoice verification;rbkp blockedspgrpthree way matchtolerance
limittolerancekey
Follow
In this blog I am going to share the invoice tolerance limits learning and understanding
which would help to understand invoice blocking techniques and provide a base to
apply in real time situations depending on the clients need.
This document will help consultant who is going to implement Open Text Vendor Invoice
Management (VIM)
Please refer Part-2 for remaining tolerance keys
Introduction:
In the Procure to Pay(P2P) life cycle procurement part ends when Account Payable(AP)
processor/Invoice clerk posts the vendor invoice in SAP using MIRO transaction which
is also called Logistics Invoice Verification(LIV). It is tedious job for invoice clerk
manually to verify each and every invoice line item is conforming to agreed price or
quantity in PO. SAP provides systemic way of verifying this kind of discrepancies and
block the invoice for payment using the 2 digit key called Tolerance key.
Lower & upper tolerance limits for all possible discrepancies can be maintained in
tolerance key. I would try to explain all the invoice tolerance keys in this blog with
possible examples.
There are 2 kinds of invoice matching in SAP which are controlled by tolerance keys.
o
3 way match:
Invoice line item is checked against corresponding purchase order and good
receipt documents item for price & quantity matching
2 way match:
Invoice is checked against only to PO price/qty if there is no goods receipt
planned
Let us understand the how the automatic block is working via tolerance keys. In SAP we
have many tolerance keys, I am going to discuss only below keys in this part
AN,AP,BD,BR,BW,DQ,DW.
Tolerance Limits:
2.Manual block:
Invoice processor could manually block an invoice either at item level or header level
3.Blocking through payment term:
Invoice can be blocked always with a particular payment term even if there is no
variance
4.Stochastic blocking:
Random blocking of invoices without any variance
5.Blocking at vendor master level:
Invoice can be blocked always for a particular vendor if specific blocking key is
maintained at vendor master level
Blocking indicators:
Blocking indicators are available both at header and item level of invoice document.
System set this indicator in the document wherever and whenever it is appropriate.
Header level:
Table: RBKP_BLOCKED
Field: MRM_ZLSPR
Possible values:
A
S
M
W
Item level:
Table: RSEG
Fields:
SPGRP
SPGRM
SPGRT
SPGRG
SPGRV
SPGRQ
SPGRS
SPGRC
Value = X
System behavior:
If only the invoice line item is greater than absolute upper limit the invoice would be
blocked.
Let us understand with below example.
It updates RBKP table without a header Block R. But updates table RBKP_BLOCKED
with payment block A.
No entries in RSEG table as it is directly posted to G/L or Material
Tolerance Key
AN
RBKP
No blocking indicator
update(ZLSPR)
RBKP_BLOCKED
A- Auto block
RSEG
No update
(item amount block)
Pre-requisite:
Item amount check must allowed for item category and GR indicator OMRI
System behavior:
Let us understand with below example
Auto r
Not po
No blocking indicator at header table RBKP but RBKP_BLOCKED table has blocking
indicator A.
Blocking indicator RSEG- SPGRS (Blocking reason item amount) is set at item level.
Item amount block must be released manually. There is no automatic release possible
even if we perform any one of the following activities
Tolerance Key
AP
RBKP
No blocking indicator
RBKP_BLOCKED
A-Auto block
update(ZLSPR)
RSEG
Auto
RSEG- SPGRS = X Not p
(item amount
block)
System behavior:
Let us understand with below example
Since small difference is within the tolerance limit, invoice would be posted without
block. Small difference amount would be debited to small difference G/L account
maintained for the transaction event key DIF in OBYC.
Same rule is applied in the lower side as well
RBKP MAKZN (net amount accepted manually) field will get updated with small
diff. amount : 3.00
Tolerance Key
BD
Tolerance
Within range
RBKP
No blocking
RBKP_BLOCKED
No update
indicator
BD
Above
update(ZLSPR)
No blocking
RSEG
No blocking
reason update
No update
indicator
No blocking
reason update
update(ZLSPR)
MAKZN field
updated with diff.
amount
Tolerance:
Material master:
PO Details:
PO has been created with CRT as Order unit and EA as Order price unit
Po quantity: 2 CRT = 24 EA
Invoice details:
Invoice is simulated before GR as below
Scenario 1:
Order unit quantity 2 CRT
Difference is 100 91.6 = 8.9 % which is within the BR tolerance limit 10% maintained
Scenario 2:
Order unit quantity 2 CRT
Order price unit quantity 21 EA and amount 2100 USD
Observation: There is a warning message as below.
Let us use the above formula to find the variance percentage.
Difference is 100 87.5 = 12.5 % which is more than the BR tolerance lower limit 10%.
Hence we are seeing the above warning message which will block the invoice for
payment.
Tolerance Key
BR
RBKP
No blocking indicator
update(ZLSPR)
RBKP_BLOCKED
A- Auto block
RSEG
Auto
RSEG- SPGRS = X Not p
(item amount
block)
PO Details:
PO quantity in order unit 2 CRT
Po quantity in order price unit 24 EA
GR Details:
GR quantity in order unit 2 CRT
GR quantity in order price unit 22 EA
IR Details:
Scenario 1:
IR quantity in order unit 2 CRT
IR quantity in order price unit 20 EA
Observation: There is no warning message on the variance.
Variance % = (20/2) / (22/2) *100
= 90.9%
Difference is 100 90.9 = 9.1 % which is within the BR tolerance limit 10% maintained
Scenario 2:
IR quantity in order unit 2 CRT
IR quantity in order price unit 19 EA
Observation: There is a warning message as below
RBKP
No blocking indicator
RBKP_BLOCKED
A- Auto block
update(ZLSPR)
RSEG
Auto
RSEG- SPGRS = X Not p
(item amount
block)
If a goods receipt has been defined for an order item and a goods receipt has already
been posted, the system multiplies the net order price by (quantity invoiced (total
quantity delivered total quantity invoiced)).
If no goods receipt has been defined, the system multiplies the net order price by
(quantity invoiced (quantity ordered total quantity invoiced)).
System behavior:
Absolute limits:
Let us see the system behavior if only absolute values are maintained and percentage
limits are marked as Do not check.
Upper limit: 100.00
Lower limit: 100.00
When we post invoice with above variance it will get blocked for payment.
It updates tables as below
Tolerance Key
DQ
RBKP
No blocking indicator
RBKP_BLOCKED
A- Auto block
RSEG
RSEG- SPGRM = X
Auto
Yes
update (ZLSPR)
(Quantity block )
Automatic release possible if the blocking reason RSEG- SPGRM is deleted when we
post GRN for the balance quantity or credit memo for the excess invoiced quantity.
Percentage limits:
We can also configure percentage limits for the quantity variance check. In this case,
the system calculates the percentage variance from the expected quantity, irrespective
of the order price, and compares the outcome with the percentage limits configured.
Let us see the system behavior with same example if only percentage limits are
maintained and absolute values are marked as Do not check.
Upper % limit: 10.00
Lower % limit: 10.00
Test data :- (GR has been defined)
PO quantity = 100 EA
PO price = 100 USD
GR quantity = 50 EA
a)System behavior when invoice quantity is 55
Variance = (quantity invoiced total quantity delivered)/ (quantity expected)*100 %
= (55-50)/50 * 100 %
= (5/50)*100 %
= 10 %
Variance 10% is equal to upper limit 10 % and there will not be any warning
message.
b)System behavior when invoice quantity is 56
Variance = (quantity invoiced total quantity delivered)/ (quantity expected)*100 %
= (56-50)/50 * 100 %
= (6/50)*100 %
= 12 %
Variance 12% is more than upper limit 10% and there will be a warning message as
below. Invoice will be blocked for payment and same tables will be updated as above.
System behavior:
This tolerance key works only for PO based invoice verification because GR based
invoice verification will not allow IR without GR.
Variance = Net order price * (quantity invoiced + total quantity invoiced so far)
= 10 *(10+0) = 100
This value is equal to DW limit hence there is no warning message and system will
not block the invoice.
b)If the IR quantity is 11 then system calculates variance as below and block the
invoice.
Variance = 10 *(11+0) = 110
This value is more than DW tolerance absolute upper limit hence invoice got blocked.
It updates tables as below
Tolerance Key
DW
RBKP
No blocking indicator update
RBKP_BLOCKED
A- Auto block
(ZLSPR)
RSEG
RSEG- SPGRM = X
(Quantity block )
Automatic release possible if the blocking reason RSEG- SPGRM is deleted when we
post GRN for the balance quantity or credit memo for the excess invoiced quantity
Reference:
* SAP IMG documentation
Alert Moderator
20 Comments
You must be Logged on to comment or reply to a post.
1.
Auto r
Yes
Hi All
Appreciate your comments and valuable feedback.
Like (0)
1.
1.
Thanks..
Like (0)
2.
Nice Blog. Could you please guide me for the below scenario. PO Qty = 100 with unlimited over
delivery check box, GR = 140 Qty. GR checked but No GR based IV, MIRO should post for 140 Qty
by blocking invoice with Tolerance key DQ as 1% (warning message). Currently system is not
checking DQ tolerance as its two way match (PO based invoice) and ignores the tolerance % as its
unlimited delivery check box in PO
Like (0)
2.
3.
Hello Raja Ramasamy This is very useful document and would appreciate if you can also post
Part -2 of this Tolerance Keys An Insight I am more interested in examples of KW ST PP.
Thanks once again !
Like (0)
1.
Hi Pravin,
2.
4.
5.
6.
7.
Nice Blog. Could you please guide me for the below scenario.
PO Qty = 100 with unlimited over delivery check box, GR = 140 Qty. GR checked but No GR based
IV, MIRO should post for 140 Qty by blocking invoice with Tolerance key DQ as 1% (warning
message). Currently system is not checking DQ tolerance as its two way match (PO based invoice)
and ignores the tolerance % as its unlimited delivery check box in PO
Like (0)
8.
9.
10.
Hi Raja, this is a very helpful explanation of tolerance keys. I would apreciate very much if you would
deliver the missing 2nd part of your explanations.
Thanks,
Gerald
Like (0)
1.
11.
12.
13.
One question; I read somewhere once that should you not have defined any tolerances the system
will not allow any price or quantity variance. The purpose of defining invoice tolerances is actually to
make the system less restrictive by turning off this functionality entirely or setting a tolerance to
ensure that not ALL invoices with the slightest variance is blocked. Is this correct?
Like (0)
1.
Yes, You are right. If you dont maintain any tolerance system would not allow to post invoices.
Like (0)
Privacy
Terms of Use
Legal Disclosure
Copyright
Trademark
Sitemap
Newsletter
Get Started
Solutions
Support
Training
Community
Developer
Partner
About
Community / Blogs
Invoice Tolerance Keys An insight Part 2
Raja Ramasamy
more by this author
MM (Materials Management)
Follow
Finally here is the part 2 of Invoice Tolerance keys which is the continuation of part 1 .
System Behavior:
PO Qty = 100 EA
Tolerance Key
RBKP
RBKP_BLOCKED
RSEG
Auto
KW
A- Auto block
RSEG- SPGRP = X
NO
(ZLSPR)
(Price block for Delivery
cost line)
System Behavior:
PO Limit = 1000 SGD
GR not applicable
IR1 Value = 500 SGD
IR2 Value = 510 SGD system allows without any warning message as the variance = (500
+510)=1010 is compared with PO limit 1000 SGD which is within the tolerance.
If we try to post the invoice for 511 then system would throw below pop-up message. Still we can
post the invoice which will be blocked for payment.
Tolerance Key
RBKP
RBKP_BLOCKED
RSEG
LA
A- Auto block
RSEG- SPGRP = X
(ZLSPR)
Auto relea
A.
Y
a
o
The system determines the number of days by which the invoice is outside the planned
time interval. If the posting date of the invoice is before the validity period, the system
calculates the number of days between the posting date and the start of the validity
period. If the posting date of the invoice is after the validity period, the system calculates
the number of days between the posting date and the end of the validity period. The
system compares the number of days with the absolute upper limit defined.
System behavior:
Scenario 1:
PO Validity end date: 03/12/2015
Posting date : 13/12/2015
No warning message because (13-03)= 10 days is within tolerance
Scenario 2:
PO Validity end date: 03/12/2015
Posting date : 14/12/2015
Warning message as below since variance is above tolerance (14-3) = 11 days. It will be
blocked for payment .
Tolerance Key
RBKP
RBKP_BLOCKED
RSEG
LD
A- Auto block
RSEG- SPGRT = X
(ZLSPR)
Auto relea
A.
Y
a
V
d
System behavior:
Scenario 1:
PO Price :100 SGD / Item
PO Qty -:100 EA
PO Total value : 10000 SGD
IR Total amount: 10010 SGD
IR Qty 100 EA
System would allow without any message. Since the variance is (10010 10000) = 10
SGD which is within the tolerance.
Scenario 2:
PO Price :100 SGD / Item
PO Qty -:100 EA
PO Total value : 10000 SGD
IR Total amount: 10011 SGD
IR Qty 100 EA
System would pop-up below message. Since the variance is (10010 10000) = 11 SGD
which is above the tolerance and it will be blocked for payment.
Scenario 3:
Invoice & Subsequent debit:
For the same PO Qty & amount if we do invoice as
IR Qty = 100 EA
IR Value = 10000 SGD
Then
Subsequent debit as
Qty = 100 EA
Value = 10 SGD
No warning message since the variance (already invoiced value+ current subquent
debit value PO amount ) = ( 10000+ 10 10000) = 10 is within tolerance.
If the value is 11 SGD then system would pop-up below message
Tolerance Key
RBKP
RBKP_BLOCKED
RSEG
PP
A- Auto block
RSEG- SPGRP = X
(ZLSPR)
Auto relea
A.
Y
a
P
RBKP
RBKP_BLOCKED
RSEG
PS
A- Auto block
RSEG- SPGRP = X
(ZLSPR)
Auto relea
A.
Y
a
P
The system calculates for each item the product of amount * (scheduled delivery date
date invoice entered) and compares this product with the absolute upper limit defined.
This allows relatively high schedule variances for invoice items for small amounts, but
only small schedule variances for invoice items for large amounts
javascript:;
System behavior:
Scenario 1:
PO item value: 100 SGD Per item
PO Qty = 10 EA
PO Value = 1000 SGD
PO Delivery date: 03/12/2015
IR Value = 1000 SGD
IR Qty = 10 EA
Invoice entering date = 02/12/2015
Variance = PO item amount * ( PO delivery date Invoice entry date)
= 100 (3- 2) = 100 *1 = 100 SGD
This is within tolerance hence no warning message.
If we post the invoice on 01/12/2015 then variance would be
RBKP
RBKP_BLOCKED
RSEG
ST
A- Auto block
RSEG- SPGRT = X
(ZLSPR)
System behavior:
Material master MAP price: 100 SGD
Auto relea
A.
With this I have completed all the tolerance keys relevant for Invoice Posting.
P.S: There is one more tolerance key PC which is used for invoice with reference to Contract which is not covered in this article
due to technical reasons.
Alert Moderator
7 Comments
1.
Regards.
M.Ozgur Unal
Like (0)
1.
1.
Hello Raja,
many thanks for such precise and great content.
I was trying to analyse these for my client but not able locate the table which contains items in
blocked invoices by Tolerance Code. Which table might contain this information?
Many Thanks.
Kind Regards;
Amit Rahate
Like (0)
2.
There is one point you mentioned for DQ Tolerance Key that if it is not mentioned for a company
code, it means a zero tolerance and system would block the invoice for payment if there is any
variance. Does this apply to PP Tolerance Key as well?
Like (0)
3.
4.
tnx a lot for providing all tolerance limits in IR with best examples
Like (0)
5.
Privacy
Terms of Use
Legal Disclosure
Copyright
Trademark
Sitemap
Newsletter