VoiSAP — SAP MM Error Guide

MIRO "balance not zero"
— the invoice-verification error, explained & fixed

A daily SAP MM headache. It means your invoice doesn't reconcile with the purchase order and goods receipt, so SAP won't post it. Here's the three-way match behind it, why the balance won't clear, and the exact steps to find and fix the gap — for SAP MM invoice verification.

Invoice Verification
Three-Way Match
Step-by-Step Fix
Updated July 2026
MIRO
Key T-code
3
Way Match
6
Fix Steps
S/4
& ECC
📖 6 min read
Updated July 2026
Common SAP MM Error
Call Us
+1 416-569-4606
Book Free Demo Class
Start Here

The quick answer

30-sec read
Written by the VoiSAP training team · Updated July 2026 · Practising SAP consultants.

In MIRO (invoice verification), "balance not zero" means the amount you entered doesn't reconcile with what SAP expects from the purchase order and goods receipt. SAP won't post an invoice until the Balance field is 0 and the traffic light is green. The fix is to find the gap — usually a quantity, price, tax, or delivery-cost difference — and correct it until the balance clears.

Balance not zero — the balance must be zero for posting

Key takeaways

  • MIRO checks the invoice against the PO and goods receipt (the three-way match).
  • The Balance field must be 0 (green light) before you can post.
  • A non-zero balance = a gap in quantity, price, tax, or delivery costs.
  • Find and correct the gap; the balance clears and the invoice posts.
Plain English

What the balance means

When you enter a vendor invoice in MIRO, SAP already knows what it expects: the price from the purchase order and the quantity from the goods receipt. It compares your entry to that expectation. The Balance field (top-right, with a traffic light) shows the difference. If your invoice total matches the expected amount, the balance is 0 and the light turns green — you can post. If it doesn't, the balance is non-zero and SAP stops you.

So the message isn't an error in the usual sense — it's SAP refusing to post a document that doesn't add up. Your job is to explain the difference: either fix your entry, or account for a legitimate variance.

The Match

The three-way match

Invoice verification is a three-way match — PO, goods receipt, and invoice all have to agree:

Purchase orderprice & quantity Goods receiptquantity received Invoicewhat you enter Balance must = 0 to post A quantity, price, tax or delivery-cost gap leaves the balance ≠ 0
Invoice verification checks the invoice against the PO and the goods receipt. Any gap in quantity, price, tax or delivery costs leaves a non-zero balance and blocks posting.

The PO sets the expected price; the goods receipt sets the expected quantity (for GR-based invoice verification); your invoice is checked against both. When all three line up, the balance is zero. A gap anywhere leaves a balance you have to resolve.

Root Cause

Why the balance isn't zero

1. Quantity mismatch

You entered a quantity that doesn't match what was received (or what you intend to bill). For GR-based verification, the invoice quantity should tie to the goods receipt.

2. Price / amount difference

The unit price or line amount differs from the PO. A small difference may be a legitimate variance (which can block the invoice for payment); a large one usually means a keying error.

3. Tax mismatch

The tax code or tax amount you entered doesn't match what the PO expects, so the totals don't reconcile.

4. Delivery costs not handled

Planned delivery costs (freight on the PO) must be selected in MIRO; unplanned delivery costs must be added in the Details tab. Missed either way, the balance won't clear.

5. Wrong PO or line selected

Referencing the wrong purchase order or line pulls in the wrong expected amounts. Confirm you're matching the right document.

The Fix

How to fix it, step by step

6 steps

Read the Balance field

Look at the Balance (top-right) and its traffic light. Note the amount and whether it's positive or negative — that tells you if you've entered too much or too little.

Compare header total vs item total

The amount in the header should equal the sum of the item lines (plus tax and delivery). If the header total was typed and doesn't match the items, that's your gap.

Check the quantity

Confirm the invoice quantity matches what you're billing and — for GR-based verification — the goods receipt quantity. Adjust the line quantity if needed.

Check the price / amount

Compare the unit price/amount against the PO. If it legitimately differs, that's a variance — the invoice may still post but be blocked for payment until released (MRBR).

Check the tax, and add delivery costs

Make sure the tax code and amount match the PO. Select any planned freight lines; enter unplanned delivery costs in the Details tab.

Clear the balance and post

Correct entries until the Balance is 0 and the light is green. Then post.

Tip: a small unavoidable difference (e.g. rounding) can be handled within tolerance, but never force a balance to zero by editing an amount you can't justify — investigate the real gap first.
SAP MIRO invoice verification balance not zero error — resolving MIRO posting error SAP MM
The MIRO balance not zero error stops invoice posting in its tracks. It always has a specific cause — and once you understand the logic of the three-way match, the cause becomes obvious.
The Cause

Why SAP Shows 'Balance Not Zero' in MIRO

The MIRO 'balance not zero' error appears when the system cannot balance the accounting document it is trying to create for your vendor invoice. Before posting any financial document, SAP requires that total debits equal total credits — this is standard double-entry accounting. If they do not balance, the document cannot post.

