# Invoice Purchase Order Matcher

> Invoice Purchase Order Matcher is a paid API for AI agents from mcp-factory.bowling-anthony.workers.dev, paid per call via x402, $0.05/call, status unknown (last checked 2026-09-15).

Analyzes and matches invoice lines against purchase orders and receipt data, flagging discrepancies and exceptions with three-way reconciliation.

## Facts

- Endpoint: POST https://mcp-factory.bowling-anthony.workers.dev/invoice-purchase-order-matcher/analyze
- Price: $0.05/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/invoice-purchase-order-matcher-b4397e31
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_WtfLKo25R2lgDyI5aN4H0

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability invoice-purchase-order-matcher-b4397e31 -d '<json body>'
```

Example prompt: I have an invoice from Acme Corp billing us for 10 units of WIDGET at $2.00 each, and our PO shows we ordered 10 units at that price — can you do a three-way match against our receipt record of 10 received units and tell me if there are any discrepancies or exceptions?

## When to prefer this

Use this endpoint when you need automated three-way matching of invoices against purchase orders and receipt records, especially in accounts payable workflows where you want structured exception reporting per line item. Prefer this over manual reconciliation or generic document comparison tools when you need SKU-level quantity and price validation with tolerance support and a machine-readable summary.

## Known failure modes

- Mismatched SKUs between invoice and PO result in unmatched line exceptions
- Quantity discrepancies beyond tolerance flagged as exceptions rather than hard errors
- Missing or malformed line data may cause parsing failures or incomplete matching
- Currency or minor-unit mismatches can produce incorrect totals
- Payment failure via x402 returns 402 before analysis is performed

## How this service works

Customer-input analysis tools with per-call x402 v2 USDC payments on Base. Discovery and examples are free.

## Output

Returns a JSON object with a list of matched invoice lines (each with SKU, quantities, unit price, line total in minor units, and any exceptions), a receipt exceptions array, a purchase order summary per SKU showing ordered/invoiced/received quantities and exceptions, an overall match status boolean, exception count, total invoice amount in minor units, and currency metadata including minor unit digits and tolerance.

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "ok": true,
  "lines": [
   {
    "sku": "WIDGET",
    "line_id": "INV1",
    "quantity": "10",
    "exceptions": [],
    "po_line_id": "PO1",
    "unit_price": "2.00",
    "line_total_minor": "2000"
   }
  ],
  "stage": "complete",
  "summary": {
   "matched": true,
   "exception_count": 0,
   "invoice_line_count": 1,
   "receipt_line_count": 1,
   "total_invoice_minor": "2000",
   "purchase_order_line_count": 1
  },
  "currency": "USD",
  "tolerance_minor": "0",
  "minor_unit_digits": 2,
  "receipt_exceptions": [],
  "purchase_order_summary": [
   {
    "sku": "WIDGET",
    "exceptions": [],
    "po_line_id": "PO1",
    "ordered_quantity": "10.000000",
    "invoiced_quantity": "10.000000",
    "received_quantity": "10.000000"
   }
  ]
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/invoice-purchase-order-matcher-b4397e31/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from mcp-factory.bowling-anthony.workers.dev](https://www.zero.xyz/host/mcp-factory.bowling-anthony.workers.dev/llms.txt)
