## TL;DR

Service and expense POs often have a single header line or no item lines, while invoices cite line numbers from the vendor's own quote. Match at the header level in this case: validate the total against the PO total within tolerance and confirm the service period or deliverable, rather than forcing line-level matching that the PO cannot support.

## Error

```text
PO line 3 referenced; PO 4500012345 has 1 line
```

## Steps

1. Check the PO structure: header-only or service PO.
   Expected: The real PO shape.
2. Fall back to header-level matching for such POs.
   Expected: A workable match basis.
3. Validate the invoice total against the PO total within tolerance.
   Expected: Value control without lines.
4. Confirm service period or deliverable with the requester.
   Expected: The receipt equivalent for services.
5. Document the header-level match on the invoice.
   Expected: Audit clarity.

## When to use

- Service POs
- Header-only POs
- Vendor line numbers that do not exist in the PO

## When not to use

- Standard goods POs with lines
- Quantity variances on real lines
- Non-PO invoices

## Compatibility

ERP-agnostic.

## Variant phrasings

### PO has no lines invoice does

### service PO line matching

### header-only PO invoice

## Root cause

Vendors number lines on their quotes; buyers create lump-sum service POs. The two numbering schemes never align, so line-level matching is impossible by construction.

## Edge cases

- Milestone billing against service POs needs milestone definitions, not lines
- Mixed goods-and-services POs need split treatment
- Retainers draw down like blanket POs

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_VCcoPHQ1kpYd_h3qLOUcTQ