In MIRO, the system automatically generates the accounting lines from three sources: the vendor invoice amount you enter, the purchase order price, and the goods receipt quantity. When these three values do not reconcile within configured tolerance limits, the automatic entries do not balance — and SAP stops the posting.

Root CauseWhy It Causes Balance Not ZeroWhere to Check
Invoice price differs from PO price beyond toleranceDebit (GR/IR) and credit (vendor) lines do not matchCompare MIRO amount vs PO item price in ME23N
Invoice quantity differs from GR quantitySystem cannot match the three-way matchCheck MIRO quantity vs goods receipt in MB03
Wrong tax code selectedTax line adds an unexpected amount to the balanceVerify tax code in MIRO matches PO and vendor master
Currency or exchange rate mismatchForeign currency conversion creates an imbalanceCheck invoice currency vs PO currency in ME23N
Missing or incorrect account determinationGL account lines are incomplete or missingCheck OBYC configuration for transaction key WRX/BSX
Unplanned delivery costs entered without clearingAdditional cost lines not balanced by a clearing entryReview unplanned delivery cost entries in MIRO
SAP MIRO invoice posting screen — three-way match balance verification
The MIRO posting screen shows the simulated accounting document before posting. The 'Balance' field at the top must show zero before SAP will allow the posting to proceed.
The Fix

Step-by-Step Resolution for MIRO Balance Not Zero

Step 1: Read the simulated posting document

In MIRO, before posting, use the 'Simulate' button (or the accounting document preview) to see exactly what lines SAP is trying to post. The balance line at the bottom tells you the amount that is out of balance. This amount is your starting diagnostic clue.

Step 2: Compare invoice amount to PO price

Open ME23N and check the price on the purchase order line item. Compare it to what you have entered in MIRO. If there is a difference, check your tolerance configuration in OMRX. If the difference exceeds tolerance, the invoice will block — and the balance will not zero out unless you adjust the invoice quantity or amount to match the PO, or the tolerance is expanded.

Step 3: Check the goods receipt quantity

In MB03 or in the MIRO 'PO Structure' tab, verify the quantity of goods actually received against the purchase order. If you are invoicing for more quantity than was received, the GR/IR clearing will not match the vendor line — causing an imbalance. Either reduce the invoice quantity to match the GR, or post a second goods receipt first.

Step 4: Verify the tax code

Tax codes in MIRO must match what the vendor master and PO expect. An incorrect tax code (e.g. posting with tax when the vendor is tax-exempt, or using the wrong tax rate) creates an unexpected tax line that throws off the balance. Check the vendor master (XK03/BP) for the default tax code and compare to what MIRO is using.

Step 5: Check for unplanned delivery costs

Unplanned delivery costs (freight, insurance, customs) entered in MIRO must be properly allocated to balance the document. If you have entered an unplanned cost without allocating it to a delivery cost account or distributing it across items, the balance will show that unallocated amount as not zero.

Quick diagnostic shortcut: Look at the 'Balance' amount in MIRO before trying to post. If it exactly matches the tax amount — tax code issue. If it matches the price difference between PO and invoice — tolerance or price issue. If it matches the unplanned delivery cost — allocation issue. The amount tells you where to look.

SAP MIRO tolerance check — invoice verification balance configuration
Tolerance limits in OMRX define how much variance between PO price and invoice price is acceptable before MIRO blocks the posting. Reviewing and correctly configuring these limits prevents the majority of MIRO balance errors.
Prevention

Configuration That Prevents MIRO Balance Errors

Most recurring MIRO balance errors are caused by configuration gaps that can be addressed proactively:

  • Set appropriate tolerance limits (OMRX): Configure price and quantity tolerance limits that reflect your business reality. Too tight and MIRO blocks legitimate invoices constantly. Too loose and you accept incorrect invoices automatically.
  • Maintain tax codes on vendor masters: Ensure every vendor master (BP transaction) has the correct default tax code. This prevents tax code mismatches from occurring in the first place.
  • Ensure GR/IR clearing account is configured (OBYC/WRX): Missing WRX configuration causes MIRO to fail with account determination errors that compound the balance issue.
  • Train users on three-way match: Many MIRO balance errors result from users entering invoice amounts or quantities without checking the corresponding PO and GR first. A brief training on the three-way match process reduces error frequency significantly.
  • Use Invoice Verification in Background (MIRA): For high-volume invoice processing, MIRA (background invoice verification) provides better error logging and allows systematic handling of blocked invoices.
Quick Answers

FAQ

The MIRO balance not zero error occurs when the accounting document SAP is trying to create for a vendor invoice does not balance — total debits do not equal total credits. The most common causes are: invoice price differs from PO price beyond the configured tolerance, invoice quantity does not match the goods receipt quantity, incorrect tax code selected, currency mismatch, or unplanned delivery costs entered without proper allocation.

Simulate the posting document in MIRO to see the imbalance amount. Then diagnose based on the amount: compare the invoice price to the PO price in ME23N; verify the goods receipt quantity in MB03; check the tax code on the vendor master; review any unplanned delivery costs for proper allocation. The imbalance amount usually matches one of these root causes exactly.

