This is part two… please refer to part 1 if you haven’t already followed those steps…
For invoice match we have a few more tables to look at in SQL
- POP10600 – Purchasing Shipment Invoice Apply — this is the table the ties the PO receipt record to the PO invoice match record (seen in the blue arrow expansion window Match Shipments to Invoices)
- POP30300 & POP30310 Purchasing Receipt Header and Lines History — we need to know about posted invoice matches, POPTYPE=2 (1 is shipment/receiving)
Also, during invoice match entry, in POP10500, the receiving line (QTYSHPPD>0 ) gets changed — QTYMATCH gets populated. (This entry is actually what “holds” the quantity for the Quantity status window — so this is super important for troubleshooting! (*** see sidenote at the end for more on this))
Remember my benchmark in SQL for troubleshooting is “what should a GOOD record look like?” So with that in mind – here is an example of a GOOD unposted invoice match transaction
In Purchasing Invoice entry window:

here are some important fields in POP10500 for that same PO number:

Let’s walk thru this:
- The first row is our Shipment/receiving line – RCT1128 (Listed under Matched to Shipment on the middle grid on the entry window)
- We can tell this is our receiving line because QtyShppd (Qty Shipped) is greater than zero
- note the Status is 1 – posted
- Also see that the Qty Match is not zero – but it the 2 that was matched. (This column was zero before this invoice match transaction was entered)
- The second row is our Invoice match line — RCT1165 (the transaction number on the top left in the transaction entry screenclip)
- note the States is 0 – unposted
- Also see the QtyShppd (Qty Shipped) is zero but QtyInvcd (Qty Invoiced) is 2 — this tells us this is an Invoice Match transaction
Here is the record in POP10600 – you can see how it ties these two lines together:

OK. lets go thru common situations for “Can’t Invoice Match”:
- You find a receiving record in POP1050 with QTYMATCH that doesn’t have a corresponding record in POP10600.
- This is the most common situation. My hypothesis is that someone started to enter an invoice match transaction then backed out or deleted it and the transaction got properly removed from the other tables but the Shipping line QtyMatch was NOT properly re-set.
- QtyMatch on POP10500 should equal the total for all records in POP10600 QtyInvcd for that same PORCTNM and RCPTLNNM
- the QTY Match on POP1050 “holds” the quantity, so correcting this field will release the quantities in GP.
- The other situations are that you also find parts of an invoice match record in POP10310, POP10500, etc.
- You find a record in POP1050 for that PONUMBER Status=0 (unposted), QtyShppd=0, QtyInvcd >0 (invoice match record).
- You can NOT pull up and delete the POPRCTNM in Purchasing invoice entry window
- You may or may not find records in POP10310 and POP10300 (doesn’t matter either way)
- You do NOT find the POPRCTNM in POP30300 or POP30310 (history tables header & line)
- Follow all of the steps above to Fix the receiving line’s QtyMatch – this will release the quantities
- delete these record(s). delete any related rows in the header table POP10300, POP10600 match table and optional tables from the other post (POP10330, POP10360, POP10390, POP10306, POP10340), if any. This will clean up the work tables so that there isn’t bad records for later problems.
- If you DO find the POPRCTNM transaction in POP30300 and POP30310 then it just didn’t finish ALL the steps for posting. Check if it posted to inventory (if applicable), GL and payables. If it did, you will want to remove any records in the work tables POP103XX (make sure ALL lines are in POP30310), then verify work/history tables – POP10500 and POP10600 — have status =1 / posted.
- You find a record in POP1050 for that PONUMBER Status=0 (unposted), QtyShppd=0, QtyInvcd >0 (invoice match record).
Hope this is helpful and happy troubleshooting!
** sidenote — this QTYMATCH getting populated when Invoice Match transactions are ENTERED even before they are POSTED, has a super important side effect in GP. The GP Received Not Invoice report (subledger) is effected by these transactions in WORK (EG the related receiving transactions are not listed on the report), effectively rendering the report not accurate when Invoice match transactions are pending / unposted. So, best practice is to make sure there are no pending Invoice Match transactions before running the report at month end. <Sigh>























