# Handel PO–Invoice–Delivery Note Matcher

> Handel PO–Invoice–Delivery Note Matcher is a paid API for AI agents from handel.halowerk.com, paid per call via x402, $0.002/call, status unknown (last checked 2026-10-10).

Compares a purchase order against a delivery note and an invoice line by line, pairing lines by article number or text similarity and flagging mismatches with similarity scores.

## Facts

- Endpoint: POST https://handel.halowerk.com/v1/po-invoice-match?utm_source=zero.xyz
- Price: $0.002/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-10
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/handel-po-invoice-delivery-note-matcher-2198bd13
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_Jq7BETuSxqLEV02doY46f

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 handel-po-invoice-delivery-note-matcher-2198bd13 -d '<json body>'
```

Example prompt: Can you do a three-way match on this purchase order, delivery note, and invoice — compare them line by line and flag any mismatches, making sure to show the similarity score where lines were paired by text rather than article number?

## When to prefer this

Choose this endpoint when you need automated three-way matching of a purchase order, delivery note, and invoice — especially when line items may lack consistent article numbers and need text-similarity fallback pairing. It is ideal for accounts payable workflows, fraud detection on incoming invoices, and audit trails where transparent similarity scoring is required to justify why lines were matched.

## Known failure modes

- Missing or malformed purchase order, delivery note, or invoice document causes a 400 error
- No lines can be matched due to completely different article numbers and low text similarity, returning empty match results
- Text similarity pairing producing false positives on vaguely similar product descriptions
- Unstructured or non-machine-readable document formats that cannot be parsed into line items
- Payment failure or insufficient USDC balance returning a 402 response

## How this service works

Compares a purchase order against a delivery note and an invoice, line by line. Lines are paired by article number where both sides carry one, and otherwise by text similarity — a text pairing is marked as such with its similarity score, because quietly matching on similar wording is exactly how a wrong invoice gets approved.

## Output

A structured list of matched line pairs, each indicating the pairing method used (article number match or text similarity), the similarity score when text-based pairing was used, the values from each of the three documents (PO, delivery note, invoice), and any detected mismatches in quantity, price, or description.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "invoice": {
   "type": "array",
   "items": {
    "type": "object",
    "required": [
     "quantity"
    ],
    "properties": {
     "sku": {
      "type": "string",
      "maxLength": 100
     },
     "quantity": {
      "type": "number"
     },
     "unit_price": {
      "type": "number"
     },
     "description": {
      "type": "string",
      "maxLength": 300
     }
    },
    "additionalProperties": false
   },
   "maxItems": 300,
   "minItems": 1,
   "description": "Invoiced lines."
  },
  "currency": {
   "type": "string",
   "default": "EUR",
   "maxLength": 3,
   "minLength": 3
  },
  "delivery_note": {
   "type": "array",
   "items": {
    "type": "object",
    "required": [
     "quantity"
    ],
    "properties": {
     "sku": {
      "type": "string",
      "maxLength": 100
     },
     "quantity": {
      "type": "number"
     },
     "description": {
      "type": "string",
      "maxLength": 300
     }
    },
    "additionalProperties": false
   },
   "maxItems": 300,
   "description": "Delivered lines. Optional — without it only a two-way match runs."
  },
  "purchase_order": {
   "type": "array",
   "items": {
    "type": "object",
    "required": [
     "quantity"
    ],
    "properties": {
     "sku": {
      "type": "string",
      "maxLength": 100
     },
     "quantity": {
      "type": "number"
     },
     "unit_price": {
      "type": "number"
     },
     "description": {
      "type": "string",
      "maxLength": 300
     }
    },
    "additionalProperties": false
   },
   "maxItems": 300,
   "minItems": 1,
   "description": "Ordered lines."
  },
  "price_tolerance_pct": {
   "type": "number",
   "default": 0,
   "maximum": 50,
   "minimum": 0,
   "description": "Allowed unit-price deviation in percent."
  },
  "text_match_threshold": {
   "type": "number",
   "default": 0.5,
   "maximum": 1,
   "minimum": 0.1,
   "description": "Minimum text similarity to pair lines without an article number."
  },
  "quantity_tolerance_pct": {
   "type": "number",
   "default": 0,
   "maximum": 50,
   "minimum": 0,
   "description": "Allowed quantity deviation in percent."
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/handel-po-invoice-delivery-note-matcher-2198bd13/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from handel.halowerk.com](https://www.zero.xyz/host/handel.halowerk.com/llms.txt)
