# vrsai Invoice Match

> vrsai Invoice Match is a paid API for AI agents from api.vrsai.tech, paid per call via x402, $0.05/call, status unknown (last checked 2026-10-10).

Validates a supplier invoice against purchase orders, cumulative receipts, prior invoicing history, and tolerance policy to determine payment approval readiness.

## Facts

- Endpoint: POST https://api.vrsai.tech/v1/capabilities/invoice_match?utm_source=zero.xyz
- Price: $0.05/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-10
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/vrsai-invoice-match-d6204aba
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_exGdAGNfR2YNcBTeAMf1q

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 vrsai-invoice-match-d6204aba -d '<json body>'
```

Example prompt: Before we approve payment on invoice INV-883 from supplier_123 for EUR 420.00, run an invoice match check against PO-1001 — I need to know if the unit prices, quantities, and cumulative receipts all pass, or if anything is blocked by our tolerance policy.

## When to prefer this

Use this endpoint when you need automated three-way matching (invoice vs PO vs goods receipt) with configurable price tolerance enforcement before approving supplier payments. Prefer this over manual review when processing high volumes of invoices, when you need a structured audit trail of pass/block decisions per check, or when you want to catch duplicates, quantity overruns, and price discrepancies programmatically in an accounts payable workflow.

## Known failure modes

- Missing required PO data causes resolution failure on invoice_line_po_resolution check
- Currency mismatch between invoice and PO triggers currency_match BLOCK
- Unit price outside configured tolerance basis points results in UNIT_PRICE_OUTSIDE_TOLERANCE BLOCK
- Duplicate invoice number detected within same supplier scope returns duplicate_invoice_number BLOCK
- Cumulative invoiced quantity exceeds ordered or received quantity triggers BLOCK on respective checks
- Arithmetic errors in submitted invoice subtotal or total result in arithmetic check BLOCK

## How this service works

Match a supplier invoice against purchase orders, cumulative receipts, prior invoicing, and tolerance policy before payment approval.

## Output

Returns a list of named checks (e.g. duplicate_invoice_number, unit_price_tolerance, cumulative_quantity_vs_received) each with a PASS or BLOCK status, supporting evidence (computed vs declared values, tolerance thresholds, PO and invoice line references), plus a summary of invoice totals and metadata. BLOCK status on any check indicates the invoice should not proceed to payment without review.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method",
    "bodyType",
    "body"
   ],
   "properties": {
    "body": {
     "type": "object"
    },
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "POST"
     ],
     "type": "string"
    },
    "bodyType": {
     "enum": [
      "json",
      "form-data",
      "text"
     ],
     "type": "string"
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object"
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "checks": [
   {
    "id": "duplicate_invoice_number",
    "status": "PASS",
    "evidence": {
     "duplicate_scope": "supplier_id+invoice_number",
     "duplicate_history_supplied": false
    }
   },
   {
    "id": "prior_invoicing_evidence",
    "status": "PASS"
   },
   {
    "id": "receipt_evidence_snapshot",
    "status": "PASS"
   },
   {
    "id": "invoice_subtotal_arithmetic",
    "status": "PASS",
    "evidence": {
     "computed_subtotal_minor": "42000",
     "declared_subtotal_minor": "42000"
    }
   },
   {
    "id": "invoice_total_arithmetic",
    "status": "PASS",
    "evidence": {
     "computed_total_minor": "42000",
     "declared_total_minor": "42000"
    }
   },
   {
    "id": "invoice_line_po_resolution",
    "status": "PASS",
    "invoice_line_id": "line_1"
   },
   {
    "id": "currency_match",
    "status": "PASS",
    "purchase_order_id": "PO-1001"
   },
   {
    "id": "supplier_match",
    "status": "PASS",
    "purchase_order_id": "PO-1001"
   },
   {
    "id": "unit_of_measure_match",
    "status": "PASS",
    "evidence": {
     "po_unit_of_measure": "EA",
     "invoice_unit_of_measure": "EA"
    },
    "po_line_id": "10",
    "invoice_line_id": "line_1",
    "purchase_order_id": "PO-1001"
   },
   {
    "id": "price_basis_match",
    "status": "PASS",
    "po_line_id": "10",
    "invoice_line_id": "line_1",
    "purchase_order_id": "PO-1001"
   },
   {
    "id": "cumulative_quantity_vs_ordered",
    "status": "PASS",
    "po_line_id": "10",
    "purchase_order_id": "PO-1001"
   },
   {
    "id": "cumulative_quantity_vs_received",
    "status": "PASS",
    "evidence": {
     "cumulative_invoiced": "10",
     "cumulative_received": "10"
    },
    "po_line_id": "10",
    "purchase_order_id": "PO-1001"
   },
   {
    "id": "unit_price_tolerance",
    "status": "BLOCK",
    "evidence": {
     "tolerance_bps": 200,
     "po_unit_price_minor": "4000",
     "invoice_unit_price_minor": "4200"
    },
    "po_line_id": "10",
    "reason_code": "UNIT_PRICE_OUTSIDE_TOLERANCE",
    "invoice_line_id": "line_1",
    "purchase_order_id": "PO-1001"
   },
   {
    "id": "line_total_arithmetic",
    "status": "PASS",
    "po_line_id": "10",
    "invoice_line_id": "line_1",
    "purchase_order_id": "PO-1001"
   }
  ],
  "totals": {
   "computed_total_minor": "42000",
   "declared_total_minor": "42000",
   "computed_subtotal_minor": "42000",
   "declared_subtotal_minor": "42000"
  },
  "invoice": {
   "id": "inv_
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/vrsai-invoice-match-d6204aba/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.vrsai.tech](https://www.zero.xyz/host/api.vrsai.tech/llms.txt)