MIRO is the SAP transaction for Logistics Invoice Verification — posting a vendor invoice against a purchase order and goods receipt. MIRO is the third step in the three-way match process (Purchase Order -> Goods Receipt -> Invoice). It compares the vendor invoice amount, the PO price, and the GR quantity to ensure they reconcile before creating a financial posting.

The three-way match compares three documents: the Purchase Order (what was ordered at what price), the Goods Receipt (what was physically received, posted with movement type 101 in MIGO), and the Vendor Invoice (what the supplier is charging). MIRO checks that these three documents align within configured tolerance limits before allowing the invoice to post. If they do not align, the balance is not zero.

OMRX is the SAP configuration transaction for Invoice Verification tolerance limits. It defines how much variance between the PO price and the invoice price is acceptable before MIRO blocks the invoice. For example, a 2% price tolerance means an invoice within 2% of the PO price will post automatically; one exceeding 2% will block and require approval. Reviewing OMRX is a key step in diagnosing recurring MIRO balance errors.

The GR/IR (Goods Receipt/Invoice Receipt) clearing account is a temporary balance sheet account that SAP uses in the three-way match process. When goods are received (movement type 101 in MIGO), SAP debits the stock account and credits GR/IR. When the vendor invoice is posted in MIRO, SAP debits GR/IR and credits the vendor account. Over time, the GR/IR account should clear to zero as GRs and invoices match. A missing or misconfigured GR/IR account (transaction key WRX in OBYC) causes MIRO posting failures.

The Simulate function in MIRO shows you the proposed accounting document — all debit and credit lines — before you post it. Using Simulate before posting is the fastest way to diagnose a balance not zero error: you can see exactly which lines are creating the imbalance and what amounts are involved. Make Simulate a standard step before every MIRO posting during troubleshooting.

If the tax code in MIRO does not match what the system expects (based on the vendor master or purchase order), the tax calculation produces a line that does not reconcile with the other document lines. For example, posting an invoice with a 13% HST tax code when the vendor is configured as tax-exempt creates a tax line with no matching credit — causing an imbalance equal to the tax amount.

Unplanned delivery costs are freight, insurance, customs, or other charges that appear on a vendor invoice but were not included in the original purchase order price. In MIRO, you can enter these costs separately in the unplanned delivery costs section. They must be allocated to a GL account or distributed across invoice items to balance the document. Unallocated unplanned delivery costs are a common cause of the balance not zero error.

Use transaction MB03 to display a specific material document (goods receipt), or use ME23N (display purchase order) and navigate to the purchase order history tab to see all goods receipts and invoices posted against the PO. In MIRO itself, the PO Structure tab shows the PO quantities, GR quantities, and already-invoiced quantities for each line item.

MIRA is SAP's background invoice verification transaction — an alternative to MIRO for high-volume invoice processing. MIRA processes invoices in background mode, providing better logging and systematic error handling. Blocked invoices are collected for review rather than stopping the user immediately. MIRA is commonly used in shared service centres and high-volume AP departments.

MIRO is for posting a vendor invoice directly. MIR7 is for parking a vendor invoice — saving it as an incomplete document for later completion and posting. Parked invoices (MIR7) do not create accounting entries and can be edited freely before posting. They are used when an invoice needs review or approval before going to the ledger. A parked invoice that has a balance not zero issue must have the issue resolved before it can be posted from MIR7.

Yes — an incorrectly posted MIRO invoice can be reversed using transaction MR8M (cancel material document for invoice) or MIRO with the transaction type 'Cancel Invoice Document'. The reversal creates a counter-entry that neutralises the original posting. Note that reversals in a closed posting period may require the period to be reopened or the reversal to be posted in the current period.

Use transaction MRBR (Release Blocked Invoices) to review and release invoices that were blocked in MIRO due to price or quantity variances. MRBR shows all blocked invoices, the blocking reason, and the variance amount. Authorised users can release blocked invoices after reviewing and approving the variance. This is the standard workflow for invoices that blocked due to exceeding tolerance limits.

VoiSAP SAP MM training covers MIRO invoice verification in depth — including the three-way match process, tolerance configuration, common error resolution, and hands-on practice on a real SAP S/4HANA system. Contact: voisap.com, +1-416-569-4606, contact@voisap.com.

VoiSAP is a Canada-based SAP training and career platform offering live SAP FICO, SAP MM, SAP SD, SAP BASIS, SAP ABAP and SAP User Level courses, corporate training, consulting and placement support. We proudly serve SAP learners across Brampton, Mississauga, Toronto, Calgary, Etobicoke, Kitchener and communities across Canada, the USA and India.

4.8★ Google Reviews275+ verified reviews
Active LinkedIn CommunityFollow our placement updates
200+ Hiring PartnersCanada & USA network
7-Day Refund WindowValid until your first class

© 2026 VoiSAP. All rights reserved. SAP Training in Canada.

Serving Brampton · Mississauga · Toronto · Calgary · Etobicoke · Kitchener & across Canada

Chat on WhatsApp 📅 Book Free Demo