Invoice to PO 3-way matching

Matches invoices against corresponding purchase orders, identifies maverick spend (invoices without a PO), and PO budget overruns.

↓ Download skill (.md)
72/100·📅 Weekly·IntermediateAP ManagerProcurement
Budget & POsReconciliationget_payablesget_purchase_ordersget_suppliers

🎯 Skill purpose

Matches invoices against corresponding purchase orders, identifies maverick spend (invoices without a PO), and PO budget overruns.

📊 What it produces

Matching report with compliant invoices, PO budget overruns, invoices without a PO, and POs with no recent activity.

Benefit

Before

Invoice/PO matching is done manually in a spreadsheet and takes several hours each week.

After

Automated matching in seconds with immediate identification of anomalies and maverick spend.



# Invoice ↔ Purchase Order matching (3-way matching)

## Purpose
Reconcile supplier invoices with the corresponding purchase orders to validate payments. Identify invoices with no PO (maverick spend), PO budget overruns, and POs with no activity.

**Limitation:** Spendesk does not natively store the PO→Invoice link on every payable — matching is performed by Claude based on supplierId and amounts.

## Instructions

### Step 1 — Retrieve open POs
```
Call get_purchase_orders with status=open (or pending).
For each PO: note id, supplierId, budgetAmount, invoicedAmount,
currency, startDate, expectedDeliveryDate.
```

### Step 2 — Retrieve recent invoices
```
Call get_payables for the last 60 days.
Exclude expense claims (payableType != expenseClaim).
For each invoice: id, supplierId, amount, currency, invoiceDate, status.
```

### Step 3 — Matching by supplierId
```
For each invoice:
  Look for POs with the same supplierId.
  If a PO is found:
    Check: invoice amount ≤ remaining PO budget (budgetAmount - invoicedAmount)
    If overrun > 10% → ⚠️ "PO budget overrun"
    Otherwise → ✅ "Matched with PO"
  If no PO for this supplier → ❌ "Invoice with no PO" (maverick spend)
```

### Step 4 — POs with no recent invoice
```
For open POs:
  If no invoice from the same supplier in the last 60 days → "PO with no recent activity"
  If PO open for > 90 days with no invoice → "PO to review / close"
```

### Step 5 — Resolve supplier names
```
For identified anomalies (maverick spend + overruns):
  Call get_supplier_by_id for the suppliers involved.
```

### Step 6 — Matching report
```
Present:
✅ Invoices matched with a PO: X (X€) — compliant
⚠️ PO budget overruns: X invoices (X€ above budget)
   Supplier | Invoice amount | PO budget | Overrun
❌ Invoices with no PO (maverick spend): X (X€)
   Supplier | Amount | Date | Category
📋 POs with no recent activity > 60 days: X POs
   Supplier | Budget | Opening date | Recommended action
```

## Points to watch
- Matching by supplierId is an approximation — a supplier may have several active POs
- Some suppliers (SaaS subscriptions, utilities) have no PO by design — exclude them if not applicable
- This skill does not modify Spendesk — any action (approval, closing a PO) must be done manually

## Example prompts
- "Do all my invoices this month have a purchase order?"
- "Are there any budget overruns on my active POs?"
- "Show me invoices with no PO (maverick spend) this quarter"

How to install this skill

/
  1. 1
    Download the file s53-invoice-po-matching.md using the button above.
  2. 2
    Place the file in the .claude/ directory of your project (or ~/.claude/ for a global install).
    cp s53-invoice-po-matching.md .claude/s53-invoice-po-matching.md
  3. 3
    Use in Claude Codethe skill is automatically discovered. Describe your need in natural language and Claude will apply the skill instructions.
💡 Make sure the Spendesk MCP is configured in your .claude/settings.json with the tools get_payables, get_purchase_orders, get_suppliers.

Similar skills

★ Top
95/100·🔍 Ad hoc·Expert

MCP coverage audit & gap analysis

Probes all available MCP tools, re-evaluates coverage of 50 persona use cases, detects new fields or tools, and regenerates the gap analysis report.

CFOControllerAP Manager
★ Top
89/100·🔍 Ad hoc·Intermediate

Skill Builder

Aide un client à transformer un besoin métier précis (contexte, contraintes, format de sortie souhaité) en un nouveau skill Claude sur mesure, prêt à l'emploi sur le MCP Spendesk

CFOControllerAP Manager
★ Top
88/100·🔍 Ad hoc·Beginner

MCP Product Tour

Visite guidée conversationnelle du MCP Spendesk — appels réels sur les données de l'utilisateur, adaptée à sa persona, puis recommandation des prochains skills à installer

CFOControllerAP Manager