## TL;DR

Invoices routinely arrive before the warehouse records the receipt, and holding every such invoice stalls AP. Park the invoice in a waiting state with a receipt-watch: auto-retry matching when new receipts post, escalate to receiving after a timeout, and accrue the liability at month-end if goods arrived but paperwork lags. Never pay without the receipt for goods POs.

## Error

```text
Match blocked: no goods receipt for PO 4500012345 line 10
```

## Steps

1. Park the invoice in a receipt-waiting state with a timestamp.
   Expected: A visible queue, not a black hole.
2. Subscribe to receipt postings for the PO.
   Expected: Automatic retry triggers.
3. Re-run matching when receipts arrive.
   Expected: Most clear on their own.
4. Escalate to receiving after the timeout (e.g. 7 days).
   Expected: Human follow-up where needed.
5. Accrue at month-end for received-but-unmatched goods.
   Expected: Correct period accounting.

## When to use

- Invoice arrives before receipt
- 3-way match blocked on receipt
- Month-end with unmatched invoices

## When not to use

- Service invoices (no receipt expected)
- PO number problems
- Quantity disputes

## Compatibility

ERP-agnostic; needs receipt data feed.

## Variant phrasings

### invoice before goods receipt

### missing GRN invoice matching

### receipt not yet posted

## Root cause

Vendors invoice on shipment while warehouses receive and record later. The timing gap is normal operations, not an error, and the process must absorb it.

## Edge cases

- Drop shipments never produce a warehouse receipt; use proof of delivery
- Partial receipts need line-level waiting, not header-level
- Month-end accruals reverse when the invoice posts

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_Ow-pHmMLATyKDuf0NxXymQ
